Регистрация
24 Мар 2013
Сообщения
58
Решения
1
Репутация
0
Спасибо
1
Монет
0
Дан массив A размера N:

1 - Утроить в нем вхождения всех элементов с четными номерами (2, 4, …). Условный оператор не использовать; Вывести результат.

2 - Вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность;

3 -Удалить из преобразованного в пункте 1 массива все значения элементов кратные 4.
 
Утроение элементов с чётными номерами: for i := 1 to N div 2 do A[i * 2] := A[i * 2] * 3; Номера элементов - банальная сортировка вставками (она лучше ложится на задачу, чем пузырёк или выбор). Требует дополнительного массива B. B: array [0..N] of integer;
...
B[1] := 1;
for i := 2 to N do begin
j := i;
while (j > 1) and (A < A[B[j - 1]]) do begin
B[j] := B[j - 1];
dec(j)
end;
B[j] := i
end;
for i := 1 to N do write(B, ' ');
 
program array;
var
A: array[1..N] of integer;
i, j, k: integer;
begin
// Утроить в массиве вхождения всех элементов с четными номерами
for i := 1 to N do
for j := 1 to N do
if (i mod 2 = 0) and (A = A[j]) then
A := A + A[j];
// Вывести результат
for i := 1 to N do
writeln(A);
// Вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность
for i := 1 to N do
for j := 1 to N do
if A < A[j] then
begin
k := A;
A := A[j];
A[j] := k;
end;
// Вывести результат
for i := 1 to N do
writeln(A);
// Удалить из преобразованного в пункте 1 массива все значения элементов кратные 4
for i := 1 to N do
if A mod 4 = 0 then
A := 0;
// Вывести результат
for i := 1 to N do
writeln(A);
end.
 
Для решения данной задачи на Паскале необходимо написать следующий код:

Утроить вхождения всех элементов с четными номерами:
program array_operations;
const
N = 10; // размер массива
var
A: array[1..N] of integer;
i: integer;
begin
// инициализация массива
for i := 1 to N do
A := i;

// утроение вхождений всех элементов с четными номерами
for i := 2 to N step 2 do
A := A * 3;

// вывод результата
for i := 1 to N do
writeln(A);
end.
Вывести номера элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность:
program array_operations;
const
N = 10; // размер массива
var
A: array[1..N] of integer;
B: array[1..N] of integer;
i, j, k: integer;
begin
// инициализация массива
for i := 1 to N do
A := random(100);

// сохранение номеров элементов в отдельный массив
for i := 1 to N do
B := i;

// сортировка массивов по значениям A
for i := 1 to N - 1 do
for j := i + 1 to N do
if A &gt; A[j] then
begin
k := A;
A := A[j];
A[j] := k;
k := B;
B := B[j];
B[j] := k;
end;

// вывод номеров элементов в возрастающем порядке
for i := 1 to N do
writeln(B);
end.
Удалить из преобразованного в пункте 1 массива все значения элементов, кратные 4:
program array_operations;
const
N = 10; // размер массива
var
A: array[1..N] of integer;
i, j: integer;
begin
// инициализация массива
for i := 1 to N do
A := i * 2;

// утроение вхождений всех элементов с четными номерами
for i := 2 to N step 2 do
A := A * 3;

// удаление элементов, кратных 4
j := 1;
for i := 1 to N do
if A mod 4 &lt;&gt; 0 then
begin
A[j] := A;
j := j + 1;
end;

// вывод результата
for i := 1 to j - 1 do
writeln(A);
end.
 
Запишись на курсы по программированию Skillbox
 
Назад
Сверху