DZWON

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

Operatory warunkowe mają na celu wybranie jednej z możliwych akcji (operatorów) do wykonania, w zależności od określonego warunku (w tym przypadku jedna z akcji może być nieobecna). Wartość wyrażenia logicznego jest używana jako warunki wyboru. Turbo Pascal ma dwie instrukcje warunkowe: if i case.

Jeśli warunek

Instrukcja warunku if może przyjąć jedną z następujących form:

jeśli<условие> następnie<оператор1>

jeszcze<оператор2>;

jeśli<условие> następnie<оператор>;

Instrukcja warunku if jest wykonywana w następujący sposób. Najpierw oceniane jest wyrażenie zapisane w warunku. W wyniku jego obliczenia otrzymujemy wartość logiczną. W pierwszym przypadku, jeśli wartość wyrażenia to True, to<оператор1>określone po słowie wtedy. Jeśli wynikiem oceny wyrażenia w warunku jest Fałsz, to<оператор2>... W drugim przypadku, jeśli zostanie wykonany wynik wyrażenia True<оператор>if False - wykonywana jest instrukcja występująca bezpośrednio po instrukcji if. Zgodnie z regułami każda z gałęzi może zawierać jedną instrukcję wykonywalną lub kilka, połączonych w instrukcję złożoną. Średnik przed milse nie umieścić.

Oświadczenie dotyczące wyboru przypadku

Jeśli jeden operator jeślimoże zapewnić do wyboru dwie alternatywy, a następnie operator wyboru walizkapozwala wybrać z dowolnej liczby dostępnych opcji.

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

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

<список2>: <оператор2>;

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

Instrukcja case działa w następujący sposób. Najpierw wyliczana jest wartość wyrażenia selektora, następnie podawana jest implementacja operatora, którego stała selekcji jest równa aktualnej wartości selektora. Jeśli żadna ze stałych nie jest równa bieżącej wartości selektora, wykonywana jest instrukcja za słowem else. Jeśli nie ma słowa else, aktywowany jest operator znajdujący się za końcem słowa, tj. pierwszy operator poza przypadkiem granicznym.

Wyrażenie selektora jest prostą zmienną o charakterze liczby całkowitej, znaku, typu wyliczeniowego lub logicznego, w zależności od wartości, o której podejmowana jest decyzja;

Lista stałych selekcji składa się z dowolnej liczby wartości lub zakresów oddzielonych od siebie przecinkami. Typ stałych musi odpowiadać typowi selektora;

Określony format zakłada, że \u200b\u200bdla każdej alternatywy jest używany jeden operator, ale w razie potrzeby można określić wiele operatorów, grupując je w operator złożony.

Gałąź Jeszczejest opcjonalna i w przeciwieństwie do instrukcji if można ją poprzedzić średnikiem.

Operatory powtórz

Jeśli program musi wielokrotnie wykonywać niektóre instrukcje, używane są instrukcje powtarzania (pętli). W Pascalu istnieją trzy typy operatorów pętli: while, repeat, for.

Chociaż oświadczenie

Instrukcja while jest (na razie) nazywana instrukcją pętli z Warunek wstępny do sprawdzania warunku wykonania treści pętli na samym początku instrukcji.

podczas<условие продолжения повторений> robić

<тело цикла>;

Stan: schorzenie - wyrażenie logiczne. Korpus pętli - operator prosty lub złożony. Operator złożony jest używany, gdy treść pętli składa się z 2 lub więcej operatorów.

Przed każdym wykonaniem treści pętli obliczana jest wartość wyrażenia warunku. Jeśli wynik ma wartość True, wykonywana jest treść pętli, a wyrażenie warunku jest ponownie oceniane. Jeśli wynik to False, pętla kończy działanie i przechodzi do pierwszej instrukcji bezpośrednio po treści pętli.

Powtórz stwierdzenie

Instrukcja repeat implementuje pętlę z warunek końcowy ... Pętla z warunkiem końcowym będzie zawsze wykonywana przynajmniej raz.

<оператор1>;

<оператор2>;

<оператор N>;

aż do<условие окончания цикла>;

