Методичка Паскаль
.pdfa.) с использованием третьей переменной;
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 |
|