- •1.1 Алгоритм и блок-схема
- •1.2 Особенности языка Турбо Паскаль и структура программы
- •1.3 Алгоритмы линейной структуры и используемые в них операторы
- •1.4 Пример алгоритма и программы линейной структуры
- •2.2 Примеры решений задач разветвленной структуры
- •I, m1, m2 могут быть только переменными целого типа;
-
I, m1, m2 могут быть только переменными целого типа;
-
параметр i не может изменяться внутри цикла.
Все операторы цикла (For-To, For-Downto, While-Do и Repeat-Until) приведены в таблице D1. Общим для всех перечисленных операторов цикла является то, что циклы, организованные с их помощью, содержат обязательные компоненты: задание начального значения параметра цикла; тело цикла; задание шага изменения параметра цикла; проверку на выход из цикла.
Для операторов While и Repeat изменение параметра цикла по какому-либо закону в теле цикла обязательно.
При программировании алгоритмов циклической структуры часто используются приемы накапливания сумм, произведения, количества:
Накапливание суммы |
до цикла |
S = 0 |
в цикле |
S=S+элемент |
Накапливание произведения |
|
P = 1 |
|
P=P*элемент |
Накапливание количества |
|
K = 0 |
|
K=K+1 |
3.2 Примеры алгоритмов и программ циклической структуры
3.2.1 Вычислить все значения функции Y=A*K2, если К меняется от 1 до 10 с шагом 1. Решить задачу несколькими способами (на рисунках 3.1, 3.2, 3.3 и 3.4 показаны все способы решения задачи).
Program Primer3_1; var k: integer; a, y: real; begin read (a); for k := 1 to 10 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:10:3) end end. |
|
Рисунок 3.1 – Пример решения задачи с использованием оператора For-To |
|
Program Primer3_2; var k: integer; a, y: real; begin read (a); for k := 10 downto 1 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:10:3) end end. |
|
Рисунок 3.2 – Пример решения задачи с использованием оператора For-Downto |
|
Program primer3_3; var k:integer; a,y: real; begin read (a); k:=1; while k<=10 do begin y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:9:3); k := k + 1 end end.
|
|
Рисунок 3.3 – Пример решения задачи с использованием оператора While-Do |
|
Program primer3_4; var k:integer; a,y: real; begin read (a); k:=1; repeat y := a * sqr(k); writeln(’K=’,k:2,’Y=’,y:9:3); k := k + 1 until k > 10 end.
|
|
Рисунок 3.4 – Пример решения задачи с использованием оператора Repeat-Until |
3.2.2 Вычислить значения функции для х, меняющегося в интервале от –5 до 7 с шагом 0,5. Найти количество (К) значений у(х) равных нулю, сумму (S) положительных значений у(х) и произведение (P) отрицательных значений у(х). Решить задачу, используя, оператор For-To.
Блок-схема и программа решения задачи представлены на рисунке 3.5.
|
Program primer3_5; var S, P, y, x:real; K, i:integer; begin K := 0; S := 0; P := 1; N := trunc((7+5)/0.5+1); x := -5; for i := 1 to N do begin y := x*sin(x)-exp(x); writeln(’x=’, x:4:1,’y=’, y:10:3); if y = 0 then K := K+1 else if y > 0 then S := S+y else P := P*y; x := x+0.5; end; writeln(K, S, P) end. |
Рисунок 3.5 – Пример решения задачи с использованием цикла FOR-TO с вещественным параметром |
При использовании оператора цикла For-To для решения данной задачи выбрать х в качестве параметра цикла нельзя, так как это вещественная переменная, кроме того, интервал ее изменения и шаг, также вещественные числа. Поэтому для организации цикла используем дополнительный параметр i, который будет изменяться параллельно с х требуемое число раз. Для этого определим количество итераций (повторений) по формуле: , где m1 и m2 - начальное и конечное значение х, m3 – шаг. Так как значение N не всегда получается целым числом, в программе рекомендуется использовать функцию trunc(x), результатом которой является целое число, а аргументом - вещественное. Вычисления значения функции производятся в цикле. До организации цикла необходимо задать начальные значения переменных для хранения суммы (S=0), количества (K=0) и произведения (P=1). Также необходимо задать начальное значение переменной (х=-5), а затем внутри цикла изменять х на величину шага (х := х + 0.5). Для накопления суммы и количества в теле цикла используется оператор присваивания типа счетчика, суть которого: последующее значение = предыдущее значение + текущее значение (S:=S+y и K:=K+1), а для накопления произведения используется идентичный оператор присваивания, но со знаком * в правой его части (P:=P*y).
3.3 Варианты заданий
Решить задачу согласно варианту тремя способами, т.е. с использованием операторов цикла For-To (или For-Downto), While-Do и Repeat-Until.
1 Вычислить сумму четных и нечетных первых N чисел натурального ряда.
2 Дано целое число N. Вычислить P=N!=123…N.
3 Даны числа a и n. Вычислить P = a(a-n) (a-2n) (a-3n) … (a-n2).
4 Вычислить произведение первых n сомножителей .
5 Вычислить произведение четных и нечетных первых N чисел натурального ряда.
6 Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых S = sinX + sinX2 + sinX3 +…+ sinXn.
-
Даны вещественное число X и натуральное число n. Вычислить произведение первых N сомножителей S = sinX sinX2 sinX3 … sinXn.
-
Дано целое число n. Вычислить .
-
Дано целое число n. Вычислить .
-
Вычислить произведение первых n сомножителей .
-
Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых .
-
Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых .
-
Даны числа b и n. Вычислить P = b(b+1) (b+2) (b+3) … (b+n).
-
Вычислить сумму первых N чисел натурального ряда.
-
Вычислить произведение четных и нечетных первых N чисел натурального ряда.
-
Вычислить сумму первых n слагаемых .
-
Дано целое число n. Вычислить .
-
Даны числа x и n. Вычислить .
-
Даны числа b и n. Вычислить P = (b-n) + (b - (n-1)) + (b- (n-2)) +…+ (b-1).
-
Даны вещественное число b и натуральное число n. Вычислить bn.
-
Даны вещественное число x и целое число n. Вычислить .
-
Даны числа x и n. Вычислить .
-
Дано целое число n. Вычислить .
-
Дано целое число n. Вычислить .
-
Дано целое число n. Вычислить .
-
Дано целое число n. Вычислить .
-
Дано целое число n. Вычислить .
-
Даны числа a и n. Вычислить S = a+(a-n) + (a-2n) + (a-3n) +…+ (a-n2).
-
Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых S = sin2X + 2sin2X +…+ nsin2 X.
-
Дано целое число n. Вычислить .
3.4 Контрольные вопросы
1 Что называется циклом?
2 Что представляет собой оператор цикла?
3 Какие виды оператора цикла существуют в Паскале?
4 Дайте сравнительную характеристику операторов For-To и For-Downto.
5 Что представляет собой оператор цикла While-Do?
6 Что представляет собой оператор цикла Repeat-Until?
7 Как организовать цикл For-To с вещественным параметром?
8 Как осуществляется накапливание суммы в программе?
9 Какое значение следует принять за начальное при накапливании произведения?
10 В какой последовательности выполняются действия при накапливании количества?
Приложение A
Описание символов, используемых в графической схеме алгоритмов (ГСА)
Таблица А1 – Основные элементы блок-схем
Наименование |
Обозначение |
Примечание |
Терминатор |
Отображает выход во внешнюю среду или вход из внешней среды. Используется для обозначения начала или окончания алгоритма |
|
Данные |
Отображает данные, носитель данных не определен. Используется для обозначения операций ввода и вывода данных |
|
Процесс |
Отображает функцию обработки данных любого вида. Используется для обозначения операций присваивания |
|
Подготовка |
Используется для обозначения заголовка цикла |
|
Решение |
Используется для обозначения оператора условного перехода или оператора выбора (варианта) |
|
Предопределен-ный процесс |
Отображает предопределенный процесс, состоящий из одной или нескольких операций, которые определены, например, в подпрограмме или модуле. Обычно используется для обозначения подпрограмм. |
|
Соединитель |
Отображает выход в часть схемы и вход из другой части этой же схемы и используется для обрыва линии и продолжения ее в другом месте. |
|
Линия |
Отображает поток данных или управления. Направления слева направо и снизу вверх обозначаются стрелками. Используется для соединения символов в алгоритме |
|
Комментарий |
Используется для добавления описательных комментариев или пояснительных записей с целью объяснений или примечаний. |
|
Примечание – символы могут быть вычерчены в любой ориентации, но предпочтительной является горизонтальная. Внутрь символа помещают обозначения или описания операций. Символы ГСА могут быть отмечены идентификаторами или порядковыми номерами. |
Приложение В
Основные элементы языка Турбо Паскаль
Таблица В1 – Список зарезервированных слов
ABSOLUTE |
Downto |
In |
Or |
Then |
And |
Else |
Inherited |
Packed |
To |
Array |
End |
Inline |
Private |
Type |
Asm |
External |
Interface |
Procedure |
Unit |
Assembler |
Far |
Interrupt |
Program |
Until |
Begin |
File |
Label |
Public |
Uses |
Case |
For |
Mod |
Record |
Var |
Const |
Forward |
Near |
Repeat |
Virtual |
Constructor |
Function |
Nil |
Set |
While |
Destructor |
Goto |
Not |
Shl |
With |
Div |
If |
Object |
Shr |
XOR |
Do |
Implementation |
Of |
String |
Таблица B2 – Перечень операций языка
Операции |
Действие |
Тип результата |
|
Арифмети-ческие |
+ |
Сложение |
Целый или вещественный |
- |
Вычитание |
||
* |
Умножение |
||
/ |
Деление |
Вещественный |
|
Div |
Целочисленное деление |
Целый |
|
Mod |
Остаток от деления |
Целый |
|
Операции сравнения |
= |
Равенство |
Логический |
<> |
Неравенство |
||
< |
Меньше |
||
> |
Больше |
||
<= |
Меньше или равно |
||
>= |
Больше или равно |
||
Логические |
Not |
Отрицание |
Логический |
Or |
Дизъюнкция |
||
And |
Конъюнкция |
||
Xor |
Исключающее ИЛИ |
Таблица В3 - Типы переменных (целые и действительные числа)
Целые числа |
Действительные числа |
||
Формат |
Диапазон значений |
Формат |
Диапазон значений |
shortint |
-128 127 |
real |
2.9E-39 1.7E+38 |
integer |
-32768 32767 |
single |
1.5E-45 3.4E+38 |
longint |
-2147483648 2147483647 |
double |
5.0E-324 1.7E+308 |
byte |
0 255 |
extended |
3.4E-4932 1.1E+4932 |
word |
0 65 535 |
|
|
Приложение С
Структура простейшей Паскаль-программы и встроенные функции языка
Таблица С1 – Структура простейшей программы
Части |
Раздел |
Обозначение в программе |
Описа-тельная |
Заголовок программы |
Program Primer; |
Объявление меток |
Label 1,2,x1; |
|
Объявление констант |
Const a=3.5; b=5; |
|
Объявление переменных |
Var y,z:real; i:integer; |
|
Исполни-тельная |
Начало главной программы |
Begin |
{Ввод исходных данных}; {Обработка исходных данных}; {Вывод результата}; |
||
Конец программы |
End. |
Таблица С2 - Некоторые встроенные функции языка Паскаль
Математическая запись или ее назначение |
Запись на Паскале |
sin x, x – в радианах |
Sin(x) |
cos x, x – в радианах |
Cos(x) |
arctg x |
Arctan(x) |
ln x – значение натурального логарифма |
Ln(x) |
ex или exp(x) |
Exp(x) |
- абсолютное значение величины х |
Abs(x) |
, x>=0 |
Sqrt(x) |
x2 |
Sqr(x) |
дробная часть числа х |
Frac(x) |
целая часть числа х, получаемая путем отбрасывания дробной части |
Trunc(x) |
целая часть числа х, получаемая путем округления до ближайшего меньшего целого |
Int(x) |
целая часть числа х, получаемая путем округления до ближайшего большего целого по абсолютной величине |
Round(x) |
случайное число от 0 до х |
Random(x) |
случайное число от 0 до 1 |
Random |
Выдает значение True, если целое число х нечетно |
Odd(x) |
Примечания 1 В Паскале нет операции возведения в произвольную степень n, поэтому используют выражение xn = enlnx. 2 Для получения tg x, ctg x, arcsin x, arccos x, arcctg x, logax могут быть использованы известные математические соотношения. |
Библиография
1 Ю.Аляев, О.Козлов. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: учебно-справочное пособие. – М.: Финансы и статистика, 2004.
-
ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов и программ. Обозначения условные, графические. – М.: Издательство стандартов,1990.
3 С.Немнюгин, Л.Перколаб. Изучаем Turbo Pascal. – СПб.: Питер, 2001.
4 О.А.Меженный.Turbo Pascal: учитесь программировать.- М.:Издательский дом «Вильямс», 2001.
-
Симонович С.В. Информатика. Базовый курс.- СПб.: Питер, 2000.
Содержание
Введение 3
Лабораторная работа №1. Программирование алгоритмов линейной структуры 4
Лабораторная работа №2. Программирование алгоритмов разветвленной структуры 8
Лабораторная работа №3. Программирование алгоритмов циклической структуры 15
Приложение А 22
Приложение В 23
Приложение С 24
Приложение D 25
Библиография 29