Дан вещественный вектор. Все его элементы, большие 0, умножить на 10, остальные оставить без изменения - Pascal
Формулировка задачи:
Дан вещественный вектор. Все его элементы, больше 0 - умножить на 10, остальные оставить без изменения и упорядочить полученный вектор по возрастанию.
........................................................................................................................ .....................................
Прошу помощи, все попытки написать программу тщетны, либо не работает, либо работает не так как надо(
Не страдающий гордостью программист может оставить номер Киви, отблагодарю!
Решение задачи: «Дан вещественный вектор. Все его элементы, большие 0, умножить на 10, остальные оставить без изменения»
textual
Листинг программы
const m = 10;
var a: array[1..m] of real;
t: real;
i, j: integer;
begin
randomize;
writeln('Вектор:');
for i := 1 to m do
begin
a[i] := 198 * random - 99;
write(a[i]:7:2)
end;
writeln;
writeln('Элементы вектора, большие 0, умножены на 10:');
for i := 1 to m do
begin
if a[i] > 0 then a[i] := a[i] * 10;
write(a[i]:7:2)
end;
writeln;
for i := 1 to m - 1 do
for j := i + 1 to m do
if a[i] > a[j]
then begin
t := a[i];
a[i] := a[j];
a[j] := t
end;
writeln('Вектор, отсортированный по неубыванию:');
for i := 1 to m do write(a[i]:7:2);
readln
end.
Объяснение кода листинга программы
- Объявляется константа
mсо значением10- предполагаю, что это размерность вектора. - Объявляются переменные
a- вектор вещественных чисел,t- временная переменная для обмена значений, иi, j- целочисленные переменные для циклов. - Генерируются случайные числа и записываются в вектор
a. - Выводится сгенерированный вектор.
- Проверяются элементы вектора на то, больше ли они нуля, и если да, то они умножаются на 10.
- Выводится измененный вектор.
- Сортируется вектор по неубыванию.
- Выводится отсортированный вектор.
- Программа завершается ожиданием ввода пользователя.