Porozmawiajmy dzisiaj o cyklach. Zastanówmy się, czym jest cykl i jak nauczyć naszego Robota wykonywania algorytmów cyklicznych.

Więc, co to jest cykl? Wyobraź sobie, że jesteśmy na lekcji wychowania fizycznego i stoimy przed zadaniem zrobić 7 przysiadów. To zadanie można sformalizować jako algorytm liniowy i wtedy będzie wyglądać mniej więcej tak:

zrobić przysiad

zrobić przysiad

zrobić przysiad

zrobić przysiad

zrobić przysiad

zrobić przysiad

zrobić przysiad

Oznacza to, że 7 razy powtórzyliśmy polecenie wykonania przysiadu. Czy ma sens napisanie 7 identycznych poleceń? Łatwiej byłoby wydać polecenie. zrobić 7 przysiadów? Na pewno łatwiej i bardziej poprawnie. To jest cykl. Sam możesz sobie przypomnieć przykłady cykli z życia – jest ich sporo.

W ten sposób algorytm liniowy, gdzie powtarzają się te same polecenia, możemy wydać w postaci algorytmu cyklicznego- mniej więcej tak:

powtórz 7 razy

zrobić przysiad

koniec cyklu

Tak więc w języku, który wymyśliliśmy, zaprojektowaliśmy cykl. Wykonawca Robota ma również możliwość rejestrowania cykli. Ponadto, cykle są różne.. Opcja, którą właśnie rozważyliśmy, nazywa się pętla z licznikiem lub pętla z parametrem.

Rodzaje cykli.

Cykl z licznikiem.

Pętla z licznikiem stosuje się, gdy wiadomo z góry, ile powtórzeń należy wykonać. W powyższym przykładzie z przysiadami tak właśnie jest.

Aby napisać pętlę z licznikiem dla executora, musisz znać jej składnię. A on jest taki:

nc<liczba powtórzeń> razy

<команда 1>

<команда 2>

<команда n>

Tutaj musimy określić ilość powtórzeń (ilość) oraz komendy, które będą powtarzane. Polecenia, które są powtarzane w cyklu, nazywane są ciało pętli.

Spójrzmy na to na przykładzie.

Początkowo Robot znajdował się w lewej górnej komórce.

Najpierw rozwiążmy problem liniowo. W takim przypadku zamalujemy bieżącą komórkę i przesuniemy 1 komórkę w prawo, a program będzie wyglądał tak:
użyj robota
alg
wczesny

przemalować

prawo

przemalować

prawo

przemalować

prawo

przemalować

prawo

przemalować

prawo

przemalować

prawo

przemalować

prawo

Jak widać, polecenia do zamalowania i po prawej są powtarzane 7 razy. Przepiszmy teraz program za pomocą pętli. Przy okazji, aby wstawić cykl do swojego programu, możesz użyć menu Wstawić Wybierz przedmiot nc-czas-kc lub naciśnij jeden ze skrótów klawiaturowych Esc, P(rosyjska litera Р) lub Esc, H(litera łacińska H). I klawisze należy naciskać sekwencyjnie- najpierw Esc, puść, a dopiero potem P lub H.

Więc tutaj jest nasz program cyklu będzie wyglądać tak:

użyj robota

nc 7 razy

przemalować

prawo

Jeśli go uruchomimy, zobaczymy, że wynik będzie taki sam - 7 wypełnionych komórek. Program stał się jednak krótszy io wiele bardziej inteligentny z algorytmicznego punktu widzenia!

Jako rozgrzewkę i konsolidację proponuję samodzielnie napisać program dla Robota, który narysuje kwadrat o boku 7 komórek. Oczywiście za pomocą cyklu. Czekam na rozwiązanie w komentarzach.

Pętla warunkowa.

Przy rozwiązywaniu problemu 19 GIA w informatyce za pomocą robota nie będzie działać pętla z licznikiem. Ponieważ tam pole jest zwykle nieskończone, a ściany nie mają określonej długości. Dlatego nie będziemy w stanie określić liczby powtórzeń dla pętli z licznikiem. Ale to nie ma znaczenia – to nam pomoże pętla z warunkiem.

