DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać Dzwon?
Bez spamu

Operacje i operatory języka programowania C. Przykłady programów.

Struktury sterujące i podstawowe konstrukcje języków programowania

Program znajdujący się w pamięci komputera zajmuje pewien obszar pamięci w momencie wykonywania. W każdym momencie stan programu charakteryzuje się dwoma rodzajami informacji:

Stan niektórych komórek pamięci, które rozumiemy jako zmienne;

Aktywny punkt programu, czyli polecenie programu, które jest aktualnie wykonywane.

W związku z tym istnieją dwie główne klasy działań, które mogą być wykonywane przez: system komputerowy:

Akcje, które przydzielają obszar pamięci dla zmiennych programu (opisów).

Akcje zmieniające punkt wykonania programu (operatory, instrukcje, konstrukcje).

Różne zestawy działań drugiej kategorii są również nazywane strukturami zarządzającymi.

Zazwyczaj instrukcje w programie są wykonywane jedna po drugiej w kolejności, w jakiej zostały napisane. Nazywa się to wykonywaniem sekwencyjnym. Różni operatorzy Język C, który omówimy wkrótce, daje programiście możliwość wskazania, że ​​następna instrukcja do wykonania może różnić się od następnej w sekwencji. Nazywa się to przekazaniem kontroli.

W latach 60. stało się jasne, że w sercu większości trudności, z jakimi borykają się zespoły programistyczne oprogramowanie, ustanawiają niekontrolowane wykorzystanie przekazania kontroli. Winę zrzucono na instrukcję goto, która pozwala programiście w bardzo szerokim zakresie przenieść sterowanie w programie na jeden z możliwych adresów. Pojęcie tzw programowanie strukturalne stał się niemal synonimem „wyjątku goto”.

Badania przeprowadzone przez Bohma i Iacopiniego wykazały, że programowanie jest możliwe nawet przy braku instrukcji goto. Zmiana stylu programowania na „programowanie bez goto” stała się epokowym mottem programistów. Ale dopiero w latach 70. wielu profesjonalnych programistów zaczęło poważnie traktować programowanie strukturalne. Wyniki były imponujące, zespoły programistyczne raportowały krótsze czasy rozwoju, częstsze dostarczanie systemów na czas i realizację projektów zgodnie z budżetem. Kluczem do sukcesu jest po prostu to, że programy zbudowane za pomocą technik programowania strukturalnego są łatwiejsze do zrozumienia, łatwiejsze do debugowania i modyfikowania, a co najważniejsze, bardziej prawdopodobne jest, że zostaną napisane bez błędów.
Praca Bohma i Iacopiniego z 1966 roku wykazała, że ​​wszystkie programy można napisać przy użyciu zaledwie trzech struktur kontrolnych, a mianowicie struktury sekwencyjnej, struktury selekcji i struktury powtórzeń. Wynik ten ustalili Bohm i Jacopini w 1966 roku, udowadniając, że każdy program można przekształcić w równoważny program składający się tylko z tych struktur i ich kombinacji. W tym przypadku struktura sekwencyjna jest zasadniczo wbudowana w język C. O ile nie określono inaczej, komputer automatycznie wykonuje instrukcje C jedna po drugiej w kolejności, w jakiej zostały napisane.

Tak więc program do rozwiązywania problemu o dowolnej złożoności może składać się z trzech struktur zwanych sukcesją (łańcuch), rozgałęzieniem i pętlą. Każda z tych struktur kontrolnych jest zaimplementowana w języku programowania przez zestaw odpowiednich konstrukcji.

Struktury zarządzające obejmują:

· Struktura następujących elementów;

· Struktura rozgałęziona;

Zbudowany operatorzy - są to konstrukcje budowane według określonych zasad od innych operatorów. Operatorzy strukturalni obejmują:

Operator złożony

Operator warunkowy

Operatory selekcji

Operatory pętli

Z oświadczeniem

1.Operator związku

Złożony operator to grupa dowolnej liczby dowolnych operatorów, oddzielonych od siebie średnikami i rozdzielonych operatorami nawiasy początek i koniec.

Format operatora złożonego:

rozpocząć<Оператор1>; ... ; <ОператорN>;

Niezależnie od liczby zawartych w nim operatorów, operator złożony jest postrzegany jako całość. Najczęściej używanym operatorem złożonym jest instrukcja warunkowa i instrukcja pętli.

Operatory złożone mogą być zagnieżdżane jeden w drugim, bez ograniczeń co do głębokości zagnieżdżania operatorów złożonych.

2. Operator Warunkowy

Warunkowy operator wymusza lub nie stosuje się do określonych oświadczeń w zależności od spełnienia określonych warunków.

Format operatora warunkowego:

Gdyby następnie<Оператор1> ;

Warunek jest wyrażeniem typ logiczny... Operator działa w następujący sposób: jeśli warunek jest prawdziwy (ma wartość True), to wykonywany jest operator1, w przeciwnym razie wykonywany jest operator2. Oba operatory mogą być złożone.

Wyrażenie warunkowe można zapisać w formie skróconej, gdy brakuje wyrazu else i instrukcji2 po nim.

Aby zorganizować rozwidlenia w trzech lub więcej kierunkach, możesz użyć kilku instrukcji warunkowych, zagnieżdżonych w sobie. Co więcej, każde inne odpowiada temu, które je bezpośrednio poprzedza. Z powodu możliwe błędy należy unikać głęboko zagnieżdżonych instrukcji warunkowych w sobie.

3. Wybór operatora

Operator z wyboru jest uogólnieniem operatora warunkowego i pozwala wybierać spośród dowolnej liczby dostępnych opcji. To stwierdzenie składa się z wyrażenia zwanego selektor, lista opcji i opcjonalna gałąź else, która ma takie samo znaczenie jak w instrukcji warunkowej.

Wybierz format operatora:

Obudowa<Выражение-селектор>z

<Список1> : <Оператор1>;

<СписокN> : <ОператорN>

Wyrażenie selektora Powinien być typ porządkowy... Każdy wariant to lista stałych oddzielonych dwukropkami od tych związanych z ta opcja operator. Lista stałych wyboru składa się z dowolnej liczby wartości i zakresów oddzielonych przecinkami. Granice zakresu są zapisane w dwóch stałych oddzielonych separatorem „..”. Typ stałych musi być zgodny z typem wyrażenia selektora.

Instrukcja wyboru jest wykonywana w następujący sposób:

1. Wartość wyrażenia selektora jest oceniana.

2. Opcje są kolejno skanowane, aby sprawdzić, czy wartość selektora pasuje do stałych i wartości z zakresów odpowiedniej listy.

3. Jeżeli wyszukiwanie dla kolejnego wariantu powiedzie się, to wykonywany jest operator tego wariantu. Po tym kończy się wykonanie instrukcji wyboru.

4. Jeśli wszystkie sprawdzenia zakończyły się niepowodzeniem, wykonywany jest operator po słowie else (jeśli istnieje).

Przykład. Operator wyboru

Numer sprawyDzień

1..5: strDay: = "Dzień roboczy";

6..7: strDay: = "Dzień wolny"

w przeciwnym razie strDzień: = "";

W zależności od wartości zmiennej całkowitej NumberDay zawierającej numer dnia tygodnia, zmiennej łańcuchowej strDay przypisywana jest odpowiednia wartość.

>> Struktury kontrolne. Informacje ogólne o cyklach

Kursy przygotowujące:

Struktury kontrolne. Zrozumienie cykli

Struktury kontrolne

Zrozumienie cykli

Pętle są powtórzeniem operacji tak długo, jak spełniony jest jakiś warunek logiczny. Na przykład ustawmy warunek pętli, że jakaś zmienna a jest mniejsza niż 10.

Pętla będzie działać do momentu (to znaczy, że zawarte w niej instrukcje będą wykonywane tyle razy), aż ten warunek stanie się spełniony.

Istnieją trzy rodzaje pętli: for, do ... while, while. Rozważmy na przykład konstrukcję pętli for.

for (Inicjalizacja zmiennej; Warunek; Zmiana zmiennej po każdym wykonaniu bloku instrukcji loop)
{
ciało pętli
}

Spójrzmy na przykład użycia pętli for (Listing 3.1).

Listing 3.1.
Przykład użycia pętli for