Instrukcje między słowami powtarzają się i dopóki nie są treścią pętli. Najpierw wykonywana jest treść pętli, a następnie sprawdzany jest warunek wyjścia z pętli. Jeśli wynikiem wyrażenia logicznego jest Fałsz, wówczas ponownie aktywowana jest treść pętli; jeśli wynik to True, pętla kończy się.

Operator powtórz dla

To jest operator ze znaną liczbą powtórzeń. Ten operator powtórzeń jest często nazywany operatorem pętli parametrów, ponieważ liczbę powtórzeń określa zmienna o nazwie parametr pętli lub zmienna kontrolna .

Oświadczenie for można zapisać w dwóch formatach:

dla<параметр цикла> := do robić<тело цикла>;

dla<параметр цикла> := aż do robić<тело цикла>;

gdzie<параметр цикла> jest zmienną typu całkowitego, symbolicznego, logicznego lub wyliczeniowego;

SI i S2 są wyrażeniami, które określają odpowiednio początkową i końcową wartość parametru cyklu;

for ... do - nagłówek pętli;

Ciało pętli może być prostylub złożonyoperator. Instrukcja for wykonuje treść pętli, dopóki wszystkie wartości parametru pętli od początku do końca nie zostaną iterowane.

Polecenie akcji. Parametrowi pętli przypisywana jest wartość wyrażenia S1. Jeśli jest ona mniejsza lub równa wartości wyrażenia S2, wykonywana jest treść pętli. Następnie wartość parametru jest automatycznie zwiększana o jeden i ponownie porównywana z wartością wyrażenia S2 itd. Gdy wartość parametru stanie się większa niż wartość wyrażenia S2, wykonywana jest następna instrukcja po cyklu.

Krok zmiany parametru pętli dla operatora for ... to ... do to +1, a dla operatora for ... downto ... do to -1.

Pytania do autotestu:

    Format operatora przypisania. Czy w wyrażeniu arytmetycznym można używać wartości różnych typów?

    Jaka jest różnica między operatorem wejściowym Read a operatorem Readln?

    Określ formaty danych wyjściowych.

    Jakie rozgałęzianie jest zaimplementowane w Turbo Pascal?

    Do czego służą gałęzie? Daj przykłady.

    Dwie formy nagrywania operator warunkowy Jeśli.

    Format zagnieżdżonej instrukcji If.

    Format oświadczenia o wyborze przypadku?

    Kiedy jest używana instrukcja złożona Begin ... end?

    W jaki sposób algorytmy rozgałęzione są przedstawiane na schematach blokowych?

    Co to jest cykl?

    Jakie rodzaje pętli są zaimplementowane w Turbo Pascalu?

    Co to jest pętla?

    Kiedy treść pętli jest ujęta w nawiasy operatora begin… end?

    Jakie są różnice między stwierdzeniami while i repeat?

    Kiedy najlepiej używać pętli for do zapętlania? Co jest napisane w tytule tego oświadczenia?

    Jaki jest kierunek zmiany wartości parametru pętli opisany w instrukcji pętli for?

W lekcji omówiono operator warunkowy w języku Pascal ( jeśli). Wyjaśnia, jak używać wielu warunków w jednej konstrukcji ( I i LUB). Rozważono przykłady pracy z operatorem

Przypominamy, że ta strona nie rości sobie pretensji do pełnej prezentacji informacji na dany temat. Celem portalu jest zapewnienie możliwości przyswojenia materiału na podstawie gotowych rozwiązanych przykładów na temat „Język programowanie w języku Pascal" z zadania praktyczne aby zabezpieczyć materiał. Zadania Pascala przedstawione na stronie są ustawiane sekwencyjnie w miarę wzrostu ich złożoności. Witryna może być wykorzystywana przez nauczycieli i nauczycieli jako pomocnicza pomoc wizualna.

Przed przystąpieniem do rozważań na ten temat stosowano głównie algorytmy liniowe w Pascalu, które są typowe dla bardzo prostych zadań, w których akcje (operatory) są wykonywane sekwencyjnie, jedno po drugim. Bardziej złożone algorytmy wymagają użycia konstrukcji rozgałęziającej.

Schemat blokowy operatora warunkowego:

Operator warunkowy w Pascalu ma następującą składnię:

Skrócona wersja:

jeśli warunek to oświadczenie;

Pełna opcja:

jeśli warunek to instrukcja else instrukcja;