Wróćmy do wychowania fizycznego i zmieńmy zadanie. Przecież ktoś może nie robić 7 przysiadów, a drugi jest w stanie zrobić 27. Czy można to wziąć pod uwagę przy tworzeniu cyklu? Oczywiście. Dopiero teraz użyjemy nie licznika (liczby powtórzeń), ale warunku. Na przykład, zanim się zmęczysz, rób przysiady. W takim przypadku osoba nie wykona określonej liczby przysiadów, ale przysiada, dopóki się nie zmęczy. A nasza pętla w języku abstrakcyjnym będzie wyglądać tak:

PA nie zmęczony

zrobić przysiad

koniec cyklu

Słowa nie są w naszym przypadku zmęczone - to jest warunek. Kiedy to prawda, wykonywana jest pętla. Jeśli jest fałszywe (zmęczone), ciało pętli nie zostanie wykonane. Wykonawca robota ma kilka warunków

góra luźna

dół luźny

pozostawiony wolny

prawo za darmo

górna ściana

dolna ściana

lewa ściana

prawa ściana

Ale w przypadku problemu 19 GIA wskazane są tylko pierwsze 4. Więc użyjemy tylko ich.

Teraz rozwiążmy kolejne zadanie dla Robota - remis pionowa linia od lewej do prawej granicy pola używam pętli z warunkiem. Początkowo Robot znajduje się w lewym górnym rogu.

Zdefiniujmy najpierw algorytm słowny- czyli opiszemy słowami, co Robot musi zrobić. Ten algorytm będzie brzmiał mniej więcej tak:

« Będąc po prawej, swobodnie zrób krok w prawo i zamaluj celę »

W rezultacie Robot przebiegnie przez wszystkie komórki po prawej i będzie je malował, aż ściana znajdzie się po prawej stronie.

Kod źródłowy naszego programu Robot będzie wyglądał mniej więcej tak:

użyj robota

nc, gdy prawo jest wolne

prawo

przemalować

W wyniku wykonania tego programu zobaczymy następujący obraz:

Wykonawca robota. Algorytmy pomocnicze(2h)

Cel: wprowadzić pojęcie algorytmu głównego i pomocniczego; wyjaśnić zasady korzystania z algorytmu pomocniczego; analizować przykłady algorytmów za pomocą pomocniczego. Wykształcenie praktycznych umiejętności konstruowania algorytmów metodą udoskonalania sekwencyjnego.

Plan lekcji

1.Wprowadzenie nowych pojęć (algorytm główny i pomocniczy, wywołanie) i wyjaśnienie nowych pojęć.

2. Analiza przykładów rozwiązywania problemów za pomocą algorytmu pomocniczego.

3. Praktyczna praca

Przy rozwiązywaniu niektórych problemów wygodnie jest rozbić je na mniejsze podzadania, z których każde można zaprojektować jako niezależny algorytm. W tym przypadku najpierw kompilowany jest tzw. algorytm główny, w którym wywołania algorytmów pomocniczych służą do rozwiązywania podzadań, które są dodawane później. Takie rozwiązanie nazywa się sekwencyjna metoda udoskonalania. Pozwala grupie programistów pracować nad projektem, a każdy z nich rozwiązuje swoje własne podzadanie.

W procesie rozwiązywania problemu każdy algorytm pomocniczy można w razie potrzeby podzielić na mniejsze. algorytmy pomocnicze.

Polecenie wykonania algorytmu pomocniczego nosi nazwę wyzwanie i jest zapisany w treści głównego algorytmu.

Jeden i ten sam algorytm można uznać za główny i pomocniczy w stosunku do innych algorytmów. W język algorytmiczny najpierw pisany jest główny algorytm, a pomocnicze w rzędzie poniżej.

Zadanie 1:

Robot znajduje się w lewym górnym rogu pola. Nie ma ścian ani zacienionych komórek. Skomponuj algorytm, korzystając z pomocniczego, rysując cztery krzyżyki na jednej poziomej linii. Ostateczna pozycja Robota może być dowolna.

Rozwiązanie

Analiza na tablicy:

Zadanie2. Robot znajduje się w lewym górnym rogu pola. Nie ma ścian ani zacienionych komórek. Napisz algorytm, który maluje kwadrat o wymiarach 8 x 8. Ostateczna pozycja Robota może być dowolna.

Praktyczna praca na komputerze PC „Rozwiązywanie problemów za pomocą algorytmów pomocniczych”