Ten program wyświetli dziesięć gwiazdek w jednej linii. Nie ma potrzeby inicjowania zmiennej licznika w pętli (zmienna licznika to zmienna, która określa, ile razy wykonywany jest korpus pętli). Spójrzmy na przykładowy program bez deklarowania zmiennej licznika w pętli (Listing 3.2).

Wykaz 3.2.
Przykład programu bez deklarowania zmiennej licznika w pętli

Możesz użyć więcej niż jednej zmiennej licznika, ale kilku. Rozważmy przykład takiego programu, pokazany na listingu 3.3.

Wykaz 3.3.
Przykład użycia wielu zmiennych licznika

Rozważ pętlę while. W tej pętli warunek jest określany jako parametr. Warunek jest sprawdzany przed wykonaniem pętli. Pętla while wygląda tak.

podczas (warunek)
{
ciało pętli
}

Spójrzmy na przykładowy program używający pętli while (Listing 3.4).

Listing 3.4.
Przykład użycia pętli while

W wyniku wykonania tego programu na ekranie zostanie wyświetlonych dziesięć gwiazdek.

Zwróć uwagę, że jeśli zapomnisz określić przyrost zmiennej w warunku lub po prostu błędnie określisz warunek, może wystąpić błąd wykonania, który nie zostanie wykryty na etapie kompilacji i pętla będzie działać w nieskończoność.

Przykład błędnego programu.

Rozważmy teraz pętlę do ... while.
Jest bardzo podobna do pętli while i różni się tylko tym, że sprawdza warunek nie przed następnym wykonaniem pętli, ale po jej wykonaniu. Pętla do ... while jest pokazana poniżej.

Rozdział 6. STRUKTURY KONTROLNE Operator przypisania Operatory proste i złożone Operator warunkowy Operator wielokrotnego wyboru Operator pętli warunkowej Operator pętli warunkowej Operator pętli parametryzowanej Operator pętli i procedury skoku bezwarunkowego


2 rozdz. 6. STRUKTURY STEROWANIA Operator przypisania Operator jest konstrukcją języka programowania używaną do określania akcji lub sekwencji akcji w programie na danych. Zbiór operatorów programu implementuje tkwiący w nim algorytm. Każdy operator implikuje jakąś akcję. Proces „wpychania” wartości do zmiennej nazywa się przypisaniem (pierwsze przypisanie nazywa się inicjalizacją). Przypisanie odbywa się za pomocą specjalnej konstrukcji - operatora przypisania: identyfikator zmiennej: =: = wyrażenie Var W, H: Integer; Początek W: = 23; H: = 17; W: = W * W; Kończyć się.


3 rozdz. 6. STRUKTURY KONTROLI Instrukcje proste i złożone Dwie kolejne instrukcje muszą być oddzielone średnikami (oznaczającymi koniec instrukcji): a: = 11; b: = a * a; Napisz (a, b); Instrukcja złożona to sekwencja instrukcji traktowana jako pojedyncza instrukcja. Jest sformatowany przy użyciu zastrzeżonych słów początek i koniec (nawiasy operatorskie). Operator w programie to pojedyncza, niepodzielna instrukcja, która wykonuje akcję. Prosty operator nie zawiera żadnych innych operatorów (operator przypisania, wywołanie procedury, ...). zacznij a: = 11; b: = a * a; Napisz (a, b) koniec;


