Empezando con Silverlight





El presente video más que una explicación o enseñar cómo crear algo es una muestra de cómo es la forma de trabajo de Silverlight. y como con poco trabajo se pueden logran resultados elegantes y profesionales, y mas allá de eso, si no solo hablamos de apariencia, sino de funcionalidad, pues decir que los resultados son excelentes.






Lo utilizado para crear aplicaciones en Silverlight es manejar el XAML, lenguaje de etiquetado basado en el estándar XML, también como se comento en el video, trabajamos con Expression Blend 4 y Microsoft Visual Studio 2010. Esta es la primera aplicación que realizo, solo estoy comenzando aprender esta nueva tecnología pero cuando me encuentre mas avanzado en mis estudios estare compartiendo tutoriales interesantes y además colgando proyectos para que lso interesados puedan descargar.


Este es el XAML del proyecto:

  1 <UserControl
  2     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  6     xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" x:Class="SilverlightPractica1.MainPage"
  7     mc:Ignorable="d" d:DesignWidth="380" Background="#FF451515" Width="400" Height="380">
  8     <UserControl.Resources>
  9         <Storyboard x:Name="animacionIzquierda">
 10             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="Anim1">
 11                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
 12                 <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="-127"/> 
 13                 <EasingDoubleKeyFrame KeyTime="0:0:0.98" Value="-342.057"/> 
 14                 <EasingDoubleKeyFrame KeyTime="0:0:1.46" Value="1.784"/>
 15             </DoubleAnimationUsingKeyFrames>
 16             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="Anim3">
 17                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
 18                 <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="-127"/> 
 19                 <EasingDoubleKeyFrame KeyTime="0:0:0.98" Value="-342.057"/> 
 20                 <EasingDoubleKeyFrame KeyTime="0:0:1.46" Value="1.784"/>
 21             </DoubleAnimationUsingKeyFrames>
 22             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.X)" Storyboard.TargetName="Anim2">
 23                 <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
 24                 <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="-175"/> 
 25                 <EasingDoubleKeyFrame KeyTime="0:0:0.96" Value="173.757"/>
 26                 <EasingDoubleKeyFrame KeyTime="0:0:1.08" Value="135.757"/>
 27                 <EasingDoubleKeyFrame KeyTime="0:0:1.24" Value="109.775"/>
 28                 <EasingDoubleKeyFrame KeyTime="0:0:1.42" Value="55.414"/>
 29                 <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="0.414"/>
 30                 <EasingDoubleKeyFrame KeyTime="0:0:1.72" Value="0.414"/>
 31             </DoubleAnimationUsingKeyFrames>
 32             <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)" Storyboard.TargetName="Anim2">
 33                 <EasingDoubleKeyFrame KeyTime="0:0:1.42" Value="0"/>
 34                 <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="1086.156"/>
 35                 <EasingDoubleKeyFrame KeyTime="0:0:1.72" Value="1790.737"/>
 36             </DoubleAnimationUsingKeyFrames>
 37         </Storyboard>
 38     </UserControl.Resources>
 39  
 40     <Grid x:Name="LayoutRoot" >
 41         <Grid.Background>
 42             <LinearGradientBrush EndPoint="-0.757,0.051" StartPoint="0.338,0.891">
 43                 <LinearGradientBrush.RelativeTransform>
 44                     <TransformGroup>
 45                         <ScaleTransform CenterY="0.5" CenterX="0.5"/>
 46                         <SkewTransform CenterY="0.5" CenterX="0.5"/>
 47                         <RotateTransform CenterY="0.5" CenterX="0.5"/>
 48                         <TranslateTransform X="0.562" Y="0.359"/>
 49                     </TransformGroup>
 50                 </LinearGradientBrush.RelativeTransform>
 51                 <GradientStop Color="Black"/>
 52                 <GradientStop Color="#FF20B45F" Offset="1"/>
 53                 <GradientStop Color="#FF09341B" Offset="0.401"/>
 54                 <GradientStop Color="#FF136F3A" Offset="0.763"/>
 55             </LinearGradientBrush>
 56         </Grid.Background>
 57         <dataInput:Label Height="30" Margin="89,8,73,0" VerticalAlignment="Top" Foreground="#FFEDF9F6" BorderBrush="#FF9FE4E9" Content="Validacion de Usuario" FontSize="21.333" FontFamily="Harrington" FontWeight="Bold"/>
 58         <dataInput:Label Height="30" Margin="37,70,0,0" VerticalAlignment="Top" Foreground="#FFEDF9F6" BorderBrush="#FF9FE4E9" Content="Nombre:" FontSize="21.333" FontFamily="Harrington" HorizontalAlignment="Left" Width="99"/>
 59         <dataInput:Label Margin="37,118,0,137" Foreground="#FFEDF9F6" BorderBrush="#FF9FE4E9" Content="Contraseña:" FontSize="21.333" FontFamily="Harrington" HorizontalAlignment="Left" Width="114"/>
 60         <PasswordBox x:Name="CajaPasword" Margin="167,167,53,184" FontSize="18.667" ToolTipService.ToolTip="Escriba Su Contraseña">
 61             <PasswordBox.Foreground>
 62                 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
 63                     <GradientStop Color="Black" Offset="0"/>
 64                     <GradientStop Color="#FF208079" Offset="1"/>
 65                 </LinearGradientBrush>
 66             </PasswordBox.Foreground>
 67             <PasswordBox.Background>
 68                 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
 69                     <GradientStop Color="Black" Offset="0"/>
 70                     <GradientStop Color="White" Offset="0.388"/>
 71                 </LinearGradientBrush>
 72             </PasswordBox.Background>
 73         </PasswordBox>
 74         <TextBox x:Name="CajaNombre" Height="30" Margin="167,70,53,0" TextWrapping="Wrap" VerticalAlignment="Top" FontFamily="Ravie" FontSize="13.333" ToolTipService.ToolTip="Escriba su Nombre de Usuario" Text="felix hernandez">
 75             <TextBox.Background>
 76                 <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
 77                     <GradientStop Color="Black"/>
 78                     <GradientStop Color="#FFF9EDED" Offset="0.349"/>
 79                 </LinearGradientBrush>
 80             </TextBox.Background>
 81             <TextBox.Foreground>
 82                 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
 83                     <GradientStop Color="Black" Offset="0"/>
 84                     <GradientStop Color="#FF208079" Offset="1"/>
 85                 </LinearGradientBrush>
 86             </TextBox.Foreground>
 87         </TextBox>
 88         <Button x:Name="BotonEntrar" Content="Validar" Height="32" Margin="37,0,0,69" VerticalAlignment="Bottom" FontFamily="Ravie" Background="#FF1794FD" HorizontalAlignment="Left" Width="131">
 89             <Button.Foreground>
 90                 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
 91                     <GradientStop Color="Black" Offset="0"/>
 92                     <GradientStop Color="#FF208079" Offset="1"/>
 93                 </LinearGradientBrush>
 94             </Button.Foreground>
 95         </Button>
 96         <Ellipse x:Name="Anim1" HorizontalAlignment="Left" Height="23" Margin="0,0,0,9" Stroke="Black" VerticalAlignment="Bottom" Width="23" RenderTransformOrigin="0.5,0.5">
 97             <Ellipse.RenderTransform>
 98                 <TransformGroup>
 99                     <ScaleTransform/>
