Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Рассмотрим ещё одну конструкцию, относящуюся к группе условных: оператор Case < индекс выбора > Of < элементы выбора > Else < оператор > End;

При выполнении этого оператора выполняется то условие, порядковый номер которого соответствует значению переменной в индексе выбора. Если же это значение не входит в описанный диапазон, то выполняется конструкция - else < оператор >.

Рассмотрим поясняющую программу:

В этой программе вводятся два целых числа и выясняется, не является ли одно из них делителем другого. Выдаются соответствующие сообщения Program PrimCas2;

Var

a,b,k: Integer;

Begin

Write ('Введите через пробел два целых числа ');

Read Ln(a,b);

k:= 0;

If a Mod b= 0 Then k:= 1;

If b Mod a= 0 Then k:= 2;

Case k Of

1: WriteLn ('Число ',b,' - делитель числа ',a);

2: WriteLn ('Число ',a,' - делитель числа ',b)

Else WriteLn ('Числа ',a,' и ',b,' взаимно простые');

End;

ReadLn;

End.

Операторы цикла

Другой конструкцией проверки условий является оператор While.

While (условие) Do

Begin

Операторы

End;

Этот оператор создаёт специфичную структуру, в которой выполняется проверка заданных условий, и, пока эти условия выполняются, структура работает. После первого невыполнения условий работа структуры завершается.

Таким же образом функционирует структура, создаваемая операторами

Repeat

Операторы

Until (условие);

В качестве примера рассмотрим следующую задачу.

Переменная xx изменяется от начального значения с шагом 0.1 до тех пор, пока не удвоится экспонента этой переменной.

Program Prim3;

Var

xx, v: Real;

Begin

Write ('Значение аргумента ='); ReadLn (xx );

v:= Exp(xx);

While (Exp(xx)<=2*v) Do { Пока exx < 2*v - выполнять }

xx:=xx+0.1;

WriteLn ('Удвоение произошло при аргументе =',xx:10:3);

End.

Ту же задачу решает следующая программа:

Program Prim4;

Var

xx,v: Real;

Begin

Write ('Значение аргумента ='); ReadLn (xx);

v:= Exp(xx);

Repeat

xx: = xx+0.1;

Until ( Exp(xx)>2*v); { Как только exx превысит 2*v -завершить }

WriteLn(‘ Удвоение произошло при аргументе =’,xxx:10:3);

End.

При анализе программы обратите внимание на знаки условий в операторах While и Until. Они - противоположны!

Кроме операторов, описанных ранее, для работы с циклами используется конструкция:

For < переменная> := [нижняя граница] to [верхняя граница] Do

Begin

операторы

End;

Это – классическое представление циклического процесса, где целочисленнаяпеременная приобретает последовательный ряд значений, с которыми выполняются определённые наборы действий. Если изменения этой переменной происходят с убыванием, то вместо слова to следует подставить Dowto.

В решении различных задач возникает необходимость использовать более сложные конструкции циклов, то есть такие, при которых изменяется не одна, а несколько переменных. При организации таких циклов следует обратить особое внимание на операторные скобки.

Приведём фрагмент программы:

For a:= 1 to aa Do

Begin < Операторы 1-го уровня>;

For b:= a+1 to bb Do

Begin < Операторы 2-го уровня >;

End;

End;

В этом фрагменте операторы 2-го уровня будут выполняться от значений b = a + 1 до b = bb при переданных в цикл значениях a из цикла 1-го уровня, после чего произойдут изменения в операторах 1-го уровня и снова будет повторён весь цикл 2-го уровня. Этот процесс будет продолжаться до тех пор пока переменная а не пройдёт все предписанные ей значения.

Порядок выполнения работы:

1) Ознакомитесь с теоретической частью. Изучите возможности:

o условной и безусловной передачи управления;

o организации алгоритмов циклической структуры;

2) Разработайте алгоритм решения задачи в соответствии с заданием и составьте программу. Задачи из задания1 выполняются всеми студентами группы, задачи из задания2 и 3 выполняются по вариантам.

3) Запустите программу Turbo Pascal;





Дата публикования: 2015-09-18; Прочитано: 172 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...