5 następnie zacznij X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy służy do programowania gałęzi, czyli sytuacje, w których pod pewnymi warunkami konieczne staje się wykonanie „title =” (! LANG: 4 rozdz. 6. STRUKTURY STEROWANIA Instrukcja warunkowa jeśli K> 5 to początek X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = - 1 ; Operator warunkowy służy do programowania gałęzi, czyli sytuacji, gdy konieczne jest, pod pewnymi warunkami, wykonanie" class="link_thumb"> 4 !} 4 rozdz. 6. STRUKTURY KONTROLNE Instrukcja warunkowa, jeśli K> 5 to początek X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy służy do programowania gałęzi, tj. sytuacje, w których w określonych warunkach konieczne jest wykonywanie różnych czynności. Instrukcja warunkowa ma strukturę: if Wyrażenie logiczne Instrukcja then Instrukcja else Dozwolona jest tylko jedna instrukcja na gałąź. 5, a następnie zacznij X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy służy do programowania gałęzi, tj. sytuacje, w których pod pewnymi warunkami konieczne jest wykonanie "> 5, a następnie rozpoczęcie X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy jest używany do programowania rozgałęzień, tj. sytuacji, w których jest to konieczne, gdy pewne warunki do wykonania różnych akcji Operator warunkowy ma strukturę: if wyrażenie logiczne to operator else operator W każdej gałęzi można zapisać tylko jeden operator "> 5 then begin X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy służy do programowania gałęzi, czyli sytuacje, w których pod pewnymi warunkami konieczne staje się wykonanie „title =” (! LANG: 4 rozdz. 6. STRUKTURY STEROWANIA Instrukcja warunkowa jeśli K> 5 to początek X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = - 1 ; Operator warunkowy służy do programowania gałęzi, czyli sytuacji, gdy konieczne jest, pod pewnymi warunkami, wykonanie"> title="4 rozdz. 6. STRUKTURY KONTROLNE Instrukcja warunkowa, jeśli K> 5 to początek X: = X + 5; Y: = 1 koniec w przeciwnym razie Y: = -1; Operator warunkowy służy do programowania gałęzi, tj. sytuacje, w których konieczne jest, pod pewnymi warunkami, wykonanie"> !}




6 rozdz. 6. STRUKTURY STEROWANIA Operator wielokrotnego wyboru Operator wyboru służy do zaimplementowania kilku alternatywnych opcji dla akcji, z których każda odpowiada własnej wartości jakiegoś parametru. wyrażenie case instrukcji stałej / zakresu else: instrukcja end; Wartość i musi również należeć do jednego z typów porządkowych (z wyjątkiem LongInt). W zależności od wartości wybierany jest operator, który jest poprzedzony stałą wyboru równą wartości obliczonej (alternatywą są operatory po else). Wartości stałe muszą być unikalne w każdym zestawie, tj. mogą pojawić się tylko w jednej formie.


7 rozdz. 6. STRUKTURY STERUJĄCE przypadek I (I: Słowo) 1: X: = X +1; 2.3: X: = X +2; 4..9: rozpocznij zapis (X); X: = X + 3 (mb ";") koniec (mb ";") w przeciwnym razie X: = X * X; Napiszln (X) (mb ";") koniec;


8 rozdz. 6. STRUKTURY STERUJĄCE Operator pętli „While” (z warunkiem wstępnym) natomiast operator do wyrażenia warunkowego (treść pętli) po słowie funkcji do będzie wykonywany cyklicznie tak długo, jak spełniony będzie warunek logiczny, tj. podczas gdy wartość to True. Aby pętla miała szansę się kiedykolwiek zakończyć, zawartość jej ciała musi wpływać na warunek pętli. Warunek musi składać się z poprawnych wyrażeń i wartości zdefiniowanych przed pierwszym wykonaniem treści pętli. VarF, N: LongInt; (obliczenie 10 Begin F:= 1; N:= 1; while N !}


9 rozdz. 6. STRUKTURY KONTROLNE Instrukcja pętli "Before" (z warunkiem końcowym) Instrukcje między słowami repeat i until tworzą treść pętli. Jeśli prawda, pętla się kończy. Pętla „Podczas” - „gdy warunek jest spełniony, wykonaj operatory ciała”. Pętla "Przed" - "wykonaj treść pętli, aż warunek stanie się spełniony"; powtarzać dopóki Fałszywe; powtarzaj operator aż do wyrażenia warunkowego;


10 rozdz. 6. STRUKTURY STEROWANIA Operator pętli z parametrem (pętla nad licznikiem) jest zmienną typu porządkowego, wartości i muszą być tego samego typu. Wartość zmienia się w porządku rosnącym (używając słowa zastrzeżonego do) lub malejącym (w dół) od wartości do wartości ze stałym krokiem równym odstępowi między dwiema najbliższymi wartościami w typie, do którego należy (dla typy liczb całkowitych- to jest 1, dla symbolicznego - od jednego znaku do drugiego przy zwiększeniu kodu o 1 itd.). Do pętli może być zagnieżdżony, jeśli żadna z zagnieżdżonych pętli nie używa ani nie modyfikuje zmiennych - parametrów pętli zewnętrznych. Służy do organizowania „ścisłych” cykli, które muszą być wykonane określoną liczbę razy. for r loop parametr: = wyrażenie 1 do wyrażenia 2 do instrukcja downto


