Najczęściej instrukcje pisane są w formie zapisu w języku algorytmicznym. Niezbędne jest dokładne zalecenie wszystkich kroków i ich wykonanie. Istnieją oczywiste różnice między szkolnym językiem algorytmicznym a językami programowania. Z reguły nie tylko komputer pełni rolę wykonawcy w pierwszej wersji, ale także inne urządzenie zdolne do wykonywania pracy. Żaden program napisany w języku algorytmicznym nie musi być wykonany przez technologię. Realizacja wszystkich instrukcji w praktyce to czysto odrębna kwestia. Opis algorytmu w języku algorytmicznym zostanie również rozważony poniżej. Pomoże zrozumieć urządzenie tego systemu.

Nauka w szkole

Często w szkołach uczy się języka algorytmicznego, najczęściej znanego jako język do nauki. Otrzymała dystrybucję na dużą skalę ze względu na to, że używa słów, które są najbardziej zrozumiałe dla każdego ucznia. Podobny język ze składnią w języku rosyjskim został wprowadzony dawno temu, a mianowicie w połowie lat 80. XX wieku. Służył do tworzenia podstaw dla uczniów i nauczania ich na kursie informatyki bez komputera. Język ten został opublikowany w 1985 roku w jednym z podręczników. Był też kilkakrotnie przedrukowywany do specjalnych książek przeznaczonych do nauczania w klasach 9 i 10. Łączny nakład publikacji wyniósł 7 mln egzemplarzy.

Sekwencja zapisu algorytmu

Przede wszystkim musisz zapisać kombinację liter ALG. Następuje nazwa algorytmu. Następnie po START należy opisać serię poleceń. Operator KOH oznacza koniec programu.

Opis algorytmu w języku algorytmicznym:

Firma ALG

POCZĄTEK

obróć się o 90 stopni w lewo

KOH

Podczas pisania słowa kluczowe muszą być podkreślone lub pogrubione. Wcięcia powinny być używane do wskazania bloków logicznych, a jeśli występują pary słów początkowych i końcowych, użyj pionowy pasek, co oznacza połączenie.

Tworzenie algorytmów

Stare rekordy można wykorzystać do pisania nowych instrukcji. Takie instrukcje nazywane są pomocniczymi. Takim algorytmem może być dowolny ze wszystkich opisanych, skompilowanych wcześniej. Istnieje również możliwość, że system ten będzie korzystał z dodatkowego algorytmu, który sam otrzymał odniesienie do systemów pomocniczych.

Często przy tworzeniu instrukcji istnieje potrzeba użycia tylko jednego algorytmu jako dodatkowego. Dlatego zapisy mogą być często skomplikowane i nieporęczne. Warto jednak zauważyć, że możliwość dokonania skierowania jest łatwiejsza niż kilkakrotne przepisywanie tych samych rekordów.

Dlatego w praktyce często stosuje się standardowy algorytm pomocniczy, który jest stale podporządkowany użytkownikowi. Instrukcja może mieć odniesienie zarówno do siebie, jak i do każdego innego. Polecenia języka algorytmicznego są przeznaczone do takich działań. Takie instrukcje nazywane są rekurencyjnymi.

Polecenie bind-to-self znajduje się w samym systemie. Taka rekurencja jest bezpośrednia. Pośredni to taki, w którym algorytm jest wywoływany w dowolnej innej instrukcji pomocniczej.

Algorytmy, które mają określoną sekwencję poleceń, mogą stale się zmieniać w zależności od wyników wykonywania specjalnych części programu. Takie systemy nazywane są rozgałęzieniami. Aby je utworzyć, musisz użyć specjalnego polecenia branch. Ma skrócony i kompletny schemat pisowni. Często zdarzają się cykliczne algorytmy, które kilkakrotnie wykonują specjalne instrukcje.

E-warsztat

Aby ulepszyć naukę teorii języka gramatycznego, specjaliści z Mechmata Moskiewskiego Uniwersytetu Państwowego w 1985 roku stworzyli specjalny kompilator. Nazywał się „E-warsztat”. Dzięki niemu można było wprowadzać, modyfikować i uruchamiać programy. Pewna grupa wykonawców została wydana w następnym roku. Mówimy o „Robocie”, „Drafcie”, „Dwunożnym”, „ATV”. Pozwoliło to na prostą i łatwą implementację algorytmów. Ten kompilator stał się bardzo popularny i był używany na niektórych komputerach. Wystarczająco przez długi czas Ten język programowania został ulepszony i zmieniony. W 1990 roku w podręczniku ukazała się jego późniejsza wersja.

Idol

Teraz szkolny język algorytmiczny przeżywa swoje drugie narodziny, po opracowaniu specjalnego pakietu „Kumir” dla systemów Windows i Linux. System współpracuje z kilkoma wykonawcami. Klasyczne wśród nich to „Robot”, „Drafter”. Ten sam pakiet jest zawarty w instalacji plik linux"Szkoła". Ten system został opracowany specjalnie na zamówienie Rosyjskiej Akademii Nauk. Jest rozpowszechniany bezpłatnie i za darmo. W ciągu ostatnich kilku lat opisywany język był aktywnie proponowany do użycia w UŻYTKOWANIU jako jeden z

Przypisanie języka

Język algorytmiczny służy do rozwiązywania dość szerokiego zakresu problemów. Nadaje się do opanowania zarówno matematyki, jak i ćwiczeń z innych przedmiotów. Należy zauważyć, że służy również ułatwieniu studentom studiowania podobnych tematów.

Różnice między językiem maszynowym a algorytmicznym

Najbardziej znanym przedstawicielem języków zależnych od maszyny jest „Assembler”. Podczas programowania na nim osoba musi wyraźnie wskazać tłumaczowi, dzięki specjalnym operatorom, które komórki pamięci należy wypełnić lub przenieść. Ponieważ składnia „Assemblera” jest jak najbardziej zbliżona do komputerowej formy pisania, raczej trudno ją studiować. Dlatego języka algorytmicznego uczy się w szkole, a także na początku programowania na I roku studiów wyższych.

Funkcje standardowe

Język algorytmiczny ma specjalne funkcje standardowe, które otrzymały status „wbudowane”. To dzięki nim można łatwo napisać wiele operacji na liczbach i wyrażeniach bez wykonywania rutynowych wpisów. Program w języku algorytmicznym jest dość prosty. Zwykłe funkcje umożliwiają obliczenie pierwiastka kwadratowego, logarytmów, modułu i tak dalej. Najpopularniejsze metody wbudowane to:

  • moduł absolutny abs(X);
  • pierwiastek kwadratowy sqrt(X);
  • naturalny i ln(X), lg(X);
  • minimum i maksimum min (X,Y), max (X,Y);
  • funkcje trygonometryczne sin(X), cos(X), tg(X), ctg(X).