Operator warunkowy w Pascalu - if - służy do zorganizowania postępu zadania w taki sposób, aby kolejność wykonywania operatorów zmieniała się w zależności od dowolnego warunku logicznego. Warunek logiczny może przyjąć jedną z dwóch wartości: odpowiednio prawda (prawda) lub fałsz (fałsz), może mieć wartość prawda lub fałsz.

Operator złożony

Jeśli w prawdziwym stanie konieczne jest wykonanie kilku operatorów, to je zgodnie z zasadami język pascal musi być zamknięty w bloku, zaczynając od słowa usługowego begin i kończąc na końcu słowa usługowego. Taki blok jest zwykle nazywany wsporniki operatorai ta konstrukcja - operator złożony:

Nawiasy operatora i operator złożony w Pascalu:

jeśli wyrażenie boolowskie, to begin instrukcja1; operator2; end else begin instrukcja1; operator2; koniec;

Tłumaczenie terminów przez operatora angielskiego ułatwi zrozumienie jego użycia:

JEŚLI NASTĘPNIE JESZCZE
JEŚLI DO JESZCZE


W warunku (w wyrażeniu logicznym) używane są operatory relacyjne.
Rozważ listę operatorów relacji Pascal:

  • więcej\u003e
  • mniejszy
  • większe lub równe w Pascal\u003e \u003d
  • mniejszy lub równy w Pascalu
  • porównanie w Pascal \u003d
  • nie równe w Pascalu

Przykład: znajdź największą z dwóch liczb

opcja 1 Opcja 2


Zrozum szczegółowo pracę możesz użyć operatora warunkowego w Pascalu, oglądając samouczek wideo:

Przykład: obliczyć wartość zmiennej y wzdłuż jednej z dwóch gałęzi

Pokaż rozwiązanie:

var x, y: real; begin writeln ("enter x"); przeczytaj (x); jeśli x\u003e 0 to y: \u003d ln (x) else y: \u003d exp (x); writeln ("y \u003d", y: 6: 2) (całkowita liczba zajmie 6 pozycji, a będą w niej 2 miejsca po przecinku) end.

Zwróć uwagę, jak w ten przykład y jest wyprowadzane. Podczas wycofywania zmienne typu w pascalu można używać tzw sformatowane wyjścielub notacja z dwoma dwukropkami:
y: 6: 2
- cyfra po pierwszym dwukropku (6) wskazuje, ile znaków zajmie liczba wyświetlona na ekranie
- cyfra po drugim dwukropku (2) wskazuje, ile cyfr po przecinku liczby rzeczywistej zostanie wyświetlonych

Tak więc użycie takiej notacji w pascalu praktycznie umożliwia zaokrąglanie do części setnych, tysięcznych itp.

Problem 0. Oblicz wartość zmiennej y wzdłuż jednej z dwóch gałęzi:

Cel 1. Do komputera wprowadzane są dwie liczby. Jeśli pierwsza jest większa niż druga, oblicz ich sumę, w przeciwnym razie - iloczyn. Komputer powinien następnie wydrukować wynik i tekst PROBLEM ROZWIĄZANY

Cel 2. Smok rośnie co roku o trzy głowy, ale po ukończeniu 100 lat tylko dwie. Ile głów i oczu ma smok N lat?

Operacje boolowskie w Pascalu (w kategoriach boolowskich)

Kiedy musisz użyć podwójnego warunku w Pascalu, potrzebujesz operacji boolowskich.

  • Operacja logiczna I (I), umieszczony między dwoma warunkami, mówi, że oba te warunki muszą być spełnione jednocześnie (muszą być spełnione). Logiczne znaczenie tej operacji to „koniunkcja”.
  • Między dwoma warunkami znak LUB (LUB) wskazuje, że wystarczy, jeśli przynajmniej jeden z nich jest spełniony (jeden z dwóch warunków jest spełniony). Logiczne znaczenie tej operacji to „rozłączność”.
  • W Pascalu XOR - znak operacji logicznej, który ma znaczenie „ścisłej dysjunkcji” i wskazuje, że konieczne jest spełnienie jednego z dwóch warunków (prawda), a nie spełnienie drugiego (fałsz).
  • Operacja logiczna NIE przed wyrażeniem logicznym lub zmienną ma znaczenie „negacja” lub „inwersja” i wskazuje, że jeśli dana zmienna lub wyrażenie jest prawdziwe, to ich negacja jest fałszywa i odwrotnie.

