Дан массив 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], ' ');
Ярослав Лисицкий
Первый код это утроение массива с четными номерами?
Ярослав Лисицкий
это и есть утроить ?

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.
Ярослав Лисицкий
а почему выводит 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.
Утроить вхождения всех элементов с четными номерами:
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
Ярослав Лисицкий
Хахахах СПС
Похожие вопросы
- Помогите написать прогу на паскале
- помогите составить прогу в паскале
- СРОЧНО ПОМОГИТЕ!!! Напишите прогу на паскале
- Помогите написать прогу на Паскале, экзамен горит, очень нужно..
- Помогите написать прогу на паскале!
- Помогите дописать прогу на паскале
- Помогите составить прогу в паскале: А в степени N, чтобы высчитывала ответ при вводе числа и её степени.Заранее спасиб
- люди помогите написать прогу в паскале чтоб она запрашивала число и потом писала простое оно или нет, всю голову сломал
- помогите написать прогу в паскале срочно!!
- помогите написать прогу в паскале:)