marcomagrico 0 Posted November 30, 2010 Report Share Posted November 30, 2010 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. Link to post Share on other sites
nunopicado 1,247 Posted November 30, 2010 Report Share Posted November 30, 2010 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. Link to post Share on other sites
marcomagrico 0 Posted December 2, 2010 Author Report Share Posted December 2, 2010 testei o programa e para o que é pedido está optimo... Muito obrigado pelo tempo disponibilizado... Link to post Share on other sites
nunopicado 1,247 Posted December 2, 2010 Report Share Posted December 2, 2010 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. Link to post Share on other sites
pwseo 234 Posted December 23, 2010 Report Share Posted December 23, 2010 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. Link to post Share on other sites
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