100                     <SkewTransform/>
101                     <RotateTransform/>
102                     <TranslateTransform/>
103                 </TransformGroup>
104             </Ellipse.RenderTransform>
105             <Ellipse.Fill>
106                 <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
107                     <GradientStop Color="Black" Offset="1"/>
108                     <GradientStop Color="#FF78BC79" Offset="0.539"/>
109                 </LinearGradientBrush>
110             </Ellipse.Fill>
111         </Ellipse>
112         <Ellipse x:Name="Anim2" Height="23" Margin="180,0,177,9" Stroke="Black" VerticalAlignment="Bottom" RenderTransformOrigin="0.5,0.5" Width="23">
113             <Ellipse.RenderTransform>
114                 <TransformGroup>
115                     <ScaleTransform/>
116                     <SkewTransform/>
117                     <RotateTransform/>
118                     <TranslateTransform/>
119                 </TransformGroup>
120             </Ellipse.RenderTransform>
121             <Ellipse.Fill>
122                 <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
123                     <GradientStop Color="Black" Offset="1"/>
124                     <GradientStop Color="#FF78BC79" Offset="0.539"/>
125                 </LinearGradientBrush>
126             </Ellipse.Fill>
127         </Ellipse>
128         <Ellipse x:Name="Anim3" HorizontalAlignment="Right" Height="23" Margin="0,0,0,9" Stroke="Black" VerticalAlignment="Bottom" Width="23" RenderTransformOrigin="0.5,0.5">
129             <Ellipse.RenderTransform>
130                 <TransformGroup>
131                     <ScaleTransform/>
132                     <SkewTransform/>
133                     <RotateTransform/>
134                     <TranslateTransform/>
135                 </TransformGroup>
136             </Ellipse.RenderTransform>
137             <Ellipse.Fill>
138                 <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
139                     <GradientStop Color="Black" Offset="1"/>
140                     <GradientStop Color="#FF78BC79" Offset="0.539"/>
141                 </LinearGradientBrush>
142             </Ellipse.Fill>
143         </Ellipse>
144     </Grid>
145 </UserControl>
146 


