
ПОМОГИТЕ,ПОЖАЛУЙСТА,СРОЧНО НУЖНО!!! Задачи по Паскалю: 1.Задать одномерный массив из 10 чисел,
которые полученные случайным образом. 1) Поменять местами левую и правую половину. 2) Элементы массива больше 10 заменить на 100. 3) Удалить из массива максимальный элемент, а перед минимальным элементом вставить 0. 2.Задать одномерный массив из 10 чисел, которые полученные случайным образом. 1) Вывести на экран только нечётные элементы. 2) Элементы массива, стоящие на чётных позициях заменить на 0. 3) Удалить из массива последний нечетный элемент, а перед 3 элементом вставить 100.

Ответы на вопрос

const
n=10;
var
a:array[1..n] of integer;
i,k,t,imin,imax:integer;
begin
randomize; { инициализация датчика пчевдослучайных чисел }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(20); { интервал [0;19] }
Write(a[i]:4)
end;
Writeln;
{ 1. меняем местами правую и левую половины }
Writeln('*** 1 ***');
k:=n div 2;
for i:=1 to k do begin
t:=a[i]; a[i]:=a[i+k]; a[i+k]:=t
end;
for i:=1 to n do Write(a[i]:4);
Writeln;
{ 2. Элементы массива, большие 10, заменяем на 100 }
for i:=1 to k do
if a[i]>10 then a[i]:=100;
Writeln('*** 2 ***');
for i:=1 to n do Write(a[i]:4);
Writeln;
{ 3. Удаляем максимальный элемент, вставляем 0 перед минимальным }
{ замороченная задача ! }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(50)+1; { интервал [1;49] }
Write(a[i]:4)
end;
Writeln; Writeln('*** 3 ***');
imin:=1; imax:=1;
for i:=2 to n do
if a[i]>a[imax] then imax:=i
else
if a[i]<a[imin] then imin:=i;
if imin < imax then begin { минимальный встречается раньше максимального }
{ подвигаем вправо на 1 все элементы от imin и до imax }
for i:=imax-1 downto imin do a[i+1]:=a[i];
a[imin]:=0 { вставляем 0 в позицию imin }
end
else begin { минимальный встречается позже максимального }
{ подвигаем влево на 1 элементы от imax до imin -1 }
for i:=imax to imin-1 do a[i]:=a[i+1];
a[imin-1]:=0; { вставляем 0 в позицию перед imin }
end;
for i:=1 to n do Write(a[i]:4);
Writeln
end.
Пример
*** Исходный массив ***
14 1 11 7 14 8 12 8 1 14
*** 1 ***
8 12 8 1 14 14 1 11 7 14
*** 2 ***
8 100 8 1 100 14 1 11 7 14
*** Исходный массив ***
24 36 25 4 42 42 16 39 45 44
*** 3 ***
24 36 25 0 4 42 42 16 39 44
Задание 2
const
n=10;
var
a:array[1..n] of integer;
i:integer;
begin
randomize; { инициализация датчика пчевдослучайных чисел }
Writeln('*** Исходный массив ***');
for i:=1 to n do begin
a[i]:=random(20); { интервал [0;19] }
Write(a[i]:4)
end;
Writeln;
{ 1. выводим нечетные элементы }
Writeln('*** 1 ***');
for i:=1 to n do
if a[i] mod 2 <>0 then Write(a[i]:4);
Writeln;
{ 2. Элементы на четных позициях обнуляем }
i:=2;
while i<=n do begin
a[i]:=0;
i:=i+2
end;
Writeln('*** 2 ***');
for i:=1 to n do Write(a[i]:4);
Writeln
end.
Пример
*** Исходный массив ***
12 0 14 8 13 17 3 1 12 17
*** 1 ***
13 17 3 1 17
*** 2 ***
12 0 14 0 13 0 3 0 12 0
Замечание:
Третью подзадачу решить в такой постановке невозможно.
В самом деле, требуется удалить последний нечетный элемент, а перед третьим элементом вставить ноль. Что делать, если этим последним нечетным окажется третий?



Задача 1: Задать одномерный массив из 10 чисел, полученных случайным образом. Поменять местами левую и правую половину. Элементы массива больше 10 заменить на 100. Удалить из массива максимальный элемент, а перед минимальным элементом вставить 0.
Для решения этой задачи вам потребуется использовать циклы и условные операторы в языке программирования Pascal.
Шаг 1: Задайте одномерный массив из 10 чисел, полученных случайным образом. В Pascal, для работы с массивами, вы можете использовать тип данных "array of [тип элементов]". В данном случае, типом элементов будет целое число (integer). Для генерации случайного числа в заданном диапазоне, вы можете использовать функцию `Random`.
Пример кода для задания массива:
```pascal var arr: array[0..9] of integer; // Одномерный массив из 10 элементов i: integer;
begin Randomize; // Инициализация генератора случайных чисел for i := 0 to 9 do begin arr[i] := Random(100); // Генерация случайного числа от 0 до 99 end; // Ваш код для вывода исходного массива end. ```
Шаг 2: Поменяйте местами левую и правую половину массива. Для этого вам понадобится использовать временную переменную, чтобы сохранить значения элементов одной половины, пока вы меняете их местами с элементами другой половины.
Пример кода для обмена половин массива:
```pascal var temp: integer; i: integer;
begin for i := 0 to 4 do begin temp := arr[i]; arr[i] := arr[i + 5]; arr[i + 5] := temp; end; // Ваш код для вывода измененного массива end. ```
Шаг 3: Замените элементы массива, большие 10, на 100. Для этого вам потребуется пройтись по всем элементам массива и проверить условие больше 10.
Пример кода для замены элементов массива:
```pascal var i: integer;
begin for i := 0 to 9 do begin if arr[i] > 10 then begin arr[i] := 100; end; end; // Ваш код для вывода измененного массива end. ```
Шаг 4: Удалите из массива максимальный элемент и перед минимальным элементом вставьте 0. Для этого вам потребуется найти индекс максимального и минимального элементов в массиве, а затем удалить максимальный элемент и вставить 0 перед минимальным элементом.
Пример кода для удаления максимального элемента и вставки 0 перед минимальным элементом:
```pascal var maxIndex, minIndex, i: integer;
begin maxIndex := 0; minIndex := 0; for i := 1 to 9 do // Начинаем с 1, так как уже задали начальные значения индексов begin if arr[i] > arr[maxIndex] then begin maxIndex := i; end; if arr[i] < arr[minIndex] then begin minIndex := i; end; end; // Удаление максимального элемента for i := maxIndex to 8 do begin arr[i] := arr[i + 1]; end; // Вставка 0 перед минимальным элементом for i := 9 downto minIndex + 1 do begin arr[i] := arr[i - 1]; end; arr[minIndex] := 0; // Ваш код для вывода измененного массива end. ```
Это решение описывает алгоритм для решения задачи в языке программирования Pascal. Вам потребуется добавить код для вывода исходного и измененного массивов. Обратите внимание, что в приведенном коде используются некоторые конструкции, которые могут быть специфичны для определенных версий Pascal или компиляторов. Пожалуйста, проверьте документацию или руководство пользователя вашего конкретного инструмента для получения более детальной информации.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili