Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

изменения внешней по отношению к ним программной обстановки, а функции,

являясь частным случаем процедур, отличаются от них тем, что они

обязательно возвращают в точку вызова основной программы единственный

результат как значение имени этой функции.

Общая структура описания процедур

Procedure <имя> (формальные параметры ) ;

Const … ;

Type … ;

Var … ;

Begin

< операторы >

End;

Общая структура описания функций

Function <имя> (формальные параметры): <тип результата>;

Const … ;

Type … ;

Var … ;

Begin

<операторы>

End;

Подпрограмма не может выполняться сама, её необходимо вызвать по имени

и указать фактические параметры того же типа, что и формальные. Количество

и тип формальных параметров равны количеству и типу фактических

параметров.

2. Разобрать пример:

Выполнить на ЭВМ решение задачи. Даны действительные числа a, b,c.

Получить

1 max ,1,15

max, max( , )

a bc

a a b a b c

.

174

В качестве подпрограммы использовать функцию нахождения максимального

из двух чисел.

Function max(x, y: integer):integer;

Begin

If x>y then max:=x

Else max:=y;

End;

3. Внимательно прочитать условие задачи согласно варианту.

4. Составить алгоритм решения задачи.

5. Реализовать алгоритм на языке Turbo Pascal.

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ

1. Найти наименьшие элементы и номера строк и столбцов, в которых они

расположены для матриц А(10,15) и В(15,12).

НЕ нашли? Не то? Что вы ищете?

2. Вычислить Z=(U1+U2+U3)/ 3, где U1, U2, U3 - объемы шаров с

радиусами R1, R2, R3 соответственно. Вычисление Ui организовать в

подпрограмме.

3. Вычислить среднее арифметическое положительных элементов массивов

A(N1), B(N2), C(N3).

4. Подсчитать количество элементов матриц Х(10,15) и Y(20,12),

удовлетворяющих условиям 0<=Xij<=1 и 0<=Yij<=1.

5. Вычислить суммы положительных элементов каждой строки матриц

А(10,12) и В(15,10).

6. Вычислить суммы элементов главных диагоналей А(N, N) и В(M, M).

7. Вычислить Z=(Xm1+Xm2) /2, где Xm1 и Xm2 - наименьшие элементы

массивов Х1 и Х2

8. Вычислить Z=(S1+S2) /2, где S1 - сумма положительных элементов

массива Х(50); S2 - сумма отрицательных элементов массива Y(60). Обе

суммы вычисляют в одной подпрограмме.

9. Подсчитать число нулевых элементов для матриц А(N, N) и B(M, N).

10.Вычислить суммы элементов нижних треугольных матриц для матриц

А(15,15) и В(20,20).

11.Определить число положительных элементов до первого отрицательного

элемента в массивах Х(40), Y(50), Z(N).

12.Вычислить и запомнить суммы положительных элементов каждой строки

матрицы А(10,20), В(15,10).

13.Найти наибольшие элементы и их порядковые номера массивов X(N) и

Y(M).

14.Переписать положительные элементы массивов Х(100) и Y(80) в массив

Z подряд. Запись в массив Z осуществлять в подпрограммме.

15.Вывести на печать элементы целочисленных матриц N(5,8) и М(10,6),

кратных трем.

175

Форма отчета о выполнении лабораторной работы.

Отчет должен содержать:

1. Алгоритм решения задачи;

2. Программу реализации алгоритма;

3. Результат выполнения программы.

Блиц-тест.

1. Заголовок процедуры имеет вид:

A. PROCEDURE <имя> [(<список формальных параметров>)]: <тип>;

B. PROCEDURE <имя> [(<список формальных параметров>)];

C. FUNCTION <имя> [(<список формальных параметров>)]: <тип>;

D. FUNCTION <имя> [(<список формальных параметров>)];

E. PROGRAM <имя>;

2. Заголовок функции имеет вид:

A. PROCEDURE <имя> [(<список формальных параметров>)]: <тип>;

B. PROCEDURE <имя> [(<список формальных параметров>)];

C. FUNCTION <имя> [(<список формальных параметров>)];

D. FUNCTION <имя> [(<список формальных параметров>)]: <тип>;

E. PROGRAM <имя>;

3. Стандартная директива FORWARD используется

A. При опережающем описании для сообщения компилятору, что описание

подпрограммы следует где-то дальше по тексту программы

B. При создании процедур обработки прерываний

C. Для объявления внешней подпрограммы

D. Для отмены стандартной последовательности машинных инструкций

E. Для указания на то, что тело подпрограммы реализуется с помощью

встроенных машинных инструкций

Контрольные вопросы.

1. Дайте определение подпрограммы.

2. Сколько элементов может содержать список формальных параметров.

