RSS
Facebook
G+

Buscador de IntercambioSOS:


Retroceder   Foro de Ayuda IntercambiosvirtualeS > Soporte Sobre: Educación & Entretenimiento > Zona Académica > Programación
Comunidad

Respuesta
 
Herramientas Desplegado
Antiguo 11-feb-2011     #1
Post Problema en Pascal

Ante todo un saludo, soy estudiante de primer semestre de informática y hasta ahora el lenguaje que estamos usando es PASCAL (si, un lenguaje obsoleto pero según nuestro profesor es muy didáctico y genera una buena lógica), bueno... el punto es que me he metido en esta carrera porque realmente me gusta el mundo de la programación, de hecho con el poco conocimiento de Pascal me he propuesto un ejercicio, irónicamente quede envuelto en mi propia red... xD... el diseño del programa lo llevo a medias, acá les dejo el propuesto y la forma en que lo programé.

Se necesita hacer un registro de alumnos, por cada alumno se tiene cedula, nombre completo, messenger, numero de telefono y numero de cedula. Hay vacantes para 30 alumnos más no se sabe cuantos se inscribirán, luego de haber culminado la inscripción se da la opción de abrir un buscador de datos en el programa que al escribir una cédula despliegue toda la información del alumno inscrito.

así lo programé:

Spoiler:
Program seccion;
const
q = 30;
type
alumno= record
cedula: string[20];
nombre_completo: string [40];
messenger: string [40];
numero_telefono: string [25];
numero_celular: string [25];
end;
var
alumnos: array [1..q] of alumno;
contador_general, i, pos, count: integer;
respuesta: char;
cedula: string [20];
found: boolean;


BEGIN
contador_general:= 0;
write('Este programa facilitar* la b£squeda de informaci¢n en un estudiante');
writeln;
write('1er paso: Escriba su C‚dula:');
readln(alumnos[i].cedula);

WHILE (alumnos[i].cedula <> ' ') or (contador_general <= q) DO
begin
write('2do paso: Escriba su Nombre Completo:');
readln(alumnos[i].nombre_completo);
write('3er paso: Escriba su messenger:');
readln(alumnos[i].messenger);
write('4to paso: Escriba su numero de telefono (local):');
readln(alumnos[i].numero_telefono);
write('5to paso: Escriba su numero de telefono (celular):');
readln(alumnos[i].numero_celular);
write('1er paso: Escriba su Cedula:');
readln(alumnos[i].cedula);
inc (contador_general);
end;

writeln('Se han registrado los datos de ' ,contador_general, ' alumnos.');
write('¨Desea proceder a la b£squeda de datos?: SI(Y)/NO(N):');
readln(respuesta);
WHILE respuesta = 'Y' DO
begin
write('Introduzca Cedula de la persona a buscar:');
readln(cedula);
found:= false;
count:= 1;

if cedula = alumnos[count].cedula then
begin
found:= true;
pos:= count;
end
else
begin
inc(count);
end;


if count > q then
begin
write('Cedula no encontrada');
end;


if found = TRUE then
begin
write ('Los datos del alumno son los siguientes:');
writeln('Nombre Completo:', alumnos[pos].nombre_completo);
writeln('Messenger:', alumnos[pos].messenger);
writeln('Numero de telefono local', alumnos[pos].numero_telefono);
writeln('Numero de Celular:', alumnos[pos].numero_celular);

end;
writeln('Datos encontrados. ¨Desea continuar?:');
readln(respuesta);
end;


readln;
END.


espero que puedan ayudarme ^^,
Saludos y gracias de antemano
Responder Citando
Los siguientes 2 usuarios agradecen a Joe Rod por este mensaje:
baduser (11-feb-2011), jchierro (12-feb-2011)
Antiguo 12-feb-2011     #2
Predeterminado Creo que esta es la Solución!!!

Hola compañero Programador está muy bien lo que hiciste ya que muchos no intentan hacer nada Te felicito por hacer algo... ok bien

Te explico un poco... en el while donde comienzas a cargar el arreglo alumnos del tipo de dato definido por ti, es decir, alumno en esa parte la variable i no esta inicializada como los arreglos en Pascal comienzan por 1 te falto colocar
i:=1;
luego preguntas dentro del while que hace la busqueda secuencial de la cedula esto:

if cedula = alumnos[count].cedula then
begin
found:= true;
pos:= count;
end
else
begin
inc(count);
end;

eso esta bien, pero luego preguntas mas abajo si found = TRUE (alli estas redundando ya que cuando tu preguntas if cedula = alumnos[count].cedula then "alli debes incluir lo que hay en el if found = TRUE y asi te ahorras codigo")

Tambien inclui un while

while (found = false) AND (count <= q)

para que realizara la busqueda mientras que found = false (No se ha encontrado) Y count es menor igual a los cupos (Para saber si a llegado al final del arreglo)

Si eso se cumple que busque y que cuando lo encuentre le asigne a la variable found := TRUE para que se salga del while de busqueda pero alli muestra los datos del alumno encontrado y pregunta si quiere seguir...

Código PHP:
Program seccion;
uses crt;
const
2;
type
    alumno
record
    cedula
string[20];
    
nombre_completostring [40];
    
messengerstring [40];
    
numero_telefonostring [25];
    
numero_celularstring [25];
end;

var
   