Dzięki temu każdy programista lub po prostu osoba ucząca się pracy z językiem algorytmicznym będzie w stanie z łatwością napisać zadanie matematyczne bez uciekania się do wymyślania roweru. Dlatego należy zauważyć, że ten język jest dość wygodny. Jest łatwy do zrozumienia i bardzo łatwy do zrozumienia. Nic dziwnego, że znalazł się w szkolnym programie nauczania. Uczniowie lubią się tego uczyć.

Algorytm to dokładna i zrozumiała kolejność wykonywania przez wykonawcę sekwencji działań mających na celu rozwiązanie problemu.

Nazwa „algorytm” pochodzi od łacińskiej formy nazwiska środkowoazjatyckiego matematyka al-Khwarizmi – Algorithmi. Algorytm to jedno z podstawowych pojęć informatyki i matematyki.

Wykonawcą algorytmu jest jakiś abstrakcyjny lub rzeczywisty (techniczny, biologiczny lub biotechniczny) system zdolny do wykonywania czynności zaleconych przez algorytm.

Wykonawcę charakteryzuje:

podstawowe czynności;

system dowodzenia;

Środowisko (lub otoczenie) to „siedlisko” wykonawcy. Na przykład dla wykonawcy Robot z podręcznika szkolnego środowisko jest nieskończonym polem komórkowym. Ściany i zacienione komórki są również częścią środowiska. A ich lokalizacja i położenie samego Robota determinują specyficzny stan środowiska.

Każdy executor może wykonywać tylko polecenia z jakiejś ściśle określonej listy - systemu poleceń executora. Dla każdego polecenia należy określić warunki stosowalności (w jakich stanach środowiska można wykonać polecenie) oraz opisać wyniki wykonania polecenia. Na przykład polecenie Robota „w górę” może zostać wykonane, jeśli nad Robotem nie ma ściany. Jej wynikiem jest przemieszczenie Robota o jedną komórkę w górę.

Po wywołaniu polecenia executor wykonuje odpowiednią akcję elementarną.

Awarie executora występują, gdy komenda jest wywoływana, gdy stan środowiska jest dla niego niepoprawny.

Zwykle wykonawca nie wie nic o celu algorytmu. Wykonuje wszystkie otrzymane polecenia bez zadawania pytań „dlaczego” i „dlaczego”.

W informatyce uniwersalnym wykonawcą algorytmów jest komputer.

Główne właściwości algorytmów są następujące:

Zrozumiałość dla wykonawcy – tj. Wykonawca algorytmu musi wiedzieć, jak go wykonać.

Dyskrecja (nieciągłość, separacja) – tj. algorytm powinien reprezentować proces rozwiązywania problemu jako sekwencyjne wykonanie prostych (lub wcześniej zdefiniowanych) kroków (etapów).

Pewność – tj. każda reguła algorytmu musi być jasna, jednoznaczna i nie pozostawiać miejsca na arbitralność. Dzięki tej właściwości wykonanie algorytmu ma charakter mechaniczny i nie wymaga żadnych dodatkowych instrukcji ani informacji o rozwiązywanym problemie.

Wydajność (lub skończoność). Ta właściwość polega na tym, że algorytm musi prowadzić do rozwiązania problemu w skończonej liczbie kroków.

Charakter masowy. Oznacza to, że algorytm rozwiązania problemu jest opracowany w postaci ogólnej, tj. powinien mieć zastosowanie do pewnej klasy problemów, które różnią się tylko danymi początkowymi. W takim przypadku dane początkowe można wybrać z pewnego obszaru, który nazywa się obszarem stosowalności algorytmu.

W praktyce najczęściej spotykane są następujące formy reprezentacji algorytmów:

werbalne (zapisy w języku naturalnym);

grafika (obrazy z symboli graficznych);

pseudokody (półsformalizowane opisy algorytmów w warunkowym języku algorytmicznym, obejmujące zarówno elementy języka programowania, jak i frazy języka naturalnego, ogólnie przyjętą notację matematyczną itp.);

programistyczny (teksty w językach programowania).

Werbalny sposób pisania algorytmów to opis kolejnych etapów przetwarzania danych. Algorytm podany jest w dowolnej prezentacji w języku naturalnym.

Na przykład. Napisz algorytm znajdowania największego wspólnego dzielnika (NWD) dwóch liczb naturalnych.

Algorytm może wyglądać następująco:

ustaw dwie liczby;

jeśli liczby są równe, weź dowolną z nich jako odpowiedź i zatrzymaj się, w przeciwnym razie kontynuuj algorytm;

określić największą z liczb;

zamień większą z liczb na różnicę między większą i mniejszą z liczb;

powtórz algorytm z kroku 2.

Opisany algorytm ma zastosowanie do dowolnych liczb naturalnych i powinien prowadzić do rozwiązania problemu. Przekonaj się sam, używając tego algorytmu do określenia największego wspólnego dzielnika 125 i 75.

Metoda werbalna nie jest powszechnie stosowana z następujących powodów:

takie opisy nie są ściśle sformalizowane;

cierpią z powodu gadatliwości zapisów;

pozwalają na niejednoznaczną interpretację poszczególnych recept.

Graficzny sposób prezentacji algorytmów jest bardziej zwarty i wizualny niż sposób werbalny.

W reprezentacji graficznej algorytm jest przedstawiony jako sekwencja połączonych ze sobą bloków funkcjonalnych, z których każdy odpowiada wykonaniu jednego lub więcej działań.

Taki reprezentacja graficzna nazywa się schematem blokowym lub schematem blokowym.

Na schemacie blokowym, każdy rodzaj akcji (wprowadzanie danych początkowych, obliczanie wartości wyrażeń, sprawdzanie warunków, kontrolowanie powtarzania czynności, obróbka wykańczająca itp.) odpowiada figurze geometrycznej reprezentowanej jako symbol blokowy. Symbole blokowe są połączone liniami przejściowymi, które określają kolejność wykonywania akcji.

W tabeli 1 wymieniono najczęściej używane znaki.

Blok „proces” służy do wyznaczenia akcji lub sekwencji działań, która zmienia wartość, formę prezentacji lub rozmieszczenie danych. Aby poprawić widoczność diagramu, kilka oddzielnych bloków przetwarzania można połączyć w jeden blok. Prezentacja poszczególnych operacji jest dość bezpłatna.

Blok „decyzja” służy do wyznaczania przejść sterujących według warunku. Każdy blok „decyzji” musi określać pytanie, warunek lub porównanie, które definiuje.

Blok „modyfikacji” służy do organizowania struktur cyklicznych. (Słowo modyfikacja oznacza modyfikację, transformację). Wewnątrz bloku zapisany jest parametr cyklu, dla którego wskazana jest jego wartość początkowa, warunek brzegowy i krok zmiany wartości parametru dla każdego powtórzenia.

