Задачи по теме «Модули»

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

1) сложения;

2) вычитания;

3) умножения;

4) деления;

5) модуля комплексного числа;

6) возведения комплексного числа в степень п (п — натуральное).

Комплексное число представить следующим типом:

Type Complex=Record

R: Real;

M: Real

End;

Используя этот модуль, решить следующие задачи.

1. Дан массив А — массив комплексных чисел. Получить массив С, элементами которого будут модули сумм рядом стоящих комплексных чисел.

2. Дан массив А[М] — массив комплексных чисел. Получить матрицу B[N, M], каждая строка которой получается возведением в степень, равную номеру этой строки, данного массива А.

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

(Р — целое, Q — натуральное):

1) сложения;

2) вычитания;

3) умножения;

4) деления;

5) сокращения дроби;

6) возведения дроби в степень п (п — натуральное);

7) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

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

Type Frac=Record

Р: Integer;

Q: 1..32767

End;

Используя этот модуль, решить задачи 1, 2.

1. Дан массив А — массив обыкновенных дробей. Найти сумму всех дробей, результат представить в виде несократимой дроби. Вычислить среднее арифметическое всех дробей, результат представить в виде несократимой дроби.

2. Дан массив А — массив обыкновенных дробей. Отсортировать его в порядке возрастания.

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

1) сложения двух матриц;

2) умножения одной матрицы на другую;

3) нахождения транспонированной матрицы;

4) вычисления определителя матрицы.

Матрицу описать следующим образом:

Const NMax=10;

Type Matrica=Array[l..NMax,!..Nmax] Of Real;

Используя этот модуль, решить следующие задачи.

1. Решить систему линейных уравнений N-го порядка (2 ≤ N ≤ 10) методом Крамера.

2. Задан массив величин типа Matrica. Отсортировать этот массив в порядке возрастания значений определителей матриц.

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

1) сложения;

2) вычитания;

3) скалярнго умножения векторов;

4) умножения вектора на число;

5) нахождения длины вектора.

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

Type Vector=Record

X,Y: Real

End;

Используя этот модуль, решить задачи 1, 2.

1. Дан массив А — массив векторов. Отсортировать его в порядке убывания длин векторов.

2. С помощью датчика случайных чисел сгенерировать 2N целых чисел. N пap этих чисел задают N точек координатной плоскости. Вывести номера тройки точек, которые являются координатами вершин треугольника с наибольшим углом.

V. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в Р-ичной системе счисления (2 ≤ Р ≤ 9):

1) сложения;

2) вычитания;

3) умножения;

4) деления;

5) перевода из десятичной системы счисления в Р-ичную;

6) перевода из Р-ичной системы счисления в десятичную;

7) функции проверки правильности записи числа в Р-ичной системе счисления;

8) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

Р-ичное число представить следующим типом:

Type Chislo=Array[l..16] Of 0..9;

Используя этот модуль, решить задачи 1,2.

1. Возвести число в степень (основание и показатель степени записаны в Р-ичной системе счисления). Результат выдать в Р-ичной и десятичной системах счисления.

2. Дан массив А — массив чисел, записанных в Р-ичной системе счисления. Отсортировать его в порядке убывания. Результат выдать в Р-ичной и десятичной системах счисления.

VI. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления:

1) сложения;

2) вычитания;

3) умножения;

4) деления;

5) перевода из двоичной системы счисления в шестнадцате-ричную;

6) перевода из шестнадцатеричной системы счисления в десятичную;

7) функции проверки правильности записи числа в шестнадцатеричной системе счисления;

8) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше). Используя этот модуль, решить следующие задачи.

1. Возвести число в степень (основание и показатель степени записаны в шестнадцатеричной системе счисления). Результат выдать в шестнадцатеричной и десятичной системах счисления.

2. Дан массив А — массив чисел, записанных в шестнадцатеричной системе счисления. Отсортировать его в порядке убывания. Результат выдать в шестнадцатеричной и десятичной системах счисления.

VII. Определим граф как набор точек, некоторые из которых соединены отрезками, подграф — как граф, являющийся подмножеством данного графа.

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

1) число точек в графе;

2) число отрезков в графе;

3) число изолированных подграфов в графе (подграфов, не соединенных отрезками);

4) диаметр графа — длину максимальной незамкнутой линии в графе (длина каждого звена — 1);

5) граф — объединение двух графов;

6) подграф — пересечение двух графов;

7) подграф — дополнение данного графа до полного (графа с тем же количеством вершин, что и в данном, и с линиями между любыми двумя вершинами);

8) число отрезков, выходящих из каждой вершины графа. При запуске должны инициализироваться переменные: Full_Graph — полный граф с числом вершин NumberOfVertix, Null_Graph — граф без отрезков с числом вершин NumberOfVertix.

Граф представить как объект

Const NumberOfVertix=50;

Type Graph=Array[l..NumberOfVertix,

1..NumberOfVertix] Of Boolean;

Используя модуль, решить следующую задачу. Найти все правильные графы из N вершин (граф правилен, если из всех вершин выходит равное количество отрезков).

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

1) сложения;

2) вычитания;

3) умножения;

4) нахождения частного и остатка от деления одного числа на другое;

5) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).

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

Type Tsifra=0..9;

Chislo=Array[l..1000] Of Tsifra;

Используя этот модуль, решить задачи 1,2.

1. Возвести число в степень (основание и показатель степени — длинные числа).

2. Дан массив длинных чисел. Упорядочить этот массив в порядке убывания.

IX. Реализовать в виде модуля набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени т, второй — степени n):

1) сложения;

2) вычитания;

3) умножения;

4) деления с остатком;

5) операций отношения (равно, не равно);

6) возведения в натуральную степень k;

7) вычисления производной от многочлена;

8) вычисления значения в точке x0.

Многочлен представить следующим типом:

Type Mnogochlen= Array [1..500] Of Integer;

Используя этот модуль, решить задачи 1, 2.

1. Найти наибольший общий делитель многочленов Р(х) и Q(x).

2. Вычислить Рs(х) — Qr(x).

X. Разработать способ представления множеств, содержащих более 255 элементов (до 2000). Создать модуль, позволяющий выполнять следующие операции над элементами таких множеств:

а) объединение;

б) пересечение;

в) разность;

г) функция проверки принадлежности элемента множеству;

д) функция проверки, является ли данное множество подмножеством (надмножеством) другого.

Используя созданный модуль, решить следующие задачи.

1. Дан массив множеств. Упорядочить элементы массива в порядке возрастания количества компонент соответствующих множеств.

2. Разработать программу, которая вводит несколько множеств, выражение, операндами которого являются эти множества, с операциями объединения, пересечения и вычитания, вычисляет значение этого выражения и выводит результат.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: