Pular para o conteúdo principal

Questão 4 da prova

Program Pzim ;
{FAÇA UM ALGORITMO PARA O USUARIO FORNECER O CÓDIGO, O SEXO (M OU F) E O NUMERO DE HORAS/AULA
DADAS NO MES PELO PROFESSOR DE UMA ESCOLA, SABENDO QUE O PROFESSOR GANHA R$ 12,50 HORA/AULA
E QUE A ESCOLA POSSUI 10 PROFESSORES MOSTRE
A) UMA LISTAGEM CONTENDO O CODIGO, O SLARI BRUTO E O SALARIO LIQUIDO DE TODOS OS PROFESSORES
B) A MEDIA ARITMETICA DOS SALARIOS BRUTO DOS PROFESSORES DO SEXO FEMININO}

type
    r_professor=record
        cod:integer;
        sexo:char;
        haula:integer;
    end;
var
v_professor:array[1..4] of r_professor;
h_aula, pf, i:integer;
salbruto,salliq,desc, salf, somasf, mediasf:real;

{se houver variaveis para inicia, isso deve ser feito no inicio do programa}
 Begin
          pf:=0;
         salf:=0;
         somasf:=0;
         mediasf:=0;
     for i:=1 to 4 do
         begin
             writeln('Digite o cógido : ');
             readln(v_professor[i].cod);
             writeln('Digite o sexo : ');
             readln(v_professor[i].sexo);
             writeln('Digite a quantidade de hora-aulas : ');
             readln(v_professor[i].haula);
         end;
     {acima é feita a entrada dos dados no registro}   
    
     {a partir daqui é feito a parte A do problema, com as condições dada na tabela}
     {foi criadas variveis para receber o salario bruto, o desconto e o salario liquido}
     for i:=1 to 4 do
         begin
             {se até 70 horas e do sexo masculino}
             if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'M')) then
                 begin
                     salbruto:=(v_professor[i].haula*12.5);
                     desc:=(salbruto*0.1);
                     salliq:=(salbruto-desc);
                 end
             else
             {se até 70 horas e do sexo feminino}
             if ((v_professor[i].haula<=70) and (v_professor[i].sexo= 'F')) then
                 begin
                     salbruto:=(v_professor[i].haula*12.5);
                     desc:=(salbruto*0.07);
                     salliq:=(salbruto-desc);
                 end
             else
             {mais que 70 horas e do sexo masculino}
            if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'M')) then
                 begin
                     salbruto:=(v_professor[i].haula*12.5);
                     desc:=(salbruto*0.08);
                     salliq:=(salbruto-desc);
                 end
             else
             {mais que 70 horas e do sexo feminino}
             if ((v_professor[i].haula>70) and (v_professor[i].sexo= 'F')) then
                 begin
                     salbruto:=(v_professor[i].haula*12.5);
                     desc:=(salbruto*0.05);
                     salliq:=(salbruto-desc);
                 end;            
                
             {aqui mostramos a relação, note que usamos tanto dados no registro como das variaveis criadas}   
            writeln('Cód: ',v_professor[i].cod,' - Sal. bruto : ',salbruto:1:2,' - Desc : ',desc:1:2,' - Sal. Liq. : ',salliq:1:2);
         end;

         {a partir daqui é feito a parte B do problema}
     for i:=1 to 4 do
         begin
        
             if (v_professor[i].sexo = 'F') then         // se for do sexo feminino
                 begin
                     pf:=pf+1;                           //conta a quant. de professores do sexo feminino
                     h_aula:=v_professor[i].haula;        //
                     salf:=h_aula*12.5;                //calcula o salario feminino
                     somasf:=somasf+salf;             // soma o salario feminino
                 end;
             mediasf:=(somasf/pf);                    // calcula a media
         end;
         {exibe o resultado}
         writeln('A media dos salarios dos prof. de sexo feminino é : ',mediasf:1:2);
 End.

Postagens mais visitadas deste blog

3 notas com media ponderada

Program Pzim ; {4- Escreva um programa que leia o código de um aluno e suas três notas. Calcule a média ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas restantes, 3. Mostre o código do aluno, suas três notas, a média calculada e uma mensagem "APROVADO" se a média for maior ou igual a 5 e "REPROVADO" se a média for menor que 5. } var cod:integer; n1, n2, n3, nm1, nm2, nm3, media:real; Begin media:=0; writeln('Digite o código do aluno : '); read(cod); write('digite a 1o. nota : '); read(n1); write('digite a 2o. nota : '); read(n2); write('digite a 3o. nota : '); read(n3); {aproveitando a mesma estrutura para ordenar a maior nota, as outras duas não tem importançia na ordem, pois tem o mesmo peso} if ((n1 > n2) and (n1 > n3)) then begin nm1:=n1; nm2:=n2; nm3:=n3; end else if ((n2 > n1) and (n2 > n3)) then begin nm1:=n2; nm2:=n1; nm3:=n3; end else if ((n3 ...

Vetor ordem crescente

Program Pzim ; {recebe 10 numeros inteiros e ordena de forma crescente} var vet:array[1..10] of integer; aux,i,j:integer;  Begin  aux:=0;   for i:=1 to 10 do   begin   writeln('Preencha o vetor de 10 posições : ');   read(vet[i]);   end;       for i := 10 downto 2 do              {faz o for com i de 10 até 2, decrementando, isto é 10, 9, 8, ...}   begin   for j := 1 to i-1 do         {faz o for com j de 1 até a posição atual do i menos 1}   begin   if vet[j] > vet[j+1] then {se vet, na posição j, for maior que vet na posição j+1, faça}   begin   aux := vet[j]; {a var aux, recebe o valor de vet na posição j}   vet[j] := vet[j+1]; {vet na posição j, recebe o valor de vet na posição seguinte, que seria j + 1}   vet[j+1] := aux; {e vet na posição j mais 1, recebe o v...

Exercicio 4 de Heterogenea

Program Pzim ; {Faça um algoritmo que leia 7 produtos, contendo codigo, nome, quantidade, preço. No final, imprima os produtos que tenha mais do que 5 unidades.} type r_produto = record     cod:integer;     nome:string;     quant:integer;     preco:real; end; var     v_produto:array [1..3] of r_produto;     i, qmais5:integer;  Begin  qmais5:=0;     for i:=1 to 3 do         begin             writeln('ENTRE COM OS DADOS DOS PRODUUTOS');             writeln('_______________________________');             writeln(' ',I,'o. Produto ');             writeln('_______________________________');             writ...