|
www.wilawiankipierwszade.fora.pl forum klasy 1d
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
BorysJ
Dołączył: 16 Wrz 2010
Posty: 135
Przeczytał: 0 tematów
Pomógł: 3 razy Ostrzeżeń: 0/5 Skąd: Pogorzela
|
Wysłany: Nie 18:19, 21 Lis 2010 Temat postu: Informatyka - algorytm MAX (gotowy z wytłumaczeniem) |
|
|
Z dedykacją dla Michała Parzego . To durne ELI nie pozwala mi na zapisywanie, więc wrzucam tylko screen z opisem:
[link widoczny dla zalogowanych]
Uploaded with [link widoczny dla zalogowanych]
Jest algorytm z liczbą elementów podawaną na początku, same elementy są wpisywane podczas działania algorytmu (później może zrobię wersję z wartownikiem).
Ale po kolei:
Na początku należy podać liczbę elementów ciągu n. Następnie zmienna i ustawiana jest na 0, czyli: i := 0. Służy ona do kontrolowania przebiegu pętli, podobnie jak w algorytmie z wielomianem. Następny blok jest sprawdzeniem warunku wykonywania pętli: i < n. Pętla wykonuje się tylko wtedy, gdy ten warunek jest spełniony. Na początku pętli podawana jest wartość jakiejś tam zmiennej a, która zostanie zapisana do tablicy, w kolumnie zero i w wierszu numer i. Dlatego ważne jest, aby do i na początku przypisać zero, ponieważ oznaczanie wierszy tablicy rozpoczyna się od zera, nie od jeden. Zapis do tablicy wygląda tak:
[link widoczny dla zalogowanych]
Uploaded with [link widoczny dla zalogowanych]
Następnie do i dodajemy 1: i := i + 1. Warunek jest powtórnie sprawdzany i pętla wykonuje się lub nie, w zależności od spełnienia warunku.
Dla przykładu: Jeśli jako n poda się 5 to pętla wykona się pięć razy. Podając za każdym razem nową wartość, tablica może wtedy wyglądać tak:
[link widoczny dla zalogowanych]
Uploaded with [link widoczny dla zalogowanych]
Kiedy mamy już wypełnioną tablicę, możemy zacząć szukać największego elementu. Jeszcze przed początkiem pętli, zmiennej max przypisywana jest wartość pierwszego (zerowego dokładnie mówiąc) elementu tablicy. Po tym i jest ustawiane na zero.
Sprawdzany jest warunek pętli: i < n, podobny jak przedtem, bo teraz też trzeba "przelecieć" przez wszystkie elementu ciągu. Na samym początku tej pętli i jest zwiększane o 1: i := i + 1. Za chwilę wytłumaczę dlaczego. Następnie z tablicy odczytywany jest do jakiejś zmiennej b element o wierszu numer i.
Następny blok to kolejny warunek - jest to porównanie dotychczasowej zmiennej max ze zmienną b: max < b. Jeśli warunek jest spełniony i max jest mniejsze od b to znaczy, że ono nie jest tak naprawdę największe (maksymalne). Dlatego w następnym bloku następuje przypisanie wartości b do max.
Jeśli warunek był nieprawdziwy, czyli max jest większe lub równe od b to po raz kolejny wykonuje się pętla, znowu następuje sprawdzanie, przypisywanie itd. aż do momentu gdy warunek i < n przestanie być spełniany, wtedy max jest wypisywane i finito...
Dodawanie 1 do i na początku pętli było konieczne, ponieważ gdyby znajdowało się ono na końcu to niepotrzebnie porównywane byłyby dwie takie same wartości.
Z góry ogromnie przepraszam za moje nikłe umiejętności pedagogiczne.
Post został pochwalony 1 raz
Ostatnio zmieniony przez BorysJ dnia Nie 20:51, 21 Lis 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
mparzy
Dołączył: 19 Wrz 2010
Posty: 104
Przeczytał: 0 tematów
Pomógł: 4 razy Ostrzeżeń: 0/5
|
Wysłany: Nie 18:31, 21 Lis 2010 Temat postu: |
|
|
Dzięki za odpowiedź, mam tylko jedno pytanie: jak na samym początku podać liczbę elementów ciągu (co wpisać w drugi klocek)?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
BorysJ
Dołączył: 16 Wrz 2010
Posty: 135
Przeczytał: 0 tematów
Pomógł: 3 razy Ostrzeżeń: 0/5 Skąd: Pogorzela
|
Wysłany: Nie 19:18, 21 Lis 2010 Temat postu: |
|
|
Pobieżny wygląd algorytmu dla jednoczesnego znajdowania max i min dla Parzego - zaznaczam, że nieoptymalny, bo wykonuje trochę niepotrzebnej roboty, zrobię go porządnie jak wrócę z Kościoła .
Post został pochwalony 0 razy
Ostatnio zmieniony przez BorysJ dnia Nie 19:19, 21 Lis 2010, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Piotr Katański
Dołączył: 16 Wrz 2010
Posty: 382
Przeczytał: 0 tematów
Pomógł: 7 razy Ostrzeżeń: 0/5
|
Wysłany: Nie 19:39, 21 Lis 2010 Temat postu: |
|
|
borys kombinuje już jakis czas z tym powiedz co ty wpisujesz w tej pętli w której porównujesz max z każdą kolejną wartością bo mi ciągle na końcu jako max wyskakuje pierwsza wpisana w tablicę wartość
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Piotr Katański
Dołączył: 16 Wrz 2010
Posty: 382
Przeczytał: 0 tematów
Pomógł: 7 razy Ostrzeżeń: 0/5
|
Wysłany: Nie 19:44, 21 Lis 2010 Temat postu: |
|
|
ok już znalazłem błąd
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|