Olá pessoal,
passei aqui so para comentar sobre fundamentos de programação.
1° -> o ideal é trabalhar com o free pascal - recomendado pelo professor do curso;
Há diferenças entre os compiladores.E o código acaba não saindo como eles querem.
2° -> façam os códigos como o professor pede;
ex.: sempre usem program tal (imput{teclado},outpu{vídeo});
writeln ou write(output,.......)
readln(input,....... obs.: claro que em determinadas situações o output ou input não entram
saibam usar procedimentos e funções, e usem;
códigos feitos sem a utilização dos procedimentos e/ou funções valem menos pontos:
hipoteticamente falando se uma questão vale 3 ptos, mesmo que façam o código certo sem utilizar procedimentos e/ou funções
não ganham os 3 ptos, e se ganharem 2 nem reclamem ..... nas aps principalmente.....
obs.:os tutores são mais camaradas e aliviam mais;
3° -> tentem tirar 10 nas Ads , pois, o bicho pega nas aps;
4° -> como o professor diz na vídeo aula treinem exaustivamente ;
Lembrando de mais detalhes passo para vcs, e qualquer ajuda que puder oferecer é so falar.
Se quiserem também passar as questões das ads para eu responder é so mandar.
Aqui mando um ex. de como não se deve fazer:
questão clássica de vetor :
program ad1_qt02(input{teclado}, output{vídeo});
uses crt;
var
i : integer;
maior,menor,soma,vlrs_menor,vlrs_maior,vlrs_intermediarios : integer;
media,dp,vari,ind,index: real;
Vetor : array[1..100] of integer;
Begin
menor := 100;
maior := 0;
soma := 0;
media := 0;
vari := 0;
vlrs_menor := 0;
vlrs_maior := 0;
vlrs_intermediarios := 0;
for i := 1 to 100 do
begin
writeln(output,'digite o elemento :',i);
readln(input,vetor[i]);
if Vetor[i] < menor then
menor := Vetor[i]
else
if vetor[i] > maior then
maior := vetor[i];
end;
for i := 1 to 100 do
begin
soma := soma + vetor[i];
media := soma / 100;
end;
for i := 1 to 100 do
begin
vari := vari + ( vetor[i] - media)*( vetor[i] - media);
dp := sqrt(vari / 100);
end;
for i := 1 to 100 do
begin
ind := media - dp;
if vetor[i] < ind then
vlrs_menor := vlrs_menor + 1;
end;
for i := 1 to 100 do
begin
index := media + dp;
if vetor[i] > index then
vlrs_maior := vlrs_maior + 1;
end;
for i := 1 to 100 do
begin
ind := media - dp;
index := media + dp;
if ((vetor[i] > ind) and (vetor[i] < index)) then
vlrs_intermediarios := vlrs_intermediarios +1;
end;
writeln(output,'O maior valor é:' ,maior);
writeln(output,'O menor valor é:' ,menor);
writeln(output,'a média é igual a:' ,media:4:4);
writeln(output,'o desvio padrão é igual a:' ,dp:4:4);
{esses valores informei por questões próprias}
writeln(output,'ind é igual a:',ind:4:4);
writeln(output,'index é igual a:',index:4:4);
{fim dos valores não requisitados}
writeln(output,'o número de valores menores que media - dp é igual a:' ,vlrs_menor);
writeln(output,'o número de valores maiores que media + dp é igual a:' ,vlrs_maior);
writeln(output,'o número de valores intermediários é igual a:' ,vlrs_intermediarios);
readln;
end.
Agora a mesma questão so que de maneira certa e com enunciado (rsrsrsrs):
{
Faça um programa Pascal que leia 100 numeros inteiros do teclado,
armazenando-os em um vetor, e informe:
(a) o menor valor lido,
(b) o maior valor lido,
(c) a media (md) dos valores lidos,
(d) o desvio padrao (dp) da media,
(e) o numero de valores menores do que o valor md-dp,
(f) o numero de valores no intervalo fechado [md-dp,md+dp], e
(f) o numero de valores maiores do que o valor md+dp.
}
program AD1Q2(input{teclado}, output{video});
const
N = 5;
type
t_dominio = 1..N;
t_vetor = array[t_dominio] of integer;
{---------------------------------------------------------------------}
procedure ler(Var vet{s}: t_vetor; Var maior, menor, soma{s}: integer);
var
i: integer;
begin
write(output, 'vetor[1]= ');
readln(input, vet[1]);
maior := vet[1];
menor := vet[1];
soma := vet[1];
for i := 2 to N do
begin
write(output, 'vetor[', i, ']= ');
readln(input, vet[i]);
soma := soma + vet[i];
if vet[i] > maior then
maior := vet[i]
else
if vet[i] < menor then
menor := vet[i]
end;
end;
{---------------------------------------------------------------------}
var
v: t_vetor;
i, maior, menor, soma: integer;
media, ac, dp, A, B: real;
qtdantes, qtddentro, qtddepois: integer;
begin
ler(v, maior, menor, soma);
media := soma / N;
ac := 0;
for i := 1 to N do
ac := ac + sqr(v[i]-media);
dp := sqrt(ac/N);
A := media - dp;
B := media + dp;
qtdantes := 0;
qtddentro := 0;
qtddepois := 0;
for i := 1 to N do
if (v[i] > B) then
qtddepois := qtddepois + 1
else
if (v[i] < A) then
qtdantes := qtdantes + 1
else
qtddentro := qtddentro + 1;
writeln(output, 'Menor Valor = ', menor);
writeln(output, 'Maior Valor = ', maior);
writeln(output, 'Media = ', media:6:2);
writeln(output, 'Desvio Padrao = ', dp:6:2);
writeln(output, 'Numero de valores antes do intervalo = ', qtdantes);
writeln(output, 'Numero de valores no intervalo = ', qtddentro);
writeln(output, 'Numero de valores depois do intervalo = ', qtddepois);
readln;
end.
Bom pessoal desejo boa sorte a todos e também boa semana.
Renato.