- •Министерство образования и науки российской федерации
- •Оглавление предисловие
- •Составление структурных схем алгоритмов и программ
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Пример 4
- •Пример 5
- •Задания
- •Алфавит языка pascal. Типы данных. Раздел описаний. Оператор присваивания. Ввод-вывод. Составление простейших программ
- •Стандартные процедуры
- •Стандартные функции
- •Пример 1
- •Пример 2
- •Задания
- •Пример 3
- •Задания
- •Задания
- •Использование переменных логического типа. Логический оператор присваивания
- •Логический оператор присваивания
- •R операция_сравнения s
- •Пример 1
- •Задания
- •4. Программирование разветвляющихся структур
- •4.1. Использование в программах условного оператора
- •Пример 1
- •Задания
- •4.2. Использование в программах оператора варианта
- •Case выражение-селектор of метка_случая : оператор;
- •Пример 1
- •Задания
- •5. Использование переменных типа char
- •Задания
- •6. Реализация циклических структур
- •6.1. Применение оператора цикла с параметром
- •Шаг изменения параметра цикла:
- •Пример 1
- •Задания
- •Пример 2
- •Пример 3
- •Задания
- •Пример 4
- •Задания
- •Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
- •Задания
- •Задания
- •Пример 6
- •Задания
- •Не смотря на то, что есть еще другие операторы цикла, обычно вводят и выводят массивы с помощью оператора цикла с параметром.
- •6.2. Применение оператора цикла с постусловием
- •Пример 1
- •Задания
- •6.3. Применение оператора цикла с предусловием
- •Основные различия между операторами циклов с постусловием и предусловием
- •Пример 1
- •Задания
- •6.4. Работа с двухмерными массивами.
- •Задания
- •Пример 1
- •Задания
- •7. Поиск и сортировка числовых данных
- •Пример 1
- •Задания
- •8. Решение задач с применением подпрограмм
- •Procedure имя(список параметров);
- •Var идентификаторы:имя типа;...; var идентификаторы: имя типа
- •Var идентификаторы:имя типа;...;var идентификаторы: имя типа;...; идентификаторы:имя типа;...;идентификаторы:имя типа
- •Идентификаторы:имя типа;идентификаторы:имя типа; ...;идентификаторы:имя типа
- •Локальные переменные доступны только внутри процедур, в которых они определены!
- •Пример 1
- •Задания
- •9. Использование переменных перечисляемого типа
- •Ввод и вывод значений переменных перечисляемого типа запрещен.
- •Задания
- •10. Использование переменных ограниченного типа
- •Задания
- •11. Использование переменных множественного типа
- •Var идентификатор : set of порядковый тип;
- •Запрещен.
- •Правила приоритета для множественных операций:
- •Задания
- •12. Использование записей
- •With префикс[,префикс [...]] do оператор
- •Пример 1
- •Задания
- •13. Работа со строками
- •Каждая переменная типа string вводится отдельной процедурой readln
- •Пример 1
- •Задания
- •14. Работа с файлами
- •Пример 1
- •Пример 2
- •Пример 3
- •Задания
- •Библиографический список
Таким образом изображаются циклы в структурных схемах (в лабораторных работах, курсовых работах и т.Д.). Пример 5
Вычислить сумму первых ста целых чисел.
Решение
Как мы вычисляем сумму вручную?
1+2+3+4+...+100 Сначала мы складываем 1 и 2. Результат запоминаем. Затем результат складываем с 3. Новый результат запоминаем. И т.д. Программу надо составить так, чтобы она делала то же самое. Но, чтобы она запоминала результат, надо завести переменную и ей присваивать значение результата.
. . .
S
В конце концов в этой переменной накопится вся сумма. До того, как мы начали складывать, у нас сумма была равна 0. Следовательно, сначала S=0. Потом мы запоминаем 1-й элемент:
S=S+1.
S станет равно 1. Затем прибавляем следующий:
S=S+2,
после чего S станет равно 3 и т.д. То есть S последующее равно S предыдущему плюс очередное число, которое мы должны прибавить:
S=S+i.
В этих выражениях 2-е слагаемое изменяется от i=1 до 100 с шагом 1.
В общем виде получаем следующую запись:
То есть для i, изменяющегося от 1 до 100, надо вычислять по формуле:
S=S+i.
Напишем то же самое на языке PASCAL:
for i:=1 to 100 do
s:=s+i;
Программа будет иметь вид:
var
i,s:integer;
begin
{ВЫЧИСЛЕНИЕ СУММЫ}
s:=0;
for i:=1 to 100 do
s:=s+i;
writeln(s)
end.
Произведение вычисляется аналогично, но Sсначала (до цикла) приравнивается к единице, а не к нулю, т.к., если умножать на ноль, - всегда будет НОЛЬ, и вместо знака «плюс» в цикле будет знак «умножить». В этом примере надо будет заменить тип уSнаlongint, т.к. в результате будет довольно большое число и типintegerне подойдет. В результате произведение будет вычислено так:
var
i:integer;
s: longint;
begin
{ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ}
s:=1;
for i:=1 to 100 do
s:=s*i;
writeln(s)
end.
Задания
№12. Написать программу для вычисления значения выражения
№13. Написать программу для вычисления значения величины
№14. Написать программу для вычисления значения выражения
A1*B50+A2*B49+A3*B48+...+A49*B2+A50*B1.
№15. Написать программу для вычисления значения выражения
№16. Написать программу для вычисления значения выражения
На О.О.Ф. функцию не исследовать. Считать, что все исходные данные удовлетворяют О.О.Ф.
№17. Написать программу для вычисления значения выражения
Указание. Так как заранее неизвестно количество элементов в массиве Х, а его необходимо обязательно описать, то мы допустим, что наша программа будет вычислять значение данного выражения при максимальном количестве элементов в массиве Х, равном, например, 100. Теперь можно описать одномерный массив из 100 элементов (тем самым мы зарезервируем память для этих 100 элементов):
Var
X:array [1..100] of real;
Итак, наша программа будет работать, если количество элементов в массиве Х будет меньше или равно 100.
Чтобы программе было известно, cколько же фактически элементов (n) в массиве Х в каждом конкретном случае, n надо ввести:
read(n);
Теперь можно ввести фактический массив Х:
for i:=1 to n do
read(x[i]);
Например, при n=5 будем вводить массив Х, состоящий из пяти элементов.
Конечно, необходимо описать переменные i и n.