`
Читать книги » Книги » Компьютеры и Интернет » Программирование » Александр Цветков - Язык программирования PASCAL

Александр Цветков - Язык программирования PASCAL

1 ... 3 4 5 6 7 ... 11 ВПЕРЕД
Перейти на страницу:

Обратите внимание на запись “лесенкой”, она не обязательна, но весьма желательна, поскольку помогает наглядно увидеть алгоритмическую структуру программы. Правило такое: end пишем под begin.

- 17 -

Оператор if (сокращенная форма)

Часто встречается ситуация, когда ветвь else не нужна. В этом случае ее можно опустить.

Например: if x<0 then x:=-x; Обратите внимание, что точка с запятой ставится после оператора x:=-x в отличие от полной формы.

Пример программы с оператором if

Program OddEven;

{ Определение четного или нечетного числа }

var n : integer;

begin

write('Введите число '); readln(n);

if odd(n)

then

writeln('Число нечетное')

else

writeln('Число четное ');

end.

Вложенные операторы if

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

Program Sign;

{ Определение знака числа }

var n : integer;

begin

write('Введите число '); readln(n);

if n>0

then

writeln ('Число положительное')

else

if n=0

then

writeln('Число ноль')

else

writeln ('Число отрицательное')

end.

Обратите внимание, что после вложенный оператор if можно не заключать в операторные скобки begin ... end, поскольку оператор if синтаксически рассматривается как один оператор.

Если имеются вложенные операторы if, один из которых неполный, например:

if n>0

then

if n=0

then

writeln('У вас ноль')

else

writeln ('Число положительное')

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

- 18 -

Логические выражения. В операторе if используются логические выражения, имеющие тип boolean[9]. Про такие выражения можно сказать только являются ли они истинными (true) или ложными (false). Простейший случай логического выражения – логическая переменная.

Пример: var b : boolean; . . . . . .

b :=true; . . . . . .

if b then writeln ('Все в порядке');

Такие логические переменные называют флагами, иногда их использование оказывается очень эффективным решением.

Операции сравнения. Существует шесть бинарных[10] операций сравнения, у которых операнды могут быть самых разных типов (целые, вещественные, символьные строковые).

< меньше <= меньше или равно > больше >= больше или равно = равно <> не равно

Эти операции весьма часто используются для построения различных логических условий.

Например: if a>0 then a:=1 else a:=-1. С точки зрения языка Pascal a>0 представляет собой логическое выражение (можно написать даже так: b :=a>0, если b – переменная булевского типа).

Логические операции. Для составления сложных логических выражений могут использоваться две бинарные логические операции AND, OR и одна унарная[11] NOT .

and – результат операции истинен тогда и только тогда, когда истины оба операнда.

or – результат операции истинен тогда, когда истинен хотя бы один операнд.

not – имеет результат противоположный операнду.

Примеры операторов if со сложными условиями:

if (x>=0) and (x<=1) then writeln ('X находится в диапазоне от 0 до 1');

if not ((x>=0) and (x<=1)) then writeln('X вне диапазона 0-1');

if (x<0) or (x>1) then writeln('X вне диапазона 0-1');

Обратите внимание на скобки. Операции сравнения имеют самый низший приоритет, поэтому заключены в скобки. Приоритет операции and соответствует операции умножения, or – сложению, not – унарному минусу (т.е. самый высокий).

- 19 -

Задание №5

1. Вычислите логические выражения: not true and not false not true or not false not (true or false) Y not (true and false) a 2. Напишите условие нахождения точки a в первом квадранте системы координат, считая ее координаты заданными X переменными x, y .

3. Напишите программу, выводящую слова «зачет», если введено число 3, 4 или 5 и «незачет», если введено число 1 или 2.

4. Напишите программу, выводящую текст «плохо», «удовлетворительно», «хорошо» или «отлично», если введено число 2, 3, 4 или 5 соответственно.

5. Используя операцию определения остатка от деления (mod, стр. 5), модернизируйте программу Concentric (стр. 16), таким образом чтобы каждая 3-я окружность выводилась красным цветом, а остальные были синими.

Вложенные циклы

Довольно часто возникает ситуация, при которой в теле одного цикла встречается другой оператор цикла. Такие циклы называют вложенными циклами. Приведем простой пример.

Выведем на экран таблицу умножения целых чисел от 1 до 10.

Здесь внутри тела внешнего цикла по переменной i, находится вложенный цикл по переменной j, который выводит в операторе write (не writeln!) произведение i*j, выделяя 4 позиции для результата. Далее идет оператор writeln, который переводит курсор на новую строку. Внешний цикл повторяет 10 раз эту операцию, формируя, таким образом, 10 строк таблицы, которая приведена справа.

- 20 -

Тема №6. Оператор case

Оператор case

Оператор case используется для создания развилки на более чем 2 ветви. Понять его работу поможет следующий пример.

Program YourMark;

{ ваша отметка }

var n : integer;

begin

write ('Введите вашу отметку '); readln (n);

case n of

2 : writeln('Плохо');

3 : writeln('Удовлетворительно ');

4 : writeln('Хорошо');

5 : writeln('Отлично');

end;

end.

Обратите внимание, что оператор case заканчивается скобкой end.

Если пользователь введет отметку, не попадающую в диапазон 2-5, то никаких действий выполняться не будет. Можно, конечно, обработать и эту ситуацию. Тогда синтаксис оператора case будет такой:

Program YourMark2;

{ ваша отметка }

var n : integer;

begin

write('Введите вашу отметку '); readln(n);

case n of

2 : writeln('Плохо');

3 : writeln('Удовлетворительно ');

4 : writeln('Хорошо');

5 : writeln('Отлично')

else writeln ('Вы ввели недопустимую отметку!')

end;

end.

Обратите внимание на отсутствие точки с запятой перед else и двоеточия после else.

Кроме единичных значений переключателя n можно указывать диапазон значений.

Program YourMark3;

{ ваша отметка }

var n : integer;

begin

write('Введите вашу отметку '); readln(n);

case n of

2..3 : writeln ('Это все очень плохо!');

4 : writeln ('Хорошо!');

5..6 : writeln ('Так держать!')

else writeln ('Вы ввели недопустимую отметку!')

end;

end.

Обратите внимание на отсутствие точки с запятой перед else и двоеточия после else.

- 21 -

Задание № 6.1. По образцу программ, написанных на предыдущей странице, решите следующую задачу:

Программа вводит число в диапазоне от 1 до 10 и выводит на экран значение числа русскими буквами (один, два, … десять). (2 балла)

Задание № 6.2. Модифицируйте программу таким образом, чтобы она выводила название чисел в диапазоне от 1 до 99 (ну кассовый аппарат же это делает на чеках!).

Подсказка №1. Для выделения числа десятков используйте хорошо знакомую вам операцию «остаток от деления». Т.е., если в переменной n находится введенное число, то получить число десятков очень просто – d:=n mod 10;

Подсказка №2. Надо рассмотреть по сути три диапазона чисел: от 1 до 9, от 10 до 19, и от 20 до 99. (5 баллов)

1 ... 3 4 5 6 7 ... 11 ВПЕРЕД
Перейти на страницу:

Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Александр Цветков - Язык программирования PASCAL, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

Комментарии (0)