Zadanie 1 . Robot znajduje się w lewym dolnym rogu pola. Nie ma ścian ani zacienionych komórek. Napisz algorytm, który maluje 6 pionowych pasków o tej samej długości w 6 komórkach. Ostateczna pozycja Robota może być dowolna.

Zadanie 2 . Używając pomocy, napisz algorytm zamalowywania komórek tworzących liczbę 1212.

Praca domowa : Wymyśl algorytm, który rysuje następujący obraz: Zastosuj dwa algorytmy pomocnicze, aby rozwiązać problem.

Poradnik metodyczny dla nauczycieli informatyki. Evgrafova Olga Vladimirovna, gimnazjum nr 8 Kolomna, 2013 W trakcie studiowania przedmiotu „Informatyka i ICT” studenci nie tylko poznają kulturę informacyjną (kultura kompetentnej komunikacji z komputerem, papierkowej roboty, komunikacji elektronicznej), ale także opanowują podstawy programowania. Jednym z najbardziej udanych rozwiązań krajowych w tej dziedzinie jest system programowania Kumir. W nim studenci mogą zdobyć praktyczne umiejętności tworzenia i debugowania algorytmu, pracując z wykonawcami Robota i Rysownika. Zaletami tego systemu są możliwość pisania poleceń w języku rosyjskim w szkolnym języku algorytmicznym oraz widoczność wyniku wykonania algorytmu. System KuMir został zaprojektowany w oparciu o potrzeby Rosyjski system Edukacja. Jego cechy:      swobodnie rozpowszechniane; wieloplatformowy; zerowe wymagania dotyczące zasobów; wspierany przez Rosyjską Akademię Nauk; wśród deweloperów są autorzy wielu podręczników i podręczników z dziedziny informatyki;  Bezpłatną powłokę programu Kumir można znaleźć pod adresem http://www.niisi.ru/kumir/. Niestety, autorzy nowych podręczników do informatyki poświęcają zbyt mało uwagi lub w ogóle omijają tych wykonawców. Jednocześnie twórcy GIA i -1-

p. 2

USE obejmuje zadania wykorzystujące dane wykonawców w zadaniach z prac egzaminacyjnych. Temat jest omawiany w 9 klasie w dziale „Algorytmizacja i programowanie”. Na przestudiowanie tematu przeznaczono 9 godzin. Uczniowie powinni wiedzieć: kim jest wykonawca; SKI Robot, środowy performer Robot; czym jest algorytm; jakie są główne właściwości algorytmu; sposoby pisania algorytmów: schematy blokowe, edukacyjny język algorytmiczny; podstawowe konstrukcje algorytmiczne: podążanie, rozgałęzianie, pętla; przypisanie algorytmów pomocniczych. Studenci powinni umieć: rozumieć opisy algorytmów w edukacyjnym języku algorytmicznym; wykonać ślad algorytmu dla znanego wykonawcy; komponować algorytmy sterowania liniowego, rozgałęziającego i cyklicznego dla executora Robota; przydzielać podzadania; definiować i stosować algorytmy pomocnicze. Scenariusz lekcji tematycznych: Lp/p 1. 2. 3. 4. 5. Liczba Teo-godzin riya Performer Robot. Executor system dowodzenia. Kompozycja1 0.5 Algorytmy liniowe. Algorytmy cykliczne. 3 1 Praca praktyczna №1. Kompilacja i debugowanie algorytmów cyklicznych. Rozgałęzianie i sekwencyjne udoskonalanie algorytmu. 2 1 Praca praktyczna №2. Kompilacja i debugowanie algorytmów cyklicznych i rozgałęziających. Algorytmy i podprogramy pomocnicze. 2 0,5 Przykł. niewolnik. Numer 3. „Zastosowanie algorytmów pomocniczych”. Test. „Tworzenie algorytmu w środowisku wykonawcy” Temat lekcji Praktyka 0,5 2 1 1,5 1 Materiały do ​​lekcji na temat „Robot szkolący wykonawcę”: -2-

p. 3

