Начало - Интернет
Разклонена структура. Условен оператор

Случва се програмите да организират разклоняване. В този случай процесът на решаване на проблем възниква въз основа на изпълнението или неизпълнението на някакво условие.

В езика Pascal изборът на действие, в зависимост от някакво условие, може да се реализира с помощта на конструкцията

ако... тогава... иначе... ако... тогава...

2. Каква е пълната форма на оператора? условен скокако на Паскал?

Пълна форма на оператора за условен скок ако :

ако състояние тогава оператор1 друго оператор2;

Действието на оператора е следното: първо се изчислява стойността на израза състояние . Ако е вярно (равно на TRUE), тогава операторът, който следва думата, се изпълнява тогава (оператор1). Ако стойността е невярно (FALSE), тогава операторът, който следва думата, се изпълнява друго(оператор2 ).

Оператори оператор1И оператор2може да бъде съставен, тоест да съдържа няколко реда код. Такива оператори се поставят в операторни скоби начало... край. Тази необходимост възниква, ако след запазени думи тогаваили друготрябва да посочите няколко оператора.

В този случай общата форма на оператора за условен скок може да има например следната форма:

ако състояние тогава започвам // няколко оператора ... край друго започвам // няколко оператора ... край ;

3. Каква е съкратената форма на оператора за условен скок?

Кратката форма на оператора за условен скок не съдържа блок другои има формата:

ако състояние тогава оператор;

В този случай операторът работи по следния начин. Първо се изчислява стойността на логическия (булев) израз състояние . Ако резултатът логически израз състояниевярно (равно ВЯРНО), тогава се изпълнява операторът, който следва думата тогава. Ако резултатът е FALSE, тогава операторът, който следва оператора, се изпълнява ако(в изявлението ако...тогаванищо не е направено).

Ако, когато дадено условие е изпълнено, трябва да бъдат изпълнени няколко оператора, тогава общата форма на оператора за условен преход може да бъде следната:

ако състояние тогава започвам // два или повече оператора ... край ;

4. Примери за използване на оператора за условен скок, който има пълна форма на представяне.

Пример 1.Фрагмент от програма за намиране на максимална стойност между две реални числа.

вар a,b: реален; // a, b - променливи, за които се търси максимум max:реално; // максимум ... започвам ... // a, b - са посочени ако a>b тогавамакс.:=а друго max:=b; край ;

...

Пример 2. Фрагментпрограмен код

... варрешаване на този проблем: започвам ... // x,f:реално; x - посочено -5 тогаваако друго f:= x*x+8 // f:= -x*x*x+2 ; ... край ;

в променливата f - резултатът

Пример 1. 5. Примери за използване на оператора за условен скок, който има съкратена форма на представяне. Кодов фрагмент, който намира минималната стойност между две реални числаИ х .

... варг започвам ... // min:реално; ... x, y - дадени ако min:= x; тогавамин край ;

... min:= y;

вар... започвам ... // Изчислете стойността на функция според условие. Да предположим, че трябва да намерите стойността на функция: x - посочено x, f: реални;<-6 тогава x - посочено ако (-6 <=x) х f:=3 *x*x-x;<=5 ) тогаваи ако(x тогава f:=sqrt(7 -x); край ;

x>5 ако f:=8 *x-3; ... Този урок разглежда условния оператор в Pascal (). Обяснява как да използвате множество условия в една конструкция ( ИИ

ИЛИ

). Разглеждат се примери за работа с оператор

Напомняме ви, че този сайт не претендира да предостави пълно представяне на информацията по темата. Целта на портала е да предостави възможност за изучаване на материал на базата на готови решени примери по темата „Език за програмиране Pascal” с практически задачи за затвърждаване на материала. Задачите на Pascal, представени на сайта, са подредени последователно с нарастване на тяхната сложност. Сайтът може да се използва от учители и преподаватели като помощно нагледно помагало.

Преди разглеждането на тази тема бяха използвани главно линейни алгоритми в Pascal, които са типични за много прости проблеми, когато действията (операторите) се изпълняват последователно, едно след друго. По-сложните алгоритми включват използването на разклонена конструкция.

Блокова диаграма на условен оператор:

Условният оператор в Pascal има следния синтаксис:

Кратка версия:

if условие then оператор;

