Forum www.wilawiankipierwszade.fora.pl Strona Główna www.wilawiankipierwszade.fora.pl
forum klasy 1d
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Informatyka - algorytm MAX (gotowy z wytłumaczeniem)

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.wilawiankipierwszade.fora.pl Strona Główna -> zaaaaaaaadania / matematyka
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

PostWysłany: Nie 18:19, 21 Lis 2010    Temat postu: Informatyka - algorytm MAX (gotowy z wytłumaczeniem)

Z dedykacją dla Michała Parzego Smile. 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 profil autora
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

PostWysł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 profil autora
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

PostWysł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 Smile.



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 profil autora
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

PostWysł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 profil autora
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

PostWysł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
Zobacz profil autora
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

PostWysłany: Nie 21:01, 21 Lis 2010    Temat postu:

Jaki to był błąd?

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.wilawiankipierwszade.fora.pl Strona Główna -> zaaaaaaaadania / matematyka Wszystkie czasy w strefie GMT + 3 Godziny
Strona 1 z 1

 
Skocz do:  
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
Regulamin