- •Часть I
- •1.1 Простейшее консольное приложение. Основные понятия
- •Задачи.
- •1.2 Простые типы
- •Целые типы.
- •Задачи.
- •Символьные типы.
- •Логические типы
- •Перечислимый тип
- •Задачи.
- •Вещественные типы
- •Тип дата-время
- •1.3 Операторы Оператор присваивания
- •Составной оператор
- •Условный оператор if
- •Задачи.
- •Оператор выбора case
- •Задачи.
- •Операторы цикла
- •Задачи.
- •Задачи.
- •Задачи.
- •1.4 Процедуры и функции.
- •Процедуры.
- •Функции.
- •Вызов подпрограмм.
- •Локализация имён.
- •Параметры.
- •Задачи.
- •Перегрузка функций.
- •Процедурные типы.
- •1.5 Динамическая память и указатели
- •1.6 Массивы
- •Статические массивы
- •Задачи.
- •Задачи.
- •Задачи.
- •Задачи.
- •Динамические массивы
- •Параметры-массивы
- •1.7 Строки Строковые типы
- •Стандартные подпрограммы для строк.
- •Строковые выражения
- •Задачи.
- •Преобразование строк в числовые типы и обратно.
- •1.8 Множества
- •Задачи.
- •1.9 Записи
- •Задачи.
- •Литература.
- •Оглавление
Задачи.
90. Найти НОД трёх натуральных чисел. Указание:
НОД(x,y,z)=НОД( НОД(x,y), z ).
91. Даны натуральные числа m и n. Найти такие натуральные числа p и q, не имеющие общих делителей, что
92. Найти первое число Фибоначчи, большее заданного целого числа m (m1).
93. Вычислить S сумму всех чисел Фибоначчи, которые не превосходят 1000.
94. Дано целое число m (m1). Получить наибольшее целое k , при котором 4k m.
95. Дано натуральное число n . Получить наименьшее число вида 2r , превосходящее n.
1.4 Процедуры и функции.
Если в программе возникает необходимость частого обращения к некоторой группе операторов, то рационально выделить такую группу операторов в самостоятельный блок, к которому можно обращаться, указывая его имя. Такие разработанные программистом блоки называются подпрограммами пользователя. В языке Паскаль механизм подпрограмм реализуется в виде процедур и функций.
Процедуры.
Формат описания процедуры:
procedure имя (формальные параметры);
раздел описаний
begin
операторы
end;
Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова procedure , идентификатора имя процедуры и списка формальных параметров с указанием типа параметра (список параметров может отсутствовать). Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой блок, по структуре аналогичный программе.
Рассмотрим пример процедуры, которая вычисляет an , где a и n – это данные целые числа (n0).
procedure degree( a,n:integer; var step:integer);
var i:integer;
begin
step1;
for i1 to n do stepstepa;
end;
Результатом выполнения процедуры может быть не одно значение, а несколько. Рассмотрим пример процедуры, меняющей местами значения двух переменных x и y.
procedure swap(var x, y:integer);
var z:integer;
begin
zx; xy; yz
end;
Функции.
Формат описания функции:
function имя (формальные параметры) : тип результата;
раздел описаний
begin
операторы
end;
Функция состоит из заголовка и тела функции. В отличие от процедуры результатом выполнения функции может быть только одно значение. В теле функции обязательно должен быть хотя бы один оператор присваивания, где в левой части стоит имя стандартной переменной result, а в правой – вычисленное значение функции.
Рассмотрим пример функции, которая вычисляет факториал числа n.
n! 123… n
function fact(n:integer):integer;
var i:integer; f:integer;
begin
f1; for i1 to n do ff i;
resultf
end;
