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