Заменить все элементы одномерного массива, меньшие заданной величины, на нуль - Pascal
Формулировка задачи:
Pascal. Составить процедуру, заменяющую все элементы, меньшие заданной величины, одномерного массива на нуль и определяющую число таких замен.
Применить данную процедуру для двух заданных одномерных массивов Р и С, заменив в них все отрицательные элементы на нуль, и определить, в каком массиве число замен больше.
Р(-0.01; 2.75; 458.7; 0.007; -0.0008)
C(-33.7; -0.004; -4.9; 0; -0.005)
Процедуры только недавно изучили, скажите что не так в моей программе:
program p4_2_5_25;
type
mas=array [1..5] of real;
var
P,C:mas;
T:real;
i,k,s:integer;
procedure ZAMENA(P:mas;var k:integer);
var
i:integer;
begin
k:=0;
for i:=1 to 5 do
begin
if P[i]<T then
begin
P[i]:=0;
k:=k+1;
end;
end;
end;
procedure VVOD(var P:mas);
var
i:integer;
begin
for i:=1 to 5 do readln(P[i]);
end;
procedure VIVOD(P:mas);
var
i:integer;
begin
for i:=1 to 5 do write(P[i]:6:2);
writeln;
end;
begin
writeln('Введите величину T');
readln(T);
writeln('Введите элементы массива Р');
VVOD(P);
writeln('Введите элементы массива С');
VVOD(C);
writeln('Массив Р');
VIVOD(P);
writeln('Массив С');
VIVOD(C);
ZAMENA(P,k);
ZAMENA(C,s);
writeln('Измененный массив Р');
VIVOD(P);
writeln('Измененный массив С');
VIVOD(C);
writeln('Количество замен в массиве Р = ', k);
writeln('Количество замен в массиве С = ', s);
if k>s then
writeln('В массиве Р больше замен')
else
writeln('В массиве С больше замен');
end.Решение задачи: «Заменить все элементы одномерного массива, меньшие заданной величины, на нуль»
textual
Листинг программы
procedure ZAMENA(var P: mas; T: Real; var k: Integer); var i: Integer; begin k:=0; for i:=1 to 5 do if P[i]<T then begin P[i]:=0; Inc(k); end; end;
Объяснение кода листинга программы
- Создается процедура
ZAMENAс тремя параметрами:- Переменная
Pтипаmas(предположительно одномерный массив) - Переменная
TтипаReal(предположительно величина, с которой сравниваются элементы массива) - Переменная
kтипаInteger(предположительно счетчик)
- Переменная
- Инициализируется переменная
iтипаInteger. - Присваивается значению
kзначение 0. - Запускается цикл от 1 до 5 (предположительно из-за фиксированного размера массива).
- Внутри цикла проверяется условие: если элемент массива
P[i]меньше, чемT, то выполняется следующее:- Элементу
P[i]присваивается значение 0. - Переменная
kувеличивается на 1.
- Элементу
- Процедура завершается.
Таким образом, данная процедура заменяет все элементы массива, которые меньше заданной величины
T, на 0, и подсчитывает количество таких замен, сохраняя результат в переменнойk.