Foros del Web » Programación para mayores de 30 ;) » Programación General »

Buenas.Duda Pascal

Estas en el tema de Buenas.Duda Pascal en el foro de Programación General en Foros del Web. Tengo una duda sobre como enlazar datos de una lista local con una multilista en pascal para que muestre los datos de la lista local ...
  #1 (permalink)  
Antiguo 29/04/2013, 08:57
 
Fecha de Ingreso: abril-2013
Ubicación: A Coruña
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Buenas.Duda Pascal

Tengo una duda sobre como enlazar datos de una lista local con una multilista en pascal para que muestre los datos de la lista local usando la multillista
  #2 (permalink)  
Antiguo 29/04/2013, 09:12
 
Fecha de Ingreso: abril-2013
Ubicación: A Coruña
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Buenas.Duda Pascal

(*TITULO: Practicas de PROGRAMACION II
SUBTITULO: Practica 1
AUTOR 1: KEVIN ALAN LOPEZ PEREZ LOGIN 1: k.lopez
AUTOR 2: ROI SOENGAS GONZALEZ LOGIN 2: roi.soengas
GRUPO: 5.2.2
FECHA: 05/03/2013 *)

PROGRAM PruebaMultilista(input,output);

USES Multilista,crt;

VAR

Lista:tMultilista;
Dato:tDatoM;
Dato1:tDatoM;
Dato2:tDatoM;
Dato3:tDatoM;
Dato4:tDatoM;
Dato5:tDatoM;
PrimerDato:tDatoM;
UltimoDato:tDatoM;
ejemplo:tDatoM;
ejemplo2,ejemplo3:tDatoM;

procedure Listado(Lista:tMultilista);

VAR
p:tPosM;
dato,datos:tDatoM;
begin

p:=PrimeraM(Lista);
if esMultilistaVaciaM(Lista) then

writeln('No hay Colegios dados de alta ')

else begin

while (p<>NULOM) do begin

dato := ObtenerDatoM(p,Lista);
TEXTCOLOR(11);
writeln(' Colegio ',dato.NombreColegio,' Número de Votantes ',dato.numVotantes);
writeln;
TEXTCOLOR(14);
writeln('Partido ' ,dato.recuentoVotos^.Dato.nombrePartido,' Numero de votos ',dato.recuentoVotos^.Dato.numVotos);
writeln;
p:=SiguienteM(p,Lista);

end;
end;
end;



BEGIN
CLRSCR;
CLRSCR; // Borra la pantalla
TEXTCOLOR(8); //Pone el texto en cian

writeln(' ********************************************** ');
writeln(' *************PROGRAMA DE PRUEBA*************** ');
writeln(' ********************************************** ');
writeln;
TEXTCOLOR(RED);
writeln(' Creamos una lista vacía: ');
writeln;
MultilistaVaciaM(Lista);
write(' ¿ La lista está vacía ?',esMultilistaVaciaM(Lista));
writeln;
writeln(' Ahora introducimos 5 Colegios: ');
writeln;

(*Introduccion de datos en la MultilistaVacia.*)

// Introduccir los colegios

//COLEGIO Q
Dato1.nombreColegio:='Q';
Dato1.numVotantes:= 10;
Dato1.recuentoVotos^.Dato.nombrePartido:='P';
Dato1.recuentoVotos^.Dato.numVotos:= 10;
Dato1.recuentoVotos^.Dato.nombrePartido:='T';
Dato1.recuentoVotos^.Dato.numVotos:= 16;

//COLEGIO W
Dato2.nombreColegio:='W';
Dato2.numVotantes:= 20;
Dato2.recuentoVotos^.Dato.nombrePartido:='M';
Dato2.recuentoVotos^.Dato.numVotos:= 12;
Dato2.recuentoVotos^.Dato.nombrePartido:='P';
Dato2.recuentoVotos^.Dato.numVotos:= 10;