Ahora, como siempre pueden Descargar el Proyecto para que jueguen un poco:



Tiempo sin escribir

Primero que todo quiero saludar a mis lectores, para mi es grato contar con sus visitas a mi blog.

Quiero informar algunos de los motivos por el cual tengo el blog olvidado como lo es el estar bastante enfermo durante un largo tiempo y antes de eso el estar finalizando semestre en la universidad que siempre me quita bastante tiempo, aun así aquí estoy recuperándome y con muchas ganas de escribir, y pues quería avisar que estoy aprendiendo WPF (Windows Presentation Foundation) y de lo cual espero compartir con ustedes lo que aprenda, quiero aprender ASP aunque será más luego y espero también poder compartirlo con ustedes, y pues sobre VB que ha sido lo más tratado en este blog no lo dejaremos a un lado, pues se espera profundizar más en este lenguaje de programación tan importante, siendo todo esto lo que tengo por decir espero que no hallan más inconvenientes para tener nuevo contenido que sea de alto interés en nuestro blog.

Windows Azure (Que?, como?, Cuando? & por que?)

Autor: Clipto



Tal ves muchos aun no escuchan hablar de esta nueva Tecnología (Plataforma) & es normal su lanzamiento es aun muy reciente, pero tras de leer e investigar un poco en Internet tratando de asimilar que era esto me dispongo a escribir este sencillo Documento que pretende dar una idea Básica pero General de esta nueva Tecnología.


Empecemos con algo de Historia acerca de la programación, recomendaría no volarse esta parte ya que como en una cola lo primero es lo mas importante y esto nos dará una base para entender de Que se trata todo este cuento y comprender las ventajas de esta tecnología que como dijo alguien: no es un capricho, y como digo yo: no es un lujo es toda una necesidad; Ahora entremos un poco en materia con algo de Historia.


Atentados del 11 de septiembre de 2001: Todos recordamos este ataque el cual lamentamos muchos ya que fue algo catastrófico, pero se preguntaran ¿Esto que tiene que ver?, en realidad es muy simple; si lo observamos desde un punto de vista tecnológico y aun mas nosotros ingenieros de sistemas conocemos la importancia y valor de los datos sabremos que estos atentados causaron la perdida de millones y millones de datos pues este lugar en su interior era un centro de datos, al incendiarse todos los equipos se perdieron los datos y no hubo manera alguna de recuperarlos lo que llevo a cantidades de compañías al fracaso y posteriormente a declararse en banca rota ya que su materia prima (Los datos) se había perdido no tenían como seguir adelante, como vemos esto nos esta aclarando mucho la mente, pero ahora pensemos que habrán dicho los clientes, proveedores etc. no es culpa de ellos que las compañías tuvieran los datos almacenados en ese lugar por lo que tomaron repercusiones legales contra las empresas. Estos acontecimientos llevaron a analistas a comprender que necesitaban soluciones, que necesitaban una forma de prevenir la perdida de datos ocasionados por problemas X o Y de cualquier índole, & es ahí donde Microsoft empieza a trabajar en el desarrollo de esta tecnología.