12 rozdz. 6. STRUKTURY STEROWANIA Bezwarunkowy operator gałęzi Etykieta może pojawić się w dowolnym miejscu programu pomiędzy operatorami i jest oddzielona od drugiego operatora dwukropkiem ":". Zakres bezwarunkowych operatorów skoku jest ściśle zlokalizowany. Zabronione są skoki na operatorze goto pomiędzy procedurami, a także pomiędzy blokiem głównym a procedurą. Operator skoku bezwarunkowego przenosi kontrolę wykonania do miejsca programu wskazanego za pomocą etykiety (jest to "zbędne" z punktu widzenia teorii programowania strukturalnego). goto label Etykieta liczba całkowita bez znaku; identyfikator etykiety, diagramy składni i: LabelL1, L2; Początek ... przejdź do L1; ... L1: przejdź do L2; ... L2: Koniec.


13 rozdz. 6. STRUKTURY STERUJĄCE Procedury bezwarunkowego skoku Niestrukturalne procedury przekazywania sterowania podczas pracy ze strukturami cyklicznymi: Break - implementuje wyjście z pętli dowolnego typu; Continue — przenosi do następnej iteracji pętli, ignorując instrukcje pozostałe do końca ciała pętli. Procedury Exit i Halt są specjalnie zaprojektowane do wychodzenia z bloków programu (procedury, funkcje, główny blok programu). Halt () wychodzi z programu przez powrót system operacyjny określony kod wyjścia. Exit powoduje bezwarunkowe wyjście z podprogramu. Jeśli procedura jest używana w bloku głównym, to jest wykonywana w taki sam sposób, jak Halt.

Operator oddziału

Operator rozgałęzienia (rozgałęzienie warunkowe) umożliwia wykonanie określonych instrukcji programu w zależności od warunków logicznych. W Visual Basic operator oddziału może być używany w dwóch formach: wbudowanym i blokowym.

internetowa wymiana prac studenckich ">

Przykład 1

Na przykład, jeśli a> b Wtedy max = a W przeciwnym razie max = b.

Jeśli musisz wykonać wiele instrukcji, są one oddzielone dwukropkami.

Przykład 2

Na przykład, jeśli a> 0 Wtedy b = a + 1: c = a \ 2.

Składnia blokowa jest potężniejsza, bardziej ustrukturyzowana i bardziej czytelna.

Składnia bloku:

Warunek to wyrażenie logiczne, które może przyjąć wartość Prawdziwe(prawda), Fałszywe(fałsz) lub Zero co równa się Fałszywe... Po wykonaniu instrukcji rozgałęzienia bloku warunek jest sprawdzany i, jeśli jest prawdziwy, następująca po nim instrukcja Następnie... Jeśli warunek nie jest spełniony, jest sprawdzany warunek2 Następny W przeciwnym razie... Po znalezieniu prawdziwej wartości wykonywane jest operator_of_true2, co następuje: Następnie, po czym program wykracza poza EndIf(tj. kolejne W przeciwnym razie, jeśli są, nie są zaznaczone). Jeśli prawdziwe warunki dla W przeciwnym razie nie znaleziono, wykonywany jest operator na false_warunek.

Rysunek 3. Przykład składni blokowej. Author24 - internetowa wymiana prac studenckich

Operator wyboru

Operator wyboru przypadku wykonuje określone operatory w zależności od zbioru wartości testowanego wyrażenia lub zmiennej. Wybierz składnię operatora:

Rysunek 4. Składnia instrukcji wyboru. Author24 - internetowa wymiana prac studenckich

Wartość to zmienna lub wyrażenie testowane pod kątem co najmniej jednego warunku. Listę wartości określa się przecinkiem, zakres wartości określa się słowem serwisowym Do(np. 5 do 9).

Przykład 3

Po numerze miesiąca w roku wyświetl komunikat o porze roku, do której należy określony miesiąc.

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz czytać Dzwon?
Bez spamu