Blok „predefiniowany proces” służy do wskazywania wywołań algorytmów pomocniczych, które istnieją autonomicznie w postaci niektórych niezależne moduły oraz wywołania procedur bibliotecznych.

Pseudokod to system notacji i reguł zaprojektowany do jednolitego pisania algorytmów.

Zajmuje pozycję pośrednią między językami naturalnymi i formalnymi.

Z jednej strony jest zbliżony do zwykłego języka naturalnego, więc algorytmy można w nim pisać i czytać jak zwykły tekst. Z drugiej strony w pseudokodzie zastosowano niektóre konstrukcje formalne i symbolikę matematyczną, co zbliża notację algorytmu do ogólnie przyjętej notacji matematycznej.

Pseudokod nie przyjmuje ścisłych reguł składniowych przy pisaniu poleceń właściwych dla języków formalnych, co ułatwia napisanie algorytmu na etapie projektowania i umożliwia wykorzystanie szerszego zestawu poleceń przeznaczonych dla abstrakcyjnego executora. Jednak w pseudokodzie są zwykle pewne konstrukcje nieodłączne od języków formalnych, które ułatwiają przejście od pisania w pseudokodzie do pisania algorytmu w języku formalnym. W szczególności w pseudokodzie, podobnie jak w językach formalnych, występują wyrazy pomocnicze, których znaczenie jest ustalone raz na zawsze. Są pogrubione w tekście drukowanym i podkreślone w tekście odręcznym. Nie ma jednej ani formalnej definicji pseudokodu, więc możliwe są różne pseudokody, różniące się zestawem słów serwisowych i podstawowymi (podstawowymi) strukturami.

Przykładem pseudokodu jest szkolny język algorytmiczny w notacji rosyjskiej (szkolny AL), opisany w podręczniku A.G. Kushnirenko i wsp. „Podstawy Informatyki i Inżynierii Komputerowej”, 1991. Język ten będzie określany po prostu jako „język algorytmiczny”.

Podstawowe słowa funkcyjne

Widok ogólny algorytmu:

nazwa algorytmu alg (argumenty i wyniki)

biorąc pod uwagę warunki stosowalności algorytmu

potrzebujesz celu algorytmu

początek opisu wartości pośrednich

| sekwencja poleceń (treść algorytmu)

Część algorytmu od słowa alg do słowa start nazywana jest nagłówkiem, a część zawarta między słowami start i end nazywana jest treścią algorytmu.

W klauzuli alg, po nazwie algorytmu, w nawiasach, znajdują się cechy (arg, res) i typ wartości (integer, thing, sim, lit lub log) wszystkich zmiennych wejściowych (argumenty) i wyjściowych (wyniki). wskazany. Przy opisie tablic (tablic) używana jest zakładka słowa serwisowego uzupełniona parami granic dla każdego indeksu elementów tablicy.

Przykłady zdań alg:

alg Objętość i powierzchnia cylindra (arg ref R, H, res ref V, S)

alg Roots QvUr(arg w, b, c, res w x1, x2, res oświetlony t)

alg Exclude element(arg integer N, arg res tab tab A)

alg Diagonal(arg integer N, arg integer tab A, res oświetlony Otvet)

Oferty są składane i nie mogą być wiążące. Zaleca się pisanie wypowiedzi opisujących stan środowiska wykonawczego algorytmu, na przykład:

arg substitution(arg świeci Str1, Str2, arg res świeci Tekst)

podane | długości podciągów Str1 i Str2 są takie same

potrzeba | wszędzie w linii Text podłańcuch Str1 jest zastępowany przez Str2

alg Liczba maksimów (arg integer N, arg real tab A, res integer K)

podane | N>0

potrzeba | K - liczba maksymalnych elementów w tabeli A

alg Resistance (arg real R1, R2, arg integer N, res real R)

podane | N>5, R1>0, R2>0

potrzeba | R - rezystancja obwodu

Tutaj w zdaniach jest on podany i jest konieczny po znaku "|" komentarze są rejestrowane. Komentarze można umieszczać na końcu dowolnej linii. Nie są one przetwarzane przez tłumacza, ale znacznie ułatwiają zrozumienie algorytmu.

Algorytmy można przedstawić jako pewne struktury składające się z oddzielnych podstawowych (tj. głównych) elementów.

Oczywiście przy takim podejściu do algorytmów badanie podstawowych zasad ich budowy należy rozpocząć od przestudiowania tych podstawowych elementów.

Do ich opisu posłużymy się językiem schematów algorytmicznych oraz szkolnym językiem algorytmicznym.

Logiczną strukturę dowolnego algorytmu można przedstawić za pomocą kombinacji trzech podstawowych struktur:

następny,

rozgałęzienie,

Cechą charakterystyczną struktur podstawowych jest to, że mają jedno wejście i jedno wyjście.

Ministerstwo Edukacji Federacja Rosyjska Państwowy Uniwersytet Techniczny w Permie

Krzesło Technologie informacyjne i zautomatyzowane systemy

Vikentyeva O. L.

Streszczenie wykładów z przedmiotu „Języki algorytmiczne i programowanie” (Podstawy języka C++, I semestr)

Wstęp

W pierwszym semestrze omawiane są podstawowe konstrukcje języka C oraz podstawowa technologia programowania (programowanie strukturalne).

Programowanie strukturalne to technologia tworzenia programów, która dzięki przestrzeganiu określonych zasad skraca czas tworzenia i liczbę błędów, a także ułatwia możliwość modyfikacji programu.

1.1. Algorytm i program

Algorytm to dokładna recepta, która definiuje proces obliczeniowy, który przechodzi od zmiany danych początkowych do wyniku końcowego, czyli jest receptą na osiągnięcie jakiegoś celu.

Zestaw narzędzi i zasad prezentowania algorytmu w formie odpowiedniej do wykonania komputer nazywa się językiem programowania, algorytm napisany w tym języku nazywa się programem.

Najpierw zawsze opracowywany jest algorytm działania, a następnie pisany w jednym z języków programowania. Tekst programu jest przetwarzany przez specjalne programy serwisowe - translatory. Języki programowania to języki sztuczne. Różnią się od języków naturalnych ograniczoną liczbą „słów” i bardzo ścisłymi zasadami pisania poleceń (operatorów). Całość tych wymagań tworzy składnię języka programowania, a znaczeniem każdej konstrukcji jest jej semantyka.

1.2 Właściwości algorytmu

1. Charakter masowy: algorytm powinien być zastosowany nie do jednego problemu, ale do całej klasy podobnych problemów (algorytm rozwiązywania równania kwadratowego powinien rozwiązywać nie jedno równanie, ale wszystkie równania kwadratowe).

