Untitled

 avatar
unknown
pascal
3 years ago
3.1 kB
4
Indexable
program cap2ej4;
//empieza desde el 4 poruque siguen los numeros desde el 3 del cap 1
type
    lista=^nodo;

    nodo=record
        dato:integer;
        sig:lista;
    end;

procedure agregarAt (var l:lista; num:integer);
var
    ant,act,nue:lista;
begin
    new(nue);
    nue^.dato:=num;
    nue^.sig:=nil;

    if l=nil then
        l:=nue
    else
    begin
        act:=l;
        ant:=l;
        while (act<>nil) do
        begin
            ant:=act;
            act:=act^.sig;
        end;
        ant^.sig:=nue;
    end;
end;

procedure cargarDatos (var l:lista);
var
    num:integer;
begin
    writeln('Ingrese un numero');
    readln(num);
    while num<>-1 do
    begin
        agregarAt(l,num);
        writeln('Ingrese un numero');
        readln(num);
    end;
end;

procedure imprimirDatos (l:lista);
begin
    if l<>nil then
    begin
        writeln(l^.dato);
        imprimirDatos(l^.sig);
    end;
end;


procedure Minimo (l:lista;var min:integer);
begin
    if(l<>nil)then
    begin
        if (l^.dato < min) then
            min:=l^.dato;
        Minimo(l^.sig,min);
    end;
end;

function Min2(l:lista; var min:integer):integer;
begin
    if(l<>nil)then
    begin
        if(l^.dato<min)then
            min:=l^.dato;
        Min2(l^.sig,min);
        Min2:=min;
    end;
end;

function min3 (l:lista):integer;
begin
    if (l<>nil)then
    begin
        min3:=l^.dato;
        if (min3(l^.sig) < min3(l))then
            min3:=l^.dato;
        l:=l^.sig;
    end;
end;


function min4(l:lista):integer;
begin
   
end;




procedure encontr (l:lista; num:integer;var sino:boolean);
begin
    if(l<>nil)and(l^.dato = num) then
    begin
        sino:=true;
    end
    else if (l<>nil) then
        encontr(l^.sig,num,sino);
end;


function encontr3(l:lista; num:integer):boolean;
begin
    if (l<>nil)then
    begin
        if(l^.dato = num)then
            encontr3:=true
        else
        begin
            if (encontr3(l^.sig, num)) then
                encontr3:=true
            else
                encontr3:=false;
        end;
    end
    else
        encontr3:=false;
end;

//programa principal

var
    l:lista;
    min,num,max:integer;
    sino:boolean;
begin
    l:=nil;
    cargarDatos(l);
    imprimirDatos(l);
    min:=32000;
    Minimo(l,min);
    writeln('Minimo: ',min);
    min:=32000;
    writeln('minimo2: ',Min2(l,min));
    writeln('ingrese un numero para saber si esta ');
    readln(num);
    {if(encontrar(l,num)=true)then
        writeln('Se encontro el numero ',num)
    else
        writeln('No se encontro el numero ',num);}
   { sino:=false;
    encontr(l,num,sino);
    if(sino)then
        writeln('Se encontro el numero ',num)
    else
        writeln('No se encontro el numero ',num);

    sino:=false;
}
    if(encontr3(l,num))then
        writeln('Se encontro el numero ',num)
    else
        writeln('No se encontro el numero ',num);
end.
Editor is loading...