Niestety się mylisz są to zadania na przygotowanie sie do olimpiady w szkole.Dostałem ich około 20 z niektórymi pomagał mi mój nauczyciel ,lecz teraz zachorował i nie ma mi kto pomóc;/
Ze szkoły? z przedszkola xD ale co do programu to tak:
1.Najpierw przelatujesz cala tablice i sumujesz jej elementy i ilość elementów, albo możesz poszukać jakiejś funkcji która zwróci ilość elementów coś takiego jest w php.
dzielisz sumę przez ilość - masz średnią.
Lecisz znów przez tablicę i sprawdzasz który z elementów jest większe od średniej if tab[$i] > sred then licznik++;
i tyle. tak na oko
2 nie chce mi sie pisac
EDIT:
Bez obrazy ale z czym do ludzi… jak to na OI o_O
PS: W tym “pseudo” pascalu mogą być błędy bo ostatnio w c++ i php coś robie.
Udało mi się wypocić takie cuda, ale wydaje mi sie że coś w nich jest nie tak;/
program 1
var tab:array[0..20]of byte;
i,a,licznik:byte;
srednia:real;
begin
randomize;
for i:=0 to 20 do
begin
tab[i]:=random(250);
a:=a+tab[i];
writeln('tab',i,':',tab[i]);
end;
srednia:=a/20;
for i:=0 to 20 do
begin
if tab[i]>srednia then
licznik:=licznik+1;
end;
writeln('srednia wynosi:',srednia);
writeln('ilosc liczb powyzej sredniej:',licznik);
readln();
end.
program 2
var tab:array[0..19]of byte;
i,a,jeden,dwa,trzy,cztery,piec:byte;
begin
randomize;
for i:=0 to 19 do
begin
repeat
a:=random(6);
until a>0;
tab[i]:=a;
case a of
1 : begin
jeden:=jeden+1;
end;
2: begin
dwa:=dwa+1;
end;
3: begin
trzy:=trzy+1;
end;
4: begin
cztery:=cztery+1;
end;
5: begin
piec:=piec+1;
end;
end;
end;
writeln('1jest:',jeden);
writeln('2jest:',dwa);
writeln('3jest:',trzy);
writeln('4jest:',cztery);
writeln('5jest:',piec);
for i:=0 to 19 do
writeln('tab',i,':',tab[i]);
readln();
end.
Pierwszy program nie będzie działać poprawnie, ponieważ brakuje początkowej inicjalizacji zmiennej a.
Trzeba dodać jeden wiersz:
...
randomize;
a:=0;
for i:=0 to 20 do
...
Poza tym zawsze w pętlach po tablice najlepiej używać Low, High lub Length:
for i:=0 to High(Tab) do
Drugie zadanie zrobione beznadziejnie :roll:
var tab:array[0..19]of byte;
var v:array[1..5] of integer;
var x:byte;
var i:Integer;
begin
randomize;
for i:=low(v) to high(v) do v[i]:=0;
for i:=0 to high(tab) do
begin
x:=1+random(5);
tab[i]:=x;
inc(v[x]);
end;
for i:=low(v) to high(v) do writeln(i,' jest: ',v[i]);
for i:=0 to high(tab) do writeln('tab[',i,']: ',tab[i]);
readln();
end.