Задача 1.4.1.
Условие
Разработать алгоритм и программу с единственным циклом для обработки одномерных массивов.
При заданных элементах и четномn найти разность сумм и.
Листинг
program project1;
uses
SysUtils, things, math;
var
X: array of extended;
a, C, D: extended;
N, i: integer;
s: string;
Calculated: boolean = False;
begin
while not Calculated do
begin
N := abs(round(RequestNumber('Задайте чётное число для N:')));
if Odd(N) then // В качестве альтернативы можно проверять N%2 <> 0
begin
writeln('Ошибка. Вы задали нечётное число.');
Calculated := false;
end
else
begin
for i := 1 to N do
begin
SetLength(X, i);
X[High(X)] := RequestNumber(Format('Задайте X%d:', [i]));
end;
C := 0;
D := 0;
for i := 0 to (N div 2)-1 do //Потому, что индекс в динамическом массиве начинается с 0
begin
C += X[i];
end;
for i := N div 2 to N-1 do
begin
D += X[i];
end;
Calculated := true;
end;
s := Format('Результат: C=%.3f ; D=%.3f', [C, D]);
writeln(s);
readln();
end;
end.
Результаты работы программы
Блок-схема
Переменные
Класс |
Имя |
Тип |
Структура |
Назначение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Задача 1.4.2.
Условие
Разработать алгоритм и программу обработки одномерных массивов, используя единственный цикл.
Вычислить куб суммы и число тех элемент заданного массив X1, X2…Xn значение которых меньше R или находятся в пределах от T до P.
Листинг
program project1;
uses
SysUtils, things, math;
var
X: array of extended;
a, R, T, P, Summ: extended;
N, i, Count: integer;
s: string;
Calculated: boolean = False;
begin
while not Calculated do
begin
N := abs(round(RequestNumber('Задайте N:')));
R := RequestNumber('Задайте число R, меньше которого должно быть вычисляемый элемент массива:');
writeln('Теперь нужно указать числа T и P.');
T := RequestNumber('Задайте T:');
P := RequestNumber('Задайте P:');
for i := 1 to N do
begin
SetLength(X, i);
X[High(X)] := RequestNumber(Format('Задайте X%d:', [i]));
end;
Summ := 0;
Count := 0;
for i:=Low(X) to High(X) do
begin
a := X[i];
if (a < R) or ((a >= T) and (a <= P)) then
begin
Summ += a;
Inc(Count);
end;
end;
Summ *= Summ*Summ;
writeln('Результат:');
s := Format('Кол-во элементов, удовлетворяющих условие: %d', [Count]);
writeln(s);
s := Format('Куб суммы таких элементов: %.3f', [Summ]);
writeln(s);
readln();
end;
end.
Результаты работы программы
Переменные
Класс |
Имя |
Тип |
Структура |
Назначение |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Блок-схема