Условният оператор в Pascal - if - служи за организиране на напредъка на задача по такъв начин, че последователността на изпълнение на операторите се променя в зависимост от някакво логическо условие. Логическо условие може да приеме една от двете стойности: вярно или невярно, съответно може да бъде вярно или невярно.

Съставен оператор

Ако при истинско условие е необходимо да се изпълнят няколко оператора, тогава Според правилата на езика Pascal те трябва да бъдат затворени в блок, започвайки с функционалната дума begin и завършвайки с функционалната дума end . Такъв блок обикновено се нарича операторни скоби, а тази конструкция - съставен оператор:

Операторни скоби и съставен оператор в Pascal:

ако е логически израз, тогава започнете оператор1;

оператор2; end else begin statement1;

оператор2; край; Преводът от английски на оператора на условието ще улесни разбирането на използването му: АКО
ТОГАВА ДРУГО АКО


ТОВА
ИНАЧЕ

  • Условието (в логически израз) използва релационни оператори.
  • Помислете за списъка на Паскал с релационни оператори:
  • повече >
  • по-малко
  • по-голямо или равно на в Паскал >=
  • по-малко или равно на в паскал

сравнение в Pascal =не е равно в Паскал

Пример: намерете най-голямото от две числа


Вариант 1 Вариант 2

сравнение в Pascal =Разберете работата в детайли

можете да използвате условния оператор в Pascal, като гледате видео урока:

изчислете стойността на променливата y, като използвате един от двата клона

Покажи решение: var x,y:real; начало writeln("въведете x"); четене (x); if x>0 then y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) (полученото число ще заема 6 позиции и ще има 2 знака след десетичната запетая) end.Забележете как се извежда y в този пример. Когато извеждате тип променливи в паскал, можете да използвате т.нар
форматиран изход
, или означение с две двоеточия:
y:6:2

- числото след първото двоеточие (6) показва колко знака ще заема числото, когато се покаже на екрана

- числото след второто двоеточие (2) показва колко знака след десетичната запетая от реалното число ще бъдат показаниПо този начин използването на такава нотация в паскал практически ви позволява да закръгляте до стотни, хилядни и т.н.

Задача 0.Изчислете стойността на променливата y, като използвате един от двата клона:

Задача 1.Всяка година на дракона му растат три глави, но след като навърши 100 години, само две. Колко глави и очи има драконът? Нгодини?

Логически операции в Pascal (в логически израз)

