*_*

terça-feira, 13 de dezembro de 2011

Desafio Vetores (Array,Procedure,Function)


Uma agenda Telefônica
Com as seguintes ações:

  1. Inserir, Remover, Buscar e Mostrar.
  2. Pode ser até 50 contatos.
Variáveis:
nome,sobrenome,idade,telefone.

Inserir - insere um cadastro no vetor(de maneira sequencial)
Remover - ao remover deve-se organizar a lista, para não ficar espaços em branco dentro do vetor.
Ex.:
Vetor 5 Elementos
    1          2          3         4       5
Marcus   Zeca   Rogério  Mia  Noal
Remover o Elemento 3

   1          2        3        4
Marcus   Zeca   Mia  Noal
Buscar - a buca pode ser por nome ou por telefone.
Mostrar - mostrar todos os elementos cadastrados.

Program none;
uses crt;
const max=5;
Type 
    vetor_str=array[1..max] of string;
    vetor_int=array[1..max] of integer;
    
var
nome,sobrenome:vetor_str;
idade:vetor_int;
phone:vetor_str;
cont,opcao:integer;

    function menu(n:integer):integer;
    var op :integer;
    Begin
        clrscr;
        Writeln('M E N U');
        Writeln;
        Writeln('1 Cadastro');
        Writeln('2 Remover');
        Writeln('3 Buscar');
        Writeln('4 Mostrar');
        Writeln('0 Sair');
        Write('Opcao: ');
        readln(op);
        menu:=op;        
        clrscr;
    End;
    procedure cadastro(var nome,sobrenome,phone:vetor_str; var idade:vetor_int; var i:integer);
    Begin
        i:=i+1;
        Writeln('Codigo ',i);
        Write(' Informe nome     : ');
        readln(nome[i]);
        Write(' Informe Sobrenome: ');
        readln(sobrenome[i]);
        Write(' Informe Telefone : ');
        readln(phone[i]);
        Write(' Informe Idade    : ');
        readln(idade[i]);        
        Write('C A D A S T R A D O');        
        readln;
    End;
    
    procedure remover(var nome,sobrenome,phone:vetor_str; var idade:vetor_int; var i:integer);
    var cod,n:integer;
    Begin        
        Write(' Informe Codigo: ');
        readln(cod);
            if (cod<=0) or (cod>max) then
                Writeln('Impossivel Remover')
            else Begin
            for n:= cod to cont-1 do
                Begin
                    nome[n]:=nome[n+1];
                    sobrenome[n]:=sobrenome[n+1];
                    phone[n]:=phone[n+1];
                    idade[n]:=idade[n+1];                    
                End;
                i:=i-1;
            Writeln('Removido');
            readln;
        End;        
    End;
    
    procedure buscar;
    var 
    objeto:string;
    i:integer;
    Begin
        Writeln('B U S C A R');
        Write('Informe Telefone ou Nome: ');
        readln(objeto);
            for i := 1 to cont do
                Begin
                    if (objeto = nome[i]) or (objeto = phone[i]) then
                        Begin
                            Writeln('Codigo ',i);
                            Writeln(' Nome     : ',nome[i]);        
                            Writeln(' Sobrenome: ',sobrenome[i]);        
                            Writeln(' Telefone : ',phone[i]);            
                            Writeln(' Idade    : ',idade[i]);
                            Writeln;
                        End;                        
                End;                    
            readln;
    End;
    
    procedure mostrar;
    var    i:integer;
    Begin
        Writeln('M O S T R A R');                
        Writeln(cont);
            for i := 1 to cont do
                Begin                    
                    Writeln('Codigo ',i);
                    Writeln(' Nome     : ',nome[i]);        
                    Writeln(' Sobrenome: ',sobrenome[i]);        
                    Writeln(' Telefone : ',phone[i]);            
                    Writeln(' Idade    : ',idade[i]);                    
                    Writeln;
                End;                    
            readln;    
    End;
    
Begin        
        repeat
            opcao:=menu(opcao);
            if (opcao = 1) then
                cadastro(nome,sobrenome,phone,idade,cont)
            else if (opcao = 2) then
                remover(nome,sobrenome,phone,idade,cont)
            else if (opcao = 3) then                    
                buscar        
            else if (opcao = 4) then                    
                mostrar;
        until opcao=0;        
End.
 
 
 
 
 
 
 
 

Categories: ,

0 comentários:

Postar um comentário