Aplicaciones en la Nube: Esta es por decirlo así la idea en que se basa la plataforma AZURE .
Un conjunto de soluciones para evitar problemas como los comentados anteriormente, es decir un plan de recuperación y protección de datos. Pero se preguntaran ¿Como? Muchos ya conocen lo que son servicios de hosting, pero recordemos un poco. Un hosting es un servidor dedicado donde almacenare información, generalmente utilizado para alojar archivos de código que son interpretado por los navegadores es decir “paginas web”
las aplicaciones en las nube desarrollan un concepto muy similar son aplicaciones que serán subidas a servidores y su funcionamiento sera desde la nube.


Hasta este punto ya respondemos los interrogantes al ¿Que?, ¿Cuando?, ¿Como? & ¿por que? Sobre la plataforma Azure, pero no podemos dejar solamente ahí, ya que se nos presentan miles de preguntas, ente esas: ¿es fiable?, ¿es estable el sistema?, ¿como funciona?, para resolver estos interrogantes entraremos un poco mas en materia sobre esta tecnología.






Windows Azure: Diré que este es el centro de datos de Microsoft, es decir los servidores donde estarán alojadas nuestras aplicaciones como alguien dijo: pensemos en ello como una granja de servidores trabajando para cumplir con el propósito de la nueva tecnología, ahora entraremos a ver las ventajas que este servicio implica: si tenemos nuestra aplicación corriendo en la nube piensen que los datos crecen cada ves mas rápido, si estuviéramos trabajando en equipos locales gastaríamos mucho en expansión de equipos para guardar todos los datos y garantizar que nuestra aplicación siga su curso normal, pero como ahora esta en la nube no debo preocuparme por estos detalles pues como se dijo en un principio son cantidades de servidores por lo cual si nuestra aplicación e información necesitan mas espacio esta se ira expandiendo a medida que esto ocurra. Como vemos nos ahorramos mucho dinero, pero veamos otra ventaja que conlleva el tener nuestras aplicaciones en la nube, pues un entorno siempre actualizado y seguro, pero ¿quien se encarga de ello? Esto funciona por abstracción no sabremos quien ni como pero este proceso sera realizado por el personal de Microsoft, si antes una compañía tenia que pagar por un experto en seguridad informática se esta ahorrando este capital pues ahora no hay uno si no muchos trabajando porque estos proceso de actualización y seguridad de nuestras aplicaciones sucedan y todo esto dentro del mismo servicio.



SQL Azure: Uno de los puntos central de esta nueva tecnología es SQL Azure, que como se puede deducir por su nombre es el encargado y responsable del trabajo con Bases de Datos en la nube, mencionare algo que me parece muy importante sobre su funcionamiento y es uno de sus componentes: “sincronizador de datos”, se preguntaran cual es su función, pues este empieza hacer su trabajo cuando laboramos con BD de acceso desconectado permitiendo la sincronizacion desde el DataSet hasta el origen de datos, pero porque me llamo tanto la atención este componente y porque hablo de el, pues es sencillo en esta nueva tecnología no es obligatorio que yo tenga mi aplicación en la nube puedo solo tener mi base de datos, y la aplicación estar en un equipo local, algo que muestra que esta tecnología ha sido laborada con muchos detalles tratando de no dejar puntos fuera de ella.

