
- •Введение.
- •Замечание
- •Типы значений переменных.
- •Программа Что видим в результате на экране
- •I вариант
- •II вариант
- •Замечание
- •Замечание
- •Действия Результыты
- •Замечание
- •Оператор выбора Case.
- •I вариант
- •II вариант
- •Элементарная техника программирования.
- •Сумматоры
- •Графика.
- •Замечание
- •Программа
- •Программа
Оператор выбора Case.
В Паскале есть специальный оператор, который позволяет выбрать одну из нескольких возможностей.
Этот оператор называется оператором выбора и имеет следующий вид:
case выражение of
список_значений_1 : оператор_1;
список_значений_2 : оператор_2;
…
список_значений_n : оператор_n;
else оператор;
end;
Здесь между зарезервированными словами case и of находится выражение, принимающее значение, которое может присутствовать в одном из списков значений, находящихся слева от двоеточий. Ветвь else, отвечающая всем неперечисленным значениям выражения, необязательна. При выполнении данного оператора вначале вычисляется значение выражения. Затем выбирается тот список значений, в котором находится полученное значение, и выполняется соответствующий ему оператор. Если значение выражения отсутствует в списках значений, ни один из вариантов выполняться не будет. В этом случае выполняется ветвь else оператора case или, если эта ветвь отсутствует, следующий за case оператор.
Замечание.
Переменная, стоящая после слова case, должна быть так называемого порядкового типа. Пока мы знаем 3 типа, относящихся к порядковым, - это Integer, LongInt и Char.
Задача 14.
Написать программу, спрашивающую у ученика его отметку и реагирующую на неё подходящим текстом.
Программа.
VAR otmetka : Integer;
BEGIN
WriteLn('Какую отметку ты получил сегодня?');
ReadLn(otmetka);
case otmetka of
1,2 : WriteLn('Кошмар!');
3 : WriteLn('Неважно');
4 : WriteLn('Неплохо');
5 : WriteLn('Отлично');
else WriteLn('Таких отметок не бывает');
end
END.
Замечание.
Конструкция 12..16 обозначает то же, что и 12, 13, 14, 15, 16 и называется диапазоном. Такая конструкция служит для сокращения записи.
Самостоятельная работа №3 по теме "Разветвляющиеся программы".
I вариант
-
Написать программу, которая просит ввести с клавиатуры два числа и выводит на экран максимальное из этих чисел.
-
Написать программу, которая просит ввести с клавиатуры число x и выводит на экран результат b, который вычисляется по формуле:
-1
-
Написать программу, которая просит ввести с клавиатуры номер дня недели и выводит на
экран сообщение о том, какой сегодня день – рабочий или выходной.
II вариант
-
Написать программу, которая просит ввести с клавиатуры два числа и выводит на экран
минимальное из этих чисел.
-
Написать программу, которая просит ввести с клавиатуры число
и выводит на экран
результат c, который вычисляется по формуле:
-
,
3*. Написать программу, которая просит ввести с клавиатуры число, символ арифметического
действия (+,-,*,/) и еще одно число и выводит на экран результат полученного выражения.
Циклические программы.
Цикл представляет собой последовательность операторов, которая выполняется неоднократно.
В языке программирования Паскаль имеется три разновидности цикла:
-
цикл с предусловием (цикл "пока" – while);
-
цикл с постусловием (цикл "до тех пор, пока" – repeat…until);
-
цикл со счётчиком (цикл "для" – for…to/downto);
Цикл с предусловием.
Цикл с предусловием имеет вид:
While условие do оператор;
(While: читается – "вайл"; переводится – "пока"; do: читается – "ду"; переводится – "делай".)
Работает оператор while так:
Сначала компьютер проверяет истинность условия, стоящего после слова while. Если условие истинно, то выполняется оператор, стоящий после do. Затем снова проверяется истинность условия и в случае истинности снова выполняется этот оператор и т.д. Если условие ложно, то оператор while прекращает свою работу и компьютер переходит к выполнению следующего оператора.
Оператор, стоящий после do называется телом цикла. Телом цикла может быть и составной оператор, т.е. группа операторов, заключённая в операторные скобки begin...end .
Задача 15.
Составить программу с использованием оператора while для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.
Программа.
Var a:Real;
BEGIN
a:=900;
while a>=0 do begin
WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);
a:=a-3;
end;
ReadLn
END.
Цикл с постусловием.
Цикл с постусловием имеет вид:
Repeat оператор, оператор, …, оператор Until условие;
(Repeat … Until условие: читается – "ри'пит…ан'тил"; переводится – "повторяй… до тех пор, пока не выполняется условие.)
Работает оператор repeat так:
Сначала компьютер по очереди выполняет операторы, стоящие после слова repeat, пока не дойдёт до слова until. Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и т.д. Если условие оказывается истинным, то работа оператора repeat прекращается и компьютер переходит к выполнению следующего по порядку оператора.
Задача 16.
Составить программу с использованием оператора repeat для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.
Программа.
Var a:Real;
BEGIN
a:=900;
repeat
WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);
a:=a-3;
until a<0;
ReadLn
END.
Отличия операторов repeat и while.
-
Компьютер выходит из цикла оператора repeat тогда, когда условие истинно, а из цикла оператора while – когда условие ложно;
-
while может ни разу не выполнить оператор, стоящий после do; repeat же хотя бы раз операторы, стоящие между repeat и until выполнит.
-
Если тело цикла содержит несколько операторов, то в цикле while, в отличие от цикла repeat, необходимо использовать операторные скобки begin ...end.
Цикл со счётчиком.
Цикл со счётчиком имеет следующий вид:
For имя:=выражение_1 to выражение_2 do оператор;
имя –это имя произвольной переменной порядкового типа, называемой переменной цикла (или его счётчиком);
выражение_1 и выражение_2 – это произвольные выражения порядкового типа.
(For: читается – "фо"; переводится – "для"; to: читается – "ту"; переводится – "до"; do: читается – "ду"; переводится – "делай".)
Конструкция For i:=1 to 200 do ... переводится так: для i, изменяющегося от 1 до 200, делай оператор, стоящий после слова do.
Цикл For используют тогда, когда точно знают, сколько раз должно быть выполнено тело цикла.
Оператор, стоящий после do может быть и составным.
Работает оператор For так:
Прежде всего вычисляется выражение_1, и переменной цикла (пусть это будет i) присваивается его значение. Затем вычисляется выражение_2 и сравнивается с i. Если i>выражение_2, то оператор For завершает свою работу, так ничего и не сделав. В противном случае выполняется оператор, стоящий после do. После выполнения этого оператора значение i увеличивается на единицу и снова сравнивается с выражение_2. Если i>выражение_2, то оператор For завершает свою работу, иначе снова выполняется оператор, стоящий после do, снова значение i
увеличивается на единицу и т.д.
Оператор For позволяет не только увеличивать, но и уменьшать переменную цикла. Для этого вместо to нужно писать downto.
(читается – "даунту"; переводится – "вниз до".)
Задача 17.
Написать программу с использованием оператора For, которая печатает на экране:
Прямой счёт:-4 –3 –2 –1 0 1 2 3 4 Обратный счёт:4 3 2 1 0 –1 –2 –3 –4 Конец счёта.
Программа.
Var i:Integer;
BEGIN
Write('Прямой счёт:');
For i:=-4 to 4 do Write(i,' ');
Write('Обратный счёт:');
For i:=4 to -4 downto Write(i,' ');
Write('Конец счёта.');
ReadLn;
END.