Program z użyciem macierzy i procedur - Pascal!

czarnys69
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 18 lis 2008, o 21:45
Płeć: Mężczyzna
Lokalizacja: net
Podziękował: 12 razy

Program z użyciem macierzy i procedur - Pascal!

Post autor: czarnys69 »

Witam! Mam do napisania taki program w Pascalu:

-Użyć procedury! Wczytać macierz 4x4. Ładnie wypisać. Następnie znaleźć wiersz lub kolumnę w której różnica między największym a najmniejszym elementem będzie najmniejsza. I wskazać ją.

Kompletnie nie wiem jak się zabrać za ten program. Znalazłem już coś takiego:

Kod: Zaznacz cały

PROGRAM macierze;
uses crt;
const
max = 100; {maksymalna wielkosc tablicy}
type
tablica = array [1..max,1..max] of integer;
var
m,n : integer;
A,B,C : tablica;

Procedure wczytaj_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to m do
for j:=1 to n do
begin
write('Podaj wartosc w polu [',i,',',j,'] : ');
readln(tab[i,j]);
end;
end; { of procedure }

Procedure wyswietl_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
write(tab[i,j]:4);
writeln;
end;
end; {of procedure}

Procedure dodaj ( t1, t2 : tablica; var tab: tablica );
var
i,j : integer;
begin
for i:=1 to m do
for j:=1 to n do
tab[i,j]:=t1[i,j]+t2[i,j];
end; {of procedure}

BEGIN
clrscr;
writeln('=====================================================================');
writeln('Program wczytuje tablice o podanych rozmiarach i wypisuje ja na ekran');
writeln('=====================================================================');
writeln;
writeln('Uwaga! Ilosc wierszy i kolumn nie moze byc > 100 ! ');
writeln;
write('Podaj ilosc wierszy : ');readln(m);
write('Podaj ilosc kolumn : ');readln(n);

wczytaj_tablice(A);
wyswietl_tablice(A);
wczytaj_tablice(B);
wyswietl_tablice(B);

dodaj(A,B,C);
wyswietl_tablice(C);


repeat until keypressed;
END.
Ale to jest tylko pierwsza część zadania która wczytuje macierz. Proszę o pomoc w dokończeniu tego! i z góry bardzo serdecznie dziękuje;))
Ostatnio zmieniony 15 gru 2008, o 20:55 przez czarnys69, łącznie zmieniany 1 raz.
radeklor
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 paź 2008, o 15:29
Płeć: Mężczyzna
Lokalizacja: Krosno / Rzeszów
Podziękował: 11 razy
Pomógł: 11 razy

Program z użyciem macierzy i procedur - Pascal!

Post autor: radeklor »

PROGRAM macierze;
uses crt;

type
tablica = array [1..4,1..4] of integer;
tab = array [1..4] of integer;
var
m,n : integer;
A : tablica;
roz:tab;

Procedure wczytaj_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
begin
write('Podaj wartosc w polu [',i,',',j,'] : ');
readln(tab[i,j]);
end;
end; { of procedure }

Procedure wyswietl_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
write(tab[i,j]:4);
writeln;
end;
end; {of procedure}

procedure roznica;
var
j,i:byte;
najw,najm,roznica:integer;
begin
najm:=A[1,1];
najw:=A[1,1];
for i:=1 to 4 do
begin
if A[i,1]najw then
najw:=a[i,1];
end;
roz[1]:=najw-najm;

for i:=1 to 4 do
begin
if A[i,2]najw then
najw:=a[i,2];
end;
roz[2]:=najw-najm;

for i:=1 to 4 do
begin
if A[i,3]najw then
najw:=a[i,3];
end;
roz[3]:=najw-najm;
for i:=1 to 4 do
begin
if A[i,4]najw then
najw:=a[i,4];
end;
roz[4]:=najw-najm;
roznica:=roz[1];
for i:=2 to 4 do
if roz<roznica then
roznica:=roz;
writeln(roznica);

end;

BEGIN
clrscr;
wczytaj_tablice(A);
wyswietl_tablice(A);
roznica;

repeat until keypressed;
END.

nie do końca mi to wyszło, ale może coś poprawisz i zacznie działać, bo już nie mam pomysłu dlaczego to nie gra;/
czarnys69
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 18 lis 2008, o 21:45
Płeć: Mężczyzna
Lokalizacja: net
Podziękował: 12 razy

Program z użyciem macierzy i procedur - Pascal!

Post autor: czarnys69 »

Witam! o to gotowy program! Tylko muszę poprawić aby to co się powtarza było w pętli i dobrze by było aby pokazywało która to kolumna. Bardzo proszę o pomoc za którą serdecznie dziękuje!

Kod: Zaznacz cały

PROGRAM macierze;
uses crt;

type
tablica = array [1..4,1..4] of integer;
tab = array [1..4] of integer;
var
m,n : integer;
A : tablica;
roz:tab;

Procedure wczytaj_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
begin
write('Podaj wartosc w polu [',i,',',j,'] : ');
readln(tab[i,j]);
end;
end; { of procedure }

Procedure wyswietl_tablice ( var tab : tablica );
var
i,j : integer;
begin
for i:=1 to 4 do
begin
for j:=1 to 4 do
write(tab[i,j]:4);
writeln;
end;
end; {of procedure}

procedure roznica;
var
j,i:byte;
najw,najm,roznica:integer;
begin
najm:=A[1,1];
najw:=A[1,1];
for i:=1 to 4 do
begin
if A[i,1]<najm then
najm:=A[i,1];
if A[i,1]>najw then
najw:=a[i,1];
end;
roz[1]:=najw-najm;

najm:=A[1,2];
najw:=A[1,2];
for i:=1 to 4 do
begin
if A[i,2]<najm then
najm:=A[i,2];
if A[i,2]>najw then
najw:=a[i,2];
end;
roz[2]:=najw-najm;

najm:=A[1,3];
najw:=A[1,3];
for i:=1 to 4 do
begin
if A[i,3]<najm then
najm:=A[i,3];
if A[i,3]>najw then
najw:=a[i,3];
end;
roz[3]:=najw-najm;

najm:=A[1,4];
najw:=A[1,4];
for i:=1 to 4 do
begin
if A[i,4]<najm then
najm:=A[i,4];
if A[i,4]>najw then
najw:=a[i,4];
end;
roz[4]:=najw-najm;
roznica:=roz[1];
for i:=2 to 4 do
if roz[i]<roznica then
roznica:=roz[i];
writeln(roznica);

end;

BEGIN
clrscr;
wczytaj_tablice(A);
wyswietl_tablice(A);
roznica;

repeat until keypressed;
END. 
ODPOWIEDZ