Pobierz plik - M. Jurkiewicz

Transkrypt

Pobierz plik - M. Jurkiewicz
Program w języku Fortran wyszukujący z pośród wszystkich elementów macierzy wartości ekstremalne..
I.
Schemat blokowy
Algorytm zapisany w języku naturalnym
II.
I.
II.
III.
Dane wejściowe:
 K – liczba kolumn macierzy A
 N – liczba wierszy macierzy A
 A(I,J) – wartośd poszczególnych elementów macierzy A
Szukane wartości:
 MIN – wartośd minimalna
 MAX – wartośd maksymalna
Treśd algorytmu w języku naturalnym:
1. Podaj K – liczbę kolumn, N – liczbę wierszy macierzy A,
2. Za numer wiersza I podstaw 1
3. Za numer kolumny J podstaw 1
4. Podaj zawartośd elementu macierzy dla I-tego wiersza
i J-tej kolumny
5. Zwiększ numer kolumny o 1
6. Jeśli J≤K, to przejdź do punktu 4
7. Zwiększ numer wiersza o 1
8. Jeśli I≤N, to przejdź do punktu 3
9. Za numer wiersza I podstaw 1
10. Za numer kolumny J podstaw 1
11. Za zmienną MAX podstaw A(I,J)
12. Za zmienną MIN podstaw A(I,J)
13. Zwiększ numer kolumny o 1
14. Jeśli J<K, to przejdź do punktu 15, w przeciwnym
Wypadku przejdź do punktu 19
15. Jeśli A(I,J)<MIN, to przejdź do punktu 16 w przeciwnym
wypadku przejdź do punktu 17
16. Za zmienną MIN podstaw A(I,J)
17. Jeśli A(I,J)>MAX, to przejdź do punktu 18 w przeciwnym
wypadku przejdź do punktu 13
18. Za zmienną MAX podstaw A(I,J)
19. Zwiększ numer wiersza o 1
20. Jeśli I≤N, to za numer kolumny J podstaw 1 i przejdź do punktu 15,
w przeciwnym wypadku przejdź do punktu 21
21. Wyniki: MIN
22. Wynik: MAX
23. KONIEC
I:=1;
J:=1;
J:=J+1;
I:=I+1;
I:=1;
J:=1;
MAX:=A(I,J);
MIN:=A(I,J);
J:=J+1;
MIN:=A(I,J);
MAX:=A(I,J);
I:=I+1;
Algorytm zapisany w języku o cechach strukturalnych
III.
POCZĄTEK
MAX:=A(I,J);
CAŁKOWITE
N, K, I, J
RZECZYWISTE
MIN, MAX
RZECZYWISTE TABLICE
A(20,30)
I:=1;
POWTARZAJ
POCZATEK
WPISZ: (N, K)
J:=1;
I:=1;
JEŚLI (A(I,J)<MIN) TO
POWTARZAJ
POCZĄTEK
POCZATEK
MIN:=A(I,J);
J:=1;
W PRZECIWNYM WYPADKU
POWTARZAJ
JEŚLI (A(I,J)>MAX) TO
POCZATEK
POCZĄTEK
WPISZ: (A(I,J));
MAX:=A(I,J);
J:=J+1;
KONIEC
KONIEC
KONIEC
AŻ DO (J≤K)
J:=J+1;
I:=I+1;
KONIEC
KONIEC
AŻ DO (J≤K)
AŻ DO (I≤N)
I:=I+1;
WYPISZ: (A)
AŻ DO (I≤N)
I:=1;
WYPISZ: (MIN)
J:=1;
WYPISZ: (MAX)
MIN:=A(I,J);
KONIEC
Kod źródłowy programu
IV.
C
C
C
C
C
C
88
C
C
C
C
C
C
C
Program w jzyku Fortran wyszukujacy z poród wszystkich elementów
macierzy wartosci ekstremalne.
/// Deklaracja zmiennych (wszystkie oznaczenia w programie) ///
INTEGER N, K, I, J
REAL A(20,30), MN, MX
/// Wymiar macierzy ///
WRITE (*,*) 'PROGRAM - EXTREMA:'
WRITE (*,*) 'Podaj wymiar macierzy:'
/// K - kolumny ; N - wiersze //
WRITE (*,*) 'K>=2; K<=20'
WRITE (*,*) 'N>=2; N<=30'
READ (*,*) K, N
/// Sprawdzenie poprawnego wprowadzenia wymiaru macierzy ///
IF (N.LT.2.OR.N.GT.20.OR.K.LT.2.OR.K.GT.30) THEN
PAUSE 'Podano bledny wymiar macierzy [ENTER]'
GO TO 88
END IF
/// Wpisywanie wartoci w macierz ///
DO I=1, N
DO J=1, K
WRITE (*,*) 'Podaj wartosc A(',I,',',J,')='
READ (*,*) A(I,J)
END DO
END DO
/// KONTROLNE WYDRUKOWANIE MACIERZY A ///
WRITE (*,*) 'MACIERZ'
DO I=1, N
WRITE (*,*) (A(I,J),J=1,K)
END Do
/// ALGORYTM POSZUKUJCY EKSTREMA ///
I=1
J=1
MN=A(1,1)
MX=A(1,1)
DO I=1, N
DO J=1, K
IF (A(I,J).LT.MN) THEN
MN=A(I,J)
ELSE
IF (A(I,J).GT.MX) THEN
MX=A(I,J)
END IF
END IF
END DO
end do
/// WYDRUK WYNIKÓW ///
WRITE (*,*) 'WARTO MAKSYMALNA - MAX=', MX
WRITE (*,*) 'WARTO MINIMALNA - MIN=', MN
/// ZAKOCZENIE PROGRAMU ///
PAUSE
END