PROGRAM Agenda; type ag = record nome:string; fone:array[1..3] of string[8]; ender:string; data_ani:array[1..2] of integer; end; var contatos:array[1..5] of ag; i,opc,quant,j,consult,mes:integer; nom:string; begin opc := 0; while (opc <> 6) do begin writeln('Menu Principal'); writeln('--------------'); writeln; writeln('1 - Inserir novo contato'); writeln('2 - Consultar contato'); writeln('3 - Excluir contato'); writeln('4 - Editar contato'); writeln('5 - Listar contatos'); writeln('6 - Sair do programa'); readln(opc); case opc of 1: begin writeln('Entre com a quantidade de contatos que deseja add'); readln(quant); for i:=1 to quant do begin writeln('Entre com nome'); writeln('--------------'); readln(contatos[i].nome); writeln; writeln('Entre com o endereço'); writeln('--------------------'); readln(contatos[i].ender); writeln; writeln('Entre com 3 fones para contato'); writeln('Na ordem: Casa/Celular/Outros'); writeln('------------------------------'); for j:=1 to 3 do readln(contatos[i].fone[j]); end; writeln; writeln('Entre com a data e o mês do contato'); for i:=1 to quant do begin writeln('Contato: ',contatos[i].nome); for j:=1 to 2 do readln(contatos[i].data_ani[j]); end; end; 2: begin writeln; writeln('Submenu para opção 2'); writeln('--------------------'); writeln('1 - Consultar pelo nome'); writeln('2 - Consultar pelo mês'); readln(opc); case opc of 1: begin writeln('Entre com o nome do contato que deseja consultar'); readln(nom); writeln; for i:=1 to 5 do begin if (nom = contatos[i].nome) then consult := i; end; if contatos[consult].nome <> ' ' then begin writeln('Nome do contato'); writeln('---------------'); writeln(contatos[consult].nome); writeln; writeln('Endereço do contato'); writeln('--------------------'); writeln(contatos[consult].ender); writeln; writeln('Anivers rio do contato'); writeln('----------------------'); writeln(contatos[consult].data_ani[1],'/',contatos[consult].data_ani[2]); writeln; writeln('Fones do contato contato'); writeln('------------------------------'); for j:=1 to 3 do begin writeln(contatos[consult].fone[j]); writeln; end; readln; end else writeln('Não existe usuário com este nome cadastrado na lista'); end; 2: begin writeln('Entre com o mês'); readln(mes); writeln; for i:=1 to 5 do begin if (mes = contatos[i].data_ani[2]) then begin writeln('Contato'); writeln('----------------------'); writeln('Nome: ',contatos[i].nome); writeln('Aniversário: ',contatos[i].data_ani[1],'/',contatos[i].data_ani[2]); writeln; end; end; end; end; end; 3: begin writeln('Entre com o nome do contato que deseja deletar'); readln(nom); for i:=1 to 5 do begin if (nom = contatos[i].nome) then consult := i; end; for j:=1 to 3 do contatos[consult].fone[j] := ' '; for i:=1 to 2 do contatos[consult].data_ani[i] := 0; contatos[consult].nome := ' '; contatos[consult].ender := ' '; end; 4: begin writeln('Entre com o nome do contato que deseja editar'); readln(nom); for i:=1 to 5 do begin if (nom = contatos[i].nome) then consult := i; end; writeln('O que deseja modificar no contanto?'); writeln('-----------------------------------'); writeln('1 - Nome'); writeln('2 - Telefones'); writeln('3 - Endereço'); writeln('4 - Aniversário'); readln(opc); case opc of 1: begin writeln('Entre com um novo nome para o usuário'); readln(nom); contatos[consult].nome := nom; end; 2: begin writeln('Quais dos telefones deseja modificar?'); writeln('1 - Casa'); writeln('2 - Celular'); writeln('3 - Outros'); readln(opc); case opc of 1:begin writeln('Entre com o novo número'); readln(contatos[consult].fone[1]); end; 2: begin writeln('Entre com o novo número'); readln(contatos[consult].fone[2]); end; 3: begin writeln('Entre com o novo número'); readln(contatos[consult].fone[3]); end; else writeln('Opção inválida'); end; end; 3: begin end; end; end; 5: begin end; 6: begin writeln('Finalizando programa'); end; else writeln('Opção inválida'); end; end; end.