Когато трябва да използвате двойно условие в Pascal, ще ви трябват логически операции.

  • Логическа операция Този урок разглежда условния оператор в Pascal ( (И), поставено между две условия, казва, че и двете условия трябва да бъдат изпълнени едновременно (трябва да е вярно). Логическият смисъл на операцията е „конюнкция“.
  • Поставен между две условия, знакът И (OR) казва, че е достатъчно, ако поне едно от тях е изпълнено (едно от двете условия е вярно). Логическият смисъл на операцията е „дизюнкция“.
  • В Паскал XOR - знак за логическа операция, която има значението на „строга дизюнкция“ и показва, че е необходимо едно от двете условия да е изпълнено (истина), а другото да не е изпълнено (невярно).
  • Логическа операция НЕ пред логически израз или променлива това означава „отрицание“ или „инверсия“ и показва, че ако дадена променлива или израз е верен, тогава неговото отрицание е невярно и обратно.

Важно:Всяко просто условие трябва да бъде оградено в скоби.

Пример: Нека да разгледаме примери за логически операции в логически изрази в Pascal

1 2 3 4 5 6 7 8 var n: цяло число;<10 ) then writeln ("истина" ) ; if (n>начало n: = 6 ;<10 ) then writeln ("истина" ) ; if (n>ако (n>5) и (n<10 ) then writeln ("истина" ) ; if not (n>7) или (н

7)xor(n<10) then writeln("истина"); if (n>7) след това writeln("true");<10) then writeln("истина"); if (n>край.<10) then writeln("истина"); if not(n>var n:integer; начало n:=6; ако (n>5) и (n

сравнение в Pascal = 7) или (н
7)xor(n 7) след това writeln("true"); край.

Фирмата набира служители от 25 до 40 години включително. Въведете възрастта на лицето и определете дали той е подходящ за тази компания (покажете отговора „подходящ“ или „неподходящ“). особеност:трябва да проверим дали две условия са изпълнени едновременно. Операторът е неделим елемент от програма, който позволява извършването на определени алгоритмични действия. Разликата между оператора и другите елементи е, че той винаги предполага някакво действие. В Pascal операторите се състоят от функционални думи. Операторите, използвани в една програма, са разделени един от друг и от други програмни елементи със символа (;). Всички:

  1. Паскал оператори
  2. може грубо да се раздели на

две групипросто;

  • структуриран.
  • Прости оператори
  • са оператори, които не съдържат други оператори. Те включват:

оператор за присвояване (:=);декларация за процедурата;

  • безусловен оператор за прескачане (GOTO).
  • условни оператори (IF, CASE);
  • оператори за цикъл (FOR, WHILE, REPEAT);
  • оператор за присъединяване (WITH).

Прости оператори

Процедурен оператор

Процедурен операторслужи за извикване на процедура.

формат: [procedure_name] (списък с параметри на повикване);

Изявлението за процедура се състои от идентификатор на процедура, непосредствено последван от списък с параметри на повикване в скоби. Pascal има процедури без параметри. В този случай, когато се извика, няма списък с параметри. Изпълнението на оператор на процедура води до активиране на действията, описани в тялото му. В Pascal има два вида процедури:

  • Стандартни, които са описани в самия език и са част от езика;
  • Потребителски процедури, които са създадени от потребителя.

За да извикате стандартни процедури, трябва да се свържете в секцията USES на името на модула (библиотеката), където е описана тази процедура. Редица процедури, намиращи се в модула SYSTEM, винаги се свързват автоматично с програмата и свързването им в секцията USES не е необходимо. Стандартните процедури на Pascal са READ, WRITE, REWRITE, CLOSE, RESET.

READ ([file_variable], [input_list])

READ(x,y)

Потребителските процедури (нестандартни) трябва да бъдат създадени преди използването им в програмата и се намират или в раздела за описание на самата програма, или в отделни програмни единици на модула. Ако процедурата е в модул, тогава името на този модул трябва да бъде споменато в приложението USES.

Безусловен оператор GOTO

формат: GOTO [етикет];

GOTO е запазена дума в Pascal. [етикет] е произволен идентификатор, който ви позволява да маркирате определен програмен оператор и по-късно да се обърнете към него. В Pascal е възможно да се използват цели числа без знак като етикети. Етикетът се поставя преди и се отделя от маркирания оператор (:). Едно твърдение може да бъде маркирано с няколко етикета. Те също са отделени един от друг (:). Преди да използвате етикет в секцията с изявления, той трябва да бъде описан в секцията LABEL (раздел с описание).

Действието GOTO прехвърля контрола към съответния маркиран оператор. Когато използвате етикети, трябва да спазвате следните правила:

  • етикетът трябва да бъде описан в секцията с описания и трябва да се използват всички етикети;
  • ако като етикети се използват цели числа, те не се декларират.

Противоречи на принципите на технологията за структурно програмиране. Съвременните езици за програмиране не включват такъв оператор и няма нужда да го използвате. Освен това в модерни компютриИзползва се т. нар. конвейерен метод. Ако в програма се срещне оператор за безусловен скок, тогава такъв оператор прекъсва целия конвейер, принуждавайки го да бъде създаден наново, което значително забавя изчислителния процес.

Структурирани изявления

Изявления за условие IF

Условният оператор се използва в програмата за реализиране на алгоритмичната структура - разклоняване. В тази структура изчислителният процес може да продължи в една от възможните посоки. Изборът на посока обикновено се извършва чрез проверка на някакво условие. Има два вида разклонени структури: разклонени и байпасни структури.

В езика Pascal условният оператор IF е средство за организиране на разклонен изчислителен процес.

формат: IF [булев_израз] Then [operator_1]; Друго [operator_2];

IF, Then, Else са функционални думи. [operator_1], [operator_2] - обикновени операции на езика Pascal. Частта Else не е задължителна (може да липсва).

Операторът IF работи по следния начин: първо проверява резултата от булев израз. Ако резултатът е TRUE, тогава се изпълнява [statement_1] след функционалната дума Then и [statement_2] се пропуска. Ако резултатът е FALSE, тогава [statement_1] се пропуска и [statement_2] се изпълнява.

Ако частта Else липсва, тогава операторът IF не е в пълна форма:

IF [булев израз] Then [оператор];

В този случай, ако резултатът е True (ВЯРНО), тогава [изявлението] се изпълнява; ако е False (FALSE), тогава контролът се прехвърля на оператора след оператора IF.

Има 2 числа A и B. Намерете максималното число.

Съставен оператор

Съставният оператор е последователност от произволни операции в програма, оградени в така наречените операторни скоби (начало-край).

формат: Begin [оператори]; край;

Съставните изрази позволяват група изрази да бъдат представени като единичен израз.

Изявление за избор на CASE

Проектиран да реализира множество разклонения, тъй като операторът IF може да реализира само две посоки на изчислителния процес, не винаги е удобно да се използва за внедряване на множество разклонения. Множеството разклонения се реализират от оператора CASE.

формат: CASE [изберете_ключ] OF

[константа_за_избор_1]:[оператор_1];

[константа_за_избор_2]:[оператор_2];

[константа_за_избор]:[оператор_N];

ELSE [оператор];

CASE, OF, ELSE, END - функционални думи. [select_key] е параметър на един от порядковите типове. [selection_constants] - константи от същия тип като клавиша за избор, които реализират избор. [operator_1(N)] е обикновен оператор. ELSE може да липсва.

Операторът за избор работи по следния начин: преди операторът да работи, се определя стойността на параметъра за ключ за избор. Този параметър може да бъде изразен като променлива в програмата или по друг начин. След това параметърът на ключа за избор се сравнява последователно с константата за избор. Ако стойността на ключа за избор съвпада с една от константите за избор, операторът след тази константа се изпълнява и всички останали оператори се игнорират. Ако ключът за избор не съвпада с никоя от константите, операторът след Else се изпълнява. Често Else не е задължителен и ако ключът за избор не съвпада с никоя от константите за избор и при липса на Else, контролът се прехвърля към оператора, следващ оператора CASE.

Операторът CASE няма изричната условна проверка, която е типична за оператора IF. В същото време операцията за сравнение се извършва имплицитно. CASE въвежда дисонанс в програма на Pascal, тъй като този оператор завършва със служебната дума End, която няма сдвоена Begin.

Създайте алгоритъм и програма за задача, симулираща работата на светофар. Когато въведете символа на първата буква от цветовете на светофара, програмата трябва да изведе съобщение за съответния цвят и действия.

Програмата работи по следния начин: чрез процедурата Read от клавиатурата се въвежда буквения символ на цвета на светофара. Ако е въведена буквата ‘z’, съответстваща на зеления цвят, тогава в оператора CASE стойността, въведена в списъка за избор, ще намери константата за избор ‘z’ и ще се покаже съобщението “Зелен цвят, движението е разрешено”. Когато въведете символа на буквите 'k' и 'zh', ще се изведат подобни съобщения. Ако въведете друг символ, ще се покаже съобщението „Светофарът не работи“, тъй като в този случай частта Else на командата CASE работи.

Инструкции за цикъл

Циклична алгоритмична структура е тази, в която някои действия се извършват няколко пъти. В програмирането има два типа структури на цикъла: цикъл с параметър и итеративен цикъл.

В цикъл с параметър винаги има така наречените параметри на цикъла: X, X n, X k, ∆X. Понякога цикъл с параметър се нарича нормален цикъл. Характерна особеносте, че броят на циклите и повторенията може да бъде определен преди цикълът да бъде изпълнен.

В итеративен цикъл е невъзможно да се определи броят на циклите, преди да се изпълни. Изпълнява се, докато е изпълнено условието за продължаване на цикъла.

Езикът Pascal има три оператора, които реализират циклични изчислителни структури:

  • оператор за броене FOR. Предназначен е за реализиране на цикъл с параметър и не може да се използва за прилагане на итеративен цикъл;
  • оператор на цикъл с предварително условие WHILE;
  • оператор на цикъл с постусловие REPEAT.

Последните две са фокусирани върху имплементирането на итеративен цикъл, но могат да се използват и за имплементиране на цикъл с параметър.

ЗА оператор

формат: FOR [loop_parameter] := [n_z_p_ts] To [k_z_p_ts] Do [operator];

FOR, To, Do са функционални думи. [cycle_parameter] - параметър на цикъла. [n_z_p_ts] - началната стойност на параметъра на цикъла. [k_z_p_ts] - крайна стойност на параметъра на цикъла. [оператор] - произволен оператор.

Параметърът на цикъла трябва да бъде ординална променлива. Началната и крайната стойност на параметъра на цикъла трябва да са от същия тип като параметъра на цикъла.

Нека разгледаме работата на оператора, използвайки неговия алгоритъм:

На първата стъпка стойността на параметъра на цикъла приема [n_z_p_ts], след което се проверява, че параметърът на цикъла е по-малък или равен на [k_z_p_ts]. Това условие е условието за продължаване на цикъла. Ако бъде изпълнен, цикълът продължава своята работа и [изявлението] се изпълнява, след което параметърът на цикъла се увеличава (намалява) с единица. След това с новата стойност на параметъра на цикъла се проверява условието за продължаване на цикъла. Ако е изпълнено, действията се повтарят. Ако условието не е изпълнено, цикълът спира да работи.

Операторът For е значително различен от подобни оператори в други езици за програмиране. Разликите са както следва:

  • тялото на оператора For. Операторът може да не бъде изпълнен дори веднъж, тъй като условието за продължение на цикъла се проверява преди тялото на цикъла;
  • стъпката на промяна на параметъра на цикъла е постоянна и равна на 1;
  • Тялото на цикъла в оператора For е представено от един оператор. Ако действието на тялото на цикъла изисква повече от един прост оператор, тогава тези оператори трябва да бъдат преобразувани в един съставен оператор с помощта на операторни скоби (BEGIN-END);
  • Параметър на цикъл може да бъде само ординална променлива.

Пример за използване на оператора FOR:създайте таблица за конвертиране на рубли в долари.

Инструкция WHILE (инструкция за цикъл с предварително условие)

формат: WHILE [условие] Do [оператор];

WHILE, Do - функционални думи. [условие] - израз от логически тип. [operator] - обикновен оператор.

;

Операторът While работи по следния начин: първо се проверява резултатът от логическото условие. Ако резултатът е верен, операторът се изпълнява, след което се връща към проверка на условието с новата стойност на параметрите в логическия израз на условието. Ако резултатът е грешен, цикълът се прекратява.

Когато работите с While, трябва да обърнете внимание на неговите свойства:

  • условията, използвани в While, са условието за продължаване на цикъла;
  • в тялото на цикъла стойността на параметъра, включен в израза на условието, винаги се променя;
  • Цикълът While може да не се изпълни дори веднъж, тъй като проверката на условието по време на цикъла се извършва преди тялото на цикъла.

Инструкция REPEAT (инструкция за цикъл с постусловие)

формат: REPEAT [циклично_тяло]; ДО [условие];

Операторът REPEAT работи по следния начин: първо се изпълняват операторите в тялото на цикъла, след което резултатът се проверява за логическото условие. Ако резултатът е фалшив, тогава се връща към изпълнение на операторите на следващия цикъл. Ако резултатът е верен, тогава операторът излиза.

Операторът Repeat има следните характеристики:

  • в Repeat се проверява условието за прекратяване на цикъла и ако условието е изпълнено, цикълът спира да работи;
  • Тялото на цикъла винаги се изпълнява поне веднъж;
  • параметърът за проверка на условието се променя в тялото на цикъла;
  • Операторите на тялото на цикъла не е необходимо да бъдат затворени в операторни скоби (BEGIN-END), докато ролята на операторни скоби се изпълнява от Repeat и Until.

Изчислете y=sin(x), където xn=10, xk=100, стъпката е 10.

Операторът за прескачане ви позволява да прескочите от текущото местоположение на изпълнение на програмата до друго място, което не е следващото по ред. Този операторнарушава нормалния ход на изпълнение на програмата.

Преходът се извършва с помощта на така наречените тагове.
Етикетът е идентификатор или цяло число без знак в диапазона от 0 до 9999, което се появява преди всеки програмен оператор и е отделено от него с двоеточие. Всички етикети, използвани в програмата, трябва да бъдат предварително декларирани в раздела за деклариране на етикети, започвайки с етикета WORD.

Теоретично може да се покаже, че разглежданите оператори са напълно достатъчни за писане на програми с всякаква сложност. В тази връзка присъствието на оператори за прескачане в езика изглежда ненужно. освен това модерни технологииСтруктурираното програмиране се основава на принципа на „програма без GOTO“: смята се, че злоупотребата с оператори за прескачане затруднява разбирането на програмата, което я прави объркваща и трудна за отстраняване на грешки. В някои случаи обаче използването на оператори за прескачане може да опрости програмата.

Операторът на прехода има формата:

Тук goto е запазена дума (go [to label]); - етикет.

Етикет 1; // Деклариране на етикет с име 1 var
a: Цяло число; започвам
а: = 10;
Отидете на 1; // Отидете на етикет 1
a:= sqrt(a); // Този оператор никога няма да бъде изпълнен! 1: a:= a + a; // Оператор с етикет 1 end;

Оператори за условен скок

Условният оператор е проектиран да извършва или не извършва някакво действие в зависимост от резултата от булево условие. Този оператор се използва за разклоняване на изпълнението на програма,
т.е. ако това състояние true (и само в този случай!), тогава се изпълнява определена последователност от оператори, в противен случай се изпълняват други оператори. Типът оператор на условие е:

акосъстояние тогаваоператор1 иначе оператор2;

Операторът на условието може да бъде написан и в опростена форма:

акосъстояние тогаваоператор;

Ето примери за използване на оператори на условия:

ако a > 0 тогава b: = sqrt (a) иначе b: = a * 2; // Оператор на условие
ако a = 10, тогава b: = b + 1; // Опростена форма

За да организирате разклоняване в няколко посоки (повече от две), можете да използвате няколко условни оператора, вложени един в друг. Влагането на условни оператори следва същите правила като влагането на съставни оператори.

За разлика от други езици за програмиране, в Object Pascal приоритетът на релационните операции е по-нисък от този на логическите операции, поради което отделните компоненти на сложен логически израз са оградени в скоби. Например, следното твърдение от предишното твърдение би било неправилно:
if a>b and b 0 then ...// Грешка, защото всъщност (като се вземе предвид приоритета на операцията) компилаторът ще излъчи следния ред:
ако a> (b и b)0 тогава...

Структурираните изрази са тези изрази, които съдържат други изрази и контролират реда, в който се изпълняват. Те включват:

  • безусловен оператор за прескачане (GOTO).
  • условен израз If;
  • условно твърдение Case ;
  • оператор на цикъл Repeat;
  • Оператор на цикъла while;
  • оператор За цикъл.

Съставен оператор

Често е необходимо във връзка с някакво действие няколко изявления да се възприемат в програмата като едно изявление. Такъв оператор може да се получи, ако необходимата последователност от оператори се комбинира с операторни скоби. Служебните думи Begin и End се наричат ​​операторни скоби.

Формат на оператора:

оператор No1;

оператор No2;

оператор No3;

оператор No н-1;

номер на оператора n; край;

Думата Begin играе ролята на отваряща скоба, думата End действа като затваряща скоба.

Съставният израз се третира като единичен израз. Може да се вмъкне навсякъде в програмата, където е разрешен само един израз.

Изявленията, включени в съставен израз, като всеки друг израз, са разделени с точка и запетая, но този разделител не е необходимо да се поставя преди края. След края се изисква точка и запетая като разделител между съставния оператор и следващия оператор.

В следващите раздели значението и целта съставен операторще бъдат илюстрирани с множество примери.

Условен оператор IF

Операторът If реализира алгоритмичната конструкция „Решение“ и ви позволява да промените реда на изпълнение на операторите в зависимост от истинността или неистинността на дадено условие. Форматът на оператора може да бъде написан в две форми: пълна и непълна форма.

Пълната форма на изявлението е:

Ако<условие>Тогава<оператор 1>Друго<оператор 2>

Форматът на изявлението в непълна форма е:

Ако<условие>Тогава<оператор 1>

If (ако), Then (тогава), Else (в противен случай) са запазени думи.

Блоковите диаграми на оператора if са дадени по-долу:

Условният оператор работи по следния начин. Първо се изчислява условният израз< условие >. Ако резултатът е True, изпълнете< оператор 1 >(след думата Тогава), и< оператор 2 >пропуснати. Ако резултатът е False, тогава< оператор 1 >се пропуска и изпълнява< оператор 2 >(след думата Else). Else никога не се предшества от точка и запетая, защото това не е краят на оператора If.

Друга част<оператор 2>Условният оператор If може да бъде пропуснат. Ако< условие >на израза If се оценява на True, тогава<оператор 1>, в противен случай този оператор се пропуска. В този случай форматът на условния оператор е непълен:

Нека сравним два дизайна:

Ако<условие>Тогава<оператор 1>;

Ако<условие>Тогава<оператор 1>; <оператор 2>;

В първия ред<оператор 1>изпълнени или неизпълнени в зависимост от изпълнението<условия>. Във втория ред<оператор 2>винаги се изпълнява, защото след<оператора 1>има разделител ";" и всичко, което струва поле за разделител, се счита за друг оператор. Следователно, според формата на оператора If, може да има само един оператор след запазените думи Then и Else.

сравнение в Pascal =

Ако a > 0, тогава b:=1;

Ако a > 0, тогава b:=1; a:=b; (оператор a:=b; винаги се изпълнява)

Ако трябва да изпълните не един, а няколко оператора след Then и Else, тогава трябва да поставите операторни скоби, т.е. използвайте съставен оператор.

В този случай операторът If ще изглежда така:

Ако<условие>Тогава

оператор 11;

оператор 1n;

оператор 21;

оператор 2n;

Пример.

Ако a>0 Тогава започнете b:=1; a:=b; край;

ЗАДАЧА 1. Изчислете стойността на функция, дадена от неравенства

y=x+1 при x<0; y=2∙x при x>0.програма a5; var x,y:real; begin write(‘Въведете x стойност: ’); readln(x); if x writeln(‘Стойността на y е: ’, y:6:2) край.

Резултати от програмата:

Въведете стойности x:0,5

Стойността на y е: 1,00

ЗАДАЧА 2. Напишете програма за решаване на квадратно уравнение. Ако дискриминантът е по-малък от нула, изведете съответното съобщение.

Програма а6; var a,b,c:real; (коефициенти на уравнение) x1,x2:реални; (корени на уравнение) d:real; (дискриминант) begin Writeln(‘Решаване на квадратно уравнение’:50); Write(‘Въведете стойностите на коефициентите a,b,c:’); Readln(a,b,c); (входни коефициенти) d:=b*b-4*a*c; ако (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.

Резултати от програмата:

Решаване на квадратно уравнение

Въведете стойностите на коефициентите a,b,c:3 1 6

Уравнението няма корени.

Операторът If може да използва не само съставен оператор, но и всеки структуриран оператор. Условният оператор If we consider също може да се използва като такъв оператор. В този случай говорим за вложени оператори If.

Пример.

ако условие тогава
започвам Операторни скоби
оператор; вложени
IF оператор,
непълна форма
if условие тогава оператор
else изявление;
край
друго
започвам Операторни скоби
оператор; вложени
IF оператор,
непълна форма
ако условие
тогава оператор;
край;

При работа с вложени операториако Трябва да се вземат предвид следните правила:

  • преди запазената дума else символът „;“ никога не поставяйте;
  • Запазената дума else винаги се свързва със следващата запазена дума then.

ЗАДАЧА 3. Да подобрим програмата за решаване на квадратно уравнение (2 задача). Когато коефициентът a=0, уравнението се изражда. Програмата не е взела предвид този факт, което ще доведе до фатална грешка по време на изпълнение на програмата (деление на нула). За да изключим делението на нула, нека проверим стойността на коефициента a след въвеждането му с помощта на оператора Readln(a,b,c).

Тъй като променливата a е декларирана в програмата като променлива от реален тип, нейната числена стойност в машината не е точно представена, с известна грешка. Следователно, запис като

Има няколко опции за правилно сравняване на стойностите на реална променлива с нула:

ЗАДАЧА 4. Усъвършенстван инструмент за решаване на квадратни уравнения.

Програма a7; Var a,b,c:real; (коефициенти на уравнение) x1,x2:реални; (корени на уравнение) d:real; (дискриминант) begin Writeln(‘Решаване на квадратно уравнение’:50); Write(‘Въведете стойностите на коефициентите a,b,c: ’); Readln(a,b,c); (въвеждане на коефициенти) ако кръг (a)<>0 след това започва d:=b*b-4*a*c; ако 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.

Резултати от програмата:

Решаване на квадратно уравнение Въведете стойностите на коефициентите a,b,c:0 1 6 Деление на нула.

Изявление за условен избор Case

Операторът за избор е обобщение на оператора If и се използва в случаите, когато е необходимо да се изпълни само един оператор от набор от оператори в зависимост от стойността на ключа за избор.

Ключът за избор е израз, който се намира между запазените думи Case и of. Изразът може да бъде от целочислен, логически и символен тип. Изразът не може да бъде от тип Real, String.

Формат на оператора:

случай на "<ключ выбора>" константа1: оператор 1; константа2: оператор 2; константа3: оператор 3; ... константаN-1: оператор N-1; константаN: оператор Nn; Else оператор End;

Тук Case (в случай), of (от), Else (в противен случай), End (край) са запазени думи.

Ключът за избор е израз от произволен тип, различен от Real и String.

Constant1 е константа от същия тип като израза.

Оператор1 е произволен оператор.

Операторът select работи по следния начин. Първо се оценява изразът<ключ выбора>, а след това в последователността от оператори се намира един, който е предшестван от константа, равна на изчислената стойност<ключ выбора>. Намереният оператор се изпълнява, след което операторът за избор завършва работата си (контролът се прехвърля към end). Ако в списъка с константи не бъде намерена константа, която да съответства на изчислената стойност на клавиша за избор, контролът се прехвърля към оператора след думата Else.

Друга част<оператора>може да бъде пропусната, тогава ако необходимата константа не е в списъка с константи, нищо не се случва и операторът за избор просто завършва работата си.

ЗАДАЧА 5. Напишете проста калкулаторна програма.

Програма a8; var x,y:real; z:реално; (резултат) op:char; (клавиш за избор) begin Write(‘Въведете операнди x,y: ’); Readln(x,y); Write(‘Въведете операция(+,-,*,/):’); Readln(оп); case op на ‘+’:z:=x+y; ‘-’:z:=x-y; ‘*’:z:=x*y; ‘/’:if y0 then z:=x/y Elsewriteln(‘Делене на нула’); Else writeln(‘Действието не е предоставено!’); край; (op) (по този начин можете да маркирате "чий" край е) writeln('Резултатът е =',z:8:2); край.

Резултати от програмата:

Въведете операнди x,y:4 2

Въведете операцията (+,-,*,/):*

Резултатът е = 8.00

В една програма ключът за избор е променлива от символен тип. В зависимост от въведената стойност на символите (+, -, *, /) се извършва едно от аритметичните действия: събиране, изваждане, умножение или деление. Ако нулата е въведена като делител, делението не е възможно и се показва съобщението „Дели на нула“. Ако бъде въведен друг знак, резултатът ще бъде съобщението „Действието не е разрешено!“. Ако са въведени валидни операции, резултатът се връща.

ЗАДАЧА 6. Напишете програма, която подканва потребителя за номера на деня от седмицата, след което показва името на деня от седмицата или съобщение за грешка, ако въведените данни са неправилни.

Програма a9; Var n: цяло число; (номер на деня от седмицата) Begin write(‘Въведете номера на деня от седмицата:’); четене(n); случай n от 1: writeln('Понеделник'); 2: writeln('вторник'); 3: writeln('сряда'); 4: writeln('четвъртък'); 5: writeln('Петък'); 6: writeln('събота'); 7: writeln('неделя'); else write(‘грешиш!’) край; (n) край.

Резултати от програмата:

Въведете номера на деня от седмицата:1

понеделник

Никоя константа не трябва да е същата като друга. Ако един и същ оператор трябва да се изпълни за няколко константи, те могат да бъдат изброени разделени със запетаи, напр.

случай n от 1,3,5,7,9: writeln('Това са нечетни числа'); 2,4,6,8,10: writeln('Това са четни числа'); край;



 


Прочетете:



Pandao промо кодове за точки

Pandao промо кодове за точки

Понякога, когато се опитате да влезете в официалния магазин на цифровия гигант, Play Market пише за активиране на промоционален код. За да получите цялостна...

Инсталиране на допълнителна RAM памет

Инсталиране на допълнителна RAM памет

„Принципите на естественото запаметяване се основават на нервни връзки, които се създават в мозъка“, казва Олга Зимнякова, невролог...

Какво да направите, ако слушалките не възпроизвеждат звук на лаптоп

Какво да направите, ако слушалките не възпроизвеждат звук на лаптоп

Проблемите със свързването и работата на слушалките са доста често срещани. В тази статия ще разгледаме няколко от най-вероятните причини...

Справочник диоди Мощни изправителни диоди 220V

Справочник диоди Мощни изправителни диоди 220V

Основната цел на токоизправителните диоди е преобразуване на напрежението. Но това не е единствената област на приложение на тези полупроводникови...

feed-image RSS