![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Рассмотрим ещё одну конструкцию, относящуюся к группе условных: оператор 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!