Ważny: Każdy z prostych warunków należy umieścić w nawiasach.

Przykład: Rozważ przykłady operacji logicznych w wyrażeniach logicznych w języku Pascal

1 2 3 4 5 6 7 8 var n: integer; początek n: \u003d 6; jeśli (n\u003e 5) i (n<10 ) then writeln ("истина" ) ; if (n>7) lub (n<10 ) then writeln ("истина" ) ; if (n>7) xor (rzecz<10 ) then writeln ("истина" ) ; if not (n>7) następnie writeln („prawda”); koniec.

var n: integer; początek n: \u003d 6; jeśli (n\u003e 5) i (n<10) then writeln("истина"); if (n>7) lub (n<10) then writeln("истина"); if (n>7) xor (rzecz<10) then writeln("истина"); if not(n>7) następnie writeln („prawda”); koniec.

Przykład:Firma rekrutuje pracowników w wieku od 25 do 40 lat włącznie. Wpisz wiek osoby i określ, czy pasuje ona do danej firmy (wpisz odpowiedź „pasuje” lub „nieodpowiednia”).
Funkcja: konieczne jest sprawdzenie, czy jednocześnie spełnione są dwa warunki.

Instrukcja jump umożliwia przejście z bieżącej lokalizacji wykonywania programu do innej lokalizacji, która nie jest następna w kolejności. Ten operator zakłóca normalny przebieg programu.

Przejście odbywa się za pomocą tzw. Etykiet.
Etykieta to identyfikator lub liczba całkowita bez znaku z zakresu od 0 do 9999, która poprzedza dowolną instrukcję programu i jest oddzielona od niej dwukropkiem. Wszystkie etykiety użyte w programie muszą być wcześniej zadeklarowane w sekcji deklaracji etykiet, zaczynając od etykiety WORD.

Może teoretycznie pokazać, że rozważane operatory są wystarczające do pisania programów o dowolnej złożoności. Pod tym względem obecność operatorów skoku w języku wydaje się zbędna. Ponadto, nowoczesna technologia programowanie strukturalne opiera się na zasadzie „programowania bez GOTO”: uważa się, że nadużywanie instrukcji skoku sprawia, że \u200b\u200bprogram jest trudny do zrozumienia, zagmatwany i trudny do debugowania. Jednak w niektórych przypadkach użycie operatorów oddziałów może uprościć program.

Operator przejścia ma postać:

Tutaj goto jest słowem zastrzeżonym (idź [do etykiety]); - etykieta.

Etykieta 1; // Zadeklaruj etykietę o nazwie 1 var
a: liczba całkowita; zaczynać
a: \u003d 10;
Idź do 1; // Idź do etykiety 1
a: \u003d sqrt (a); // Ta instrukcja nigdy nie zostanie wykonana! 1: a: \u003d a + a; // Operator oznaczony 1 końcem;

Operatory skoków warunkowych

Operator warunku jest przeznaczony do wykonywania lub nie wykonywania jakichkolwiek działań w zależności od wyniku warunku typu Boolean. Ten operator służy do rozgałęziania wykonywania programu,
tj. jeśli dany stan jest prawdziwe (i tylko w tym przypadku!), to wykonywana jest jakaś sekwencja instrukcji, w przeciwnym razie wykonywane są inne instrukcje. Operator warunku jest następujący:

jeśli stan: schorzenie następnie instrukcja1 else instrukcja2;

Operator warunku można zapisać w uproszczonej formie:

jeśli stan: schorzenie następnie operator;

Oto przykłady użycia operatorów warunków:

jeśli a\u003e 0 to b: \u003d sqrt (a) else b: \u003d a * 2; // Operator warunku
jeśli a \u003d 10, to b: \u003d b + 1; // Uproszczona forma

Aby zorganizować rozgałęzienie w kilku kierunkach (więcej niż dwa), możesz użyć kilku operatorów warunkowych, zagnieżdżonych w sobie. Zagnieżdżanie instrukcji warunkowych podlega tym samym regułom, co zagnieżdżanie instrukcji złożonych.

