Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Q: 1 . . High (LongInt )
End;
Используя этот модуль решить следующие задачи:
1. Дан массив А обыкновенных дробей. Найти сумму всех дробей, ответ
представить в виде несократимой дроби. Вычислить среднее
арифметическое всех дробей, ответ представить в виде несократимой дроби.
2. Дан массив А обыкновенных дробей. Отсортировать его в порядке
возрастания.
Модуль будет выглядеть следующим образом:
Unit Droby;
Interface
Type
Natur = 1 . . High (LongInt);
Frac = Record
P : LongInt; { числитель дроби}
Q : Natur {знаменатель дроби}
End;
Procedure Sokr (Var A : Frac);
Procedure Summa ( A, B : Frac ; Var C : Frac);
Procedure Raznost ( A, B : Frac ; Var C : Frac);
Procedure Proizvedenie ( A, B : Frac ; Var C : Frac);
Procedure Chastnoe ( A, B : Frac ; Var C : Frac);
Procedure Stepen ( A : Frac ; N : Natur; Var C : Frac);
Function Menshe ( A, B : Frac ): Boolean;
Function Bolshe ( A, B : Frac ): Boolean;
Function Ravno ( A, B : Frac ): Boolean;
Function MensheRavno ( A, B : Frac ): Boolean;
Function BolsheRavno ( A, B : Frac ): Boolean;
Function NeRavno ( A, B : Frac ): Boolean;
{Раздел реализации модуля}
Implementation
{наиб. общ. делитель двух чисел – вспомогательная функция,
ранее не объявлена}
Function NodEvklid ( A, B : Natur ): Natur;
Begin
While A < > B Do
If A > B Then
181
If A Mod B < > 0 Then A:= A Mod B
Else A:= B
Else
If B Mod A <> 0 Then B:= B Mod A
Else B:= B;
NodEvklid := A
End;
Procedure Sokr; {сокр. дроби}
Var M, N : Natur;
Begin
If A. P <>0 Then
Begin
A. P<0 Then M:= Abs(A. P)
Else M:= A. P ; {совмещение типов, т.к. A. P –
LongInt}
N := NodEvklid (M, A. Q);
A. P:= A. P Div N;
A. Q:= A. Q Div N
End
End;
Procedure Summa;
Begin
{знаменатель дроби}
C. Q:= (A. Q * B. Q) Div NodEvklid(A. Q, B. Q );
{числитель дроби}
C. P:= A. P * C. Q Div A. Q + B. P * C. Q Div B. Q;
Sokr ( C )
End;
Procedure Raznost;
Begin
{знаменатель дроби}
C. Q:= (A. Q * B. Q) Div NodEvklid(A. Q, B. Q );
{числитель дроби}
C. P:= A. P * C. Q Div A. Q - B. P * C. Q Div B. Q;
Sokr ( C )
End;
Procedure Proizvedenie;
Begin
{знаменатель дроби} C. Q:= A. Q * B. Q;
{числитель дроби} C. P:= A. P * B. P;
182
Sokr ( C )
End;
Procedure Chastnoe;
Begin
{знаменатель дроби} C. Q:= A. Q * B. P;
{числитель дроби} C. P:= A. P * B. Q ;
Sokr ( C )
End;
Procedure Stepen;
Var I: Natur;
Begin
C. Q:= 1; C. P:= 1; Sokr (A);
For I:=1 to N Do Proizvedenie (A, B, C)
End;
Function Menshe;
Begin Menshe:= A. P * B. Q <A. Q * B. P End;
Function Bolshe;
Begin Bolshe:= A. P * B. Q > A. Q * B. P End;
Function Ravno;
Begin Ravno:= A. P * B. Q = A. Q * B. P End;
Function BolsheRavno;
Begin BolsheRavno:= Bolse (A, B) or Ravno (A, B) End;
Function MensheRavno;
Begin MensheRavno:= Menshe (A, B) or Ravno (A, B) End;
Function NeRavno;
Begin NeRavno:= Not Ravno (A, B) End;
{раздел инициализации модуля}
Begin
End.
Рекомендации по разработке модулей:
1. Сначала надо спроектировать модуль, т. е. выделить основные и
вспомогательные подпрограммы;
2. Каждую подпрограмму целесообразно отладить отдельно, после чего
вставить в текст модуля.
183
Сохраним текст разобранной программы в файле droby. pas и откомпилируем
наш модуль. Для этого можно воспользоваться внешним компилятором,
поставляемым вместе с ТР. Компиляция будет выглядеть так : tpc droby. pas
или Run make или Build
Решим задачу суммирования дробей:
Program sum;
Uses Droby;
Var
A: Array [] of frac;
I, N : Integer;
S : Frac;
Begin
Write(‘Введите количество элементов: ‘);
Readln(N);
S. P:=0; S. Q:=1; {первоначальная сумма дробей = 0}
For I:=1 to N do {вводим и суммируем дроби}
Begin
Write(‘Введите числитель ‘, I,’ –й дроби:’);
Readln(A[I].P);
Write(‘Введите знаменатель ‘, I,’ –й дроби:’);
Readln(A[I].Q);
End;
Write(‘Ответ: ‘, S. PI,’ / ’,S. Q);
End.
3. Внимательно прочитать условие задачи согласно варианта.
4. Составить алгоритм решения задачи.
5. Реализовать алгоритм на языке Turbo Pascal.
ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ
1. Реализовать в виде модуля набор подпрограмм для выполнения следующих
операций над комплексными числами: 1) сложение; 2) вычитание; 3)
умножение; 4) деление; 5) вычисление модуля комплексного числа; 6)
возведение компл. Числа в степень n (n - натуральное).
Комплексное число представить в следующим типом:
Type Complex=Record
R, M : Real; {действительная и мнимая части числа}
End;
Используя этот модуль решить следующие задачи:
А) Дан массив А комплексных чисел. Получить массив С, элементами
которого будут модули сумм рядом стоящих комплексных чисел.
В) Дан массив A[M] комплексных чисел. Получить матрицу B[N, M] ,
каждая строка которой получается возведением в степень, равную, номеру
этой строки, соответствующих элементов массива А.
184
2. Реализовать в виде модуля набор подпрограмм для выполнения следующих
операций с квадратными матрицами: 1) сложение 2х матриц; 2) умножение
одной матрицы на другую; 3) нахождение транспонированной матрицы;
Матрицу описать следующим образом:
Const Nmax=10;
Type Matrica = Array [1.. Nmax,1.. Nmax] of real;
Используя этот модуль решить следующие задачи:
А) решить систему линейных уравнений N-го порядка (2<=N<=10) методом
Крамера.
В) задан массив величин типа Matrica. Отсортировать этот массив в порядке
возрастания значений определителей матриц.
3. Реализовать в виде модуля набор подпрограмм для выполнения
следующих операций над векторами на плоскости 1) сложение; 2)
вычитание; 3) скалярное умножение; 4) умножение вектора на число; 5)
определение длины вектора
Вектор представить в следующим типом:
Type Vector = Record X, Y : Real End;
Используя этот модуль решить следующие задачи:
А) Дан массив А векторов. Отсортировать его в порядке убывания длин
векторов.
В) С помощью датчика случайных чисел сгенерировать 2N целых чисел.
Эти N пар чисел задают N точек координатной плоскости. Вывести числа,
которые являются координатами вершин треугольника с наибольшим углом.
4. Реализовать в виде модуля набор подпрограмм для выполнения
следующих действий над одномерным числовым массивом: 1) нахождение
максимального элемента массива; 2) нахождение минимального элемента
массива; 3) упорядочения элементов массива по возрастанию; 4)
упорядочения элементов массива по убыванию;
Используя этот модуль решить следующие задачи:
А) для двух массивов A(N) и B(M) разной размерности определить
разность между их максимальными элементами;
В) используя данные массивы A(N) и B(M) создать массив С(N+M),
состоящий из элементов этих массивов и упорядоченный по убыванию.
5. Реализовать в виде модуля набор подпрограмм для выполнения
следующих действий над одномерным числовым массивом: 1) нахождение
суммы положительных элементов массива; 2) нахождение произведения
отрицательных элементов массива; 3) нахождение среднего
арифметического элементов массива; 4) нахождение среднего
геометрического элементов массива;
Используя этот модуль решить следующие задачи:
А) вычислить сумму положительных элементов массива A(N) и
отрицательных элементов массива B(M);
185
B) вычислить разность между средним арифметическим элементов массива
A(N) и средним геометрическим элементов массива B(M).
6. Реализовать в виде модуля набор подпрограмм для выполнения следующих
действий над матрицами: 1) объединение двух матриц с одинаковым числом
столбцов в одну матрицу : матрица B(L, M) присоединяется снизу к матрице
A(N, M), в результате получается матрица R(L+N, M); 2) объединение двух
матриц с одинаковым числом строк в одну матрицу: матрица B(N, L)
присоединяется справа к матрице A(N, M), в результате получается матрица
R(N, M+L); 3) сортировка элементов строк матрицы по возрастанию; 4)
сортировка элементов столбцов матрицы по убыванию; 5) вывод элементов
матрицы в общепринятом виде;
Используя этот модуль решить следующие задачи:
A) объединить две матрицы с одинаковым числом столбцов в одну матрицу и
в полученной матрице упорядочить элементы строк по возрастанию;
B) объединить две матрицы с одинаковым числом строк в одну матрицу и в
полученной матрице упорядочить элементы столбцов по убыванию;
7. Реализовать в виде модуля набор подпрограмм для выполнения следующих
действий над матрицами: 1) нахождение наибольшего элемента матрицы; 2)
нахождение наименьшего элемента матрицы; 3) сложение двух матриц
A(N, M) и B(N, M) ; 4) нахождение суммы элементов каждой строки данной
матрицы; 5) вывод матрицы в общепринятом виде.
Используя этот модуль решить следующую задачу:
Сложить две матрицы A(N, M) и B(N, M). Полученную матрицу напечатать в
общепринятом виде, найти в ней наибольший и наименьший элементы, а
также вычислить суммы элементов каждой строки;
8. Реализовать в виде модуля набор подпрограмм для выполнения следующих
операций над строками:
1) подсчет длины строки; 2) “переворот строки”; 3) конкатенация слов
строки, начинающихся с буквы “c”; 4) удаление из строки слов,
заканчивающихся буквой ( литерой)“k”.
Используя этот модуль решить следующие задачи:
А) Дан непустой текстовый файл f, разбитый на строки. Вывести на печать
самую длинную строку этого файла с указанием ее порядкового номера в
файле.
В) Дан текстовый файл g, разбитый на непустые строки. Создать и вывести на
печать текстовый файл g1, получаемый из g путем “ переворота” нечетных
строк и удаления из четных строк всех слов, начинающихся с буквы “k”.
9. реализовать в виде модуля набор подпрограмм для выполнения следующих
операций над строками:
1) подсчет слов, начинающихся с буквы “а”; 2) подсчет количества слов в
строке; 3) проверка “ вхождения ” какого-либо слова в строку; 4)
186
перепись слов строки в обратном порядке ( Мама мыла раму -- раму
мыла Мама);
используя этот модуль решить следующие задачи :
А) Переписать в текстовый файл f1 строки из непустого текстового файла
f состоящие из не менее, чем 7 слов или в которых имеется по крайней
мере 2 слова, начинающихся с буквы “а”.
В) переписать в текстовый файл g1 строки из текстового файла g в
неизменном виде, если они не содержат слово “тур”. В противном случае
их необходимо переписать в обратном порядке слов.
10. Реализовать в виде модуля набор подпрограмм для выполнения
следующих операций над натуральными числами в системах счисления с
основанием p (2<=p<=9): 1) сложение; 2) вычитание; 3) умножение; 4)
деление; 5) перевод из десятичной системы счисления в систему счисления
с основанием p; 6) перевод из системы счисления c основанием p в
десятичную систему ; 7) логическая функция поверки правильности записи
числа в системе счисления с основанием p; 8) функции, реализующие
операции отношения (=, <>, >=, <=, >, <)
Число в системе счисления с основанием p представить следующим типом:
Type Chislo = Array [1 .. 64] of 0..8;
Используя этот модуль решить следующие задачи:
А) Возведение числа в степень (основание и показатель степени записать в
системе счисления с основанием p). Ответ выдать в десятичной системе
счисления и системе счисления с основанием p.
В) Дан массив A чисел, записанных в системе счисления с основанием p.
Упорядочить его по убыванию. Ответ выдать в десятичной системе
счисления и системе счисления с основанием p.
11. Реализовать в виде модуля набор подпрограмм для выполнения
следующих операций над натуральными числами в шестнадцатеричной
системе счисления : 1) сложение; 2) вычитание; 3) умножение; 4) деление;
5) перевод из двоичной системы счисления в 16-чную ; 6) перевод из 16-ти
ой системы счисления в десятичную; 7) функция поверки правильности
записи числа в 16- ой системе счисления; ; 8) функции, реализующие
операции отношения (=, <>, >=, <=, >, <)
Используя этот модуль, решить следующие задачи :
А) Возведение числа в степень (основание и показатель степени записать в
16 –ой системе счисления). Ответ выдать в 16- ой и десятичной системах
счисления.
В) Дан массив A чисел, записанных в 16 ой системе счисления.
Упорядочить его по убыванию. Ответ выдать в 16-ой и десятичной системах
счисления.
12. Определим граф как набор точек, некоторые из которых соединены
отрезками, подграф-ком граф, представляющей собой подмножество
187
некоторого графа. Реализовать в виде модуля набор подпрограмм,
определяющих 1) число точек в графе; 2) число отрезков в графе;
3) число изолированных подграфов в графе (подграфов несоединенных
отрезками); 4) диаметр графа – длину максимальной незамкнутой линии в
графе ( длина каждого звена – единица); 5) граф-объединение двух графов;
6) подграф – пересечение двух графов; 7) подграф-дополнение данного
графа до полного (графа с тем же количеством вершин, что и в заданном, и с
отрезками между некоторыми двумя вершинами); 8) число отрезков,
выходящих из каждой вершины графа.
При запуске должны инициализироваться переменные:
Full_Graph – полный граф с числом вершин NumberOfVertix,
Null_Graph – граф без отрезков с числом вершин NumberOfVertix
Граф описать следующим образом:
Const NumberOfVertix=50;
Type Graph = Array[1 .. NumberOfVertix, 1 .. NumberOfVertix] of Boolean;
Используя модуль решить следующую задачу: найти все правильные графы
с N вершинами (граф правилен, если из всех вершин выходит равное
количество отрезков).
13. Реализовать в виде модуля набор подпрограмм для выполнения
следующих операций над длинными целыми числами (числами,
выходящими за диапазон допустимых значений некоторого целого типа): 1)
сложение; 2) вычитание; 3) умножение; 4) нахождение частного и остаток
от деления одного числа на другое; 5) функции, реализующие операции
отношения (=, <>, >=, <=, >, <)
“Длинное” число представить следующим типом:
Type Tsifra = 0 .. 9;
Shislo = Array [1] of Tsifra;
Используя _______этот модуль, решить следующие задачи :
А) Возведение числа в степень (основание и показатель степени «длинные»
числа).
В) Дан массив «длинных» чисел. Упорядочить этот массив по убыванию.
14. Реализовать в виде модуля набор подпрограмм для выполнения
следующих операций с многочленами от одной переменной ( первый
многочлен степени m, второй степени n): 1) сложение; 2) вычитание; 3)
умножение; 4) деление с остатком; 5) операции отношения (=, <>); 6)
возведение в нат. степень k одного из многочленов; 7) вычисление
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |


