Язык программирования ABC PASCAL - [8]

Шрифт
Интервал

>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 баллов)

Задание № 6.3. Ну, если уж сделали предыдущую задачу, то расширьте диапазон чисел до 999. (еще 3 балла)

Задание № 6.4*. Модифицируйте программу 6.3 (даже в сторону упрощения), так чтобы она выводила число в диапазоне от 1 до 999, записанное римскими цифрами. (еще 4 балла)

Запись чисел римскими цифрами:


1 – I

10 – X

100 – C

2 – II

20 – XX

200 – CC

3 – III

30 – XXX

300 – CCC

4 – IV

40 – XL

400 – CD

5 – V

50 – L

500 – D

6 – VI

60 – LX

600 – DC

7 – VII

70 – LXX

700 – DCC

8 – VIII

80 – LXXX

800 – DCCC

9 – IX

90 – XC

900 – CM

Запись остальных чисел происходит просто «склеиванием» записей приведенных чисел.


Например:


23 – XXIII 357 – CCCLVII 888 – DCCCLXXXVIII 901 – CMI 109 – CIX

- 22 -

Тема №7 Операторы цикла While и Repeat … Until


Мы уже познакомились с оператором цикла for, который используется в тех случаях, когда число повторений тела цикла известно заранее. В языке Pascal существуют еще два оператора цикла, которые используются в тех случаях, когда число повторений цикла заранее не известно, либо сложно вычислимо.


Цикл While используется для повторения оператора (группы операторов) произвольное число раз, которое может быть заранее и не известно, причем проверка условия выполнения тела цикла происходит перед выполнением тела цикла.

Синтаксис оператора:

while условие do оператор;

или

while условие do

begin оператор1; оператор2; ....

end;

Суть выполнения оператора заключается в проверке логического условия, если оно оказывается истинным, выполняются операторы тела цикла до тех пор, пока логическое условие не станет ложным. Если условие было ложным перед выполнением цикла, то операторы цикла никогда не выполняются. Если условие остается истинным всегда, то цикл никогда не закончится. Говорят, что программа зацикливается.


Цикл repeatuntil похож на цикл while. Его синтаксис:

repeat оператор1; оператор2; ....

until условие;

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

Построим таблицу квадратов чисел от 1 до 10 с помощью цикла while и repeatuntil.

>Program SquareW;

>var i : integer;

>begin

> i:=1

>while i<=10 do

>begin

> writeln(i:4,sqr(i):4);

> i:=i+1;

>end;

>end.

>Program SquareR;

>var i : integer;

>begin

> i:=1

>repeat

> writeln(i:4,sqr(i):4);

> i:=i+1;

>until i>10;

>end.


- 23 -


Рассмотрим следующий пример. Необходимо построить вложенные друг в друга концентрические окружности. Радиус самой большой окружности – 400 пикселей, а радиус каждой вложенной – в два раза меньше предыдущей, т.е. 200, 100, 50, … Радиус последней – 1 пиксель.


Для решения этой задачи разумно использовать цикл while или repeat until, поскольку действительно сразу сложно понять сколько будет окружностей (хотя, конечно, можно сосчитать).


>Program Circles;

>Uses GraphABC;

>var r : integer;

>begin

> SetWindowSize(800,800);

> r:=400;

>repeat

> circle(400,400,r);

> r:=r div 2;

>until r<1;

>end.

>Program Circles;

>Uses GraphABC;

>var r : integer;

>begin

> SetWindowSize(800,800);

> r:=400;

>while (r>=1) do

>begin

>circle(400,400,r);

>r:=r div 2;

>end;

>end.


Рассмотрим еще один пример. Программа должна рисовать случайные расположенные окружности случайного цвета и случайного размера (но не больше 10 пикселей) до тех пор, пока пользователь не нажмет на какую либо клавишу.


Рекомендуем почитать
Административное право России в вопросах и ответах

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


Общие основы педагогики

Непосредственной сдаче экзамена или зачета по любой учебной дисциплине всегда предшествует достаточно краткий период, когда студент должен сосредоточиться, систематизировать свои знания. Выражаясь компьютерным языком, он должен «вывести информацию из долговременной памяти в оперативную», сделать ее готовой к немедленному и эффективному использованию. Специфика периода подготовки к экзамену или зачету заключается в том, что студент уже ничего не изучает (для этого просто нет времени): он лишь вспоминает и систематизирует изученное.Содержание и структура пособия соответствуют требованиям Государственного образовательного стандарта высшего профессионального образования.Издание предназначено студентам педагогических вузов.


Профессия: официант-бармен

Официант, бармен, сомелье –  это популярные сегодня профессии. Многие выбирают их на всю жизнь, не меньшее число рассматривает работу в баре или ресторане как удобный приработок.Действительно, график работы прекрасно совмещается с графиком учебы и работы на неполный рабочий день. Текучесть кадров в ресторанном бизнесе высокая, и работу найти достаточно просто. Заработок также вполне приличный.Однако где приобрести знания и навыки? Нет ничего дешевле, чем приобрести толковый учебник, каковым и является эта книга.


Концепции современного естествознания

В учебнике, написанном коллективом преподавателей РГПУ им. Герцена под руководством Л. А. Михайлова – декана факультета безопасности жизнедеятельности, лауреата премии Президента РФ, представлены новейшие концепции всех естественных наук: биологии, генетики, физики, химии, математики, информатики, биохимии, геологии, антропологии и других. В книге раскрываются социальные последствия новых научных открытий, даются современные технологии обучения в области концепций современного естествознания.Учебник полностью соответствует Государственному образовательному стандарту и имеет гриф УМО.


Экономика фирмы

Объектом изучения данного курса лекций является фирма как единая система, которая функционирует в условиях рыночной экономики. Рассматриваются организационно-правовые формы фирм, основные условия обеспечения экономической стабильности фирмы, принципы ее управления и организационная структура, порядок обеспечения кадрами, модель функционирования фирмы в рыночной среде. Описана комплексная система обеспечения ресурсами (трудовые ресурсы, основные и оборотные средства), система показателей для оценки эффективности их применения.Этот курс лекций предназначен для студентов, аспирантов и преподавателей экономических факультетов университетов и экономических вузов.


Медицинская статистика

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