Вопрос задан 18.06.2023 в 10:05. Предмет Информатика. Спрашивает Самсонова Адрияна.

PASCAL 2. Составить программу, которая в данном массиве: m[1]:=4; m[2]:=8; m[3]:=7; m[4]:=2;

m[5]:=1;m[6]:=8; m[7]:=1; m[8]:=5; m[9]:=6; m[10]:=8; находит максимальный элемент (элементы) и заменяет его (их) на 0. 3. Дан массив a[0..n-1] из n чисел 0 и 1. Требуется разделить элементы друг от друга так, чтобы сначала оказались все 0, а в конце 1. 5. Как можно сделать так, чтобы первая половина массива была отсортирована по возрастанию, а вторая — по убыванию. Напишите программу для 10 случайных цифр.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Жанибек Жаныл.

Программа:

Pascal:

№2)

var

 m: array[1..10] of integer;

begin

 m[1]:=4; m[2]:=8; m[3]:=7; m[4]:=2; m[5]:=1; m[6]:=8; m[7]:=1; m[8]:=5; m[9]:=6; m[10]:=8;

 for var i := 1 to 10 do

   if m[i] = m.max then m[i]:= 0;

 writeln(m);

end.

№3)

const n = 10;

var

 a: array[1..n] of integer;

 i, k, tmp: integer;

begin

 for i := 1 to n do a[i] := random(0, 1);

 writeln('Массив: ', a);

 

 for i := 1 to n - 1 do

   for k := 1 to n - i do

     if a[k] > a[k + 1] then begin

       tmp := a[k];

       a[k] := a[k + 1];

       a[k + 1] := tmp;

     end;

 writeln(a);

end.

№5)

const n = 10;

var

 a: array[1..n] of integer;

 a1, a2: array[1..n div 2] of integer;

 i, k, tmp: integer;

begin

 for i := 1 to n do a[i] := random(-10, 10);

 writeln('Исходный массив: ',a);

 

 for i := 1 to n div 2 do a1[i] := a[i];

 for i := (n div 2 + 1) to n do a2[i - n div 2] := a[i];

 

 for i := 1 to n div 2 - 1 do

   for k := 1 to n div 2 - i do

     if a1[k] > a1[k + 1] then begin

       tmp := a1[k];

       a1[k] := a1[k + 1];

       a1[k + 1] := tmp;

     end;

 for i := 1 to n div 2 - 1 do

   for k := 1 to n div 2 - i do

     if a2[k] < a2[k + 1] then begin

       tmp := a2[k];

       a2[k] := a2[k + 1];

       a2[k + 1] := tmp;

     end;

     

 for i := 1 to n do

   if i <= 5 then a[i] := a1[i]

   else a[i] := a2[i - n div 2];

 writeln('Выходной массив: ', a);

end.

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Давайте рассмотрим каждую задачу по отдельности на языке Pascal.

Задача 2. Замена максимального элемента на 0:

```pascal program ReplaceMaxWithZero;

var m: array[1..10] of integer; // Ваш массив

procedure ReplaceMaxWithZero(var arr: array of integer); var i, maxIndex: integer; begin maxIndex := 1;

// Находим индекс максимального элемента for i := 2 to Length(arr) do if arr[i] > arr[maxIndex] then maxIndex := i;

// Заменяем максимальный элемент на 0 arr[maxIndex] := 0; end;

begin // Инициализация массива m[1] := 4; m[2] := 8; m[3] := 7; m[4] := 2; m[5] := 1; m[6] := 8; m[7] := 1; m[8] := 5; m[9] := 6; m[10] := 8;

// Заменяем максимальный элемент на 0 ReplaceMaxWithZero(m);

// Выводим результат for i := 1 to 10 do Write(m[i], ' ');

Readln; end. ```

Задача 3. Разделение 0 и 1:

```pascal program SeparateZerosAndOnes;

var a: array of integer; // Ваш массив

procedure SeparateZerosAndOnes(var arr: array of integer); var i, j: integer; begin i := 0; j := Length(arr) - 1;

while i < j do begin while (i < j) and (arr[i] = 0) do Inc(i);

while (i < j) and (arr[j] = 1) do Dec(j);

if i < j then begin // Меняем местами 0 и 1 arr[i] := 0; arr[j] := 1; Inc(i); Dec(j); end; end; end;

begin // Инициализация массива SetLength(a, 10); // Заполнение массива случайными 0 и 1 for i := 0 to 9 do a[i] := Random(2);

// Вывод исходного массива Write('Исходный массив: '); for i := 0 to 9 do Write(a[i], ' '); Writeln;

// Разделяем 0 и 1 SeparateZerosAndOnes(a);

// Выводим результат Write('Результат: '); for i := 0 to 9 do Write(a[i], ' ');

Readln; end. ```

Задача 5. Сортировка половины массива по возрастанию, а второй половины — по убыванию:

```pascal program SortHalfAscendingHalfDescending;

var b: array[0..9] of integer; // Ваш массив

procedure SortHalfAscendingHalfDescending(var arr: array of integer); var i, j, temp: integer; begin // Сортировка первой половины по возрастанию for i := 0 to Length(arr) div 2 - 1 do for j := 0 to Length(arr) div 2 - i - 2 do if arr[j] > arr[j + 1] then begin temp := arr[j]; arr[j] := arr[j + 1]; arr[j + 1] := temp; end;

// Сортировка второй половины по убыванию for i := Length(arr) div 2 to Length(arr) - 1 do for j := Length(arr) div 2 to Length(arr) - i + Length(arr) div 2 - 2 do if arr[j] < arr[j + 1] then begin temp := arr[j]; arr[j] := arr[j + 1]; arr[j + 1] := temp; end; end;

begin // Инициализация массива b[0] := 3; b[1] := 1; b[2] := 6; b[3] := 9; b[4] := 7; b[5] := 2; b[6] := 8; b[7] := 4; b[8] := 5; b[9] := 0;

// Сортируем половину по возрастанию, а половину — по убыванию SortHalfAscendingHalfDescending(b);

// Выводим результат for i := 0 to 9 do Write(b[i], ' ');

Readln; end. ```

Обратите внимание, что в примерах я использовал процедуры для удобства, но вы можете интегрировать код прямо в основную часть программы.

0 0

Похожие вопросы

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

Последние заданные вопросы в категории Информатика

Задать вопрос