2. Wydajność: algorytm powinien prowadzić do wyniku w określonej liczbie kroków (przy dzieleniu 1 przez 3 otrzymuje się ułamek okresowy 0,3333(3), aby uzyskać wynik końcowy, należy określić dokładność uzyskania tego ułamka, na przykład do 4 miejsc po przecinku).

3. Ostateczność (determinizm) – każde działanie algorytmu musi być jasne dla jego wykonawcy (instrukcja sprzętu AGD w języku japońskim dla osoby nie znającej języka japońskiego nie jest algorytmem, ponieważ nie ma właściwości determinizmu).

4. Dyskrecja – proces należy opisać za pomocą niepodzielności

operacje wykonywane w każdym kroku (tj. kroków nie można podzielić na mniejsze kroki).

Algorytmy mogą być reprezentowane w następujących formach:

1) słowny opis algorytmu.

2) graficzny opis algorytmu.

3) za pomocą algorytmicznego języka programowania

1.2. Kompilatory i tłumacze

Z za pomocą języka programowania tworzony jest tekst opisujący wcześniej skompilowany algorytm. Aby uzyskać działający program, musisz przetłumaczyć ten tekst na sekwencję instrukcji procesora, co jest wykonywane za pomocą programy specjalne, które nazywane są tłumaczami. Istnieją dwa rodzaje tłumaczy: kompilatorzy i tłumacze ustni. Kompilator tłumaczy tekst modułu źródłowego na kod maszynowy, zwany modułem obiektowym, w jednym ciągłym procesie. Jednocześnie najpierw przygląda się kodowi źródłowemu programu w poszukiwaniu błędów składniowych. Interpreter wykonuje moduł źródłowy programu w trybie operator przez operatora, zgodnie z

przebiegu pracy, tłumacząc każdą wypowiedź na język maszynowy.

1.3 Języki programowania

Różne typy procesorów mają różne zestawy instrukcji. Jeśli język programowania koncentruje się na konkretnym typie procesora i uwzględnia jego cechy, nazywa się go językiem programowania niskiego poziomu. Językiem najniższego poziomu jest język asemblerowy, który po prostu reprezentuje każdą instrukcję w kodzie maszynowym jako specjalne symbole zwane mnemonikami. Za pomocą języków niskopoziomowych tworzone są bardzo wydajne i kompaktowe programy, ponieważ programista uzyskuje dostęp do wszystkich możliwości procesora. Dlatego zestawy instrukcji dla różne modele procesory też są inne, wtedy każdy model procesora ma swój własny język asemblera, a program w nim napisany może być używany tylko w tym środowisku. Takie języki służą do pisania małych aplikacji systemowych, sterowników urządzeń i tak dalej.

Dlatego języki programowania wysokiego poziomu nie uwzględniają specyfiki konkretnych architektur komputerowych stworzone programy na poziomie źródłowym są łatwo przenoszone na inne platformy, jeśli zostaną dla nich stworzeni odpowiedni tłumacze. Tworzenie programów w językach wysokiego poziomu jest znacznie łatwiejsze niż w językach maszynowych.

Języki wysokiego poziomu to:

1. Fortran to pierwszy skompilowany język stworzony w Lata 50. XX wieku. Wdrożył szereg ważnych koncepcji programistycznych. Dla tego języka został stworzony duża ilość biblioteki, od pakietów statystycznych po zarządzanie satelitami, dzięki czemu jest nadal używany w wielu organizacjach.

2. COBOL - Skompilowany język obliczeń i rozwiązań ekonomicznych zadania biznesowe opracowane na początku lat 60-tych. Cobol zaimplementował bardzo potężne narzędzia do pracy z dużymi ilościami danych przechowywanych na nośnikach zewnętrznych.

3. Pascal - stworzony na końcu 70s szwajcarskiego matematyka Niklausa Wirtha specjalnie do nauczania programowania. Pozwala rozwijać myślenie algorytmiczne, budować krótkie, dobrze czytelny program, demonstrują podstawowe techniki algorytmizacji, dobrze nadaje się również do realizacji dużych projektów.

4. BASIC - stworzony w 60s również do nauczania programowania. Istnieją do tego kompilatory i interpretery, jest to jeden z najpopularniejszych języków programowania.

5. C - powstał w latach 70. nie był początkowo uważany za masowy język programowania. Zaplanowano wymianę asemblera, aby móc tworzyć te same wydajne i krótkie programy, ale niezależne od konkretnego procesora. Pod wieloma względami jest podobny do Pascala i ma dodatkowe funkcje pracować z pamięcią. Zawiera wiele zastosowanych i programy systemowe, jak również system operacyjny Uniksa.

6. C++ to obiektowe rozszerzenie języka C stworzone przez Bjarne Stroustrupa w 1980 roku.

7. Java to język stworzony na początku przez firmę Sun Lata 90. oparte na C++. Został zaprojektowany w celu uproszczenia tworzenia aplikacji w C++ poprzez eliminację z niego funkcji niskopoziomowych. główna cecha język polega na tym, że nie jest kompilowany do kodu maszynowego, ale do kodu bajtowego niezależnego od platformy (każde polecenie zajmuje jeden bajt). Ten kod można wykonać za pomocą interpretera, wirtualnej maszyny języka Java (JVM).

2. Struktura programu w C++

Program w C ma następującą strukturę: #dyrektywy preprocesora

. . . . . . . . .

# dyrektywy preprocesora funkcja a ()

operatory funkcji w ()

operatorzy

void main() //funkcja od której rozpoczyna się wykonywanie programu operatory

opisy

zadania

funkcja pustej instrukcji

złożony

przemiana

Dyrektywy preprocesora - kontrolują transformację tekstu programu przed jego kompilacją. Autorski program przygotowany w SI w formie plik tekstowy, przechodzi przez 3 etapy przetwarzania:

1) konwersja tekstu preprocesora;

2) kompilacja;

3) układ (edycja łącza lub zespół).

Po tych trzech etapach tworzony jest kod wykonywalny programu. Zadaniem prepro-

cessor - przekształcenie tekstu programu przed jego kompilacją. Reguły przetwarzania wstępnego są definiowane przez programistę za pomocą dyrektyw preprocesora. Dyrektywa zaczyna się od #. Na przykład,

1) #define - wskazuje zasady zastępowania w tekście. #definiuj ZERO 0,0

Oznacza, że ​​każde użycie nazwy ZERO w programie zostanie zastąpione przez

2) #włącz< имя заголовочного файла>- służy do włączenia do tekstu programu tekstu z katalogu „Pliki nagłówkowe” dostarczanego z bibliotekami standardowymi. Każda funkcja z biblioteki C ma odpowiedni opis w jednym z plików nagłówkowych. Lista plików nagłówkowych jest określona przez standard językowy. Użycie dyrektywy include nie obejmuje odpowiedniego numeru startowego.

