Задан одномерный массив целых чисел. Преобразовать его элементы по следующему правилу: положительные элементы увеличить в 2 раза, а отрицательные — увеличить на 5.
var
a: array[1..20] of integer;
n: integer;
begin
write('Количество n =');
readln(n);
writeln('Элементы массива');
for var i := 1 to n do
read(a[i]);
for var i := 1 to n do
begin
if a[i] > 0 then
a[i] := a[i] * 2;
if a[i] < 0 then
a[i] := a[i] + 5;
end;
writeln('Преобразованный массив');
for var i := 1 to n do
write(a[i], ' ');
end.
Тестирование.
Количество n = 5
Элементы массива
3 -2 0 -1 5
Преобразованный массив
6 3 0 4 10
Задан одномерный массив целых чисел. Поменять местами максимальный и минимальный элементы массива (минимальный и максимальный элементы встречаются в массиве только один раз)
var
a: array[1..20] of integer;
n, n_min, n_max, buf: integer;
begin
write('Количество n =');readln(n);
writeln('Элементы массива');
for var i := 1 to n do read(a[i]);
n_min := 1;
n_max := 1;
for var i := 1 to n do
begin
if a[i] > a[n_max] then n_max := i;
if a[i] < a[n_min] then n_min := i;
end;
buf := a[n_min];
a[n_min] := a[n_max];
a[n_max] := buf;
writeln('Преобразованный массив');
for var i := 1 to n do write(a[i], ' ');
end.
Тестирование.
Количество n = 5
Элементы массива
2 1 3 5 4
Преобразованный массив
2 5 3 1 4
Задан одномерный массив целых чисел. Удалить из линейного массива все числа, кратные 5. Сколько чисел удалили?
var
a: array[1..20] of integer;
n, d, j: integer;
procedure del_mas(k: integer);
begin
for var i := k + 1 to n do
a[i - 1] := a[i];
n := n - 1;
end;
begin
write('Количество n ='); readln(n);
writeln('Элементы массива');
for var i := 1 to n do read(a[i]);
d := 0;
j := 1;
while j <= n do begin
if a[j] mod 5 = 0 then begin
del_mas(j);
d := d + 1;
j := j - 1;
end;
j := j + 1;
end;
writeln('Удалили ', d, 'элемент(-а, -ов');
writeln('Преобразованный массив');
for var i := 1 to n do write(a[i], ' ');
end.
Тестирование.
Количество n = 7
Элементы массива
5 3 15 35 10 4 30
Удалили 5 элемент(-а,-ов)
Преобразованный массив
3 4
Задан массив целых чисел. Вставить число x на k-е место.
var
a: array[1..20] of integer;
n, k, x: integer;
begin
write('Количество n =');
readln(n);
writeln('Элементы массива');
for var i := 1 to n do read(a[i]);
write('Число x =');readln(x);
write('Номер позиции k =');readln(k);
//сдвиг элементов вправо на 1
for var i := n downto k do
a[i + 1] := a[i];
//вставка x на место k
a[k] := x;
n := n + 1;
writeln('Преобразованный массив');
for var i := 1 to n do
write(a[i], ' ');
end
Тестирование.
Количество n = 5
Элементы массива
3 2 5 -3 7
Число x = 6
Номер позиции k = 2
Преобразованный массив
3 6 2 5 -3 7
Для задачи из примера 7.1 выполните перечисленные задания. Ответы записывайте в комментариях к программе.
Заполните таблицу.
Добавьте в таблицу свои значения n и a.
Можно ли заменить команды из п. 3.1. командами из п. 3.2?
if a[i] > 0 then a[i] := a[i] * 2;
if a[i] < 0 then a[i] := a[i] + 5;
if a[i] < 0 then a[i] := a[i] + 5;
if a[i] > 0 then a[i] := a[i] * 2;
В каких случаях программа будет давать неверный результат?
Задан одномерный массив. Преобразуйте его элементы по следующему правилу: из всех положительных элементов вычесть элемент с номером k, ко всем отрицательным добавить введенное число x. Нулевые элементы оставьте без изменения.
Задан одномерный массив из четного количества элементов. Поменяйте местами его «половинки».
В массиве записаны фамилии и имена учащихся класса. Из класса выбыли два учащихся. Известны их номера. Исключите данные этих учащихся из массива.
Для задачи из примера 7.4 выполните перечисленные задания. Ответы записывайте в комментариях к программе.
Заполните таблицу:
Добавьте в таблицу свои значения n, a, x, k.
Какой результат выдаст программа, если ввести n = 5, а k = 120? Вставьте в программу проверку для числа k (1 < k <= n + 1).
Какой результат получим, если заменить цикл из п. 4.1 циклом из п. 4.2?
for var i := n downto k do a[i + 1] := a[i];
for var i := k to n d a[i + 1] := a[i];
Переставьте первый элемент массива на последнее место, второй — на первое, третий — на второе и т. д.