Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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