biblioteki, ale pozwalają jedynie na wstawianie opisów z określonego pliku nagłówkowego do tekstu programu. Kody biblioteczne są podłączane na etapie linkowania, czyli po kompilacji. Chociaż w pliki nagłówkowe zawiera wszystkie opisy funkcji standardowych, tylko te funkcje, które są używane w programie, są zawarte w kodzie programu.

Po przetworzeniu wstępnym w tekście programu nie pozostają żadne dyrektywy preprocesora.

Program jest zbiorem opisów i definicji oraz składa się ze zbioru funkcji. Wśród tych funkcji zawsze musi znajdować się funkcja o nazwie main. Bez tego program nie może działać. Nazwa funkcji poprzedzona jest informacją o typie wartości zwracanej przez funkcję (typ wyniku). Jeśli funkcja niczego nie zwraca, określany jest typ void: void main(). Każda funkcja, w tym main, musi mieć zestaw parametrów, może być pusta, wtedy (void) jest wskazane w nawiasach.

Treść funkcji następuje po nagłówku funkcji. Ciało funkcji to sekwencja definicji, deklaracji i wykonywalnych instrukcji zawartych w aparat ortodontyczny. Każda definicja, opis lub stwierdzenie kończy się średnikiem.

Definicje - wprowadzają obiekty (obiekt to nazwany obszar pamięci, szczególnym przypadkiem obiekt to zmienna) niezbędne do reprezentowania danych przetwarzanych w programie. Przykładem jest

int y = 10 ; //nazwana stała float x ; //zmienny

Opisy - powiadamia kompilator o właściwościach i nazwach obiektów i funkcji opisanych w innych częściach programu.

Operatorzy - definiują działania programu na każdym etapie jego realizacji

Przykładowy program C:

#włączać //dyrektywa preprocesora

pytania testowe

1. Jakie są części programu C++?

2. Czym różni się definicja od deklaracji?

3. Wymień etapy tworzenia programu wykonywalnego w C++.

4. Co to jest preprocesor?

5. Co to jest dyrektywa preprocesora? Podaj przykłady dyrektyw preprocesora.

6. Napisz program, który wypisuje tekst „Mój pierwszy program w C++”

2. Podstawowe udogodnienia języka C++ 2.1.Kompozycja języka

W tekście w dowolnym języku naturalnym można wyróżnić cztery główne elementy: symbole, słowa, frazy i zdania. Język algorytmiczny również zawiera takie elementy, tylko słowa nazywane są leksemami (konstrukcjami elementarnymi), frazy - wyrażeniami, zdaniami - operatorami. Tokeny powstają z symboli, wyrażeń z leksemów i symboli, operatorów z symboli wyrażeń i leksemów (rys. 1.1)

Ryż. 1.1. Kompozycja języka algorytmicznego Zatem elementami języka algorytmicznego są:

Identyfikatory to nazwy obiektów programu C. W identyfikatorze można stosować litery, cyfry i podkreślenia łacińskie. Rozróżniane są wielkie i małe litery, na przykład PROG1, prog1 i Prog1 to trzy różne identyfikatory. Pierwszy znak musi być literą lub podkreśleniem (nie cyfrą). Spacje w identyfikatorach są niedozwolone.

Słowa kluczowe (zarezerwowane) to słowa, które mają dla kompilatora specjalne znaczenie. Nie mogą być używane jako identyfikatory.

- Znaki operacji to jeden lub więcej symboli, które definiują operację na operandach. Operacje są podzielone na jednoargumentowe, binarne i trójargumentowe w zależności od liczby operandów zaangażowanych w tę operację.

Stałe są wartościami niezmiennymi. Istnieją stałe całkowite, rzeczywiste, znakowe i łańcuchowe. Kompilator rozróżnia stałą jako token (konstrukcję elementarną) i przypisuje ją do jednego z typów zgodnie z jej wyglądem.

Separatory - nawiasy, kropka, przecinek, spacja.

2.1.1. Stałe w C++

Stała to token reprezentujący reprezentację ustalonej wartości liczbowej, łańcuchowej lub znakowej.

Stałe są podzielone na 5 grup:

cały;

- rzeczywista (zmiennoprzecinkowa);

wyliczone;

Symboliczny;

Strunowy.

Kompilator wybiera leksem i przypisuje go do tej lub innej grupy, a następnie wewnętrznie

trzy grupy do określonego typu zgodnie z jego formą zapisu w tekście programu i według wartości liczbowej.

Stałe całkowite mogą być dziesiętne, ósemkowe i szesnastkowe. Stała dziesiętna jest zdefiniowana jako sekwencja cyfr dziesiętnych, która nie zaczyna się od 0, chyba że ta liczba wynosi 0 (przykłady: 8, 0, 192345). Stała ósemkowa to stała, która zawsze zaczyna się od 0. Po 0 następują cyfry ósemkowe (przykłady: 016 - wartość dziesiętna 14, 01). Stałe szesnastkowe to ciąg cyfr szesnastkowych poprzedzonych znakami 0x lub 0X (przykłady: 0xA, 0X00F).

W w zależności od wartości kompilatora stałych liczb całkowitych przedstaw to inaczej

w pamięć komputera (tzn. kompilator przypisze do stałej odpowiedni typ danych).

Stałe rzeczywiste mają inną formę reprezentacji wewnętrznej w pamięci komputera. Kompilator rozpoznaje takie stałe po ich formie. Stałe rzeczywiste mogą być reprezentowane w dwóch postaciach: stałoprzecinkowej i zmiennoprzecinkowej. Typ stałej zmiennoprzecinkowej: [cyfry].[cyfry] (przykłady: 5.7, .0001, 41.).Typ stałej zmiennoprzecinkowej: [cyfry][.][cyfry]E|e[+|-][cyfry ] (przykłady: 0.5e5, .11e-5, 5E3). W zapisie stałych rzeczywistych można pominąć liczbę całkowitą lub część ułamkową, kropkę dziesiętną lub znak wykładnika z wykładnikiem.

Stałe wyliczane są wprowadzane za pomocą słowa kluczowego enum. Są to zwykłe stałe całkowite, którym przypisano unikalną i łatwą w użyciu notację. Przykłady: enum ( jeden=1, dwa=2, trzy=3,cztery=4);

enum (zero,jeden,dwa,trzy) - jeśli pominiemy znaki = i wartości liczbowe w definicji stałych wyliczanych, to wartości zostaną przypisane domyślnie. W tym przypadku identyfikator skrajnie lewy otrzyma wartość 0, a każdy kolejny będzie rósł o 1.

liczba (dziesięć=10, trzy=3, cztery, pięć, sześć);

