Witam,
pisze program w pascalu (kolor składni dałem z Delphi bo nie znalazłem Pascala) którego zadaniem jest min. wypisanie w którym indeksie tablicy jest najmniejsza wprowadzona liczba. Oto cały kod:
program zad1lista6;
uses crt;
const
n = 10; {domyslny zakres tablicy dam 10}
var
tablica: array [0..n] of integer; {tablica}
m: integer; {tutaj uzytkownik poda M}
wartosc: integer; {wartosc wprowadzana do tablicy}
i: integer; {liczniki petli}
suma_parzyste, suma_nieparzyste, dodatnie, ujemne, zera: integer;
srednia: real; {srednia arytmetyczna}
MaxWart, MinWart: integer; {najwiekszy i najmniejszy element}
MinIndeks, MaxIndeks: integer; {tutaj bedzie polozenie min i max}
begin
clrscr;
suma_parzyste := 0; {zerowanie}
suma_nieparzyste := 0;
dodatnie := 0;
ujemne := 0;
zera := 0;
MinIndeks := 0;
MaxIndeks := 0;
MaxWart := tablica[0];
MinWart := tablica[0]; {zakladamy ze na poczatku najmniejsza wartosc to ta pierwsza}
{********************** SPRAWDZAMY ZAKRES******************************}
repeat
write('Podaj ile elementow chcesz wprowadzic do tablicy: ');
readln(m);
if not (m <= n) then writeln('Przekroczyles zakres! Sprobuj ponownie!');
until (m <= n);
{**********************************************************************}
for i := 0 to m do {wpisywanie liczb do tablicy}
begin
write('Podaj liczbe jaka chcesz wprowadzic do ', i, ' elementu: ');
readln(wartosc);
tablica[i] := wartosc;
{jesli wprowadzona wartosc jest parzysta/nieparzysta to ja sumuje}
if (wartosc mod 2 = 0) then suma_parzyste := suma_parzyste + wartosc;
if (wartosc mod 2 <> 0) then suma_nieparzyste := suma_nieparzyste + wartosc;
if (wartosc > 0) then dodatnie := dodatnie + 1; {zliczanie dodatnich}
if (wartosc < 0) then ujemne := ujemne + 1; {zliczanie ujemnych}
if (wartosc = 0) then zera := zera + 1; {zliczanie zer}
if (tablica[i] < MinWart) then
begin
MinIndeks := i;
MinWart := tablica[i];
end
else
if (tablica[i] > MaxWart) then
begin
MaxIndeks := i;
MaxWart := tablica[i];
end;
end;
{ a) wyswietlam osobne sumy dla liczb barzystych i nieparzystych}
writeln('SUMA liczb parzystych: ', suma_parzyste);
writeln('SUMA liczb nieparzystych: ', suma_nieparzyste);
{ b) obliczanie i wyswietlanie sredniej wpisanych do tablicy liczb}
srednia := (suma_parzyste + suma_nieparzyste) / m;{srednia arytm.}
writeln('SREDNIA: ', srednia:6:2);
{ c) wyswietlanie ile jest liczb dodatnich, ujemnych i zer}
writeln('LICZB DODATNICH: ', dodatnie);
writeln('LICZB UJEMNYCH: ', ujemne);
writeln('ZER: ', zera);
{ d) wyseietla gdzie jest najmniejszy i najwiekszy element}
writeln('NAJMNIEJSZY: ', MinIndeks);
Writeln('NAJWIEKSZY: ', MaxIndeks);
readln;
end.
problem polega na tym że nie podaje mi indeksu tablicy z minimalną wartością w tablicy (MinIndeks) natomiast z indeksem największej wartości działa bez zarzutów. Może pomoże to że dodam, że gdy wpisujemy ujemną wartość w którymś miejscu to wszystko działa. Ktoś wie co jest nie tak? Bo mi skończyły się pomysły ;/