W przeciwieństwie do innych języków programowania w Object Pascal, priorytet operacji na relacjach jest niższy niż w przypadku operacji logicznych; dlatego poszczególne komponenty złożonego wyrażenie logiczne są zawarte w nawiasach. Na przykład taki zapis poprzedniego oświadczenia będzie nieprawidłowy:
jeśli a\u003e b i b 0 to ... // Błąd, ponieważ faktycznie (biorąc pod uwagę priorytet operacji) kompilator przetłumaczy następujący wiersz:
jeśli a\u003e (b i b) 0 to ...

Instrukcje strukturalne to instrukcje zawierające inne instrukcje i kontrolujące kolejność ich wykonywania. Obejmują one:

  • operator złożony;
  • warunkowa instrukcja If;
  • instrukcja warunkowa Case;
  • operator pętli Repeat;
  • while loop instrukcja;
  • operator pętli.

Operator złożony

Często konieczne jest, aby w odniesieniu do jakiejś czynności kilka stwierdzeń było postrzeganych w programie jako jedno stwierdzenie. Taki operator można uzyskać, jeśli wymagana sekwencja operatorów jest połączona z nawiasami operatora. Słowa serwisowe Begin i End nazywane są nawiasami operatora.

Format operatora:

operator nr 1;

operator nr 2;

operator # 3;

operator # n-1;

operator # n; Koniec;

Słowo Początek pełni rolę nawiasu otwierającego, słowo Koniec pełni rolę nawiasu zamykającego.

Instrukcja złożona jest traktowana jako pojedyncza instrukcja. Można go wstawić w dowolnym miejscu programu, w którym dozwolona jest tylko jedna instrukcja.

Operatory zawarte w operatorze złożonym, podobnie jak inne operatory, są oddzielone średnikiem, ale ten separator można pominąć przed końcem. Po zakończeniu potrzebny jest średnik jako separator między instrukcją złożoną a następną instrukcją.

W następnych sekcjach znaczenie i cel operatora złożonego zostaną zilustrowane licznymi przykładami.

Warunkowa instrukcja IF

Operator If implementuje algorytmiczną konstrukcję „Decision” i umożliwia zmianę kolejności wykonywania operatorów w zależności od prawdziwości lub fałszu określonego warunku. Format operatora można zapisać w dwóch formach: kompletnej i niekompletnej.

Format operatora w pełnej formie:

Jeśli<условие> Następnie<оператор 1> Jeszcze<оператор 2>

Niekompletny format operatora:

Jeśli<условие>Następnie<оператор 1>

If (if), Then (then), Else (inaczej) są słowami zastrzeżonymi.

Schematy blokowe instrukcji if przedstawiono poniżej:

Operator warunkowy działa w następujący sposób. Wyrażenie warunkowe jest oceniane jako pierwsze< условие >... Jeśli wynik to prawda, to< оператор 1 > (po słowie Następnie) i< оператор 2 > pominięty. Jeśli wynik jest fałszywy, to< оператор 1 > pominięty, ale wykonany< оператор 2 > (po słowie Else). Else nigdy nie jest poprzedzone średnikiem, ponieważ nie jest to koniec instrukcji If.

Część Inaczej<оператор 2> warunkową instrukcję If można pominąć. Jeśli< условие > Jeśli operator zwraca wartość True, to<оператор 1> w przeciwnym razie ten operator jest pomijany. W takim przypadku format instrukcji warunkowej jest niekompletny:

Porównajmy dwie konstrukcje:

Jeśli<условие>Następnie<оператор 1>;

Jeśli<условие>Następnie<оператор 1>; <оператор 2>;

W pierwszej linii<оператор 1> wykonane lub niewykonane w zależności od wykonania<условия> ... W drugiej linii<оператор 2> jest zawsze wykonywany, ponieważ po<оператора 1> jest separator ";" a wszystko, co znajduje się w polu separatora, jest traktowane jako inny operator. Dlatego zgodnie z formatem instrukcji If po słowach zastrzeżonych Then i Else może znajdować się tylko jedna instrukcja.

Przykład:

Jeśli a\u003e 0 Wtedy b: \u003d 1;

Jeśli a\u003e 0 Wtedy b: \u003d 1; a: \u003d b; (operator a: \u003d b; jest zawsze wykonywany)