// COLEGIO L
Dato3.nombreColegio:='L';
Dato3.numVotantes:= 15;
Dato3.recuentoVotos^.Dato.nombrePartido:='E';
Dato3.recuentoVotos^.Dato.numVotos:= 12;
Dato3.recuentoVotos^.Dato.nombrePartido:='R';
Dato3.recuentoVotos^.Dato.numVotos:= 5;
Dato3.recuentoVotos^.Dato.nombrePartido:='X';
Dato3.recuentoVotos^.Dato.numVotos:= 25;

// COLEGIO S
Dato4.nombreColegio:='S';
Dato4.numVotantes:= 2;
Dato4.recuentoVotos^.Dato.nombrePartido:='P';
Dato4.recuentoVotos^.Dato.numVotos:= 10;
Dato4.recuentoVotos^.Dato.nombrePartido:='T';
Dato4.recuentoVotos^.Dato.numVotos:= 10;
Dato4.recuentoVotos^.Dato.nombrePartido:='E';
Dato4.recuentoVotos^.Dato.numVotos:= 12;

// COLEGIO C
Dato5.nombreColegio:='C';
Dato5.numVotantes:= 18;



//Comprobar si metimos Colegios y los partidos
TEXTCOLOR(11);
writeln('Ahora verificamos que se insertaron los colegios de forma correcta: ');
writeln;
writeln('Primer Colegio: ', InsertarDatoM(Dato1,Lista)); // COLEGIO
writeln;

writeln;
writeln('Segundo Colegio: ', InsertarDatoM(Dato2,Lista)); // COLEGIO
writeln;

writeln;

writeln;
writeln('Tercer Colegio: ', InsertarDatoM(Dato3,Lista)); // COLEGIO
writeln;

writeln;
writeln('Cuarto Colegio: ', InsertarDatoM(Dato4,Lista)); // COLEGIO
writeln;

writeln;
writeln('Quinto Colegio: ', InsertarDatoM(Dato5,Lista)); // COLEGIO
writeln;

writeln;

//Comprobar si la lista esta vacia
TEXTCOLOR(red);
writeln(' ¿ La lista esta vacía ? ');
writeln;

writeln(esMultilistaVaciaM(Lista));
writeln;
//Obtener Datos

writeln(' Obteniendo Dato de la primera posición . . . ');
PrimerDato:=ObtenerDatoM(PrimeraM(Lista),Lista);
writeln;
writeln(' Obteniendo Dato de la última posición . . . ');
UltimoDato:= ObtenerDatoM(UltimaM(Lista),Lista);
writeln;

TEXTCOLOR(11);
writeln(' Colegio en la primera posicion = ', PrimerDato.nombreColegio); // DEBERÍA MOSTRAR C MAL
writeln(' Numero de votantes del colegio = ' , PrimerDato.numVotantes);
writeln;
TEXTCOLOR(14);
writeln(' Partido en la primera Posicion = ',PrimerDato.recuentoVotos^.Dato.nombrePartido); // DEBERÍA ESTAR EN BLANCO
writeln;
writeln(' Numero de votos = ',PrimerDato.recuentoVotos^.Dato.numVotos);// DEBERÍA MOSTRAR 0
TEXTCOLOR(11);
writeln(' Colegio en la ultima posicion = ', UltimoDato.nombreColegio); // DEBERÍA MOSTRAR W
writeln(' Numero de votantes del colegio =' , UltimoDato.numVotantes);
writeln;
TEXTCOLOR(14);
writeln(' Partido en la primera Posicion = ',PrimerDato.recuentoVotos^.Dato.nombrePartido); // DEBERÍA MOSTRAR M
writeln;
writeln(' Numero de votos ',PrimerDato.recuentoVotos^.Dato.numVotos);
writeln;
writeln(' Ultimo partido = ' ,UltimoDato.recuentoVotos^.Dato.nombrePartido); // DEBERÍA MOSTRAR P
writeln;
writeln(' Numero de votos = ',UltimoDato.recuentoVotos^.Dato.numVotos);
writeln;
TEXTCOLOR(11);
write(' El Siguiente Colegio del colegio guardado en la primera posicion es: ');
ejemplo:=ObtenerDatoM(SiguienteM(PrimeraM(Lista),L ista),Lista);
writeln(ejemplo.nombreColegio); // DEBERÍA MOSTRAR L
write(' El numero de votantes es : ');
writeln(ejemplo.numVotantes);
writeln;
TEXTCOLOR(14);
writeln(' Partido en primer lugar = ',PrimerDato.recuentoVotos^.Dato.nombrePartido); // DEBERÍA MOSTRAR E
writeln;
TEXTCOLOR(11);
write(' El anterior Colegio del Dato guardado en la última posición es: ');
ejemplo2:=ObtenerDatoM(AnteriorM(UltimaM(Lista),Li sta),Lista);
writeln(ejemplo2.nombreColegio); // DEBERÍA MOSTRAR S BIEN
write(' El numero de votantes es : ');
writeln(ejemplo2.numVotantes);
writeln;
TEXTCOLOR(RED);
writeln(' Búsqueda de datos: ');
writeln;

