Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: joseanh en 30 Junio 2013, 02:43 am



Título: AYUDA
Publicado por: joseanh en 30 Junio 2013, 02:43 am
Ayuda con este ejercicio, no corre porque el array de registro esta lleno, que hago?

program registro(input,output);
uses crt;
const numpersona=3;
type
   carasteristica=record
   cedula,edad,telefono: integer;
   apellido,nombre,sexo,nacionalidad: string;
end;

lista=Array[1..numpersona] of carasteristica;
var personas:lista; var cant:integer;

procedure insertar(var personas:lista; var cant:integer);

var ced,ed,tel,x:integer;
var ape,nom,nac:string;
var encontrado:integer;
begin
     encontrado:=0;
    writeln('ingrese cedula');
    readln(ced);
      if (cant=0) then
          encontrado:=0
      else
          for x:=1 to cant do
               begin
               if (ced=personas
.cedula) then
                  begin
                     encontrado:=1;

                  end;
                 end;
            
    if (encontrado=0) then
       begin
            cant:=cant+1;
           writeln('ingrese apellido');
           readln(ape);
           writeln('ingrese nombre');
           readln(nom);
           writeln('ingrese edad');
           readln(ed);
           writeln('ingrese nacionalidad');
           readln(nac);
           writeln('ingrese telefono');
           readln(tel);

            personas[cant].cedula:=ced;
            personas[cant].apellido:=ape;
            personas[cant].nombre:=nom;
            personas[cant].edad:=ed;
            personas[cant].nacionalidad:=nac;
            personas[cant].telefono:=tel;

       end
    else
        writeln(' Registro ya existe');
  end;

procedure mostrar(var personas:lista; var cant:integer);
 var x: integer;
 begin
  for x:=1 to cant do
  writeln(' cedula: ',personas
.cedula,' apellido: ',personas
.apellido,' nombre: ',personas
.nombre,' edad: ',personas
.edad,' nacionalidad: ',personas
.nacionalidad,' telefono: ',personas
.telefono);
readkey;
 end;
begin

end.

procedure ordenar(var personas:lista; var cant:integer);
var x,y,z:integer;
var aux:dat;
begin
   for x:=1 to cant do
     begin
     for y:=x+1 to cant do
       begin
       if personas
>cant[y] then
          for z:=1 to cant do
             begin
                aux
:=cant[z];
                cant[z]:=cant[y];
                cant[y]:=aux[z];
              end;
           end;
        end;
     end;

procedure modificar(var personas:lista; var cant:integer);
var x,valor,encon,posicion,nuevodat:integer;
var opcion:string;

begin
repeat
      clrscr;
      encon:=0;
      writeln('ingrese valor a modificar');
      readln(valor);
           for x:=1 to cant do
           begin
           if (valor= personas
.cedula)then
           begin
                encon:=1;
                posicion:=x;
           end;
          end;

    if encon=0 then
    writeln('dato no encontrado')
     else
       begin
         for x:=posicion to cant do
             personas
.cedula:=cant[nuevodat];
            end;

    writeln('ingrese nueva dato');
    readln(nuevodat);
    personas
.cedula:=cant[nuevodat];

    writeln('desea buscar otra opcion');
    readln(opcion);
    until (opcion='n') or (opcion='N');
end;

procedure buscar(var personas:lista; var cant:integer);
var valor:integer;
var x,encontrado:integer;
var opcion:string;
begin
repeat
clrscr;
encontrado:=0;
writeln('ingrese valor a buscar');
readln(valor);

    for x:=1 to cant do
begin
    if (valor= personas
.cedula) then
begin
    encontrado:=1;
       end;
     end;

if encontrado=0 then
writeln('no encontrado');
else
begin
writeln('valor encontrado',valor);
writeln('desea buscar otro?');
end;
readln(opc);
until (opc='n') or opc(='N');
end;

procedure eliminar(var personas:lista; var cant:integer);
var x,i,encontrado,posicion,cedula:integer;
var opci,valor:string;

begin
repeat
      clrscr;
      encontrado:=0;
      writeln('eliminar valor');
      readln(valor);

      for x:=1 to cant do
      if (valor= personas
.cedula) then
begin
      encontrado:=1;
      posicion:=x;
   end;
      if encontrado=0 then
         writeln('datos no encotrados')
      else
           for x:=posicion to cant do
begin
               personas
.cedula:=cant[x+1,1];
               personas
.cedula:=cant[x+1,2];
               personas
.cedula:=cant[x+1,3];
               personas
.cedula:=cant[x+1,4];
               personas
.cedula:=cant[x+1,5];
           end;

personas[x,1]:='';
personas[x,2]:='';
personas[x,3]:='';
personas[x,4]:='';
personas[x,5]:='';
writeln('Quiere borrar otra fila');
readln(opci);
until opci='n';
end;

var opcion:integer;
begin
repeat
clrscr;
       writeln('menu principal');
       writeln('1 insertar');
       writeln('2 mostrar');
       writeln('3 ordenar');
       writeln('4 modificar');
       writeln('5 buscar');
       writeln('6 eliminar');
       writeln('7 salir');
repeat
      readln (opcion);
until (opcion >0) and (opcion <8);
clrscr;
case (opcion) of
1:insertar(personas);
2:mostrar(personas);
3:ordenar(personas);
4:modificar(personas);
5:buscar(personas);
6:eliminar(personas);
end;
until opcion=7;
readkey;
end.


Título: Re: AYUDA
Publicado por: engel lex en 30 Junio 2013, 03:21 am
deja de repostear lo mismo -.-

duplicado
http://foro.elhacker.net/ejercicios/ayuda-t393782.0.html;msg1866100 (http://foro.elhacker.net/ejercicios/ayuda-t393782.0.html;msg1866100)

(en realidad triplicado con otro por ahí que hiciste)

va contra las reglas...

si no te responden es porque no hay alguien conectado que sepa hacerlo

consejos para postear...

1- di lo que tienes (codigo, ya lo publicaste)
2- di lo que necesitas (que se supone que hace eso)
3- di en donde tienes problema y por qué puntualmente (incluye textualmente errores lanzados, da detalles de que está haciendo y que deberia)

4- entre las herramientas de edicion del post hay una lista desplegable que dice GeSHi le das, escoges tu lenguaje y lo pegas entre las etiquetas que te coloca, esto es para que sea comodamente visible