enum (niedziela, poniedziałek, wtorek, środa, czwartek, piątek, sobota

Stałe znakowe to jeden lub dwa znaki ujęte w apostrofy. Stałe znakowe składające się z jednego znaku są typu char i zajmują jeden bajt w pamięci, stałe znakowe składające się z dwóch znaków są typu int i zajmują dwa bajty. Sekwencje zaczynające się od znaku \ są nazywane sekwencjami ucieczki, są używane:

- Do reprezentowania znaków, które nie mają wyświetlacza graficznego, na przykład:

\a - sygnał dźwiękowy,

\b - powrót o jeden krok, \n - wysunięcie wiersza,

\t - zakładka pozioma.

- Do reprezentowania znaków: \ , ’ , ? , ” (\\, \’ ,\? ,\).

- Do reprezentowania znaków za pomocą kodów szesnastkowych lub ósemkowych (\073, \0xF5).

Stała łańcuchowa to sekwencja znaków ujęta w cudzysłów.

Znaki sterujące mogą być również używane w ciągach. Na przykład: "\nNowa linia",

„\n\”Algorytmiczne języki programowania wysokiego poziomu \”” .

2.2. Typy danych w C++

Dane wyświetlają świat w programie. Celem programu jest przetwarzanie danych. Dane różne rodzaje przechowywane i przetwarzane inaczej. Typ danych definiuje:

1) wewnętrzna reprezentacja danych w pamięci komputera;

2) zestaw wartości, jakie mogą przyjmować wartości tego typu;

3) operacje i funkcje, które można zastosować do danych tego typu.

W W zależności od wymagań zadania programista wybiera typ obiektów programu. Typy C++ można podzielić na typy proste i złożone. Typy proste to typy charakteryzujące się jedną wartością. C++ definiuje 6 prostych typów danych:

int (liczba całkowita)

znak (znak)

wchar_t (szeroki znak) bool (boolean) float (rzeczywista)

podwójna (rzeczywista o podwójnej precyzji)

Istnieją 4 specyfikatory typu określające wewnętrzną reprezentację i zakres standardowych typów

krótki (krótki) długi (długi) podpisany (podpisany)

bez znaku

2.2.1. wpisz int

Wartości tego typu są liczbami całkowitymi.

Rozmiar typu int nie jest zdefiniowany przez standard, ale zależy od komputera i kompilatora. Dla procesora 16-bitowego przydzielone są 2 bajty, dla procesora 32-bitowego 4 bajty.

Jeśli istnieje krótki specyfikator przed int, to 2 bajty są przydzielane dla liczby, a jeśli specyfikator jest długi, to 4 bajty. Zestaw zależy od ilości pamięci przydzielonej dla obiektu. dozwolone wartości, które obiekt może przyjąć:

short int - zajmuje 2 bajty, stąd ma zakres -32768 ..+32767;

long int - zajmuje 4 bajty, stąd ma zakres -2 147 483 648..+2 147 483 647

Typ int jest taki sam jak typ short int na 16-bitowych komputerach PC i długi typ int na komputerach 32-bitowych.

Modyfikatory ze znakiem i bez znaku wpływają również na zestaw poprawnych wartości, jakie obiekt może przyjąć:

unsigned short int - zajmuje 2 bajty, stąd ma zakres 0 ..65536; unsigned long int - zajmuje 4 bajty, zatem ma zakres 0..+4 294 967

2.2.2. wpisz char

Wartości tego typu są elementami skończonego uporządkowanego zestawu znaków. Każdemu znakowi przypisany jest numer, zwany kodem znaku. Pod wartością typ znaku Przydzielony jest 1 bajt. Typu char można używać ze specyfikatorami ze znakiem i bez znaku. Dane w postaci znaku ze znakiem mogą przechowywać wartości z zakresu od -128 do 127. Znak bez znaku może przechowywać wartości z zakresu od 0 do 255. Kodowanie wykorzystuje ASCII (American Standard Code foe International Interchange). Symbole o kodach od 0 do 31 są symbolami serwisowymi i mają niezależne znaczenie tylko w instrukcjach We/Wy.

Wartości typu char służą również do przechowywania liczb z określonych zakresów.

2.2.3. typ_char_t

Zaprojektowany do pracy z zestawem znaków, dla których kodowanie nie wystarcza na 1 bajt, np. Unicode. Rozmiar tego typu z reguły odpowiada krótkiemu typowi. Stałe łańcuchowe tego typu są zapisywane z przedrostkiem L: L"String #1".

2.2.4. wpisz bool

Typ bool to boolean. Jego wartości mogą przyjmować wartości prawdziwe i fałszywe. Wewnętrzna reprezentacja fałszu to 0, każda inna wartość jest interpretowana jako prawda.

2.2.5. typy zmiennoprzecinkowe.

Reprezentacja wewnętrzna prawdziwy numer składa się z 2 części: mantysy i wykładnika. W komputerach kompatybilnych z IBM wartości zmiennoprzecinkowe zajmują 4 bajty, z których jeden bit jest przydzielony na znak mantysy, 8 bitów na wykładnik i 24 na mantysę.

Wartości typu double zajmują 8 bajtów, odpowiednio 11 i 52 cyfry są przypisane do porządku i mantysy. Długość mantysy określa dokładność liczby, natomiast długość wykładnika określa jej zakres.

Jeśli nazwa typu podwójnego jest poprzedzona specyfikatorem long, dla wartości przydzielane są bajty.

2.2.6. pusty typ

Do do głównych typów zalicza się również typ void, zbiór wartości tego typu jest pusty.

2.3. Zmienne

Zmienna w C++ to nazwany obszar pamięci przechowujący dane określonego typu. Zmienna ma nazwę i wartość. Nazwa jest używana w odniesieniu do obszaru pamięci, w którym przechowywana jest wartość. Każda zmienna musi być zadeklarowana przed użyciem. Przykłady:

Widok ogólny operatora opisu:

[klasa pamięci] nazwa typu [inicjalizator];

Klasa pamięci może przyjmować następujące wartości: auto, extern, static, register. Klasa pamięci definiuje czas życia i zakres zmiennej. Jeśli klasa pamięci nie jest wyraźnie określona, ​​kompilator określa ją na podstawie kontekstu deklaracji. Żywotność może być stała - w trakcie wykonywania programu lub tymczasowa - w trakcie bloku. Zakres to część tekstu programu, z której dozwolony jest normalny dostęp do zmiennej. Zwykle zakres jest taki sam jak zakres. Z wyjątkiem sytuacji, gdy w bloku wewnętrznym znajduje się zmienna o tej samej nazwie.

Const - wskazuje, że ta zmienna nie może być zmieniona (o nazwie stała). Przy opisie możesz przypisać wartość początkową do zmiennej (inicjalizacja). Klasy pamięci:

auto jest automatyczną zmienną lokalną. Specyfikator auto można określić tylko podczas definiowania obiektów bloku, na przykład w treści funkcji. Pamięć jest przydzielana do tych zmiennych, gdy blok jest wpisywany i zwalniana, gdy blok jest opuszczany. Poza blokiem takie zmienne nie istnieją.