.NET Services: Quien es el encargado de la seguridad de este servicio?, sera optimo el rendimiento de mi aplicación?. Para aclarar estos aspectos que son muy importantes en servicios como estos debemos hablar de .NET Services que es quien esta velando por la seguridad de nuestro producto, como ejemplo tomemos las tareas administrativas, ¿al estar una aplicación en la nube cualquiera puede acceder a ella?, pues no: .NET Services se encarga del control de acceso a los servicios para poder realizar tareas de tipo administrativas o no administrativas. Y por rendimiento hablaremos de Computer Services; pues seria lógico pensar que tanto trafico hacia los servidores
haría lento el proceso de respuesta de ellos, por ende se haría lento nuestra aplicación, pues este componente se encarga de distribuir la carga de trabajo entre distintas maquinas, pero no solo es eso porque podría entonces distribuir entre servidores que ya están ocupando muchos trabajos y servicios, se trata entonces de distribuir los trabajos entre los servidores que posean menos trabajos y como ya conocemos que dos cabezas piensan mejor que una, podemos concluir dos o mas servidores trabajan mejor que uno por lo cual gozaremos de servicios de respuesta óptimos, pero ¿que pasaría si son nuestros equipos los que fallan?, no hay problema este servicio esta bien construido y pensado por lo que también podremos acceder desde cualquier dispositivo es decir podríamos acceder desde los celulares entre otros lo que garantizaría que nuestra productividad no se vería afectada.


Bueno ya tenia mas de un año sin escribir un documento, pero espero este sea de provecho para muchos, y decir que nosotros los Ing. de Sistemas y profesionales TI, somos los encargados y responsables de llevar estas nuevas tecnologías a nuestra sociedad porque la tecnología avanza cada vez mas rápido, y quien no este en la vanguardia de estas nuevas tecnologías representarían perdidas de rendimiento y optimizacion en gran medida a una empresa dejándolo fuera de la competencia laboral.

Descargar el Documento en PDF





http://www.4shared.com/document/SFv39Vw7/azure2.html

Sistema de estacionamiento en pascal






Expliquemos un poco de que se trata, cual es la finalidad de esta aplicación. Consiste en un sistema para un parqueadero donde se deben consultar los lugares vacíos y los lugares ocupados, así como estacionar un vehículo o liberar vehículo. Es algo sencillo sob solo ideas qeu se pueden llevar a proyectos ams grande. y cabe destacar q este fue mi primer parcial de pascal :)