Lekcja 1 Executor system dowodzenia. Robot porusza się podczas wykonywania programu po prostokątnym polu w kratkę, pomiędzy komórkami, których ściany mogą być zlokalizowane. Pole jest wywoływane na ekranie za pomocą przycisku „Robot Window”, który znajduje się na pasku narzędzi. Pole kodu robota. Robot jest w stanie wykonywać polecenia-rozkazy i polecenia-pytania. Polecenia-rozkazy: prawo, lewo, góra, dół, malowanie. Jeśli na drodze znajduje się ściana, polecenie nie może zostać wykonane. Aby bezpośrednio sterować robotem, użyj zdalny. Naciskając przyciski na pilocie, osoba wydaje odpowiednie polecenia, a Robot je wykonuje. Do kontrola programu nie wystarczy wiedzieć, które polecenia iw jakiej kolejności wykonać. Konieczne jest również zapisanie tych poleceń w formie zrozumiałej dla komputera, tj. w formie algorytmu. W najprostszym przypadku algorytm dla Robota jest zapisany w następujący sposób: Nazwa algorytmu to ciąg znaków lub słów oddzielonych spacjami. Pierwszy znak nazwy nie może zaczynać się od cyfry. Prawidłowe nazwy: g, sum, obwód pseudonimu, 12 kwietnia, dwunasty kwietnia, numer_11_cl. „Właściwa” nazwa zostanie podświetlona na niebiesko. use Robot alg nazwa_algorytmu start sekwencja poleceń end Dla lepszego zrozumienia algorytmu w treści programu możesz użyć komentarzy. Komentarze zaczynają się od |. Jeśli komentarze obejmują wiele wierszy, każdy wiersz musi być poprzedzony znakiem |. Komentarze nie mają wpływu na postęp algorytmu. Przykład 1. Program "Ruch rycerski" (przesuń Robota z punktu A do punktu B). Stan początkowy: Program: Wynik: Reguły języka algorytmicznego pozwalają na zapisanie kilku poleceń w jednej linii oddzielonej średnikiem. -3-

p. cztery

