Файл: Лабораторная работа 7 Программирование с использованием процедур и функций.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 22

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

ЛАБОРАТОРНАЯ РАБОТА №7

Программирование с использованием процедур и функций



Согласно варианту, написать программу на языке программирования Pascal и составить блок-схему алгоритма:

Задачи часть 1 – решить использую функции, из части 2 - используя процедуры.

Часть 1


  1. Заданы два массива А и В. Создайте массив С, в котором каждый элемент равен сумме соответствующих элементов массивов А и В.

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


  3. Заданы два массива, содержится ли минимальный элемент первого массива среди элементов второго массива?

  4. Даны два одномерных массива из целых чисел. Вывести элементы, которые есть в одном массиве, но нет в другом.

  5. Определите НОК четырех чисел.
    Указание: НОК(a, b)=a*b/НОД(a, b).

  6. Найти НОД и НОК всех элементов массива.

  7. Даны две дроби a/b и c/d. Привести их к общему знаменателю.

  8. Найти сумму двух дробей a/b и c/d. Ответ записать обыкновенной дробью.

  9. Определить, сократима ли дробь m/n.

  10. Определить, являются ли перевертышами числа a и b.
    Указание:  два числа называются перевертышами, если они записаны одними и теми же числами, но в обратном порядке.

  11. Даны три массива A, B, C. Найдите значение наибольшего элемента среди элементов трех массивов, определите, который из массивов его содержит.

  12. Описать функции Min2(A,B) и Max2(A,B)2 вещественного типа, находящие минимальное и максимальное из двух вещественных чисел A и B.

  13. Описать функцию PosLast(subS,S) целого типа, возвращающую номер позиции, с которой в строке S содержится последнее вхождение подстроки subS. Если в строке S отсутствуют подстроки subS, то функция возвращает 0.

  14. Описать функцию FillStr(S,Len) строкового типа, возвращающую строку длины Len, заполненную повторяющимися копиями строки-шаблона S (последняя копия строки-шаблона может входить в результирующую строку частично).

  15. Описать функцию IsIdent(S) целого типа, проверяющую, является ли строка S допустимым идентификатором Паскаля. При утвердительном ответе возвращается 0. Если S является пустой строкой, то возвращается -1, если строка начинается с цифры, то возвращается -2. Если S содержит недопустимые символы, то возвращается номер первого недопустимого символа. Проверить с помощью этой функции пять данных строк.

  16. Описать функцию SumLine(A,M,N,k) вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в k-й строке (если [k > M]1|[k > N]2, то функция возвращает 0).

  17. Описать функцию SumCol(A,M,N,k)2 вещественного типа, вычисляющую сумму элементов вещественной матрицы A размера M x N, расположенных в k-й столбце (если [k > M]1|[k > N]2, то функция возвращает 0).

  18. Описать функцию Fact(N) целого типа, вычисляющую значение факториала N! = 1·2·...·N (N > 0 - параметр целого типа). С помощью этой фунции вычислить факториалы 10 данных чисел.

  19. Описать процедуру SumDigit(N,S), находящую сумму цифр S целого числа N (N - входной, S - выходной параметр). Используя эту процедуру, найти суммы цифр пяти данных чисел.

  20. Описать функцию NMin(A,N) и NMax(A,N)2 целого типа, находящую номер минимального и максимального2 элемента массива A (массив состоит из N вещественных чисел).




Часть 2
1. Написать программу для вычисления   хk + хm +хn.

2. Вычислите х1 + х2 +х3+…+xn.

3. Описать процедуру PS(a, P, S), вычисляющую по стороне a равностороннего треугольника его периметр P = 3·a и площадь S = a2·sqrt(3)/4 (a — входной, P и S — выходные параметры; все параметры являются вещественными). С помощью этой процедуры найти периметры и площади трех равносторонних треугольников с данными сторонами.

4. Описать процедуру Sum(K, C, S), находящую количество C цифр целого положительного числа K, а также их сумму S (K — входной, C и S — выходные параметры целого типа). С помощью этой процедуры найти количество и сумму цифр для каждого из пяти данных целых чисел.

5. Описать процедуру Por(K), меняющую порядок следования цифр целого положительного числа K на обратный (K — параметр целого типа, являющийся одновременно входным и выходным). С помощью этой процедуры поменять порядок следования цифр на обратный для каждого из пяти данных целых чисел.


6. Дан массив целых чисел. Найти число (или несколько) с максимальной суммой цифр.

7. Удалить из массива целых чисел числа, сумма цифр которых меньшеt 9.

8 Найти все совершенные числа на промежутке от n до m (совершенное число равно сумме всех своих делителей, кроме него самого).

9. Дан массив из целых чисел. Необходимо удалить из него все совершенные числа.

10 Даны действительные числа a, b, c. Получить:

11. Даны три натуральных числа. Найти их наибольший общий делитель.

12. Дан массив целых чисел. Найти сумму всех простых чисел.

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

  1. Описать процедуру Trim(S), удаляющую в строке S начальные и конечные пробелы.

  2. Описать процедуру Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B - максимальное из этих значений.

  3. Описать процедуру NMinmax(A,N,NMin,NMax), находящую номера минимального и максимального элемента массива A из N вещественных чисел.

  4. Описать процедуру Invert(A,N), меняющую порядок следования элементов массива A из N вещественных чисел на противоположный ("инвертирование массива").

  5. Описать процедуру Smooth(A,N), заменяющую каждый элемент вещественного массива A размера N на его среднее арифметическое со своими соседями ("сглаживание массива"). С помощью этой процедуры выполнить пятикратное сглаживание данного массива A размера N, выводя на экран результаты каждого сглаживания.




КОНТРОЛЬНЫЕ ВОПРОСЫ



  1. Для чего нужны в программе процедуры и функции?


  2. В чем отличие между процедурой и функцией?


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


  4. Чем отличаются параметры-значения и параметры-переменные?


  5. Как объявляются глобальные и локальные переменные? Каково правило видимости этих переменных?

  6. Почему при обращении к процедуре, аргумент, передаваемый параметру-переменной, может быть только переменной, а не константой или выражением?