Другие языки программирования и технологии

Помогите с прогой на паскале!

Дан массив 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[i] < 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[i], ' ');
Усман Базиев
Усман Базиев
82 855
Лучший ответ
Ярослав Лисицкий Первый код это утроение массива с четными номерами?
Ярослав Лисицкий это и есть утроить ?
 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[i] = A[j]) then
A[i] := A[i] + A[j];
// Вывести результат
for i := 1 to N do
writeln(A[i]);
// Вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность
for i := 1 to N do
for j := 1 to N do
if A[i] < A[j] then
begin
k := A[i];
A[i] := A[j];
A[j] := k;
end;
// Вывести результат
for i := 1 to N do
writeln(A[i]);
// Удалить из преобразованного в пункте 1 массива все значения элементов кратные 4
for i := 1 to N do
if A[i] mod 4 = 0 then
A[i] := 0;
// Вывести результат
for i := 1 to N do
writeln(A[i]);
end.
DT
Dжokеr Tuz
14 726
Ярослав Лисицкий а почему выводит 0 0 0 0 0 и т.д
Для решения данной задачи на Паскале необходимо написать следующий код:

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

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

// вывод результата
for i := 1 to N do
writeln(A[i]);
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[i] := random(100);

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

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

// вывод номеров элементов в возрастающем порядке
for i := 1 to N do
writeln(B[i]);
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] := i * 2;

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

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

// вывод результата
for i := 1 to j - 1 do
writeln(A[i]);
end.
Усман Базиев step в Pascal??? Насмешил, однако. Если где step и есть, то не в Pascal, а во всяческих извращениях (вроде PascalABC.NET), напоминающих Pascal только внешне.
Запишись на курсы по программированию Skillbox
IS
Incredible S
451
Ярослав Лисицкий Хахахах СПС