Mostrando entradas con la etiqueta Mis programitas. Mostrar todas las entradas
Mostrando entradas con la etiqueta Mis programitas. Mostrar todas las entradas

Algoritmo tiempo mas corto y al azar en C#

En esta ocasión les quiero compartir este trabajo que me toco hacer como requisito en la materia de Sistemas Operativos 1. consiste en desarrollar un simulador o cualquier aplicación que implemente estos algoritmos para funcionamientos. yo lo que hice fue desarrollar un reproductor multimedia que utiliza estos dos algoritmos, claro algo sencillo pero es chevere.

La funcionalidad de estos algoritmos se basa en lo siguiente:

  • Algoritmo Tiempo mas corto: lo que hace es mirar entre todos los procesos y ver cual tiene menor tiempo de duración entonces ira ejecutando el que tenga menor tiempo de duración.  para un reproductor que implementa esta funcionalidad solo consiste en leer el tiempo de duración de la canción que se selecciono (Lista de canciones)cada una de esta representa un proceso luego lo que hago es ordenarlos de menor a mayor y listo voy reproduciendo.
  • Algoritmo al Azar: este algoritmo es sencillo  entre todas las canciones seleccionadas (procesos) va reproduciendo al azar.
Capturas de la aplicación.

En la siguiente pantalla se seleccionan las canciones a reproducir.


las canciones quedaran cargadas en la ventana de configuración (Si alguna no les carga el tiempo. hacer clic en la fila para que capture el tiempo de la canción).


luego hacer clic en el botón inferior simular tiempo mas corto. y el sistema organizara las canciones según el algoritmo de planificación q se halla seleccionado para este caso tiempo mas corto.

Panel izquierdo (Procesos en estado esperando). Panel Central (Procesos en Ejecución  y Panel derecho (Procesos Terminados).


A continuación podrán descargar el proyecto, esta desarrollado en Visual Studio 2010 Profesional


Interfaz Grafica en Matlab para Metodos Numericos

Me gusta compartir, y esta vez será algo que ayude a todos aquellos que por falta de tiempo han tenido dificultades para aprender algo de matlab, y no han podido realizar su “simulación” de los diferentes métodos numéricos aprendidos, y pues aquí les traigo una pequeña aplicación que desarrolle con implementación de interfaz grafica que resuelva estos ejercicios y no tengamos que estar haciendo tablas una y otra vez sino que tengamos los resultados de las tablas y todos los datos adicionales necesarios a unos solos clics.  

Metodos:

1) bairstow
2) biseccion
3)regresion gaussiana
4) interpolacion
5) metodo de euler
6) minimos cuadrados
7) metodo de newton rapson
8) newton para ecuaciones no lineales
9) runge kutta
10) gauss seidal 


Algunas Capturas:
                          









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

calculadora por jerarquia ()*/+- ...C#...



mmm esto es algo que hice hace como 1 año fue un reto en una comunidad. y estaba revisando otras paginas y me econtre con el y note que no estaba publicada en este lugar. la verdad ya no me acuerdo de C# aunque me parece lo mejor.

NOTA: la razón de publicarla es por el algoritmo que use. bueno fue lo que se me ocurrió. la forma de trabajar con una operación matemática y detectar sibolos y trabajar en base a ella

Datos basicos:
es una calculadora basica lo unico que hace es operaciones por jerarquia como las calculadoras de mano donde primero resuelve las operaciones dentro de los parentesis en su orden de jerarquia */+- y asi va destruyendo parentesis hasta desmenusar todo lo digitado, para mayor funcionalidad lee toda la expresion de una vez.

& como no puede faltar La descarga del proecto:
Calculadora por jerarquía
"Cortesía de": http://proyeccionclipto.blogspot.com/
Descargar desde:
http://www.4shared.com/file/245637074/68635a61/Projects_C.html

jajaja cortesia si me da risa, la basila el profesor

factura en java

bueno primero que todo aclarar que solo es un bosquejo de una factura en java no ultiliza archivos para almacenamiento de datos
permanentes ya que era una aplicación solo para mi segundo parcial y solo manejabamos arrays.

aqui estan unas capturas:




