• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

pedrom20

Ajuda Programa Importante!!!

7 mensagens neste tópico

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!!!!! :cheesygrin:

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sugiro que comeces a fazer qualquer coisa e depois digas onde tens dúvidas....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Cola o código aqui no fórum, com o GESHI ligado (entre as tags [ code=pascal] [/code ] ).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A variável opc é do tipo char e no case tens inteiros :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora