Jump to content
marcomagrico

Problema em pascal

Recommended Posts

marcomagrico

Boas.

Eu tenho um problema pois tenho uma disciplina de programa no ensino

secundario, e deram me um trabalho de programaçao em que estou a ter

bastantes problemas para conseguir responder aos topicos que o trabalho

pede.

Desde ja mando o enunciado do trabalho...

Foi feita uma pesquisa entre 15 habitantes de uma região. Foram coletados

os dados de idade, sexo (M/F) e salário. Faça um programa que calcule e

mostre:

- a média de salários do grupo;

- a maior e a menor idade do grupo;

- a quantidade de mulheres com salário até 400€;

- a idade e o sexo da pessoa que possui o menor salário.

deixo também a seguir o programa que eu fiz mas que é demasiado comprido segundo o meu professor.. deixo este topico com o objectivo que alguem me possa ajudar a reduzir as linhas de codigo se possivel...

program trabalho_individual_5;
var
idade1, idade2, idade3, idade4, idade5, idade6, idade7, idade8, idade9, idade10, idade11, idade12, idade13, idade14, idade15 : integer;
salario1, salario2, salario3, salario4, salario5, salario6, salario7, salario8, salario9, salario10, salario11, salario12, salario13, salario14, salario15: real;
sexo1, sexo2, sexo3, sexo4, sexo5, sexo6, sexo7, sexo8, sexo9, sexo10, sexo11, sexo12, sexo13, sexo14, sexo15: char;
mediasalarios:real;
salariototal:integer;
begin
writeln('organize as quize pessoas numa lista, de forma a que introduza os dados sempre pela mesma ordem');
writeln('intrduzam todas as 15 idades (em anos)');
readln(idade1, idade2, idade3, idade4, idade5, idade6, idade7, idade8, idade9, idade10, idade11, idade12, idade13, idade14, idade15);
begin
if (idade1>=idade2)and(idade1>=idade3)and(idade1>=idade4)and(idade1>=idade5)and(idade1>=idade6)and(idade1>=idade7)and(idade1>=idade8)and(idade1>=idade9)and(idade1>=idade10)and(idade1>=idade11)and(idade1>=idade12)and(idade1>=idade13)and(idade1>=idade14)and
(idade1>=idade15) then
writeln('idade1,', idade1, 'anos, e a maior idade');
if (idade2>=idade1)and(idade2>=idade3)and(idade2>=idade4)and(idade2>=idade5)and(idade2>=idade6)and(idade2>=idade7)and(idade2>=idade8)and(idade2>=idade9)and(idade2>=idade10)and(idade2>=idade11)and(idade2>=idade12)and(idade2>=idade13)and(idade2>=idade14)and
(idade2>=idade15) then
writeln('idade2,', idade2, 'anos, e a maior idade');
if (idade3>=idade1)and(idade3>=idade2)and(idade3>=idade4)and(idade3>=idade5)and(idade3>=idade6)and(idade3>=idade7)and(idade3>=idade8)and(idade3>=idade9)and(idade3>=idade10)and(idade3>=idade11)and(idade3>=idade12)and(idade3>=idade13)and(idade3>=idade14)and
(idade3>=idade15) then
writeln('idade3,', idade3, 'anos, e a maior idade');
if (idade4>=idade1)and(idade4>=idade2)and(idade4>=idade3)and(idade4>=idade5)and(idade4>=idade6)and(idade4>=idade7)and(idade4>=idade8)and(idade4>=idade9)and(idade4>=idade10)and(idade4>=idade11)and(idade4>=idade12)and(idade4>=idade13)and(idade4>=idade14)and
(idade4>=idade15) then
writeln('idade4,', idade4, 'anos, e a maior idade');
if (idade5>=idade1)and(idade5>=idade2)and(idade5>=idade3)and(idade5>=idade4)and(idade5>=idade6)and(idade5>=idade7)and(idade5>=idade8)and(idade5>=idade9)and(idade5>=idade10)and(idade5>=idade11)and(idade5>=idade12)and(idade5>=idade13)and(idade5>=idade14)and
(idade5>=idade15) then
writeln('idade5,', idade5, 'anos, e a maior idade');
if (idade6>=idade1)and(idade6>=idade2)and(idade6>=idade3)and(idade6>=idade4)and(idade6>=idade5)and(idade6>=idade7)and(idade6>=idade8)and(idade6>=idade9)and(idade6>=idade10)and(idade6>=idade11)and(idade6>=idade12)and(idade6>=idade13)and(idade6>=idade14)and
(idade6>=idade15) then
writeln('idade6,', idade6, 'anos, e a maior idade');
if (idade7>=idade2)and(idade7>=idade3)and(idade7>=idade4)and(idade7>=idade5)and(idade7>=idade6)and(idade7>=idade1)and(idade7>=idade8)and(idade7>=idade9)and(idade7>=idade10)and(idade7>=idade11)and(idade7>=idade12)and(idade7>=idade13)and(idade7>=idade14)and
(idade7>=idade15) then
writeln('idade7,', idade7, 'anos, e a maior idade');
if (idade8>=idade2)and(idade8>=idade3)and(idade8>=idade4)and(idade8>=idade5)and(idade8>=idade6)and(idade8>=idade7)and(idade8>=idade1)and(idade8>=idade9)and(idade8>=idade10)and(idade8>=idade11)and(idade8>=idade12)and(idade8>=idade13)and(idade8>=idade14)and
(idade8>=idade15) then
writeln('idade8,', idade8, 'anos, e a maior idade');
if (idade9>=idade2)and(idade9>=idade3)and(idade9>=idade4)and(idade9>=idade5)and(idade9>=idade6)and(idade9>=idade7)and(idade9>=idade8)and(idade9>=idade1)and(idade9>=idade10)and(idade9>=idade11)and(idade9>=idade12)and(idade9>=idade13)and(idade9>=idade14)and
(idade9>idade15) then
writeln('idade9,', idade9, 'anos, e a maior idade');
if (idade10>=idade2)and(idade10>=idade3)and(idade10>=idade4)and(idade10>=idade5)and(idade10>=idade6)and(idade10>=idade7)and(idade10>=idade8)and(idade10>=idade9)and(idade10>=idade1)and(idade10>=idade11)and(idade10>=idade12)and(idade10>=idade13)and
(idade10>=idade14)and(idade10>=idade15) then
writeln('idade10,', idade10, 'anos, e a maior idade');
if (idade11>=idade2)and(idade11>=idade3)and(idade11>=idade4)and(idade11>=idade5)and(idade11>=idade6)and(idade11>=idade7)and(idade11>=idade8)and(idade11>=idade9)and(idade11>=idade10)and(idade11>=idade1)and(idade11>=idade12)and(idade11>=idade13)and
(idade11>=idade14)and(idade11>=idade15) then
writeln('idade11,', idade11, 'anos, e a maior idade');
if (idade12>=idade2)and(idade12>=idade3)and(idade12>=idade4)and(idade12>=idade5)and(idade12>=idade6)and(idade12>=idade7)and(idade12>=idade8)and(idade12>=idade9)and(idade12>=idade10)and(idade12>=idade11)and(idade12>=idade1)and(idade12>=idade13)and
(idade12>=idade14)and(idade12>=idade15) then
writeln('idade12,', idade12, 'anos, e a maior idade');
if (idade13>=idade2)and(idade13>=idade3)and(idade13>=idade4)and(idade13>=idade5)and(idade13>=idade6)and(idade13>=idade7)and(idade13>=idade8)and(idade13>=idade9)and(idade13>=idade10)and(idade13>=idade11)and(idade13>=idade12)and(idade13>=idade1)and
(idade13>=idade14)and(idade13>=idade15) then
writeln('idade13,', idade13, 'anos, e a maior idade');
if (idade14>=idade2)and(idade14>=idade3)and(idade14>=idade4)and(idade14>=idade5)and(idade14>=idade6)and(idade14>=idade7)and(idade14>=idade8)and(idade14>=idade9)and(idade14>=idade10)and(idade14>=idade11)and(idade14>=idade12)and(idade14>=idade13)and
(idade14>=idade1)and(idade14>=idade15) then
writeln('idade14,', idade14, 'anos, e a maior idade');
if (idade15>=idade2)and(idade15>=idade3)and(idade15>=idade4)and(idade15>=idade5)and(idade15>=idade6)and(idade15>=idade7)and(idade15>=idade8)and(idade15>=idade9)and(idade15>=idade10)and(idade15>=idade11)and(idade15>=idade12)and(idade15>=idade13)and
(idade15>=idade14)and(idade15>=idade1) then
writeln('idade15,', idade15, 'anos, e a maior idade');
end;
begin
if (idade1<=idade2)and(idade1<=idade3)and(idade1<=idade4)and(idade1<=idade5)and(idade1<=idade6)and(idade1<=idade7)and(idade1<=idade8)and(idade1<=idade9)and(idade1<=idade10)and(idade1<=idade11)and(idade1<=idade12)and(idade1<=idade13)and(idade1<=idade14)and
(idade1<=idade15) then
writeln('idade1,', idade1, 'anos, e a menor idade');
if (idade2<=idade1)and(idade2<=idade3)and(idade2<=idade4)and(idade2<=idade5)and(idade2<=idade6)and(idade2<=idade7)and(idade2<=idade8)and(idade2<=idade9)and(idade2<=idade10)and(idade2<=idade11)and(idade2<=idade12)and(idade2<=idade13)and(idade2<=idade14)and
(idade2<=idade15) then
writeln('idade2,', idade2, 'anos, e a menor idade');
if (idade3<=idade1)and(idade3<=idade2)and(idade3<=idade4)and(idade3<=idade5)and(idade3<=idade6)and(idade3<=idade7)and(idade3<=idade8)and(idade3<=idade9)and(idade3<=idade10)and(idade3<=idade11)and(idade3<=idade12)and(idade3<=idade13)and(idade3<=idade14)and
(idade3<=idade15) then
writeln('idade3,', idade3, 'anos, e a menor idade');
if (idade4<=idade1)and(idade4<=idade2)and(idade4<=idade3)and(idade4<=idade5)and(idade4<=idade6)and(idade4<=idade7)and(idade4<=idade8)and(idade4<=idade9)and(idade4<=idade10)and(idade4<=idade11)and(idade4<=idade12)and(idade4<=idade13)and(idade4<=idade14)and
(idade4<=idade15) then
writeln('idade4,', idade4, 'anos, e a menor idade');
if (idade5<=idade1)and(idade5<=idade2)and(idade5<=idade3)and(idade5<=idade4)and(idade5<=idade6)and(idade5<=idade7)and(idade5<=idade8)and(idade5<=idade9)and(idade5<=idade10)and(idade5<=idade11)and(idade5<=idade12)and(idade5<=idade13)and(idade5<=idade14)and
(idade5<=idade15) then
writeln('idade5,', idade5, 'anos, e a menor idade');
if (idade6<=idade1)and(idade6<=idade2)and(idade6<=idade3)and(idade6<=idade4)and(idade6<=idade5)and(idade6<=idade7)and(idade6<=idade8)and(idade6<=idade9)and(idade6<=idade10)and(idade6<=idade11)and(idade6<=idade12)and(idade6<=idade13)and(idade6<=idade14)and
(idade6<=idade15) then
writeln('idade6,', idade6, 'anos, e a menor idade');
if (idade7<=idade2)and(idade7<=idade3)and(idade7<=idade4)and(idade7<=idade5)and(idade7<=idade6)and(idade7<=idade1)and(idade7<=idade8)and(idade7<=idade9)and(idade7<=idade10)and(idade7<=idade11)and(idade7<=idade12)and(idade7<=idade13)and(idade7<=idade14)and
(idade7<=idade15) then
writeln('idade7,', idade7, 'anos, e a menor idade');
if (idade8<=idade2)and(idade8<=idade3)and(idade8<=idade4)and(idade8<=idade5)and(idade8<=idade6)and(idade8<=idade7)and(idade8<=idade1)and(idade8<=idade9)and(idade8<=idade10)and(idade8<=idade11)and(idade8<=idade12)and(idade8<=idade13)and(idade8<=idade14)and
(idade8<=idade15) then
writeln('idade8,', idade8, 'anos, e a menor idade');
if (idade9<=idade2)and(idade9<=idade3)and(idade9<=idade4)and(idade9<=idade5)and(idade9<=idade6)and(idade9<=idade7)and(idade9<=idade8)and(idade9<=idade1)and(idade9<=idade10)and(idade9<=idade11)and(idade9<=idade12)and(idade9<=idade13)and(idade9<=idade14)and
(idade9<=idade15) then
writeln('idade9,', idade9, 'anos, e a menor idade');
if (idade10<=idade2)and(idade10<=idade3)and(idade10<=idade4)and(idade10<=idade5)and(idade10<=idade6)and(idade10<=idade7)and(idade10<=idade8)and(idade10<=idade9)and(idade10<=idade1)and(idade10<=idade11)and(idade10<=idade12)and(idade10<=idade13)and
(idade10<=idade14)and(idade10<=idade15) then
writeln('dade10,', idade10, 'anos, e a menor idade');
if (idade11<=idade2)and(idade11<=idade3)and(idade11<=idade4)and(idade11<=idade5)and(idade11<=idade6)and(idade11<=idade7)and(idade11<=idade8)and(idade11<=idade9)and(idade11<=idade10)and(idade11<=idade1)and(idade11<=idade12)and(idade11<=idade13)and
(idade11<=idade14)and(idade11<=idade15) then
writeln('idade11,', idade11, 'anos, e a menor idade');
if (idade12<=idade2)and(idade12<=idade3)and(idade12<=idade4)and(idade12<=idade5)and(idade12<=idade6)and(idade12<=idade7)and(idade12<=idade8)and(idade12<=idade9)and(idade12<=idade10)and(idade12<=idade11)and(idade12<=idade1)and(idade12<=idade13)and
(idade12<=idade14)and(idade12<=idade15) then
writeln('idade12,', idade12, 'anos, e a menor idade');
if (idade13<=idade2)and(idade13<=idade3)and(idade13<=idade4)and(idade13<=idade5)and(idade13<=idade6)and(idade13<=idade7)and(idade13<=idade8)and(idade13<=idade9)and(idade13<=idade10)and(idade13<=idade11)and(idade13<=idade12)and(idade13<=idade1)and
(idade13<=idade14)and(idade13<=idade15) then
writeln('idade13,', idade13, 'anos, e a menor idade');
if (idade14<=idade2)and(idade14<=idade3)and(idade14<=idade4)and(idade14<=idade5)and(idade14<=idade6)and(idade14<=idade7)and(idade14<=idade8)and(idade14<=idade9)and(idade14<=idade10)and(idade14<=idade11)and(idade14<=idade12)and(idade14<=idade13)and
(idade14<=idade1)and(idade14<=idade15) then
writeln('idade14,', idade14, 'anos, e a menor idade');
if (idade15<=idade2)and(idade15<=idade3)and(idade15<=idade4)and(idade15<=idade5)and(idade15<=idade6)and(idade15<=idade7)and(idade15<=idade8)and(idade15<=idade9)and(idade15<=idade10)and(idade15<=idade11)and(idade15<=idade12)and(idade15<=idade13)and
(idade15<=idade14)and(idade15<=idade1) then
writeln('idade15,', idade15, 'anos, e a menor idade');
end;
begin
if (idade1=idade2)and(idade1=idade3)and(idade1=idade4)and(idade1=idade5)and(idade1=idade6)and(idade1=idade7)and(idade1=idade8)and(idade1=idade9)and(idade1=idade10)and(idade1=idade11)and(idade1=idade12)and(idade1=idade13)and(idade1=idade14)and
(idade1=idade15) then
writeln('as 15 idades sao todas iguais');
end;
begin
if (idade1<=0)or(idade2<=0)or(idade3<=0)or(idade4<=0)or(idade5<=0)or(idade6<=0)or(idade7<=0)or(idade8<=0)or(idade9<=0)or(idade10<=0)or(idade11<=0)or(idade12<=0)or(idade13<=0)or(idade14<=0)or(idade15<=0)then
writeln('ATENCAO, introduziu uma idade menor ou igual a zero')
end;
writeln('introduza os 15 sal rios em euros');
readln(salario1, salario2, salario3, salario4, salario5, salario6, salario7, salario8, salario9, salario10, salario11, salario12, salario13, salario14, salario15);
mediasalarios:=(salario1+salario2+salario3+salario4+salario5+salario6+salario7+salario8+salario9+salario10+salario11+salario12+salario13+salario14+salario15)/15;
writeln('a media dos salarios deste grupo e', mediasalarios:5:2, 'euros');
begin
if (salario1<=0)or(salario2<=0)or(salario3<=0)or(salario4<=0)or(salario5<=0)or(salario6<=0)or(salario7<=0)or(salario8<=0)or(salario9<=0)or(salario10<=0)or(salario11<=0)or(salario12<=0)or(salario13<=0)or(salario14<=0)or(salario15<=0)then
writeln('ATENCAO, introduziu um salario menor ou igual a zero')
end;
writeln('diga se as 15 pessoas sao do sexo masculino (m) ou do feminino (f)');
readln(sexo1);
if (sexo1='f')then
writeln('sexo feminino');
if (sexo1='m')then
writeln('sexo masculino');
readln(sexo2);
if (sexo2='f')then
writeln('sexo feminino');
if (sexo2='m')then
writeln('sexo masculino');
readln(sexo3);
if (sexo3='f')then
writeln('sexo feminino');
if (sexo3='m')then
writeln('sexo masculino');
readln(sexo4);
if (sexo4='f')then
writeln('sexo feminino');
if (sexo4='m')then
writeln('sexo masculino');
readln(sexo5);
if (sexo5='f')then
writeln('sexo feminino');
if (sexo5='m')then
writeln('sexo masculino');
readln(sexo6);
if (sexo6='f')then
writeln('sexo feminino');
if (sexo6='m')then
writeln('sexo masculino');
readln(sexo7);
if (sexo7='f')then
writeln('sexo feminino');
if (sexo7='m')then
writeln('sexo masculino');
readln(sexo8);
if (sexo8='f')then
writeln('sexo feminino');
if (sexo8='m')then
writeln('sexo masculino');
readln(sexo9);
if (sexo9='f')then
writeln('sexo feminino');
if (sexo9='m')then
writeln('sexo masculino');
readln(sexo10);
if (sexo10='f')then
writeln('sexo feminino');
if (sexo10='m')then
writeln('sexo masculino');
readln(sexo11);
if (sexo11='f')then
writeln('sexo feminino');
if (sexo11='m')then
writeln('sexo masculino');
readln(sexo12);
if (sexo12='f')then
writeln('sexo feminino');
if (sexo12='m')then
writeln('sexo masculino');
readln(sexo13);
if (sexo13='f')then
writeln('sexo feminino');
if (sexo13='m')then
writeln('sexo masculino');
readln(sexo14);
if (sexo14='f')then
writeln('sexo feminino');
if (sexo14='m')then
writeln('sexo masculino');
readln(sexo15);
if (sexo15='f')then
writeln('sexo feminino');
if (sexo15='m')then
writeln('sexo masculino');
salariototal:=0;
begin
if (salario1<=400) and (sexo1='f') then
salariototal:=salariototal+1;
end;
begin
if (salario2<=400) and (sexo2='f') then
salariototal:=salariototal+1;
end;
begin
if (salario3<=400) and (sexo3='f') then
salariototal:=salariototal+1;
end;
begin
if (salario4<=400) and (sexo4='f') then
salariototal:=salariototal+1;
end;
begin
if (salario5<=400) and (sexo5='f') then
salariototal:=salariototal+1;
end;
begin
if (salario6<=400) and (sexo6='f') then
salariototal:=salariototal+1;
end;
begin
if (salario7<=400) and (sexo7='f') then
salariototal:=salariototal+1;
end;
begin
if (salario8<=400) and (sexo8='f') then
salariototal:=salariototal+1;
end;
begin
if (salario9<=400) and (sexo9='f') then
salariototal:=salariototal+1;
end;
begin
if (salario10<=400) and (sexo10='f') then
salariototal:=salariototal+1;
end;
begin
if (salario11<=400) and (sexo11='f') then
salariototal:=salariototal+1;
end;
begin
if (salario12<=400) and (sexo12='f') then
salariototal:=salariototal+1;
end;
begin
if (salario13<=400) and (sexo13='f') then
salariototal:=salariototal+1;
end;
begin
if (salario14<=400) and (sexo14='f') then
salariototal:=salariototal+1;
end;
begin
if (salario15<=400) and (sexo15='f') then
salariototal:=salariototal+1;
end;
writeln('existem ', salariototal, 'mulheres com sal rios at‚ 400 eurosm');
if (salario1=salario2)and(salario1=salario3)and(salario1=salario4)and(salario1=salario5)and(salario1=salario6)and(salario1=salario7)and(salario1=salario8)and(salario1=salario9)and(salario1=salario10)and(salario1=salario11)and
(salario1=salario12)and(salario1=salario13)and(salario1=salario14)and(salario1=salario15)then
writeln('os salarios sao todos iguais')
else
begin
if (salario1<=salario2)and(salario1<=salario3)and(salario1<=salario4)and(salario1<=salario5)and(salario1<=salario6)and(salario1<=salario7)and(salario1<=salario8)and(salario1<=salario9)and(salario1<=salario10)and(salario1<=salario11)and
(salario1<=salario12)and(salario1<=salario13)and(salario1<=salario14)and(salario1<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade1, 'anos');
if sexo1='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo1='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario2<=salario1)and(salario2<=salario3)and(salario2<=salario4)and(salario2<=salario5)and(salario2<=salario6)and(salario2<=salario7)and(salario2<=salario8)and(salario2<=salario9)and(salario2<=salario10)and(salario2<=salario11)and
(salario2<=salario12)and(salario2<=salario13)and(salario2<=salario14)and(salario2<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade2, 'anos');
if sexo2='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo2='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario3<=salario2)and(salario3<=salario1)and(salario3<=salario4)and(salario3<=salario5)and(salario3<=salario6)and(salario3<=salario7)and(salario3<=salario8)and(salario3<=salario9)and(salario3<=salario10)and(salario3<=salario11)and
(salario3<=salario12)and(salario3<=salario13)and(salario3<=salario14)and(salario3<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade3, 'anos');
if sexo3='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo3='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario4<=salario2)and(salario4<=salario3)and(salario4<=salario1)and(salario4<=salario5)and(salario4<=salario6)and(salario4<=salario7)and(salario4<=salario8)and(salario4<=salario9)and(salario4<=salario10)and(salario4<=salario11)and
(salario4<=salario12)and(salario4<=salario13)and(salario4<=salario14)and(salario4<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade4, 'anos');
if sexo4='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo4='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario5<=salario2)and(salario5<=salario3)and(salario5<=salario4)and(salario5<=salario1)and(salario5<=salario6)and(salario5<=salario7)and(salario5<=salario8)and(salario5<=salario9)and(salario5<=salario10)and(salario5<=salario11)and
(salario5<=salario12)and(salario5<=salario13)and(salario5<=salario14)and(salario5<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade5, 'anos');
if sexo5='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo5='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario6<=salario2)and(salario6<=salario3)and(salario6<=salario4)and(salario6<=salario5)and(salario6<=salario1)and(salario6<=salario7)and(salario6<=salario8)and(salario6<=salario9)and(salario6<=salario10)and(salario6<=salario11)and
(salario6<=salario12)and(salario6<=salario13)and(salario6<=salario14)and(salario6<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade6, 'anos');
if sexo6='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo6='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario7<=salario2)and(salario7<=salario3)and(salario7<=salario4)and(salario7<=salario5)and(salario7<=salario6)and(salario7<=salario1)and(salario7<=salario8)and(salario7<=salario9)and(salario7<=salario10)and(salario7<=salario11)and
(salario7<=salario12)and(salario7<=salario13)and(salario7<=salario14)and(salario7<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade7, 'anos');
if sexo7='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo7='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario8<=salario2)and(salario8<=salario3)and(salario8<=salario4)and(salario8<=salario5)and(salario8<=salario6)and(salario8<=salario7)and(salario8<=salario1)and(salario8<=salario9)and(salario8<=salario10)and(salario8<=salario11)and
(salario8<=salario12)and(salario8<=salario13)and(salario8<=salario14)and(salario8<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade8, 'anos');
if sexo8='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo8='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario9<=salario2)and(salario9<=salario3)and(salario9<=salario4)and(salario9<=salario5)and(salario9<=salario6)and(salario9<=salario7)and(salario9<=salario8)and(salario9<=salario1)and(salario9<=salario10)and(salario9<=salario11)and
(salario9<salario12)and(salario9<salario13)and(salario9<salario14)and(salario9<salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade9, 'anos');
if sexo9='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo9='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario10<=salario2)and(salario10<=salario3)and(salario10<=salario4)and(salario10<=salario5)and(salario10<=salario6)and(salario10<=salario7)and(salario10<=salario8)and(salario10<=salario9)and(salario10<=salario1)and(salario10<=salario11)and
(salario10<=salario12)and(salario10<=salario13)and(salario10<=salario14)and(salario10<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade10, 'anos');
if sexo10='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo10='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario11<=salario2)and(salario11<=salario3)and(salario11<=salario4)and(salario11<=salario5)and(salario11<=salario6)and(salario11<=salario7)and(salario11<=salario8)and(salario11<=salario9)and(salario11<=salario10)and(salario11<=salario1)and
(salario11<=salario12)and(salario11<=salario13)and(salario11<=salario14)and(salario11<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade11, 'anos');
if sexo11='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo11='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario12<=salario2)and(salario12<=salario3)and(salario12<=salario4)and(salario12<=salario5)and(salario12<=salario6)and(salario12<=salario7)and(salario12<=salario8)and(salario12<=salario9)and(salario12<=salario10)and(salario11<=salario11)and
(salario12<=salario1)and(salario12<=salario13)and(salario12<=salario14)and(salario12<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade12, 'anos');
if sexo12='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo12='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario13<=salario2)and(salario13<=salario3)and(salario13<=salario4)and(salario13<=salario5)and(salario13<=salario6)and(salario13<=salario7)and(salario13<=salario8)and(salario13<=salario9)and(salario13<=salario10)and(salario13<=salario11)and
(salario13<=salario12)and(salario13<=salario1)and(salario13<=salario14)and(salario13<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade13, 'anos');
if sexo13='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo13='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario14<=salario2)and(salario14<=salario3)and(salario14<=salario4)and(salario14<=salario5)and(salario14<=salario6)and(salario14<=salario7)and(salario14<=salario8)and(salario14<=salario9)and(salario14<=salario10)and(salario14<=salario11)and
(salario14<=salario12)and(salario14<=salario13)and(salario14<=salario1)and(salario14<=salario15)then
begin
writeln('a idade da pessoa com o menor salario e', idade14, 'anos');
if sexo14='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo14='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
if (salario15<=salario2)and(salario15<=salario3)and(salario15<=salario4)and(salario15<=salario5)and(salario15<=salario6)and(salario15<=salario7)and(salario15<=salario8)and(salario15<=salario9)and(salario15<=salario10)and(salario15<=salario11)and
(salario15<=salario12)and(salario15<=salario13)and(salario15<=salario14)and(salario15<=salario1)then
begin
writeln('a idade da pessoa com o menor salario e', idade15, 'anos');
if sexo15='m' then
writeln('a pessoa com o menor salario e do sexo masculino');
if sexo15='f' then
writeln('a pessoa com o menor salario e do sexo feminino');
end;
end;
readln;
end.

Share this post


Link to post
Share on other sites
nunopicado

Não testei, mas será qualquer coisa deste tipo:

program trabalho_individual_5;

type
   Tpessoas = record
      idade:integer;
      salario:real;
      sexo:char;
   end;

var
   pessoas:Array [1..15] of TPessoas;	
   MenorIdade, MaiorIdade,i,Abaixo400,MenorSalarioIdade:integer;
   mediasalarios,menorSalario:real;
   MenorSalarioSexo:char;

begin
   writeln('organize as quize pessoas numa lista, de forma a que introduza os dados sempre pela mesma ordem');
   writeln('intrduzam todas as 15 idades (em anos)');
   MenorIdade:=151; // Numero de idade inatingivel, para depois começar a regressão
   MaiorIdade:=0;
   MediaSalarios:=0;
   MenorSalario:=65000;
   Abaixo400:=0;
   for i:=1 to 15 do
      begin
          write('Idade da ',i,'ª pessoa: ');
          repeat
              readln(Pessoas[i].Idade);
          until Pessoas[i].Idade in [0..150];
          if Pessoas[i].Idade<MenorIdade then MenorIdade:=Pessoas[i].Idade;   // Acha a menor idade do grupo
          if Pessoas[i].Idade>MaiorIdade then MaiorIdade:=Pessoas[i].Idade;   // Acha a maior idade do grupo
												  
          write('Salário da ',i,'ª pessoa: ');
          readln(Pessoas[i].Salario);
          MediaSalarios:=MediaSalarios+Pessoas[i].Salario; // Calculo inicial para a media de salarios

          write('Sexo da ',i,'ª Pessoa (M/F): ');
          readln(Pessoas[i].Sexo);

          if Pessoas[i].Salario<MenorSalario then begin  // Acha a Idade e Sexo da pessoa com menor salario
                                                                             MenorSalarioIdade:=Pessoas[i].Idade;
                                                                             MenorSalarioSexo:=Pessoas[i].Sexo;
                                                                         end;

         if ((Pessoas[i].Sexo='F') or (Pessoas[i].Sexo='f')) and (Pessoas[i].Salario<400) then inc(Abaixo400);  // Acha o numero de mulheres com salario abaixo dos 400€
     end;
   if MediaSalarios>0 then MediaSalarios:=MediaSalarios/15; // Calculo final para a media de salarios

   // Apresentação de resultados
   Writeln('A média de salários das 15 pessoas é ',MediaSalarios);
   Writeln('A faixa etária das 15 pessoas vai de ',MenorIdade,' a ',MaiorIdade);
   Writeln('No grupo há ',Abaixo400,' mulheres que recebem salários inferiores a 400€');
   Write('O menor salário é recebido por um');
   case MenorSalarioSexo of
      'F','f':Write('a mulher de ');
      'M','m':Write(' homem de ');
   end;
   Writeln(MenorSalarioIdade,' anos.');
   readln;
end.

Qualquer coisa que não entendas é só dizer que eu tento explicar...

EDIT: Tá testado e a funcionar, se entendi bem o que precisas...

De qualquer maneira, está muito básico, há outras coisas que lhe faria para embelezar o codigo e proteger a entrada de dados (no momento, não testa os inputs, mas não sei se para o caso é necessário).

Mas penso que dá para teres uma ideia...

As variaveis, arranjadas assim num array (neste caso de um tipo record criado para guardar todas as caracteristicas de uma pessoa), além de diminuirem imenso a quantidade de codigo a fazer, permitem depois com facilidade interagir com todos os valores para achar as estatisticas, por exemplo.


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
marcomagrico

testei o programa e para o que é pedido está optimo...

Muito obrigado pelo tempo disponibilizado... ;)

Share this post


Link to post
Share on other sites
nunopicado

Sempre às ordens...


"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Share this post


Link to post
Share on other sites
pwseo

Já agora aproveito para partilhar uma solução desnecessariamente complexa mas que faz uso de uma técnica aparentemente esquecida por muita gente, especialmente no nível introdutório de Pascal: ponteiros.

Além disso, faz uso da função format(), coisa muito útil que nos lembra da printf() do C.

A grande diferença é que podemos "marcar" qual é a pessoa mais nova, qual é a mais velha e qual a mais pobre em vez de simplesmente anotarmos a idade mais baixa, a idade mais alta, e a combinação idade + sexo da pessoa mais pobre em variaveis diferentes :)

PS.: peço desculpa pelos nomes ingleses das variáveis (é hábito)

program pap;

uses sysutils;

type
  RPerson = record
    age:    byte;
    wage:   real;
    gender: char;
  end;

const
  numpeople = 3;

var
  people: array [1..numpeople] of RPerson;
  lowwage, i: byte;
  young, old, poorest: ^RPerson;
  wagesum: real = 0;

begin
  young := nil; old := nil; poorest := nil;
  lowwage := 0;

  for i := 1 to numpeople do
  begin
    WriteLn(format('Relativamente à %dª pessoa:', [i]));

    repeat
      Write('=> Idade? ');
      ReadLn(people[i].age);
    until (people[i].age > 0);
    if (young = nil) or (young^.age > people[i].age) then
      young := @people[i];
    if (old = nil) or (old^.age < people[i].age) then
      old := @people[i];

    repeat
      Write('=> Sexo? (m/f) ');
      ReadLn(people[i].gender)
    until (people[i].gender = 'm') or (people[i].gender = 'f');

    repeat
      Write('=> Salário? ');
      ReadLn(people[i].wage);
    until(people[i].wage > 0);
    wagesum := wagesum + people[i].wage;
    if (poorest = nil) or (poorest^.wage > people[i].wage) then
      poorest := @people[i];

    if (people[i].gender = 'f') then
    begin
      if (people[i].wage < 400) then
        inc(lowwage);
    end;
    WriteLn('');
  end;

  WriteLn('');
  WriteLn(format('A pessoa mais nova tem %d anos.', [young^.age]));
  WriteLn(format('A pessoa mais velha tem %d anos.', [old^.age]));
  WriteLn(format('Há %d mulher(es) com salário igual ou inferior a 400€.', [lowwage]));
  Write('A pessoa mais pobre é um');
  if (poorest^.gender = 'm') then
    Write(' homem com ')
  else
    Write('a mulher com ');
  WriteLn(format('%d anos e %.2f€ de salário.', [poorest^.age, poorest^.wage]));
  WriteLn(format('O salário médio é de %.2f€.', [wagesum / numpeople]));
end.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.