Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет.docx
Скачиваний:
99
Добавлен:
13.03.2016
Размер:
852.36 Кб
Скачать

Задача 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.

Результаты работы программы

Переменные

Класс

Имя

Тип

Структура

Назначение

Блок-схема