Jeśli konieczne jest wykonanie po Then i Else nie jednego, ale kilku operatorów, należy umieścić nawiasy operatorów, tj. użyj operatora złożonego.

W takim przypadku instrukcja If będzie wyglądać następująco:

Jeśli<условие>Następnie

operator 11;

operator 1n;

operator 21;

operator 2n;

Przykład.

Jeśli a\u003e 0 Następnie zacznij b: \u003d 1; a: \u003d b; koniec;

ZADANIE 1. Oblicz wartość funkcji podanej przez nierówności

y \u003d x + 1 dla x<0; y=2∙x при x>0. program a5; var x, y: real; zacząć pisać („Podaj wartość x:”); readln (x); if x writeln ('Wartość y to:', y: 6: 2) end.

Wyniki programu:

Wprowadź wartości x: 0,5

Wartość y wynosi: 1,00

ZADANIE 2. Napisz program do rozwiązania równania kwadratowego. Jeśli dyskryminator jest mniejszy od zera, wyświetl odpowiedni komunikat.

Program a6; var a, b, c: real; (współczynniki równania) x1, x2: rzeczywiste; (pierwiastki równania) d: rzeczywista; (dyskryminacja) begin Writeln („Rozwiązywanie równania kwadratowego”: 50); Write („Wpisz wartości współczynników a, b, c:”); Readln (a, b, c); (wprowadzenie współczynników) d: \u003d b * b-4 * a * c; jeśli (d<0) then Writeln(‘Уравнение не имеет корней.’) else begin {операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLn(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end.

Wyniki programu:

Rozwiązywanie równania kwadratowego

Wpisz wartości współczynników a, b, c: 3 1 6

Równanie nie ma korzeni.

W instrukcji If można użyć nie tylko instrukcji złożonej, ale także dowolnej instrukcji strukturalnej. Rozważana przez nas instrukcja warunkowa If może również służyć jako taki operator. W tym przypadku mówi się o zagnieżdżonych instrukcjach If.

Przykład.

jeśli warunek to
zaczynać Wsporniki operatora
operator; zagnieżdżone
Instrukcja IF,
niepełny formularz
jeśli warunek to operator
operator else;
koniec
jeszcze
zaczynać Wsporniki operatora
operator; zagnieżdżone
instrukcja IF,
niepełny formularz
jeśli stan
następnie oświadczenie;
koniec;

Podczas pracy z operatorami zagnieżdżonymi Jeśli należy przestrzegać następujących zasad:

  • przed słowem zastrzeżonym inny symbol „;” nigdy nie wkładaj;
  • słowo zastrzeżone else jest zawsze powiązane z poprzedzającym go słowem zastrzeżonym.

ZADANIE 3. Poprawmy program do rozwiązywania równania kwadratowego (PROBLEM 2). Gdy wartość współczynnika a \u003d 0, równanie ulega degeneracji. Fakt ten nie został uwzględniony w programie, co spowodowałoby fatalny błąd podczas wykonywania programu (dzielenie przez zero). Aby wykluczyć dzielenie przez zero, sprawdzimy wartość współczynnika a po wprowadzeniu go przez operator Readln (a, b, c).

Ponieważ zmienna a jest zadeklarowana w programie jako zmienna typu rzeczywistego, jej wartość liczbowa w maszynie nie jest dokładnie reprezentowana, z pewnym błędem. Dlatego wpis typu

Istnieje kilka opcji prawidłowego porównania wartości zmiennej rzeczywistej z zerem:

ZADANIE 4. Zaawansowane rozwiązywanie równań kwadratowych.

Program a7; Var a, b, c: rzeczywista; (współczynniki równania) x1, x2: rzeczywiste; (pierwiastki równania) d: rzeczywista; (dyskryminacja) begin Writeln („Rozwiązywanie równania kwadratowego”: 50); Write („Wpisz wartości współczynników a, b, c:”); Readln (a, b, c); (kursy wejściowe) jeśli runda (a)<>0, a następnie rozpocznij d: \u003d b * b-4 * a * c; jeśli d<0 then Writeln(‘Уравнение не имеет корней.’) else begin{операторные скобки} x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); WriteLN(‘Корни уравнения: ’, x1:8:2,x2:8:2); end; end else Writeln(‘Деление на нуль.’); end.

Wyniki programu:

Rozwiązywanie równania kwadratowego Podaj wartości współczynników a, b, c: 0 1 6 Dzielenie przez zero.

Instrukcja warunkowego wyboru wielkości liter

Operator select jest uogólnieniem operatora If i jest używany, gdy tylko jeden operator z zestawu operatorów musi być wykonany w zależności od wartości klucza wyboru.

Jako klucz wyboru używane jest wyrażenie, które znajduje się między literą Case a słowami zastrzeżonymi. Wyrażenia mogą być liczbami całkowitymi, logicznymi i znakowymi. Wyrażenie nie może być typu Real, String.

Format operatora:

Przypadek "<ключ выбора>"stała1: operator 1; stała2: operator 2; stała3: operator 3; ... stałaN-1: operator N-1; stałaN: operator Nn; Else operator End;

Tutaj Case (w przypadku), of (from), Else (inaczej), End (end) są słowami zastrzeżonymi.

Klawisz wyboru jest wyrażeniem innego typu niż Real i String.

Stała1 jest stałą tego samego typu co wyrażenie.

Operator1 jest operatorem arbitralnym.

Operator wyboru działa w następujący sposób. Wyrażenie jest oceniane jako pierwsze<ключ выбора> , a następnie w sekwencji operatorów znajduje się jeden poprzedzony stałą równą obliczonej wartości<ключ выбора> ... Znaleziony operator jest wykonywany, po czym operator select kończy swoją pracę (sterowanie jest przenoszone na koniec). Jeśli na liście stałych nie zostanie znaleziona żadna stała, która odpowiada obliczonej wartości klucza wyboru, sterowanie jest przekazywane do operatora znajdującego się za słowem Else.

Część Inaczej<оператора> można pominąć, to jeśli żądanej stałej nie ma na liście stałych, nic się nie dzieje, a operator selekcji po prostu kończy swoją pracę.

ZADANIE 5. Napisz prosty kalkulator.

Program a8; var x, y: real; z: prawdziwe; (wynik) op: char; (klawisz wyboru) begin Write (‘Enter the operandy x, y:’); Readln (x, y); Write (‘Enter operation (+, -, *, /):’); Readln (op); przypadek op „+”: z: \u003d x + y; „-”: z: \u003d x-y; '*': Z: \u003d x * y; „/”: Jeśli y0, to z: \u003d x / y Elsewriteln („Dzielenie przez zero”); Else writeln („Nie podano działania!”); koniec; (op) (więc możesz zaznaczyć „którego” koniec) writeln („Wynik to \u003d”, z: 8: 2); koniec.

Wyniki programu:

Wprowadź operandy x, y: 4 2

Wpisz operację (+, -, *, /): *

Wynik to \u003d 8,00

W programie klawisz wyboru jest zmienną znakową. W zależności od wprowadzonej wartości symboli (+, -, *, /) wykonywana jest jedna z operacji arytmetycznych: dodawanie, odejmowanie, mnożenie lub dzielenie. Jeśli jako dzielnik zostanie wprowadzone zero, dzielenie jest niemożliwe i wyświetlany jest komunikat „Dzielenie przez zero”. Jeśli zostanie wprowadzony inny znak, w wyniku pojawi się komunikat „Brak działania!” Jeśli zostaną wprowadzone prawidłowe operacje, zwracany jest wynik.

ZADANIE 6. Napisz program, który zapyta użytkownika o numer dnia tygodnia, a następnie wyświetli nazwę dnia tygodnia lub komunikat o błędzie w przypadku wprowadzenia nieprawidłowych danych.

Program a9; Var n: liczba całkowita; (numer dnia tygodnia) Rozpocznij zapis („Wpisz numer dnia tygodnia:”); readln (n); przypadek n z 1: writeln („poniedziałek”); 2: writeln („wtorek”); 3: writeln („środa”); 4: writeln („czwartek”); 5: writeln („piątek”); 6: writeln („sobota”); 7: writeln („niedziela”); inaczej napisz („mylisz się!”) koniec; (n) koniec.

Wyniki programu:

Wprowadź dzień tygodnia: 1

poniedziałek

Żadna stała nie powinna być taka sama jak inna. Jeśli dla kilku stałych konieczne jest wykonanie tego samego operatora, to można je na przykład wymienić oddzielone przecinkami

przypadek n z 1,3,5,7,9: writeln („To są liczby nieparzyste”); 2,4,6,8,10: writeln („To są liczby parzyste”); koniec;

Zdarza się, że w programach konieczne jest organizowanie rozgałęzień. W takim przypadku proces rozwiązywania problemu odbywa się na podstawie spełnienia lub niespełnienia określonego warunku.

W języku Pascal wybór akcji, w zależności od określonego warunku, można zrealizować za pomocą konstrukcji

jeśli ... to ... inaczej ... jeśli następnie ...

2. Jaka jest pełna forma gałęzi warunkowej, jeśli jest w języku Pascal?

Pełna postać warunkowego operatora skoku jeśli :

jeśli stan: schorzenie następnie operator1 jeszcze operator2;

Działanie operatora jest następujące: najpierw obliczana jest wartość wyrażenia stan: schorzenie ... Jeśli jest prawdziwe (równe PRAWDA), wykonywana jest instrukcja następująca po słowie następnie (operator1 ). Jeśli wartością jest FALSE, wykonywana jest instrukcja występująca po słowie jeszcze(operator2 ).

Operatorzy operator1 i operator2 może być złożony, to znaczy zawierać kilka wierszy kodu. Takie operatory są zawarte w nawiasach operatora. zaczynać ... kończyć... Taka potrzeba pojawia się, jeśli po zastrzeżonych słowach następnie lub jeszcze należy określić wiele operatorów.

W tym przypadku ogólną postacią warunkowego operatora gałęzi może być na przykład następująca postać:

jeśli stan: schorzenie następnie zaczynać // wielu operatorów ... koniec jeszcze zaczynać // wielu operatorów ... koniec;

3. Jaka jest skrócona forma warunkowego operatora oddziału?

Skrócona forma gałęzi warunkowej nie zawiera bloku jeszcze i ma postać:

jeśli stan: schorzenie następnie operator;

W takim przypadku operator działa w następujący sposób. Najpierw obliczana jest wartość wyrażenia logicznego (boolowskiego) stan: schorzenie ... Jeśli wynik wyrażenia boolowskiego stan: schorzenie prawda (równa PRAWDZIWE ), a następnie operator następujący po słowie następnie ... Jeśli wynikiem jest FALSE, wykonywana jest instrukcja następująca po instrukcji jeśli (w operatorze jeśli następnie nic nie jest wykonywane).

Jeśli po spełnieniu warunku trzeba wykonać kilka operatorów, to ogólna postać warunkowego operatora skoku może wyglądać następująco:

jeśli stan: schorzenie następnie zaczynać // dwóch lub więcej operatorów ... koniec ;

4. Przykłady wykorzystania warunkowego operatora oddziału, który ma pełną formę prezentacji.

Przykład 1. Fragment programu do znajdowania wartości maksymalnej między dwiema liczbami rzeczywistymi.

var a, b: rzeczywiste; // a, b - zmienne, dla których poszukuje się maksimum max: rzeczywista; // maksymalny ... zaczynać ... // a, b - zestaw jeśli a\u003e b następnie max: \u003d a jeszcze max: \u003d b; ... koniec ;

Przykład 2.

Fragment kodu programu rozwiązujący ten problem:

... var x, f: rzeczywiste; zaczynać ... // x - zestaw Jeśli -5 następnie f: \u003d x * x + 8 jeszcze f: \u003d -x * x * x + 2; // w zmiennej f - wynik ... koniec ;

5. Przykłady użycia warunkowego operatora gałęzi, który ma skróconą reprezentację.

Przykład 1. Fragment kodu, który znajduje minimalną wartość między dwiema liczbami rzeczywistymi x i y .

... var min: real; ... zaczynać ... // x, y - dane min: \u003d x; jeśli min następnie min: \u003d y; ... koniec ;

Przykład 2. Obliczanie wartości funkcji według warunku. Niech trzeba będzie znaleźć wartość funkcji:

var x, f: rzeczywiste; zaczynać ... // x - dane Jeśli x<-6 następnie f: \u003d 3 * x * x-x; jeśli (-6 <=x) i (x<=5 ) następnie f: \u003d sqrt (7 -x); jeśli x\u003e 5 następnie f: \u003d 8 * x-3; ... koniec ;

DZWON

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