34655

Условный оператор. Оператор выбора

Реферат

Информатика, кибернетика и программирование

Например вычисление квадратного корня из числа проводится при условии =0 операторами: IF =0 Then b := Sqrt Else begin WriteLn' 0'; Redln; Hlt end; Оператор Hlt прекращает выполнение программы. PROGRM VES; { определение весовой категории спортсмена } Условная схема программы CONST 1='легкая категория'; 2='средняя категория'; 3='тяжелая категория';...

Русский

2013-09-08

50.5 KB

2 чел.

исциплина «Основы алгоритмизации и программирование»  Условный оператор. Оператор выбора

Условный оператор. Оператор выбора

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

Условный оператор включает в себя операторы, которые выполняются или не выполняются в зависимости от записанного в операторе условия. Оператор имеет вид:

  IF  "условие"  Then  "оператор1"  Else  "оператор2";

где "условие" - выражение логического типа;

"оператор1" выполняется, если условие верно ( True ),

"оператор2" выполняется, если условие не верно ( False ).

Например, вычисление квадратного корня из числа "a" проводится при условии a>=0, операторами:

 IF a>=0 Then b := Sqrt(a)

 Else

   begin

     WriteLn('a<0');

     Readln;

     Halt

   end;

Оператор Halt прекращает выполнение программы.

Схема выполнения условного оператора имеет вид:


В условном операторе может отсутствовать блок
Else оператор2; т. е. условный оператор может иметь вид:

IF "условие" Then "опертор1";

например:
IFa<0 Then a:= abs(a); 

Приведем пример программы определения весовой категории в зависимости от веса спортсмена.

PROGRAM VES;                        { определение весовой категории спортсмена }

                                    Условная схема программы

CONST A1='легкая категория';

     A2='средняя категория';

     A3='тяжелая категория';

     A4='сверхтяжелая категория';

var

 V : integer;

BEGIN

 Write('введите вес спортсмена V = '); ReadLn(v);

 if V<62 then WriteLn(A1)           {вложенный условный оператор }

 else if V<75 then WriteLn(A2)

      else if V<88 then WriteLn(A3)

           else WriteLn(A4)

 writeln('Нажмите Enter');

 readln;

END.

Для разложения целого числа на цифры удобно применять операции: MOD и DIV. Например, если дано трехзначное число "N" ( "N" соответствует "X1X2X3" ), то цифры: X1X2X3, составляющие это число определяются блоком операторов:

 X3:= N mod 10;

 N:= N div 10;

 X2:= N mod 10;

 N:= N div 10;

 X1:= N;

Если требуется определить, делится ли вещественное число "A" нацело на число "B", то можно применять функции Frac(x); и Int(x); например:

 x := A/B;    

 if Frac(x) = 0  then writeln('Число "A" делится нацело на число "B"');

 if Int(x) = x   then writeln('Число "A" делится нацело на число "B"');

Условный оператор может применяться для идентификации (распознавания) объекта по определенным признакам составляющих его элементов. Например, если объектом является треугольник, то элементами объекта могут быть: 1) три его угла (a, b, c); 2) три его стороны (a1, b1, c1); и т. д.

Признаками являются значения элементов по которым производится идентификация, например, для углов: 1) один угол > 90 - (один признак); 2) три угла < 90 - (три признака); и т. д.

В результате идентификации объект получает имя. Например, треугольник - остроугольный, либо тупоугольный и т. д.

Если идентификация проводится по одному признаку для нескольких элементов, то несколько условий связываются служебным словом "or", например:

 If (a > 90) or (b > 90) or (c > 90) then writeln ( 'Треугольник - тупоугольный' );

Если идентификация проводится по нескольким признакам, число которых равно числу элементов, то несколько условий связываются служебным словом "and", например:

 If (a < 90) and (b < 90) and (c < 90) then

   writeln('Треугольник - остроугольный');

Если имя объекта составное, то добавляются признаки для идентификации второй части имени и применяются вложенные условные операторы, например, для равнобедренного треугольника:

 If (a < 90)and (b < 90) and(c < 90) then

   If (a=b) or (b=c) or (a=c) then

     writeln('Треугольник - остроугольный и равнобедренный')  

   else writeln('Треугольник - остроугольный');

Напомним, что условный оператор можно применять для контроля правильности вводимых данных, например:

 If (a+b+c)<>180 then

   begin

     writeln('Суммауглов <> 180');

     Halt  

   end;

Если для идентификации объекта достаточно меньшего числа признаков, чем число элементов, то условия, связанные "and" группируются, а группы соединяются служебным словом "or". Например, четырехугольник имеет элементами четыре стороны ( a, b, c, d ), а его имя устанавливается по двум признакам (равенство двух пар сторон), тогда можно использовать операторы:

 If ((a=b) and (c=d)) or ((a=c) and (b=d)) or ((a=d) and (b=c)) then

   writeln('Параллелограмм');

Оператор выбора CASE

Оператор служит для выбора одного из помеченных вариантов действия (операторов), в зависимости от значения "параметра". Оператор имеет вид:

  Case "параметр" Of

    "список помеченных операторов"    

    Else "оператор"

  End;

Здесь "параметр" - выражение или переменная порядкового типа.

Из "списка помеченных операторов" выполняется оператор с меткой, включающей значение "параметра", иначе оператор после слова Else.

Конструкция Else "оператор" может отсутствовать. Напомним, что "оператор" может иметь вид: Begin "операторы" end;