Codigo fuente: 

  1 (*Eduardo luis garcia marrrugo*) 
  2 (*Felix david hernandez aldana*) 
  3  
  4 program parcial; 
  5 uses crt; 
  6  
  7      var estacion: array[1..100] of integer; 
  8          i,opcion,opcion_siclos:integer; 
  9          continuar,cont_siclos,parada: string[2]; 
 10           posx,posy,notificador:byte; 
 11           puesto:byte; 
 12  
 13           (*parada: esta variable me simula el readkey pero evita el fujo del enter*) 
 14 begin 
 15  
 16  
 17        (*incializamos el vecto a posciones vacias las cual leeremos como (0)*) 
 18          for i:=1 to 100 do 
 19          begin 
 20              estacion[i]:=0; 
 21          end; 
 22          repeat (*volber al menu ppal*) 
 23  
 24             repeat (*repetir hasta que se selccione una de las operaciones posibles*) 
 25                 clrscr; 
 26                 gotoxy(20,2);writeln('Sistema de estacionamiento'); 
 27                 gotoxy(3,5);write('Menu'); 
 28                 gotoxy(3,7);write('1) Estacionar'); 
 29                 gotoxy(3,9);write('2) Salida de vehiculo'); 
 30                 gotoxy(3,11);write('3) Consultar lugares disponibles'); 
 31                 gotoxy(3,13);write('4) Consultar lugares ocupados'); 
 32                 gotoxy(3,15);write('5) Salir'); 
 33  
 34                 gotoxy(3,18);write('Elija una opcion: '); 
 35             readln(opcion); 
 36             until((opcion>=1) and (opcion<=5)); 
 37  
 38  
 39  
 40  
 41         case opcion of 
 42  
 43             1: 
 44             begin 
 45  
 46                  repeat 
 47                   repeat  (*nos controla que se seleccion el numero indicado*) 
 48                     clrscr; 
 49                     gotoxy(20,2);write('Estacionar vehiculo'); 
 50                     gotoxy(3,5);write('1) Consultar lugares disponibles'); 
 51                     gotoxy(3,7);write('2) asignar lugar de estacionamiento'); 
 52  
 53                     gotoxy(3,11);write('Escoja una opcion: '); 
 54                     gotoxy(22,11);read(opcion_siclos); 
 55  
 56                   until((opcion_siclos>=1) and (opcion_siclos<=2)); 
 57  
 58                   case opcion_siclos of 
 59                      1: begin 
 60                               clrscr; 
 61                               gotoxy(20,2);write('Puestos Desocupados:'); 
 62                               posx:=3; posy:=5; 
 63  
 64                         for i:=1 to 100 do 
 65                          begin 
 66                                if estacion[i] =0 then 
 67                                begin 
 68                                  gotoxy(posx,posy); write(i); 
 69                                  posx:=posx+3; 
 70                                   if posx>=40 then 
 71                                   begin 
 72                                       posy:=posy +2; 
 73                                       posx:=3; 
 74                                   end; 
 75  
 76                                end; 
 77                          end;(*fin for que reccore el vector estacion*) 
 78  
 79                          posy:=posy +4; 
 80  
 81                          gotoxy(3,posy);write('En que puesto estacionara el vehiculo?: '); 
 82                          gotoxy(43,posy);readln(puesto); 
 83                          (*estacion[puesto]:=1;*)(*le asignamos 1 a los puestos ocupados*) 
 84  
 85                          if estacion[puesto]=0 then 
 86                           begin 
 87                             estacion[puesto]:=1; 
 88                              notificador:=1; 
 89  
 90                           end 
 91                           else 
 92                            begin 
 93                             write(15,20);write('Este puesto esta ocupado'); 
 94                            (* readkey; --------------*) 
 95                             readln(parada); 
 96                            end; 
 97  
 98  
 99  