//Buscar si existe el dato
TEXTCOLOR(11);
writeln(' Buscamos el Dato Q en la lista: ');
Dato:=ObtenerDatoM(BuscarDatoM('Q',Lista),lista);
writeln;
writeln(' El Dato Q está en la posición: ');
writeln;
writeln(Dato.nombreColegio); (*Muesta la posición donde está el dato 'T' almacenado.*)
writeln;
writeln(' Buscamos el Dato W en la lista: ');
Dato:=ObtenerDatoM(BuscarDatoM('W', Lista),lista);
writeln(' El Dato W está en la posición: ');
writeln(Dato.nombreColegio); (*Muestra la posición del dato 'W'.*)
writeln;
writeln(' Buscamos el Dato S en la lista: ');
Dato:=ObtenerDatoM(BuscarDatoM('S', Lista),lista);
writeln(' El Dato s está en la posición: ');
writeln(Dato.nombreColegio); (*Muestra la posición del dato 'R'.*)
writeln();

// Eliminar Dato
TEXTCOLOR(RED);
writeln(' Ahora eliminamos el Dato situado en la posición 2');
EliminarPosicionM(SiguienteM(PrimeraM(Lista),Lista ),Lista);
writeln;

(*En esta parte vamos a actualizar los datos. Vamos a cambiar el número de votos.*)

writeln(' Ahora Actualizamos los Datos modificando algunos de los votos: ');


ActualizarDatoM(Lista,PrimeraM(Lista),90);
ActualizarDatoM(Lista,UltimaM(Lista),70);
writeln();

Listado(Lista);
writeln;

TEXTCOLOR(14+blink); // Texto en amarillo y parpadea
writeln(' Gracias por usar nuestro Programa ');
TEXTCOLOR(11);
writeln;
TEXTCOLOR(GREEN);
write('Escrito por : ');
write('Roi Soengas Gonzalez');
TEXTCOLOR(cyan);
writeln;
writeln;

END.


Ese el el codigo que tengo para probar la multilista y el problema me viene en insertarDato como si tuviera un puntero que no finaliza nunca
  #3 (permalink)  
Antiguo 29/04/2013, 09:37
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Buenas.Duda Pascal

Cita:
Iniciado por Roi_Soengas_Gonzalez Ver Mensaje
(*TITULO: Practicas de PROGRAMACION II
SUBTITULO: Practica 1
AUTOR 1: KEVIN ALAN LOPEZ PEREZ LOGIN 1: k.lopez
AUTOR 2: ROI SOENGAS GONZALEZ LOGIN 2: roi.soengas
GRUPO: 5.2.2
FECHA: 05/03/2013 *)

Ese el el codigo que tengo para probar la multilista y el problema me viene en insertarDato como si tuviera un puntero que no finaliza nunca

Aparte de dejar claro que es un trabajo de clase, poca cosa más. Dices que el fallo viene con insertarDato, pero no está el código entonces poco se puede hacer.
__________________
Aviso: No se resuelven dudas por MP!
  #4 (permalink)  
Antiguo 29/04/2013, 10:47
 
Fecha de Ingreso: abril-2013
Ubicación: A Coruña
Mensajes: 3
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Buenas.Duda Pascal

La duda la tengo que me da un error en un aceso a un puntero y la pregunta que me hacia es como llamar desde la multulista a una función que esta en una lista Local

Etiquetas: pascal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:04.