Пример операторов для определения порядка целого числа N от 0 до 999:

 case N of

   0..9     : writeln('однозначное');

   10..99   : writeln('двузначное');

   100..999 : writeln('трехзначное')

   else writeln('Число "N" не входит в указанный диапазон')  

 end;

Приведем пример программы случайного предсказания одного из десяти вариантов ближайшего будущего с вероятностью 1/20, в остальных случаях - вы "неудачник".

PROGRAM FUTURE;

var N : word;

BEGIN

 writeln('ПРЕДСКАЗАНИЕ БУДУЩЕГО');

 Randomize;

 N:=Random(20)+1;      { N - случайное число от 1 до 20 }

 writeln;   write('Вас ожидает ');

 case N of

    1 : writeln('счастье');

    2 : writeln('пятерка');

    3 : writeln('дорога');

    4 : writeln('двойка');

    5 : writeln('болезнь');

    6 : writeln('здоровье');

    7 : writeln('деньги');

    8 : writeln('любовь');

    9 : writeln('встреча');

    10 : writeln('дети')

     else writeln('неудача')

 end;

 writeln('Нажми Enter');

 readln;  

END.

Здесь функция Random(x) генерирует случайное число, с равномерной плотностью распределения на заданном интервале. Для инициализации распределения в начале программы необходимо вызвать процедуру Randomize.


 

А также другие работы, которые могут Вас заинтересовать

15203. Мұрат Мөңкеұлы 46 KB
  Бүкіл ұлттың Мұраты Кеңес кезінде €œзар заман€ ақындарының ішінде жеткіліксіз зерттеген ақындардың бірі Мұрат Мөңкеұлы. 194050 жылдар арасында жарық көрген мектеп оқулықтарында енгізіліп жүрген Мұрат ақын 1947 жылғы атышулы қаулыдан кейін зерттеу объектісінен мүлде ...
15204. Олжас Сүлейменов 62.5 KB
  Олжас Сүлейменов. Олжас Сүлейменов 1936 жылы Алматы қаласында әскери қызметкердің отбасында дүниеге келген. Алдымен әлФараби атындағы Қазақтың ұлттық университетін сонан соң Мәскеудегі М. Горький атындағы Әдебиет институтын бітірген. Орыс тілінде жазады. Тұңғыш өл
15205. Пайғамбар аттас ақын - Жүсіп Қыдыров 46.5 KB
  Махаббат деп түсінді мына әлемді... Талантты лирикақын Жүсіп ҚЫДЫРОВ рухымен сырласу Жүсіп міне сен көре алмай кеткен жаңа мыңжылдықтың наурыз айы тағы да келді. Бұл сен туған ай. Егер тірі болсаң ол сенің жетпісінші көктемің болар еді. Әттең жазмыштан озмыш жоқ еке...
15206. С.Бегалин - халықтың сүйікт жазушысы 287.5 KB
  Сүйіктісі халықтың Жүрегіңнің алаулатып жалынын Тамыршыдай дарындыны таныдың. Қабыл болып ізгі тілек ақ батаң Алдым шексіз ғибрат мол тағылым. Танымастай өзгерді ел жер кейпі Озбырлықтың мәңгүрт басы еңкейді. Семейдегі жарылыстың үні өшіп Абыра...
15207. Сағат Әшімбаев 188 KB
  Заманынан озып туған азамат еді Сағат Әшімбаев туралы Қоғамды қозғайтын адам санасын өзгертетін тұлғалар болады. Олар өзінің қатарынан заманынан озық туады. Өткен ғасырдың алпысыншы сексенінші жылдарының арасы қазақ руханиятына дарындыларды үйіптөгіп
15208. Саттар Ерубаев 146.5 KB
  Саттар Ерубаев 1914-1973 Қысқаша өмірбаяны: Саттар Ерубаев 1914 жылы Түркістан ауданыныда дүниеге келді. Балалар үйінде тәрбиеленген. 1927 жылы Түркістан ауданы Комсомол колхозында қызмет істейді. ҚазКСР Оқу халық комиссариатының жоғары оқу орнында даярлау курсы...
15209. Сегіз сері (Мұхамедқанапия) Баһрамұлы Шақшақов поэзиясы (1818 - 1854) 83 KB
  Сегіз сері Мұхамедқанапия Баһрамұлы Шақшақов поэзиясы. 1818 1854 Сабақтың мақсаты : 1. Білімділік : Серілер поэзиясы туралы ойларын тереңдету серілерге тән ортақ қасиетті танып білу Сегіз серінің өзіне ғана тән қасиеттерін ерекшелеу ажырату. Өңдерімен жән...
15210. ТАРЛАН ТАЛАНТ ТАҒДЫРЫ 75 KB
  ТАРЛАН ТАЛАНТ ТАҒДЫРЫ Мұқанов Сәбит Мұқанұлы 1900-1973 қазақтың әйгілі жазушысы қоғам қайраткері Қазақ КСР Ғылым академиясының академигі. Туған жері қазіргі Солтүстік Қазақстан облысының Жамбыл ауданындағы Жаманшұбар деген жер. Әке шешеден жастай жетім қа
15211. Сәкен Иманасовтың өлеңдерiн оқудан өрбiген ой 47.5 KB
  Екi тумас ер ақын Сәкен Иманасовтың өлеңдерiн оқудан өрбiген ой Әлемдi билейтiн сөз сөздi билейтiн ақын. Талантпен талғаммен қоса табандылықты азаматтықты қажет ететiн ақын болу қиынның қиыны. Азаматтық жоқ жерде ақындық та жоқ. Төлеген Айбергенов: Ақын болу оң