mmm veo que es muy largo para subir todo el codigo pero aqui esta el proyecto completo para descargar:

y úes ya saben si quieren editarla y agregarle nuevas funcionalidades no se les olvide subir el proyecto nuevamente :D


Simulador de encuestas autopersonalizables


Nota: un programa de encuestas autopersonalisables consiste en q el usuario encargado de administrar el programa pueda decir q la pregunta1 es respondia por el usuario & q la pregunta 2 es de selección múltiple con única respuesta & asi sucesivamente.
 Aplicando la Logica del calculo, la cual aplique tanto para programar el simulador la hare para explicarlo
 Vamos
 Primero q todo: tengo un amigo q me conto q tenia q hacer un programa para una compañía X, q se encarga de hacer encuetas en las distintas partes de colombia, y me dijo q el programa consistía en generar encuestas en ambiente web para q las personas las pudieras hacer desde internet y una aplicación extra par alos blackberrys para q la pudieras ejecutar en los pueblos donde se cae el internet & muchas cosas mas como se deben imagina, de ahi viene el nombre simulador ya q a mi me causo intriga lo de las "encuestas autopersonalisables" & lo mio esta echo en C#, y además solo es un algoritmo q implemente para generar tales encuestas. 
- ahora yo no uso BD ya q solo es un simulador, solo ultilizo vectores & matrices ya verán porq.
agrego una imagen del programa
 
Nota: es el primer programa q ago orientado objeto donde aplico las clases,  claro no es gran nivel porq ya entre a la u & no me dio tiempo de seguir leyendo msdn pero ami me guta bastante el modo enq trabaje, creo q le saque el jugo alo  leido.




Juego en C# (Reversi en consola)

Muchos en sus tiempos de ocio habran jugado alguna ves un juego q nos ofrece microsft llamado "Resversi en internet" para los q no pueden entrar a el de la siguiente forma: inicio>todos los programas>juegos>Reversi en internet, ¿porq hice enfasis en eso?, pues porq si no conocen el juego me gustaria q lo vieran funionar en modo grafico para q hagan su comparacion con el modo consola q he creado.

esta son unas imagenes del juego:

Ahora como La idea esq todos aprendamos, coloco el algoritmo del juego(Quedando claro q no es un algoritmo como tal, si nó, mas bien un modo de pensar para poder desarrollar el juego)
******Algoritmo
El algoritmo solo are una breve explicación de cuáles son los factores a tener en cuenta, para esto tendremos que hacer uso de la teoría de intervalos esto para hacernos una simple idea de cómo funciona.

El algoritmo como es una explicación básica no será hecho en seudocódigo ni diagrama de flujo es llamado algoritmo porque es un análisis de cómo debe funcionar el algoritmo.

ahora para mi es bastante entendible el juego, pues claro yo fui el q lo hice jajaj, pero para los que no, miren les explico, como ven el cuadro de juego esta coordenado en los ejes x,y el programa lo q hace es leer la posicion donde se pondra la ficha q sera la "jugada".. pero al igual q el algoritmo este es solo una brebe explicacion

& pues despues de todo esto, con la explciacion del algoritmo que uso para desarrollarlo les seria facil programarlo pero si aun tienen dudas sobre el codigo o solo quieren ver mi codigo [a ver q tan mal & desordenado programo jejej : ) ]. pues les dejo el proyecto en el siguiente link:

http://www.4shared.com/file/250887100/f2c51dd0/come_fichas.html  
Nota: el en link estan los dos documentos el algoritmo y el manual, claro tambien el codigo del proyecto

Aclaro es el primer programa q hice en C# aun no sabia manejar objetos ni clases, solo programcion estructurada XD

mi primer programa en vb

enrealidad no es mi primer programa , pero es uno de los q tengo bueno recuerdos ya no existen links de descarga solo historia en google, y algunas fotografias & pues el link no existe por dos razones lo tenia alojado en 4shared y pues deje de acceder y me eliminaron la cuenta, y donde lo habia codeado ese compu se daño pero gracias a Dios mi papa nos regalo otro q si sirve jeje

este es el link de la imagen ampliada

Bueno esto es solo un poco de historia, para mostrar q siemrpe debemos avanzar en el camino