alumnos: array [1..qof alumno;
   
contador_generaliposcountinteger;
   
respuestachar;
   
cedulastring [20];
   
foundboolean;


BEGIN
     contador_general
:= 0;
     
i:=1;
     
write('Este programa facilitar* la b£squeda de informaci¢n en un estudiante');
     
writeln;

     WHILE (
contador_general q) DO
           
begin
                clrscr
;
                
write('1er paso: Escriba su cedula: ');
                
readln(alumnos[i].cedula);
                
write('2do paso: Escriba su Nombre Completo:');
                
readln(alumnos[i].nombre_completo);
                
write('3er paso: Escriba su messenger:');
                
readln(alumnos[i].messenger);
                
write('4to paso: Escriba su numero de telefono (local):');
                
readln(alumnos[i].numero_telefono);
                
write('5to paso: Escriba su numero de telefono (celular):');
                
readln(alumnos[i].numero_celular);
               
inc (i);
               
inc(contador_general);
           
end;

           
writeln('Se han registrado los datos de ' ,contador_general' alumnos.');
           
write('¨Desea proceder a la b£squeda de datos?: SI(Y)/NO(N):');
           
readln(respuesta);
           WHILE 
respuesta 'Y' DO {while para repetir la entrada de la cedula a buscar}
                 
begin
                      clrscr
;
                      
write('Introduzca Cedula de la persona a buscar:');
                      
readln(cedula);
                      
found:= false;
                      
count:= 1;
                      while (
found false) AND (count <= q) do {while de busqueda}
                            
begin
                                 
if cedula alumnos[count].cedula then
                                    begin
                                         found 
:= true;
                                         
write ('Los datos del alumno son los siguientes:');
                                         
writeln('Nombre Completo:'alumnos[count].nombre_completo);
                                         
writeln('Messenger:'alumnos[count].messenger);
                                         
writeln('Numero de telefono local'alumnos[count].numero_telefono);
                                         
writeln('Numero de Celular:'alumnos[count].numero_celular);
                                         
writeln('Datos encontrados. Desea continuar Buscando? (Y) o (N)');
                                         
readln(respuesta);
                                    
end
                                 
else
                                     
begin
                                          inc
(count);
                                     
end;
                            
end;

                      if 
count q then
                            begin
                                 write
('Cedula no encontrada. Desea continuar Buscando? (Y) o (N) ');
                                 
readln(respuesta);
                            
end;
                 
end;

readln;
END
Una cosa los cupos los puse en 2, ya que esto es una buena forma de programar ya que si funciona para 2 funciona para mas de dos y asi se tarda uno menos a la hora de cargar los datos....
Compañero si tienes una duda no dudes en postearla ahora estoy apurado y por eso no te explico mejor te recomiendo que lo corras lo analices y si tienes dudas o encuentras algun error o una recomendacion por favor ponla chao que Viva Venezuela!!! Nuestro Pais...

Última edición por RagdE; 12-feb-2011 a las 14:47 Razón: Complementar la respuesta
Responder Citando
Usuarios que han agradecido este mensaje de RagdE
Joe Rod (12-feb-2011)
Antiguo 12-feb-2011     #3
Predeterminado

gracias por la ayuda hermano, por casualidad conoce alguna web donde planteen expliquen a fondo todo lo que tenga que ver con PASCAL y planteen ejercicios?, una vez más, gracias por la ayuda... y si... que VIVA VENEZUELA!
Responder Citando
Antiguo 12-feb-2011     #4
Predeterminado

Yo te recomiendo que entres en esta pagina, es muy buena, tambien te puedo recomendar esta otra Pascal, y otra más. CodigoK

Vive la vida y se Felíz...

Responder Citando
Usuarios que han agradecido este mensaje de frankte
Joe Rod (12-feb-2011)
Antiguo 12-feb-2011     #5
Predeterminado

Bueno en esta web hay Información, lo que pasa es que tengo mucho tiempo sin programar en pascal, pero aun me acuerdo gg, ahora estoy programando en Java, tambien programo en C/C++ cuando necesites ayuda en cualquiera de esos Lenguajes Puedes solicitar ayuda aqui en el foro que si está a mi alcance te ayudaré Salu2...
Responder Citando
Usuarios que han agradecido este mensaje de RagdE
Joe Rod (12-feb-2011)
Antiguo 12-feb-2011     #6
Predeterminado

bueno muchisimas gracias compañeros, cuando domine al 100% pascal pasaré a lenguaje C
Responder Citando
Respuesta


(0 miembros y 1 visitantes)
 

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado

Ir al Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Solucionar el problema de falta NTLDR siflo23 XP/2000/2003/NT 7 15-nov-2011 16:13
Problema al reinstalar Windows 7 cramercaba Windows Vista & 7 10 16-dic-2010 09:23
Problema con control de ciber ace ventura Peticiones 7 13-dic-2010 23:34
Problema Wiindows 7 (Driver Sonido) Roxas Windows Vista & 7 13 09-nov-2010 01:58
[tutorial]Solucionar Problema de Blackscreen Windows 7 [SOLUCIONADO] Rplate Tutoriales & Videos Tutoriales 4 16-mar-2010 19:17


Desarrollado por: vBulletin® Versión 3.8.1
Derechos de Autor ©2000 - 2024, Jelsoft Enterprises Ltd.
Ad Management by RedTyger