extern jest zmienną globalną, znajduje się w innym miejscu programu (w innym pliku lub później w tekście). Służy do tworzenia zmiennych, które są dostępne we wszystkich plikach programu.

static jest zmienną statyczną, istnieje tylko w pliku, w którym zmienna jest zdefiniowana.

register - podobny do auto, ale pamięć dla nich jest alokowana w rejestrach procesora. Jeśli nie jest to możliwe, zmienne są traktowane jako auto.

int; //zmienna globalna void main()(

int b;//zmienna lokalna

extern int x;//zmienna x jest zdefiniowana gdzie indziej static int c;//lokalna zmienna statyczna a=1;//przypisanie do zmiennej globalnej

int a;//zmienna lokalna a

a=2;//przypisanie do zmiennej lokalnej::a=3;//przypisanie do zmiennej globalnej

int x=4;//zdefiniuj i zainicjuj x

W tym przykładzie zmienna a jest zdefiniowana poza wszystkimi blokami. Zakres zmiennej a obejmuje cały program, z wyjątkiem tych wierszy, w których używana jest zmienna lokalna a. Zmienne b i c są lokalne, ich zakres jest blokowy. Żywotność jest inna: pamięć pod b jest przydzielana przy wchodzeniu do bloku (ponieważ domyślna klasa pamięci to auto), jest zwalniana przy wyjściu. Zmienna z (statyczna) istnieje podczas działania programu.

Jeśli zmienne nie są jawnie inicjowane podczas ich definiowania, kompilator ustawia zmienne globalne i statyczne na zero. Zmienne automatyczne nie są inicjowane..

Nazwa zmiennej musi być unikalna w swoim zakresie.

Deklaracja zmiennej może być wykonana jako deklaracja lub jako definicja. Deklaracja zawiera informacje o klasie pamięci i typie zmiennej, a definicja wraz z tymi informacjami nakazuje przydzielić pamięć. W przykładzie extern int x; - deklaracja, a reszta - definicje.

2.4 Znaki operacji w C++

Znaki operacyjne zapewniają tworzenie wyrażeń. Wyrażenia składają się z operandów, znaków operatora i nawiasów. Każdy operand jest z kolei wyrażeniem lub szczególnym przypadkiem wyrażenia - stałą lub zmienną.

Operacje jednoargumentowe

& zdobądź adres operandu

* Odniesienie do adresu (dereferencja)

- jednoargumentowy minus, zmienia znak operandu arytmetycznego

++ Zwiększenie jednostki:

operacja prefiksowa - zwiększa operand przed jego użyciem

operacja postfiksowa zwiększa operand po jego użyciu

int a=(m++)+n; // a=4,m=2,n=2

int b=m+(++n);//a=3,m=1,n=3

zmniejszyć o jeden:

operacja prefiksowa - redukuje operand do jego użycia

operacja postfiksowa zmniejsza operand po jego użyciu

obliczenie rozmiaru (w bajtach) dla obiektu typu, który

ma operand

ma dwie formy

wielkośćwyrażenia

rozmiar(pływak)//4

sizeof(1.0)//8 ponieważ rzeczywiste stałe są domyślne

W szkołach, aby uczyć się podstaw algorytmizacji, tzw. szkolny język algorytmiczny (edukacyjny język algorytmiczny), używając słów zrozumiałych dla ucznia w języku rosyjskim. W przeciwieństwie do większości języków programowania, język algorytmiczny nie jest związany z architekturą komputera, nie zawiera szczegółów związanych z urządzeniem maszyny.

Przykłady

Algorytm w języku algorytmicznym w ujęciu ogólnym zapisany jest w postaci:

alg nazwa algorytmu (argumenty i wyniki) dany warunki stosowania algorytmu niezbędny cel algorytmu wczesny opis wartości pośrednich | sekwencja poleceń (treść algorytmu) kon

Podczas pisania algorytmu słowa kluczowe były zazwyczaj podkreślane lub wyróżniane pogrubieniem. Wcięcia użyto do wyróżnienia bloków logicznych, a pary słów początku i końca bloku były połączone pionową kreską.

Przykład obliczenia sumy kwadratów:

alg Suma kwadratów ( argumentować cały n, skaleczenie cały S) dany| n > 0 niezbędny| S = 1*1 + 2*2 + 3*3 + … + n*n wczesny cały ja | Wejście n; S:=0 | nc dla i od 1 do n | | S:= S + i * i | kts | wniosek„S=”, S kon

E-warsztat

Aby wzmocnić teoretyczne studia nad programowaniem w języku algorytmicznym, w 1985 roku specjaliści z Mechmatu Moskiewskiego Uniwersytetu Państwowego stworzyli edytor-kompilator "E-warsztat"(„E” - na cześć Erszowa), który pozwala wprowadzać, edytować i wykonywać programy w języku algorytmicznym.

W 1986 roku został wydany zestaw światów treningowych (wykonawców) dla „E-praktyki”: „Robot”, „Drafter”, „Dwunożny”, „Pojazd terenowy”, które pozwalają po prostu wprowadzić koncepcje algorytmu. "E-warsztat" został zaimplementowany na komputerach: Yamaha, Corvette, UKNC i był szeroko stosowany.

Ten język programowania był stale ulepszany, a opis późniejszej wersji „E-warsztatu” pojawił się w podręczniku z 1990 roku. System programowania „KuMir” („Zestaw światów edukacyjnych”), który obsługuje ten podręcznik, został wydany przez przedsiębiorstwo InfoMir w 1990 roku. Język tego systemu jest również nazywany „KuMir”.

W 1995 roku „KuMir” został rekomendowany przez Ministerstwo Edukacji Federacji Rosyjskiej jako główny materiał edukacyjny do kursu „Podstawy informatyki i inżynierii komputerowej” na podstawie podręcznika A.G. Kushnirenko, G.V. Lebiediewa i RA Svorenyi. .

Krytyka

Należy jednak zauważyć, że język algorytmiczny, przy braku szczegółów łączących go bezpośrednio z architekturą komputerową, niemniej jednak odwołuje się do Algolo -jak języki, pośrednio uczy uczniów polegania na architekturze maszyn von Neumanna. (Architektura Von Neumanna jest praktyczną realizacją wcześniejszej idei zwanej Maszyną Turinga. Oprócz idei Turinga istnieją inne pomysły. Najpopularniejszy z nich to Rachunek Lambda: pracował nad nią Alonzo Church. Maszyna Lisp to architektura, która jest na podstawie Lambda - rachunek różniczkowy.)

Spinki do mankietów

  • A. P. Erszow. Język algorytmiczny w szkolnym kursie podstaw informatyki i techniki komputerowej. 05/07/1985
  • Forum dotyczące rosyjskich języków programowania i narzędzi programistycznych

Fundacja Wikimedia. 2010 .

