Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика1 / мет_Паскаль_ч3.doc
Скачиваний:
21
Добавлен:
25.04.2015
Размер:
428.03 Кб
Скачать
  • 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!=123N.

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.

  1. Даны вещественное число X и натуральное число n. Вычислить произведение первых N сомножителей S = sinX sinX2 sinX3 sinXn.

  2. Дано целое число n. Вычислить .

  3. Дано целое число n. Вычислить .

  4. Вычислить произведение первых n сомножителей .

  5. Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых .

  6. Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых .

  7. Даны числа b и n. Вычислить P = b(b+1) (b+2) (b+3) (b+n).

  8. Вычислить сумму первых N чисел натурального ряда.

  9. Вычислить произведение четных и нечетных первых N чисел натурального ряда.

  10. Вычислить сумму первых n слагаемых .

  11. Дано целое число n. Вычислить .

  12. Даны числа x и n. Вычислить .

  13. Даны числа b и n. Вычислить P = (b-n) + (b - (n-1)) + (b- (n-2)) +…+ (b-1).

Даны вещественное число b и натуральнjе число n. Вычислить bn.

  1. Даны вещественное число x и целое число n. Вычислить .

  2. Даны числа x и n. Вычислить .

  3. Дано целое число n. Вычислить .

  4. Дано целое число n. Вычислить .

  5. Дано целое число n. Вычислить .

  6. Дано целое число n. Вычислить .

  7. Дано целое число n. Вычислить .

  8. Даны числа a и n. Вычислить S = a+(a-n) + (a-2n) + (a-3n) +…+ (a-n2).

  9. Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых S = sin2X + 2sin2X +…+ nsin2 X.

  10. Дано целое число 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.

  1. ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов и программ. Обозначения условные, графические. – М.: Издательство стандартов,1990.

3 С.Немнюгин, Л.Перколаб. Изучаем Turbo Pascal. – СПб.: Питер, 2001.

4 О.А.Меженный.Turbo Pascal: учитесь программировать.- М.:Издательский дом «Вильямс», 2001.

  1. Симонович С.В. Информатика. Базовый курс.- СПб.: Питер, 2000.

Содержание

Введение 3

Лабораторная работа №1. Программирование алгоритмов линейной структуры 4

Лабораторная работа №2. Программирование алгоритмов разветвленной структуры 8

Лабораторная работа №3. Программирование алгоритмов циклической структуры 15

Приложение А 22

Приложение В 23

Приложение С 24

Приложение D 25

Библиография 29

32