Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка Паскаль

.pdf
Скачиваний:
101
Добавлен:
30.04.2015
Размер:
592.26 Кб
Скачать

a.) с использованием третьей переменной;

b.) без использования третьей переменной.

1.6.«Из градусов в радианы». Угол α задан в градусах, минутах и се-

кундах. Найти его величину в радианах с максимально возможной точно-

стью.

1.7. «Из дюймов в метры». Длина отрезка задана в дюймах (1 дюйм = 2,54 см). Выразить длину отрезка в метрах, сантиметрах и миллиметрах. На-

пример, 21 дюйм = 0 м 53 см 3,4 мм.

1.8.«Временной интервал». Заданы моменты начала и конца некото-

рого промежутка времени в часах, минутах и секундах (в пределах одних су-

ток). Найти продолжительность этого промежутка в тех же единицах измере-

ния.

11

Тема 2. Разветвляющиеся программы

Краткое изложение теоретического материала

Для организации ветвления в программе на языке Паскаль используют-

ся условный оператор (конструкция ветвления в полной и сокращенной форме) и оператор варианта.

Ветвление в полной форме:

If <условие>

Then <оператор 1>

Else <оператор 2>;

где <условие > - логическое выражение, которое может принять одно из двух значений – истина или ложь; условия могут быть простыми (с ис-

пользованием операций отношения >, <, =, <>, <=, >=) или сложными (с ис-

пользованием логических операций Not, And, Or, Xor);

<оператор 1> и <оператор 2> - простые или составные операторы. <оператор 1> будет исполнен в случае, когда условие истинно. <оператор 2> - если условие ложно. Одновременно <оператор 1> и <оператор 2> выполне-

ны быть не могут. Ветвление в полной форме может быть представлено в ви-

де блок-схемы на Рис. 1.

 

 

да

 

 

 

нет

 

 

 

 

 

Условие

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оператор 1

 

 

Оператор 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1. Блок-схема ветвления в полной форме

12

Ветвление в сокращенной форме:

If <условие>

Then <оператор>;

Ветвление в сокращенной форме может быть представлено в виде блок-схемы на Рис. 2.

да

нет

 

Условие

Оператор

 

Рис. 2. Блок-схема ветвления в сокращенной форме

Оператор варианта:

Позволят осуществить множественный выбор. Имеет вид:

Case <переключатель> Of <константа 1> : <оператор 1>; <константа 2> : <оператор 2>;

<константа n> : <оператор n> Else <оператор>

End;

где <переключатель> - переменная (выражение) перечислимого типа

(из стандартных к перечислимым относятся Integer, Char, Boolean); <константа i> - возможные значения переключателя;

13

<оператор i> - простой или составной оператор, который будет испол-

нен в случае, если значение переключателя будет равным соответствующей константе;

<оператор> - простой или составной оператор, который будет исполнен в случае, если значение переключателя не совпадет ни с одной из констант.

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

введенных чисел.

Программа:

Program maximum;

Uses Crt;

Var A, B : Integer;

Begin

Clrscr;

Write (‘Введите два числа ’);

Readln (A, B);

If A>B

Then Writeln (‘Большее число ’, A)

Else If B>A

Then Writeln (‘Большее число ’, B)

Else Writeln (‘Числа равны’);

Readln

End.

Пример 2. Составить программу, которая вводит число, обозначающее количество лет, и выводит для этого числа наименование «год», «года» или

«лет». Например, «14 лет», «183 года», «31 год».

Составим модель данной задачи. Исходным данным является целое число A. Результат: наименование. Наименование зависит от последней циф-

ры введенного числа: 1 - «год»; 2,3,4 – «года», 0,5,6,7,8,9 – «лет». Исключе-

14

нием являются числа, две последних цифры которых составляют число от 11

до 14 – в этом случае требуемым наименованием будет «лет» («12 лет»).

Алгоритм решения:

ввод числа А;

вычисление числа В из двух последних цифр числа А;

если В лежит в интервале от 11 до 14,

то писать наименование «лет» иначе

выделить последнюю цифру числа А (обозначим С);

если С=1, то вывести наименование «год»;

если С=2 или С=3 или С=4, то вывести наименование «года»;

если С=0 или С в интервале от 5 до 9, то вывести наименование

«лет».

Программа:

Program Years;

Uses Crt;

Var A, B, C : Integer;

Begin

Clrscr;

Write (‘Введите число ’);

Readln (A);

B := A mod 100;

If (B>=11) And (B<=14)

Then Writeln (A, ‘ лет’)

Else Begin

C := A mod 10;

Case C Of

1 : Writeln (A, ‘ год’);

2, 3, 4 : Writeln (A, ‘ года’); 0, 5..9 : Writeln (A, ‘ лет’)

15

End

End;

Readln

End.

Контрольные задания

2.1.Составить программу, которая определит, в какой координатной четверти лежит точка с координатами (X,Y).

2.2.Составить программу, которая вычислит корни квадратного уравнения ax2+bx+c=0.

2.3.Составить программу, которая определит, поместится ли квадрат со стороной А в круг радиуса R, или круг в квадрат.

2.4.«Вид треугольника». Треугольник задан координатами своих вершин на плоскости. Составить программу, которая определит, является ли он прямо-, остроили тупоугольным.

2.5.«Посылка». Составить программу, которая определит, можно ли коробку размером axbxc упаковать в посылку размером rxsxt? «Углом» укла-

дывать нельзя.

2.6.«Кирпич». Составить программу, которая определит, пройдет ли кирпич со сторонами a, b и c сквозь прямоугольное отверстие со сторонами r

иs? Стороны отверстия должны быть параллельны граням кирпича.

2.7.«Треугольник и точка». Составить программу, которая опреде-

лит, лежит ли точка М(x,y) внутри треугольника, заданного координатами своих вершин A, B и C?

2.8. Составить программу, которая определит, является ли введенное шестизначное число номером «счастливого» билета (т.е. сумма первых трех цифр равна сумме последних трех цифр). Указание: используйте тип

LongInt.

16

2.9.Три шахматиста играют в шахматы. Известно количество очков,

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

2.10. Составить программу, которая вводит текущую дату (число, но-

мер месяца и год) и выводит следующую дату. Например, 31 12 2005 → 1

января 2006.

2.11. Составить программу, которая вводит текущую дату (число, но-

мер месяца и год) и выводит предыдущую дату. Например, 1 05 2005 → 30

апреля 2005.

2.12. Составить программу, которая вводит число, обозначающее ко-

личество килограммов, и выводит для этого числа наименование «кило-

грамм», «килограмма» или «килограммов». Например, «14 килограммов», «73 килограмма», «151 килограмм».

2.13. Составить программу, которая вводит целое число (с произволь-

ным количеством цифр – от одной до пяти) и выводит число-перевертыш.

Например, 21 → 12; 358 → 853.

17

Тема 3. Циклические программы

Краткое изложение теоретического материала

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

ствий. Эти повторяющиеся действия называются телом цикла. Программа,

содержащая цикл, называется циклической.

В языке Паскаль существует три оператора для организации циклов трех разных видов.

Цикл с предусловием.

While <условие> Do

<тело цикла>;

где <условие> - логическое выражение, <тело цикла> - простой или составной оператор.

Компьютер сначала проверяет условие (поэтому цикл называется цик-

лом с ПРЕДусловием). Если оно истинно, будет выполнено тело цикла, и

произойдет переход снова на проверку условия. То есть, пока условие истин-

но, будет выполняться тело цикла. Таким образом, условие является в дан-

ном операторе условием выполнения цикла. Цикл с предусловием может быть представлен блок-схемой на Рис. 3.

да

Тело цикла

Условие

нет

Рис. 3. Блок-схема цикла с предусловием

18

Тело цикла может выполняться бесконечно (условие всегда истинно),

может не выполниться ни разу (условие сразу ложно).

Цикл с постусловием.

Repeat

<тело цикла>

Until <условие>;

где <условие> - логическое выражение, <тело цикла> - группа операторов.

Компьютер сначала выполняет тело цикла, затем проверяет условие

(поэтому цикл называется циклом с ПОСТусловием). Если оно ложно, будет вновь выполнено тело цикла, и так до тех пор, пока условие не станет истин-

ным. Таким образом, условие в данном операторе является условием оконча-

ния цикла. Цикл с постусловием может быть представлен блок-схемой на Рис. 4.

Тело цикла

нет

Условие

да

Рис. 4. Блок-схема цикла с постусловием

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

Цикл со счетчиком (с параметром).

For k:=A To B Do

<тело цикла>;

19

где k – счетчик (переменная перечислимого типа, в ней хранится коли-

чество сделанных повторов тела цикла),

А – начальное значение счетчика,

В – конечное значение счетчика, <тело цикла> - простой или составной оператор,

шаг изменения счетчика +1.

При А>В тело цикла не будет выполнено ни разу.

Если необходимо использовать цикл со счетчиком, меняющимся с ша-

гом -1, оператор приобретает вид:

For k:=A Downto B Do

<тело цикла>;

где А>В.

Если алгоритм требует другого шага изменения счетчика (отличного от

+1 и -1), необходимо использовать другие операторы цикла (While или Repeat).

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

до N.

Пояснение: составим три программы, т.е. решим данную задачу с ис-

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

Цикл с предусловием

Цикл с постусловием

Цикл со счетчиком

 

 

 

Program Numbers;

Program Numbers;

Program Numbers;

Uses Crt;

Uses Crt;

Uses Crt;

Var k, n : Integer;

Var k, n : Integer;

Var k, n : Integer;

Begin

Begin

Begin

Clrscr;

Clrscr;

Clrscr;

Write(‘Введите N ’);

Write(‘Введите N ’);

Write(‘Введите N ’);

Readln(n);

Readln(n);

Readln(n);

k:=1;

k:=1;

For k:=1 To n Do

 

 

 

 

20