Znajdź sumę tych elementów pamiętanych w tablicy, których wartości są większe od -x i jednocześnie są mniejsze od +x. Zastosuj pętlę for. (Funkcja o argumentach: T-tablica, X-zadana wartość logiczna).
Coś pokombinowałem, ale nie działa - proszę o sprawdzenie przez kogoś kto ma o tym pojęcie bo ja już się pogubiłem i nie wiem co mam dalej robić. Pod spodem wklejam ten program.
czekam na pomoc z góry dzięki mat1as
{program TabDemo;
uses crt;
type Tab = array [0..14] of Integer;
procedure PokTab(var T:Tab; P:Boolean);
var I:Integer;
begin
for I:=Low(T)to High(T) do
if P then Write (T[I]:8)
else writeln(T[I]:4);
writeln;
end;
function suma(var T:Tab):Integer;
var I,x,licznik:integer;
begin
licznik:=0;
for I:=Low(T) to High(T) do
if(T[I]-x) then licznik:=licznik+T[I];
suma:=licznik;
const T:Tab=(-3,2,-7,5,7,-4,-8,2,1,0,9,-11,-13,-6,5);
var wynik:integer;
begin
clrscr;
Poktab(T);
wynik:=suma(T);
write('suma element˘w ktore sa wieksze od -x i jednoczesnie mniejsze od x:',wynik);
readln;
end.
}
Coś ten kod zawiły i nie rozumiem, co robisz w niektórych miejscach
Ja by to zrobił jakoś tak:
VAR
T:ARRAY[0..14] of integer;
i,suma,x:integer;
BEGIN
for i:=0 to 13 do read(T[i]);
readln(T[14]); {wpisujesz tablicę, kończąc linijkę ENTERem}
readln(x); {czytasz x}
suma:=0;
for i:=0 to 14 do
begin
if (T[i]>-x) and (T[i]
end;
writeln(suma);
readln;
END.
program TabDemo;
uses crt;
type
Tab = array [0..14] of Integer;
procedure PokTab(var T:Tab; P:Boolean);
var
I:Integer;
begin
for I:=Low(T)to High(T) do
if P then
Write (T[I]:8)
else
writeln(T[I]:4);
writeln;
end;
function suma(var T:Tab; x: integer):Integer; (* uzupełniono!*)
var
I,licznik:integer;
begin
licznik:=0;
for I:=Low(T) to High(T) do
if(T[I]-x) then
licznik:=licznik+T[I];
suma:=licznik;
end; (* uzupełniono! *)
const
T:Tab=(-3,2,-7,5,7,-4,-8,2,1,0,9,-11,-13,-6,5);
var
wynik,Xp:integer;
begin
clrscr;
Xp:=5;
Poktab(T,true); (* uzupełniono!, ew. false *)
wynik:=suma(T,Xp); (* uzupełniono!*)
write('Suma element˘w ktore sa wieksze od ',
-Xp,' i jednoczesnie mniejsze od ',Xp,': ',wynik); (* zmodyfikowano! s*)
readln;
end.