Текст программы на языке Паскаль
Program Example_17;
Var n, i, Sg : integer;
A : array [1..30] of word;
Function SumDigit(K: word): integer;
Var D, S : integer;
Begin
S := 0;
While K > 0 do begin
D := K mod 10;
S := S + D;
K := K div 10 end;
SumDigit := S
End;
Begin
writeln;
write(‘Введите количество элементов массива N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых положительных чисел : ‘);
For i := 1 to n do
read(A[i]);
writeln(‘Результат:‘);
For i := 1 to n do begin
Sg := SumDigit(A[i]);
writeln(‘Сумма цифр числа ‘, A[i], ‘ равна ’, Sg ) end;
readln
end.
Рисунок 8.1 – Блок-схемы алгоритма основной программы и функции для примера 8.1
Данные для тестирования
1) Для n = 3, A = {123, 4135, 47356}
ð Результат:
Сумма цифр числа 123 равна 1+2+3= 6
Сумма цифр числа 4135 равна 4+1+3+5= 13
Сумма цифр числа 47356 равна 4+7+3+5+6= 25
2) Для n = 4, A = {5753, 14, 5, 73}
ð Результат:
Сумма цифр числа 5753 равна 5+7+5+3= 20
Сумма цифр числа 14 равна 1+4= 5
Сумма цифр числа 5 равна 5
Сумма цифр числа 73 равна 7+3= 10
Пример 8.2. Описать процедуру Massiv(Х, K, X_cр, Т), находящую среднее арифметическое элементов массива {Х}, состоящего из K целых чисел, и возвращающую Т=True, если элементы массива упорядочены по неубыванию, и T=False в противном случае. Используя эту процедуру, вычислить среднее арифметическое и проверить упорядоченность элементов по неубыванию для двух целочисленных массивов {A} размером N и {B} размером М.
Решение задачи
Выберем схему решения поставленной задачи.
В процедуре Massiv(Х, K, X_cр, Т) введём переменную S для накопления суммы элементов массива (начальное значение S=0). Вычисление суммы осуществляется с помощью оператора цикла с параметром (for) – на каждом шаге к переменной S добавляется очередной элемент массива. Среднее арифметическое элементов массива будет вычисляться: S / K.
|
|
Для определения упорядоченности элементов массива по неубыванию в процедуре введём переменную Т с начальным значением Т=True (предположим, массив упорядочен по неубыванию, т.е. x1≤x2≤x3≤ .. ≤xk). С помощью оператора цикла с параметром (for) для каждой пары элементов будем проверять нарушение условия упорядоченности, т.е. xi > xi+1. При выполнении такого условия переменной Т присваивается значение False.
В основной программе после того как будут введены все элементы массивов {А} и {В}, с помощью обращения к процедуре Massiv, вначале для массива {А}, а затем для массива {В} вычисляем нужные значения.
Поскольку массивы будут передаваться в процедуру в качестве параметров, то необходимо при описании массивов использовать описанный тип пользователя.
Блок-схемы алгоритмов основной программы и процедуры Massiv(Х,K,X_cр,Т) – представлены на рисунке 8.2
Рисунок 8.2 – Блок-схемы алгоритма основной программы и функции для примера 8.2
Текст программы на языке Паскаль
Program Example_18;
|
|
type mas = array [1..30] of integer
Var n, m, i : integer; A_cp, B_cp : real; T_a, T_b : boolean;
A, B : mas;
procedure Massiv(X: mas; K: integer; var X_cp: real; var T: boolean);
Var j, S : integer;
Begin
S := 0;
For j := 1 to K do
S := S + D;
X_cp := S / K;
T := True;
For j := 1 to K-1 do
If X[j] > X[j+1] then T := False;
End;
Begin
writeln;
write(‘Введите количество элементов массива A N = ‘);
read(n);
write(‘Введите ‘, n, ‘целых чисел – элементы массива А : ‘);
For i := 1 to n do
read(A[i]);
write(‘Введите количество элементов массива В M = ‘);
read(m);
write(‘Введите ‘, m, ‘целых чисел – элементы массива B : ‘);
For i := 1 to n do
read(B[i]);
writeln(‘Результат:‘);
Massiv(A, N, A_cp, T_a);
writeln(‘Среднее арифметическое элементов массива A равно ’, А_ср:5:2);
if T_a then writeln(‘Массив A упорядочен по неубыванию’)
else writeln(‘Массив A не упорядочен по неубыванию’);
Massiv(B, M, B_cp, T_b);
writeln(‘Среднее арифметическое элементов массива В равно ’, В_ср:5:2);
if T_b then writeln(‘Массив B упорядочен по неубыванию’)
else writeln(‘Массив B не упорядочен по неубыванию’);
readln
end.
Данные для тестирования
1) Для n = 8, A = {1, 2, 3, 4, 5, 6, 7, 8}
Для m = 5, B = {7, 2, 1, 4, 5}
ð Результат:
Среднее арифметическое элементов массива A равно 4.50
Массив A упорядочен по неубыванию
Среднее арифметическое элементов массива B равно 3.80
Массив B не упорядочен по неубыванию
Пример 8.3. Для заданных действительного А и целого М вычислить значение выражения
|
|
Возведение некоторого числа X в степень N организовать с помощью функции Stepen(Х, N).
Решение задачи
Выберем схему решения поставленной задачи.
Чтобы получить XN, нужно вычислить произведение .
В функции Stepen(Х, N) введём переменную P для накопления произведения N сомножителей (начальное значение Р=1). Вычисление произведения осуществляется с помощью оператора цикла с параметром (for) – на каждом шаге переменная Р домножается на Х. Если N – отрицательное, то зададим Х = 1 / Х.
Последний выполнимый оператор в функции Stepen – присвоение результата имени функции, т.е. Stepen := Р.
В основной программе после того как будут введены значения А и M, с помощью обращения к функции Stepen с соответствующими аргументами, вычисляем значение выражения для Z.
Блок-схемы алгоритмов основной программы и функции Stepen(Х, N)
Дата добавления: 2018-04-04; просмотров: 390; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!