Zobacz, co „rosyjski język algorytmiczny” znajduje się w innych słownikach:

    Język algorytmiczny to język formalny używany do pisania, wdrażania lub badania algorytmów. Każdy język programowania jest językiem algorytmicznym, ale nie każdy język algorytmiczny nadaje się do użycia jako język ... ... Wikipedia

    Termin ten ma inne znaczenia, patrz Smok (znaczenia). Przykład schematu blokowego algorytmu w języku smoka DRAKON w schemacie DRAKON (przyjazny rosyjski język algorytmiczny zapewniający widoczność) wizualny ... ... Wikipedia

    Termin ten ma inne znaczenia, patrz Język algorytmiczny. Uczący się język algorytmiczny to język formalny używany do pisania, wdrażania i uczenia się algorytmów. W przeciwieństwie do większości języków programowania nie jest związany z ... Wikipedia

    Język algorytmiczny (również rosyjski język algorytmiczny, RAYA) to język programowania używany do pisania i badania algorytmów. Studiując informatykę w szkołach, studiować podstawy algorytmizacji, tzw. szkoła algorytmiczna ... ... Wikipedia

    Edukacyjny język programowania to język programowania przeznaczony do nauczania programowania specjalistów. Taki język musi spełniać główny wymóg: prostotę. Im prostsze, tym szybciej początkujący go opanuje. Możliwości takich ... ... Wikipedia

    Przykład schematu blokowego algorytmu w języku smoka DRAKON DRAKON (Przyjazny Rosyjski Język Algorytmiczny Zapewniający Widoczność) to wizualny język algorytmiczny stworzony w ramach programu kosmicznego Buran. Rozwój podany język... Wikipedia

Język algorytmiczny - jest to system notacji i reguł do jednolitego i dokładnego rejestrowania algorytmów i ich wykonywania. Język algorytmiczny jest środkiem do pisania algorytmów w formie analitycznej, pośredniczącym między pisaniem algorytmu w języku naturalnym (ludzkim) a pisaniem w języku komputerowym (języku programowania).

Istnieje różnica między pojęciami „języka algorytmicznego” i „języków programowania”. Przede wszystkim program napisany w języku algorytmicznym niekoniecznie jest przeznaczony na komputer. Praktyczna implementacja języka algorytmicznego to osobna kwestia w każdym konkretnym przypadku.

Jak każdy język, język algorytmiczny ma własne słownictwo. Podstawą tego słownika są słowa służące do zapisu poleceń wchodzących w skład systemu poleceń wykonawcy danego algorytmu. Takie polecenia nazywane są prostymi poleceniami. W języku algorytmicznym używa się słów, których znaczenie i sposób użycia są ustalone raz na zawsze. Te słowa nazywają się urzędnik. Użycie słów serwisowych sprawia, że ​​zapis algorytmu jest bardziej wizualny, a forma prezentacji różnych algorytmów jest jednolita.

Algorytm napisany w języku algorytmicznym musi mieć nazwę. Pożądane jest dobranie nazwy tak, aby było jasne, jakie rozwiązanie opisuje dany algorytm. Aby wyróżnić nazwę algorytmu, przed nim jest napisane słowo serwisowe ALG (ALGORYTM). Za nazwą algorytmu (zwykle z Nowa linia) zapisuje swoje polecenia. Aby wskazać początek i koniec algorytmu, jego polecenia są zawarte w parze słów serwisowych BEGIN (START) i KON (END). Polecenia są pisane sekwencyjnie.

ALG - nazwa algorytmu

seria instrukcji algorytmu

Na przykład algorytm określający ruch robota wykonawczego może wyglądać tak:

ALG - do_magazynu

Przy konstruowaniu nowych algorytmów można wykorzystać algorytmy skompilowane wcześniej. Algorytmy, które są w całości wykorzystywane jako część innych algorytmów, nazywane są algorytmami pomocniczymi. Pomocniczym może być dowolny algorytm spośród wcześniej skompilowanych. Nie jest również wykluczone, że algorytm pomocniczy w pewnej sytuacji może być algorytmem, który sam zawiera link do algorytmów pomocniczych.

Bardzo często przy kompilacji algorytmów konieczne staje się użycie tego samego algorytmu jako pomocniczego, co zresztą może być bardzo złożone i uciążliwe. Byłoby irracjonalnym, rozpoczynając pracę, komponować i zapamiętywać taki algorytm każdorazowo do jego późniejszego wykorzystania. Dlatego w praktyce szeroko stosowane są tzw. wbudowane (lub standardowe) algorytmy pomocnicze, tj. takie algorytmy, które są stale dostępne dla wykonawcy. Odwołanie się do takich algorytmów odbywa się w taki sam sposób, jak do „zwykłych” algorytmów pomocniczych. Wykonawca robota może mieć wbudowany algorytm pomocniczy przemieszczający się do magazynu z dowolnego miejsca na polu roboczym; dla executora języka programowania BASIC jest to np. wbudowany algorytm „SIN”.

Algorytm może odnosić się do siebie jako pomocnika, w którym to przypadku nazywa się rekurencyjne. Jeśli polecenie wywołania algorytmu do siebie znajduje się w samym algorytmie, wówczas wywoływana jest taka rekurencja proste. Zdarzają się przypadki, gdy rekurencyjne wywołanie tego algorytmu pochodzi z algorytm pomocniczy, który jest dostępny w tym algorytmie. Ten rodzaj rekurencji nazywa się pośredni. Przykład bezpośredniej rekurencji:

ALG - ruch

ruch drogowy

Algorytmy, podczas których wykonania ustalana jest kolejność poleceń w zależności od wyników sprawdzenia określonych warunków, nazywane są rozgałęzienie. Do ich opisu w języku algorytmicznym służy specjalne polecenie złożone - polecenie rozgałęzienie. W odniesieniu do wykonawcy robota warunkiem może być sprawdzenie, czy robot znajduje się na krawędzi pola roboczego (edge/not_edge); sprawdzanie obecności obiektu w bieżącej komórce (tak/nie) i kilka innych:

IF warunek IF warunek IF zbocze

TO seria1 TO seria TO prawo

INNA seria2 WSZYSTKO INNE do przodu

Poniżej znajduje się wpis w języku algorytmicznym dla polecenia select, który jest rozwinięciem polecenia branch:

AT Warunek 1: Seria 1

W Warunek 2: Seria 2

W stan N: seria N

INNE Seria N+1

Algorytmy, podczas wykonywania których poszczególne instrukcje lub serie instrukcji są wykonywane wielokrotnie, nazywamy cyklicznymi. Aby uporządkować algorytmy cykliczne w języku algorytmicznym, używane jest specjalne polecenie cyklu złożonego. Odpowiada on schematom blokowym typu „iteracja” i może przybierać postać:

BYA warunek NC

seria PRZED stanem