3. Чем глобальные переменные отличаются от локальных.

4. Может ли элемент массива быть формальным параметром.

Глоссарий.

Подпрограмма - это независимая часть программы, которая состоит из группы

операторов для выполнения некоторого единого действия.

Областью действия (сферой видимости) идентификатора называется часть

программы, где он может быть использован. Область действия

идентификаторов определяется местом их объявления. Если идентификаторы

допускается использовать только в рамках одной процедуры или функции, то

такие идентификаторы называются локальными. Если действие

идентификаторов распространяется на несколько вложенных (не менее одной)

процедур или функций, то такие идентификаторы называются глобальными.

Параметры, указываемые в заголовке процедуры/функции при ее описании,

называются формальными параметрами.

Параметры, указываемые при вызове процедуры/функции, называются

фактическими параметрами.

176

Процедура - это называемая именованная часть программы, которую можно

вызвать по имени для выполнения определенных действий. Структура

процедуры повторяет структуру программы. Процедура не может выступать

как операнд в выражении. Упоминания имени процедуры в тексте программы

приводит к активизации процедуры и называется ее вызовом.

Функция аналогично процедуре, но имеются два отличия: функция передает в

точку вызова скалярное значение; имя функции может входить в выражении

как операнд.

Литература.

17. «Turbo Pascal 7.0», М., Издательство «Нолидж», 1997

18. «Программирование в среде Turbo Pascal 7.0» Учебное

пособие, Киев, «Век+»,1998

19. «Программирование на языке Турбо-Паскаль», Учебное

пособие, Алматы, АГУ,2000

20. . «Turbo Pascal 7.0», М., Финансы и статистика, 1998

21., «Начало программирования на языке Паскаль»,

М., Наука,1987

Лабораторная работа №12.

РЕКУРСИЯ

Цель занятия: Приобретение навыков работы по разработке программ на

основе рекурсивных алгоритмов.

Материалы и оборудование: ПК, среда Turbo Pascal.

Содержание и порядок выполнения работы:

1. Повторить теоретический материал по данной теме.

2. Внимательно прочитать условие задачи.

3. Составить алгоритм решения задачи.

4. Реализовать алгоритм на языке Turbo Pascal.

Задания для самостоятельного выполнения

Решить следующие задачи, используя рекурсивную подпрограмму.

1. Найти сумму цифр заданного натурального числа.

2. Подсчитать количество цифр в заданном натуральном числе.

3. Описать функцию С (m, n), где 0 m n, для вычисления биномиального

коэффициента Сn

m по следующей формуле:

С0

n=Cn

n =1; Cn

m = Cn-1

m + Cn-1

m-1 при 0<m<n.

4. Описать рекурсивную функцию Root (a, b,c), которая методом деления

отрезка пополам находит с точностью с корень уравнения f(x)=0 [a, b] (

c>0, a<b, f (a)* f (b)<0 и f (x) – непрерывная и монотонная на отрезке [a, b]

функция).

177

5. Описать функцию min (x) для определения минимального элемента

линейного массива Х, введя вспомогательную рекурсивную функцию min1

(к), находящую минимум среди последних элементов массива Х, начиная с k-

го.

6. Описать рекурсивную логическую функцию Simm (S, I,J), проверяющую,

является ли симметричной часть строки S, начинающаяся i-м и

заканчивающаяся j-м ее элементами.

7. Составить программу для вычисления наибольшего общего делителя двух

натуральных чисел.

8. Составить программу для нахождения чисел, которое образуется из

данного натурального числа при записи его цифр в обратном порядке.

Например, для числа 1234 получаем результат 4321.

9. Составить программу для перевода данного натурального числа в р-ичную

систему счисления (2 p 9 ).

10. Дана символьная строка, представляющая собой запись натурального

числа в р-ичную системе счисления (2 p 9 ). Составить программу для

перевода этого числа в десятичную систему счисления.

11. Составить программу для вычисления суммы: 1!+2!+3!+ …+n! (n 15).

Примечание. Тип результата значения функции – LongInt.

13*. Дано n различных натуральных чисел. Напечатать все перестановки этих

чисел.

14. Логическая функция возвращает True, если ее аргумент – простое число.

15. Описать функцию, которая удаляет из строки все лишние пробелы.

Пробелы считаются лишними, если их подряд идет более двух, если они

стоят в конце строки после последней точки, если стоят после

открывающегося парного знака препинания.

Форма отчета о выполнении лабораторной работы.

Отчет должен содержать:

1. Алгоритм решения задачи;

2. Программу реализации алгоритма;

3. Результат выполнения программы.

Блиц-тест.

1. Рекурсия - это…

A. способ организации вычислительного процесса факториала;

B. способ организации вычислительного процесса, при котором