100                         end;(*fin caso 1: opcion siclos*) 
101  
102  
103                      2: begin 
104  
105                           repeat 
106                           clrscr; 
107                           notificador:=0; 
108                           gotoxy(30,2);write('Estacionar vehiculo'); 
109  
110  
111  
112                          gotoxy(3,4);write('En que puesto estacionara el vehiculo?: '); 
113                          gotoxy(43,4);readln(puesto); 
114  
115                           if estacion[puesto]=0 then 
116                           begin 
117                             estacion[puesto]:=1; 
118                              notificador:=1; 
119  
120                           end 
121                           else 
122                            begin 
123                             write(15,20);write('Este puesto esta ocupado'); 
124                            (* readkey; --------- *) 
125                                readln(parada); 
126                            end; 
127                          posy:=10; 
128  
129  
130  
131                           until (notificador=1); 
132                         end;(*fin caso 2 de opcion siclos*) 
133  
134  
135                 end; (*opcion siclos*) 
136  
137                 posy:=posy+2; 
138                 gotoxy(3,posy);write('Presione cualquier tecla para volver'); 
139                 posy:=posy+1; 
140                 gotoxy(15,posy);write('Al menu de estacionamiento'); 
141                 posy:=posy+1; 
142                 gotoxy(15,posy);write('(n) para caso contrario: '); 
143  
144  
145                 gotoxy(42,posy);readln(cont_siclos); 
146  
147                 until(cont_siclos='n'); 
148  
149              (************ OJO ****) 
150  
151             (* readkey; *) 
152               readln(parada); 
153             end;(*fin caso 1*) 
154  
155        2: begin 
156  
157            clrscr; 
158            gotoxy(20,2);write('Salida de vehiculos'); 
159  
160            gotoxy(3,5);write('Puesto a desocupar: '); 
161            gotoxy(23,5);readln(puesto); 
162  
163            estacion[puesto]:=0; (*no hay que verificar esto no alterara el resultado*) 
164  
165  
166           end;(*fin caso 2 menu ppal*) 
167  
168  
169  
170        3:  begin 
171              clrscr; 
172                gotoxy(20,2);write('Puestos Desocupados:'); 
173                posx:=3; posy:=5; 
174  
175                         for i:=1 to 100 do 
176                          begin 
177                                if estacion[i] =0 then 
178                                begin 
179                                  gotoxy(posx,posy); write(i); 
180                                  posx:=posx+3; 
181                                   if posx>=40 then 
182                                   begin 
183                                       posy:=posy +2; 
184                                       posx:=3; 
185                                   end; 
186  
187                                end; 
188                          end;(*fin for que reccore el vector estacion*) 
189                    (*  readkey;     *) 
190                    readln(parada); 
191          end;(*fin caso 3 menu ppal*) 
192  
193  
194  
195         4:begin 
196                clrscr; 
197                gotoxy(20,2);write('Puestos Ocupados:'); 
198                posx:=3; posy:=5; 
199  
200                         for i:=1 to 100 do 
201                          begin 
202                                if estacion[i] =1 then 
203                                begin 
204                                  gotoxy(posx,posy); write(i); 
205                                  posx:=posx+3; 
206                                   if posx>=40 then 
207                                   begin 
208                                       posy:=posy +2; 
209                                       posx:=3; 
210                                   end; 
211  
212                                end; 
213                          end;(*fin for que reccore el vector estacion*) 
214                     (* readkey; *) 
215                     readln(parada); 
216  
217           end; (*fin caso 4 menu ppal*) 
218  
219         5: begin 
220              exit; (*salgo del procedimiento*) 
221  
222             end; (*fin caso 5*) 
223  
224  
225         end; (*fin del case ppal*) 
226  
227           gotoxy(20,25);write('Presione cualquier tecla para volver al Menu Principal'); 
228           gotoxy(23,27);write('presione (n) en caso contrario: '); 
229           readln(continuar); 
230          until(continuar='n');  (*condiciopn colber al menu ppal*) 
231  
232  
233  
234     readkey; 
235  
236 end.(*fin del bloque principal*)

Bueno eso es todo amigos :) jejeje

Free pascal






Free Pascal es un potente compilador para dicho lenguaje.
La sintaxis de lenguaje de Free Pascal es semánticamente compatible con Turbo Pascal 7.0. También soporta algunas extensiones usadas por Delphi.
Opciones adicionales incluyen: soporte para sobrecarga de proceso, optimizador de código, posibilidad para cargar variables en registros, un analizador del nivel del flujo de datos del ensamblador, eliminaciones de Stack, un ensamblador integrado, encadenamiento inteligente, soporte para debugger GNU, y soporte API.

& como sabran las descargas son de los sitios oficiales esta ves la tomaremos desde softonic:
Descargar:  http://free-pascal.softonic.com/descargar



Nota: Lo he usado y lo uso para mis calses de pascal y debo decir que es excelente me gusta mucho este compilador y para los que trabajen con turbopascal y vallan a provar este compilador. donde colcan:
Uses wincrt; en free pascal es de la siguiente forma: Uses crt;  

Sistema de Encuestas Visual Basic.NET




Bueno como muchos sabrán este fue nuestro primer parcial de programación avanzada y como muchos no sabrán son la 02:15am jejej ya va siendo hora de acostarme, así que seré breve.

Este consiste en una aplicación que realiza encuestas donde primero que todo se registran los candidatos y luego los barrios donde se realizara la encuesta. Cuenta con el modulo de encuestado donde los datos ya son cargados según los barrios y candidatos que se registraron, excepto los estratos que tome 10 tipos de estratos. Ahora las consultas permiten consultar el porcentaje total de un candidato seleccionándolo en un combo que se carga con los nombres de los candidatos, permite una consulta por parámetro para este caso por sexo, así muestra según el sexo seleccionado el porcentaje de personas que votaron por cada candidato, y por ultimo cuenta con una consulta por barrio que nos muestra el porcentaje de personas en un barrio especificado que botaran por los candidatos


Descargar el proyecto: