pedrom20 Posted June 6, 2008 at 05:42 PM Report Share #189820 Posted June 6, 2008 at 05:42 PM Olá pessoal eu sou novo aqui no fórum... e estou a abrir este tópico porque tenho um programa para fazer na escola mas não sei como fazelo!!!!! 😁 O Problema é o seguinte: Uma empresa tem n funcionários, e para cada um quer registar informações referentes ao nome, morada, telefone, salário e função. Faz um programa que armazene todos os funcionários num vector. Utilizando o programa anterior, faz um procedimento que mostre no ecrã todos os funcionários que moram em Odemira. Agradecia que algum me ajuda-se a resolver isto, sei que tem de ser feito com um record e um array. Link to comment Share on other sites More sharing options...
vitortomaz Posted June 6, 2008 at 07:00 PM Report Share #189832 Posted June 6, 2008 at 07:00 PM sugiro que comeces a fazer qualquer coisa e depois digas onde tens dúvidas.... http://vitortomaz.blogspot.com/ Link to comment Share on other sites More sharing options...
pedrom20 Posted June 7, 2008 at 12:00 AM Author Report Share #189901 Posted June 7, 2008 at 12:00 AM aqui está ja alguma coisa do programa... ainda só tive tempo de fazer isto http://rapidshare.com/files/120630574/ex1.pas.html Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted June 7, 2008 at 02:35 AM Report Share #189912 Posted June 7, 2008 at 02:35 AM Cola o código aqui no fórum, com o GESHI ligado (entre as tags [ code=pascal] [/code ] ). Link to comment Share on other sites More sharing options...
pedrom20 Posted June 7, 2008 at 08:47 AM Author Report Share #189920 Posted June 7, 2008 at 08:47 AM ok eu vou meter o codigo aqui com o geshi mas aviso já que é muito grande porque tem um procedimento enorme para o menu.... :bored: Program funcionarios_empresa; type funcionarios=record Nome:string; Morada:string; Telefone:integer; Salario:real; Funcao:string; end; var escolha:string; opc:char; i,n,cont:integer ; dados:array[0..100]of funcionarios; Procedure menu; Begin textcolor(lightcyan); gotoxy(2,1); write('__________________________________EMPRESA XPTO________________________________'); textcolor(yellow); gotoxy(2,2); for i := 1 to 78 do begin delay(1); write(#177); end; gotoxy(2,3); write(#177); gotoxy(2,4); write(#177); gotoxy(2,5); write(#177); gotoxy(2,6); write(#177); gotoxy(2,7); write(#177); gotoxy(2,8); write(#177); gotoxy(2,9); write(#177); gotoxy(2,10); write(#177); gotoxy(2,11); write(#177); gotoxy(2,12); write(#177); gotoxy(2,13); write(#177); gotoxy(2,14); write(#177); gotoxy(2,15); write(#177); gotoxy(2,16); write(#177); gotoxy(2,17); write(#177); gotoxy(2,18); write(#177); gotoxy(2,19); write(#177); gotoxy(2,20); write(#177); gotoxy(2,21); write(#177); gotoxy(2,22); write(#177); gotoxy(2,23); write(#177); gotoxy(79,3); write(#177); gotoxy(79,4); write(#177); gotoxy(79,5); write(#177); gotoxy(79,6); write(#177); gotoxy(79,7); write(#177); gotoxy(79,8); write(#177); gotoxy(79,9); write(#177); gotoxy(79,10); write(#177); gotoxy(79,11); write(#177); gotoxy(79,12); write(#177); gotoxy(79,13); write(#177); gotoxy(79,14); write(#177); gotoxy(79,15); write(#177); gotoxy(79,16); write(#177); gotoxy(79,17); write(#177); gotoxy(79,18); write(#177); gotoxy(79,19); write(#177); gotoxy(79,20); write(#177); gotoxy(79,21); write(#177); gotoxy(79,22); write(#177); gotoxy(79,23); write(#177); gotoxy(2,24); for i := 1 to 78 do begin delay(1); write(#177); end; gotoxy(3,20); for i := 1 to 76 do begin delay(1); write(#220); end; gotoxy(3,3);write(' MENU'); gotoxy(3,4); for i := 1 to 76 do begin delay(1); write(#220); end; gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.'); gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.'); gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.'); gotoxy(4,18);write('Escreva a letra "s" para sair do programa.'); gotoxy(4,22);write('Digite a opção: '); end; Procedure introduzir_dados; Begin writeln('Entrada de funcionário n: '); writeln; Begin Write('Introduza o nome do funcionário:'); read(dados[i].Nome); write('Introduza a morada do funcionário:'); read(dados[i].Morada); write('Introduza o telefone do funcionário:'); read(dados[i].Telefone); write('Introduza o salário do funcionário:'); read(dados[i].Salario); write('Introduza a funcão do funcioionário:'); read(dados[i].Funcao); writeln('Pretende introduzir outro funcionário?'); read (escolha); if ( escolha ='sim') then introduzir_dados else clrscr; menu; end; end; Procedure localizar; Begin End; Procedure final; Begin menu; case (opc) of 1:introduzir_dados; 2:localizar; else writeln('f') ; end; end; Begin final; End. EDIT: o programa está a dar um erro que não sei como resolver... no case do procedure final: diz que as constantes do case devem ter o mesmo tipo de expressão Link to comment Share on other sites More sharing options...
JoaoRodrigues Posted June 7, 2008 at 12:30 PM Report Share #189949 Posted June 7, 2008 at 12:30 PM A variável opc é do tipo char e no case tens inteiros 🙂 Link to comment Share on other sites More sharing options...
pedrom20 Posted June 8, 2008 at 11:40 AM Author Report Share #190062 Posted June 8, 2008 at 11:40 AM esta aqui o programa já completo, mas algumas coisas não tam a ttrabalhar, tipo quando introduzimos os funcionários eunao consigo meter o programa a mostrar o nº de entrada de funcionario e depois no localizar ou localiza mal ou não mostra Program funcionarios_empresa; type funcionarios=record Nome:string; Morada:string; Telefone:integer; Salario:real; Funcao:string; end; var a,escolha:string; opc,i,n,cont:integer ; dados:array[0..100]of funcionarios; Procedure tabela; Begin textcolor(lightcyan); gotoxy(2,1); write('__________________________________EMPRESA XPTO________________________________'); textcolor(yellow); gotoxy(2,2); for i := 1 to 78 do begin delay(1); write(#177); end; gotoxy(2,3); write(#177); gotoxy(2,4); write(#177); gotoxy(2,5); write(#177); gotoxy(2,6); write(#177); gotoxy(2,7); write(#177); gotoxy(2,8); write(#177); gotoxy(2,9); write(#177); gotoxy(2,10); write(#177); gotoxy(2,11); write(#177); gotoxy(2,12); write(#177); gotoxy(2,13); write(#177); gotoxy(2,14); write(#177); gotoxy(2,15); write(#177); gotoxy(2,16); write(#177); gotoxy(2,17); write(#177); gotoxy(2,18); write(#177); gotoxy(2,19); write(#177); gotoxy(2,20); write(#177); gotoxy(2,21); write(#177); gotoxy(2,22); write(#177); gotoxy(2,23); write(#177); gotoxy(79,3); write(#177); gotoxy(79,4); write(#177); gotoxy(79,5); write(#177); gotoxy(79,6); write(#177); gotoxy(79,7); write(#177); gotoxy(79,8); write(#177); gotoxy(79,9); write(#177); gotoxy(79,10); write(#177); gotoxy(79,11); write(#177); gotoxy(79,12); write(#177); gotoxy(79,13); write(#177); gotoxy(79,14); write(#177); gotoxy(79,15); write(#177); gotoxy(79,16); write(#177); gotoxy(79,17); write(#177); gotoxy(79,18); write(#177); gotoxy(79,19); write(#177); gotoxy(79,20); write(#177); gotoxy(79,21); write(#177); gotoxy(79,22); write(#177); gotoxy(79,23); write(#177); gotoxy(2,24); for i := 1 to 78 do begin delay(1); write(#177); end; gotoxy(3,20); for i := 1 to 76 do begin delay(1); write(#220); end; end; Procedure menu; Begin gotoxy(3,3);write(' MENU'); gotoxy(3,4); for i := 1 to 76 do begin delay(1); write(#220); end; gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.'); gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.'); gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.'); gotoxy(4,18);write('Escreva o número "666" para sair do programa.'); gotoxy(4,22);write('Digite a opção: '); end; Procedure localizar; Begin clrscr; tabela; gotoxy(4,22);write('Introduza uma localidade: '); read(a); for i:=1 to n do if a = dados[i].Morada then tabela; gotoxy(4,5);write('Os funcionários dessa localidade são:'); textcolor(lightblue); gotoxy(4,6);write('-------------------------------------'); textcolor(yellow); gotoxy(5,7);writeln(dados[i].nome); End; Procedure introduzir_dados; Begin clrscr; tabela; gotoxy(4,4);writeln('Entrada de funcionário n: '); writeln; Begin textcolor(lightblue); gotoxy(4,5);write('-------------------------------'); textcolor(yellow); gotoxy(4,22);Write('Introduza o nome do funcionário:'); read(dados[i].Nome); gotoxy(4,6);Write('Nome: ',dados[i].nome); gotoxy(4,22);write(' '); gotoxy(4,22);write('Introduza a morada do funcionário:'); read(dados[i].Morada); gotoxy(4,7);Write('Morada: ',dados[i].morada); gotoxy(4,22);write(' '); gotoxy(4,22);write('Introduza o telefone do funcionário:'); read(dados[i].Telefone); gotoxy(4,8);Write('Telefone: ',dados[i].telefone); gotoxy(4,22);write(' '); gotoxy(4,22);write('Introduza o salário do funcionário:'); read(dados[i].Salario); gotoxy(4,9);Write('Salário: ',dados[i].salario); gotoxy(4,22);write(' '); gotoxy(4,22);write('Introduza a funcão do funcioionário:'); read(dados[i].Funcao); gotoxy(4,10);Write('Função : ',dados[i].funcao); gotoxy(4,22);write(' '); gotoxy(4,22);writeln('Pretende introduzir outro funcionário?'); gotoxy(42,22);read (escolha); if ( escolha ='sim') then introduzir_dados else clrscr; tabela; menu; read(opc); case (opc) of 1:introduzir_dados; 2:localizar; end; end; end; Procedure menu3; Begin gotoxy(3,3);write(' MENU'); gotoxy(3,4); for i := 1 to 76 do begin delay(1); write(#220); end; gotoxy(4,6);write('Escola uma da opções seguintes, introduzindo o número correspondente.'); gotoxy(4,8);write('1 - Introduzir dados sobre funcionários.'); gotoxy(4,9);write('2 - Pesquisar funcionários por localidade.'); gotoxy(4,18);write('Escreva o número "666" para sair do programa.'); gotoxy(4,22);write('Digite a opção: '); read(opc); case (opc) of 1:introduzir_dados; 2:localizar; end; end; Procedure final; Begin tabela; menu; read(opc); case (opc) of 1:introduzir_dados; 2:localizar; end; end; Begin final; End. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now