осуществляется многократный переход от конца к началу;

C. способ организации вычислительного процесса, при котором подпрограмма

в ходе выполнения составляющих ее операторов обращается сама к себе;

D. способ организации вычислительного процесса, при котором

осуществляется многократный переход от начала к концу;

E. способ организации вычислительного процесса, при котором некоторая

последовательность действий выполняется N раз;

2. Стандартная деректива INTERRUPT используется

178

A. При опережающем описании для сообщения компилятору, что описание

подпрограммы следует где-то дальше по тексту программы

B. При создании процедур обработки прерываний

C. Для объявления внешней подпрограммы

D. Для отмены стандартной последовательности машинных инструкций

E. Для указания на то, что тело подпрограммы реализуется с помощью

встроенных машинных инструкций

3. Обязательное требование к рекурсивным процедурам:

A. Вызов рекурсивной процедуры должен выполняться по условию, которое на

каком то уровне рекурсии станет ложным.

B. Вызов рекурсивной процедуры должен выполняться по условию, которое на

каком то уровне рекурсии станет истинным.

C. Вызов рекурсивной процедуры должен выполняться вне зависимости от

каких-либо условий.

D. Вызов рекурсивной процедуры должен выполняться по условию, которое

всегда будет истинным.

E. Вызов рекурсивной процедуры должен выполняться по условию, которое

всегда будет ложным.

Контрольные вопросы.

1. Как называются процедуры или функции, которые вызывают сами себя?

2. Для каких целей создаются рекурсивные алгоритмы?

3. Всегда ли в рекурсивном алгоритме должно присутствовать условие выхода

из рекурсии?

4. Что произойдет, если рекурсивный алгоритм будет вызывать сам себя

«бесконечное» число раз?

Глоссарий.

Рекурсивным называется объект, который частично определяется через самого

себя.

Максимальное число рекурсивных вызовов процедуры без возвратов, которое

происходит во время выполнения программы, называется глубиной рекурсии.

Число рекурсивных вызовов в каждый конкретный момент времени,

называется текущим уровнем рекурсии.

Литература.

1. «Программирование в среде Turbo Pascal 7.0» Учебное

пособие, Киев, «Век+»,1998

2. «Программирование на языке Турбо-Паскаль», Учебное

пособие, Алматы, АГУ,2000

3. TURBO PASCAL, СПб, Питер, 2000

179

Лабораторная работа №13.

МОДУЛИ.

Цель: овладение навыками решения задач с использованием модулей.

Материалы и оборудование: ПК, среда Turbo Pascal, методические указания к

лабораторным работам.

Содержание и порядок выполнения работы:

1. Повторить теоретический материал по данной теме.

Модуль – это набор ресурсов (функций, процедур, констант, переменных,

типов и т. д.), разрабатываемых и хранимых независимо от использующих их

программ. В отличии от внешних подпрограмм модуль может содержать

большой набор процедур и функций, а также других ресурсов для разработки

программ. Обычно каждый модуль содержит связанные между собой

программные ресурсы.

Модуль имеет следующую структуру:

Unit <имя модуля>; {заголовок модуля}

Interface

{интерфейсная часть}

Implementation

{раздел реализации}

Begin

{раздел инициализации модуля}

End.

После служебного слова Unit записывается имя модуля, которое (для удобства

дальнейших действий) совпадать с именем файла, содержащего данный

модуль.

В разделе Interface объявляются все ресурсы, которые будут в дальнейшем

доступны программисту при подключении модуля. Для подпрограмм здесь

указывается лишь полный заголовок.

В разделе Implementation реализуются все подпрограммы, которые были ранее

объявлены. Кроме того, здесь могут содержаться константы, переменные, типы,

подпрограммы и т. д., которые носят вспомогательный характер и используются

для написания основных подпрограмм. В отличии от ресурсов, объявленных в

разделе Interface, все, что дополнительно объявляется в Implementation, уже

не будет доступно при подключении модуля. При написании основных

подпрограмм указать их имя (т. е. не нужно полностью переписывать весь

заголовок), а затем записать тело подпрограммы.

Наконец, раздел инициализации (который часто отсутствует) содержит

операторы, которые должны будут выполнены сразу не после запуска

программы, использующий модуль.

2. Разобрать пример:

Реализовать в виде модуля набор подпрограмм для выполнения следующих

операций над обыкновенными дробями вида P/Q ( P - целое, Q – натуральное):

1) сложение; 2) вычитание; 3)умножение; 4) деление; 5)сокращение дроби; 6)

180

возведение дроби в степень N (N – натуральное ); 7)функции, реализующие

операции отношения ( =, <>, >=, <=, <, > )

Дробь представить следующим типом:

Type frac= record

P: Integer;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20