Przykład 2. Wymagane jest przemieszczenie Robota z punktu A do punktu B. Ścieżkę, którą musi przejść Robot, można podzielić na pięć identycznych odcinków. Wygodne jest grupowanie poleceń przekazywania każdej sekcji w jednym wierszu - skraca to zapis algorytmu i czyni go bardziej zrozumiałym. Zmiana otoczenia Robot. Aby wymusić działanie Robota w nowym środowisku, należy go wczytać za pomocą następujących poleceń menu głównego: Wybierz element „Robot” „Zmień środowisko startowe” Otwórz żądany folder i wybierz plik. Tworzenie nowego środowiska. Aby stworzyć nowe środowisko dla Robota, musisz wykonać polecenia menu głównego: Wybierz pozycję "Narzędzia" "Edytuj środowisko startowe". W oknie "Ustawienia" wybierz element "Ustawienia" "Nowe ustawienie" Ustaw ilość wierszy i kolumn. Umieść ściany jednym kliknięciem myszy i przesuń Robota do wybranej komórki. Zapisz środowisko za pomocą poleceń: „Środowisko” „Zapisz jako” Określ nazwę pliku i folder do umieszczenia. Naciśnij przycisk „Zapisz”. Dodaj/Usuń ścianę – kliknij na granicę między komórkami. Koloruj / Wyczyść komórkę - kliknij komórkę. Umieść / Usuń punkt - kliknij komórkę, naciskając Klawisz Ctrl. Ustaw promieniowanie, etykiety - kliknij prawym przyciskiem myszy. Przesuń robota - przeciągnij myszą. „Wykonanie” Wykonanie programu. „Uruchom nieprzerwanie” Niezależna praca na komputerze: 1. Załaduj nowe środowisko, przesuń Robota do punktu „B”, maluj wzdłuż punktów oznaczonych symbolem „kropki”: „Warsztat dla Robota” folder „1” zadanie „ C” (materiały ze strony K. Polyakova http://kpolyakov.narod.ru), utwórz program, otwórz okno Robota i uruchom program do wykonania. Zapisz program w swoim folderze pod nazwą „1_B”. 2. Utwórz nowe ustawienie, zapisz je w swoim folderze pod nazwą „Ustawienia_1”. Skomponuj program dla nowego środowiska i zapisz go w swoim folderze pod nazwą „nowe_środowisko_1”. 3. **Rozwiąż inne problemy z folderu nr 1 warsztatów. -4- B

p. 5

Lekcja 2. Algorytmy cykliczne. Cykl N - razy. Powtórzenie zadania: Petya stworzył algorytm dla Walk Robota. Kola skasował w nim jedno polecenie. Określ, które polecenie Kolya skasował, jeśli wiadomo, że Robot musi wrócić do stan początkowy. Odpowiedź: właściwie użyj Robot alg Walk start. w górę; w prawo. ? . droga w dół; lewy; left end nc N razy · seria poleceń kc Podczas kompilowania algorytmów często zdarza się, że pewna sekwencja poleceń musi być wykonana kilka razy z rzędu. Na przykład przykład numer 2 z ostatniej lekcji. Aby uprościć pisanie algorytmu w takich przypadkach, możesz użyć polecenia - „Pętla N-razy”. N to wyrażenie całkowite określające liczbę powtórzeń. Po wykonaniu algorytmu sekwencja poleceń jest cyklicznie powtarzana określoną liczbę razy. Ta liczba może być zerowa lub nawet ujemna. Przypadki te nie są uważane za błędne, tylko treść pętli nie zostanie wykonana ani razu, a komputer natychmiast przystąpi do wykonywania poleceń napisanych po kts. Przykład 1. Wymagane jest przeniesienie Robota z punktu A do punktu B. A B Przykład 2. Pokoloruj rząd 16 komórek. Przykład 3. Wypełnij prostokąt 5(wiersze) x 6(kolumny). użyj Robot Alg Rectangle start nc 5 razy kc end Pętlę można umieścić wewnątrz innej pętli. Następnie nazywa się to zagnieżdżonym. -5-

p. 6

Samodzielna praca na komputerze: Przykład 4. Przesuńmy Robota z pozycji początkowej do punktu oznaczonego gwiazdką i zamalujmy po drodze komórki labiryntu. Stwórz środowisko i program. Zapisz pliki w swoim folderze. Przykład 5. Przenieś Robota z pozycji początkowej do Bazy i zamaluj komórki zaznaczone kropką. Stwórz środowisko i program. Zapisz pliki w swoim folderze. Przykład 6. Konieczne jest poprowadzenie Robota przez labirynt od pozycji początkowej do punktu A. Przykład 7. Konieczne jest poprowadzenie Robota wzdłuż korytarza od pozycji początkowej do punktu A, patrząc na każdy z bocznych korytarzy. Przykład 8. Napisz program do malowania komórek pola oznaczonego *. Początkowa pozycja Robota jest oznaczona ikoną ◊. Przykład 9*. Na polu wykonawcy wyeksponowane są ściany. Konieczne jest znalezienie początkowej, optymalnej pozycji wykonawcy i napisanie programu, którego wynikiem będą wypełnione komórki (jak pokazano na rysunku). **Tworzyj programy korzystając z folderu „Warsztat dla Robota” _ nr 2. -6-

p. 7

Lekcja 3 Musimy nauczyć się tworzyć uniwersalne algorytmy, które nie będą zależeć od odległości między Robotem a ścianą, długości ścian. W tym celu użyjemy nowego operatora pętli. nt while condition seria poleceń kts Podczas wykonywania cyklu komputer powtarza następujące czynności:  sprawdza warunek;  jeśli warunek jest spełniony, polecenia ciała pętli są wykonywane, a warunek jest ponownie sprawdzany itd.  jeśli warunek nie jest spełniony, to wykonanie po lewej stronie wolnej pętli jest zakończone, a polecenia wykonywane po prawej stronie po prawej stronie swobodnie zapisane po kts. dolna ściana dolna wolna  warunki cyklu (polecenia-pytania): górna ściana górna wolna komórka zacieniowana komórka czysta Uwagi.  Jeśli warunek nie jest spełniony od samego początku, to ciało pętli nie zostanie wykonane ani razu!  Wykonanie pętli może się nie zakończyć, jeśli warunek jest spełniony przez cały czas. Taka sytuacja zwykle powstaje w wyniku błędów w NC BYA po prawej stronie swobodnie kompilujących algorytmów. prawo; po lewej Przykład algorytmu nieskończonego (brak ściany po prawej): Warunki KC mogą być proste i złożone. Prostym warunkiem jest zwykle jakiś czek. Przykładem może być dowolne pytanie-komend Robota. Warunek złożony składa się z kilku prostych warunków przy użyciu słów serwisowych AND, OR, NOT. Jeśli między proste terminy oznacza AND, to aby warunek złożony był spełniony, konieczne jest, aby oba proste okazały się prawdziwe. Jeśli pomiędzy prostymi warunkami jest OR, to aby warunek złożony został spełniony, wystarczy, że przynajmniej jeden prosty warunek jest prawdziwy. Przykład 2. Robot Przykład 1. Musi zamalować, aby przenieść wskazane przez bota rakiety do bazy. na obrazie. Długość ściany i odległość od ściany nie są znane. użyj Robot alg To Base wcześnie. nc, gdy górna część jest wolna. . w górę. kt. nts, ​​gdy ściana jest na górze. . w prawo. kt. w górę -7-

p. osiem

▪ Samodzielna praca na komputerze: Gdzieś w polu Robot znajduje się ściana w postaci narożnika, której wymiary są nieznane. Robot z dowolnej komórki po lewej stronie ściany, ale zawsze naprzeciw niej, musi dotrzeć do ściany i pomalować wszystkie komórki wzdłuż ściany za nią, jak pokazano na rysunku. ▪ Konieczne jest przemieszczenie Robota z jego początkowej pozycji do punktu A podczas zamalowywania wskazanych komórek pola. Wymiary ścian i odległość między nimi mogą być dowolne. ▪ Kompiluj programy używając folderu Robot Workshop  Folder_4_Zadania_А_С_D  Folder_5_Zadania_A_B_C_D Lekcja 4. Praca praktyczna nr1. Algorytmy cykliczne dla Robota. Opcja 1 Zadanie 1. Pomaluj komórki znajdujące się po lewej stronie ściany lub na szczycie ściany. Odległość robota od ściany jest nieznana. Długość murów nie jest znana. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. R Zadanie 2. Wykonawca Robot znajduje się gdzieś w obrębie ograniczonego kwadratu. Długość boku kwadratu nie jest znana. Napisz algorytm dla Robota, który maluje wszystkie komórki znajdujące się na przekątnej kwadratu od lewego górnego rogu do prawego dolnego rogu. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. Zadanie 3. Przenieś performera z komórki A do komórki B, jednocześnie zamalowując zaznaczone komórki. Długość murów i odległość między nimi nie są znane. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. -osiem-

p. 9

Zadanie 4. Należy przesunąć Robota z pozycji początkowej (◊) do punktu A, jednocześnie zamalowując wskazane komórki pola. Wymiary ścian i odległość między nimi mogą być dowolne. Zadanie 5. Na nieskończonym polu jest drabina. Liczba kroków może być dowolna. Dolna pozioma ściana biegnie nieskończenie w prawo, górna pozioma ściana rozciąga się nieskończenie w lewo. Robot znajduje się gdzieś nad dolną poziomą ścianą. Pomaluj komórki znajdujące się wzdłuż pionowej części stopni (patrz rys.). Dowolna końcowa pozycja Robota. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. Każdy krok ma rozmiar: 2 komórki w poziomie i 2 komórki w pionie. Opcja 2 Zadanie 1. Napisz dla Robota algorytm, który zamaluje wszystkie komórki znajdujące się po lewej stronie i nad dolnymi bokami prostokąta i przylegające do ściany. Odległość robota od ścian i długość ścian nie są znane. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. Zadanie 2. Wykonawca Robot znajduje się gdzieś w obrębie ograniczonego kwadratu. Długość boku kwadratu nie jest znana. Napisz algorytm dla Robota, który maluje wszystkie komórki znajdujące się na przekątnej kwadratu od prawego górnego rogu do lewego dolnego rogu. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. Zadanie 3. Przenieś performera z komórki A do komórki B, jednocześnie zamalowując zaznaczone komórki. Długość murów i odległość między nimi nie są znane. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. -9-

p. dziesięć

Zadanie 4. Należy przesunąć Robota z pozycji początkowej (◊) do punktu A, jednocześnie zamalowując wskazane komórki pola. Wymiary ścian i odległość między nimi mogą być dowolne. Zadanie 5. Na nieskończonym polu jest drabina. Liczba kroków może być dowolna. Dolna pozioma ściana biegnie nieskończenie w lewo, górna pozioma ściana rozciąga się nieskończenie w prawo. Robot znajduje się gdzieś nad dolną poziomą ścianą. Pomaluj komórki znajdujące się wzdłuż pionowej części stopni (patrz rys.). Dowolna końcowa pozycja Robota. Stwórz środowisko i napisz program. Zapisz pliki w swoim folderze. Każdy krok ma rozmiar: 2 komórki w poziomie i 2 komórki w pionie. Lekcja 5 Polecenie „if _ then _ else _ all” Widok ogólny polecenia: if warunek then akcje 1 else akcje 2 all Struktura polecenia: po sprawdzeniu warunku wykonywane są akcje 1, jeśli warunek jest spełniony, w przeciwnym razie wykonywane są akcje 2. Po czyli polecenia pisane po słowie all. W przeciwnym razie może brakować gałęzi (rozgałęzienie niepełne). W tym przypadku polecenie wygląda tak: jeśli warunek, to wszystkie akcje, jeśli warunek nie jest spełniony, to polecenia wpisane po oficjalne słowo wszystko. Przykład 1. Utwórz program, który poprowadzi Robota przez korytarz o dowolnej długości. Po drodze Robot musi zamalować wszystkie komórki, które nie mają ściany poniżej. Liczba otworów jest nieznana. - dziesięć -

p. jedenaście

Przykład 2. Przesuń Robota do punktu B i zamaluj komórki oznaczone kropką. Długość muru i liczba „ślepych zaułków” nie jest znana. użyj Robot alg To Base start nt podczas gdy od prawej do prawej jeśli góra jest wolna to w górę pomaluj w dół wszystko kc w dół koniec Przykład** Oblicz ile zacieniowanych komórek znajduje się w korytarzu (aby wykonać, musisz przeanalizować dodatkowe konstrukcje: integer count | opis zmiennej typu integer liczba:= liczba+1 | zwiększ zmienną o 1 wynik liczba | wyświetl wartość zmiennej na ekranie Samodzielna praca na komputerze: Utwórz środowisko i rozwiąż problem Zadanie 1. Utwórz algorytm aby robot przechodził przez otoczenie: Zadanie 2. Napisz program, w którym Robot pokonuje dowolną liczbę przeszkód i dociera do ściany. Przeszkody można ustawić w dowolnym miejscu.-11-

p. 12

Zadanie 3. Pokoloruj komórki oznaczone kropkami. Zadanie 4. użyj Robota Alg To the Base zacznij malować na nc, aż prawo będzie wolne do prawej, jeśli góra jest wolna, a następnie do góry; przemalować; dół inaczej pomaluj wszystko kc dół con Zadanie 5. Zamaluj komórki znajdujące się przy ścianach. Napisz algorytm, który wypełni wszystkie komórki między dwiema ścianami. Która ściana jest po lewej, nie jest znana. użyj Robot alg between_walls start nt until (nie z góry) lub (nie z dołu) right if (nie z góry) i (nie z dołu), a następnie zamaluj wszystkie kc end użyj Robot alg uch5 start right nts do wolnego od dołu; zamaluj w prawo; w dół, aż lewa strona zostanie swobodnie zamalowana; po lewej stronie kts nts, aż lewa zostanie swobodnie zamalowana; malować kts; lewy; przemalować; w górę; nts, ​​aż góra zostanie swobodnie zamalowana; up kts nts, aż będzie można swobodnie malować od góry; lewo kts z zadaniem 6**. Robot jest na początku korytarza. W korytarzu na górze i na dole znajdują się ślepe zaułki o nieznanej długości, ale ich położenie nie jest naprzeciw siebie. Nieznana jest również długość korytarza. Napisz algorytm pomalowania wszystkich ślepych uliczek i wyjścia z korytarza. - 12 -

p. 13

używaj wcześnie maskonurów robota alg. nts jeszcze (górna ściana) lub (dolna ściana). . w prawo. . if (góra wolna) i (dolna ściana) . . . następnie. . . . nc, gdy górna część jest wolna. . . . . w górę; przemalować. . . . kt. . . . nc, gdy dno jest wolne. . . . . droga w dół. . . . kt. . wszystko. . if (dół wolny) i (górna ściana). . . następnie. . . . nc, gdy dno jest wolne. . . . . droga w dół; przemalować. . . . kt. . . . nc, gdy górna część jest wolna. . . . . w górę. . . . kt. . wszystko; . kts; con Polecenia zaznaczone na czerwono są potrzebne do zatrzymania się podczas wychodzenia z korytarza. Lekcja 6 Algorytmy cykliczne i rozgałęziające dla Robota. Rozwiązywanie zadań za pomocą KIM GIA. Komentarz. Podczas kompilacji algorytmów problem należy rozwiązać w ogólnej formie, tj. kształt figury jest określony, ale długości boków, liczba stopni i inne parametry mogą się różnić. Program powinien działać na dowolnej figurze podobnego rodzaju! Zadanie 1. Utwórz ustawienie i napisz algorytm, który zamaluje wszystkie komórki znajdujące się na prawo od pionowych sekcji ściany. użyj robota alg zadanie 1 start w dół; w prawo. nc, gdy górna część jest wolna. . pomalować. kt. nc, aż górna część będzie wolna. . w prawo. kt. w górę. nc, aż lewa strona będzie wolna. . przemalować; w górę. kts con - 13 -

p. czternaście

użyj robota alg zadanie 2 początek. nts po prawej stronie jest bezpłatny. . w prawo. kt. nc, dopóki prawo nie będzie wolne. . w górę. kt. w prawo. nc, dopóki prawo nie będzie wolne. . malować; w prawo. kts con Wysokość każdego kroku to jedna komórka, szerokość to 2 komórki. Zadanie 2. Napisz algorytm, który wypełni wszystkie komórki powyżej kroków. Zadanie 3. Pomaluj wszystkie komórki znajdujące się nad stopniami schodów schodzących od lewej do prawej. użyj robota alg zadanie 3 początek. nc, gdy dno jest wolne. . droga w dół; lewy; w lewo. kt. nc, aż lewa strona będzie wolna. . przemalować; w prawo. . przemalować; w prawo. . droga w dół. kts con Zadanie 4. Pokoloruj komórki labiryntu. użyj Robot alg Labyrinth wcześnie. w prawo. nts na prawej ścianie. . przemalować; w górę. . przemalować; w górę. . przemalować; w prawo. . przemalować; droga w dół. . przemalować; droga w dół. . przemalować; w prawo. kts con Zadanie 5** Wykonawca znajduje się w dowolnej celi, ale zawsze naprzeciwko ściany (obrazek powyżej). W rezultacie konieczne jest zamalowanie komórek, jak pokazano na poniższym rysunku. - czternaście -

p. piętnaście

użyj robota alg Zakończ start. nc podczas gdy po prawej jest wolny po prawej; . kt. nc aż prawa ściana w dół; . kt. prawo; w górę. nts jeszcze (ściana po lewej i wolna na górze) lub (ściana na górze i wolna po prawej) lub (ściana po prawej i wolna na dole) lub (ściana na dole i wolna po lewej). . if (lewa ściana) i (góra wolna) . . . następnie. przemalować; w górę. . wszystko. . if (górna ściana) i (prawa wolna) . . . następnie. . przemalować; w prawo. . wszystko. . jeśli po prawej stronie jest ściana, a dno jest wolne. . . następnie. . przemalować; droga w dół; . . wszystko. . jeśli ściana jest poniżej, a lewa jest wolna. . . następnie. . . przemalować; lewy; . . wszystko; . kts; con Lekcja 7. Algorytmy pomocnicze Przy rozwiązywaniu niektórych problemów wygodnie jest rozbić je na mniejsze podzadania, z których każde można sformalizować jako niezależny algorytm. W tym przypadku najpierw kompilowany jest tzw. algorytm główny, w którym wywołania algorytmów pomocniczych służą do rozwiązywania podzadań, które są dodawane później. Ten sposób rozwiązywania nazywa się metodą udoskonalania sekwencyjnego. Pozwala grupie programistów pracować nad projektem, a każdy z nich rozwiązuje swoje własne podzadanie. Polecenie wykonania algorytmu pomocniczego nazywa się wywołaniem i jest zapisane w treści algorytmu głównego. W języku algorytmicznym najpierw pisany jest algorytm główny, a w rzędzie poniżej algorytmy pomocnicze. Przykład 1 Rozważ ustawienie z lekcji #1. Robota należy przenieść do komórki oznaczonej kropką. użyj Robot alg Korytarz obejście startu; objazd; objazd; objazd; bypass con alg uruchomienie bypassu; w górę; w dół; droga w dół; prawo con - 15 -