Дан массив А(14): 1,-3,6,-5,-2,8,-9,14,-24,15,17,12,17,4 Составить программу обработки...

0 голосов
46 просмотров

Дан массив А(14): 1,-3,6,-5,-2,8,-9,14,-24,15,17,12,17,4
Составить программу обработки массива:
1) Найти максимальный элемент среди элементов, стоящих на четных местах.
2) Удалить минимальный элемент массива.
3) Поменять местами первый и последний элементы массива.
4) Вставить в середину массива элемент равный 10.
Решить на паскале, без рандома, с этими конкретными значениями. Спасибо!


Информатика (415 баллов) | 46 просмотров
0

спасибо!)

0

А вот еще вопрос: "удалить минимальный элемент массива". Это -24, стоящий девятым. Что с остальными элементами должно произойти от такого "удаления"?

0

И, даже еще вопрос! Если массив из 15 элементов, то "поменять местами первый и последний" - это будет 1 и 15? Так в 15-й ничего не записано...

0

Кстати, какая версия Паскаля?

0

а можно сначала поменять эти элементы, т.е. первый и четырнадцатый, а потом уже сдвигать вправо и вставлять в середину?

0

паскаль абс нет, школьный

0

У меня предложение возникло: может быть, считать массив динамическим? Не в Паскале его делать динамическим, а алгоритмически. Т.е. сначала в нем 14 элементов, потом удалили минимальный - стало 13. Ясно, что местами менять 1 и 13-й элементы. В середину вставить четко не выйдет, но можно вставить после 6-го или 7-го, неважно. И опять будет 14 элементов.

0

да, так и нужно

0

abc.net? Это не школьный, отличная версия, там можно массив инициализировать в описании, прекрасно!

0

ну у нас в школе просто такой установлен)

Дано ответов: 2
0 голосов
Правильный ответ

Const
  n = 14;
var
  i, m, p: integer;
  a: array[1..n] of integer:=(1,-3,6,-5,-2,8,-9,14,-24,15,17,12,17,4);
begin
  Writeln('Исходный массив');
  for i:=1 to n do Write(a[i]:4);
  Writeln;
  {Найти максимальный элемент среди элементов, стоящих на четных местах}
  i:=4; m:=a[2];
  while i<=n do begin if m<a[i] then m:=a[i]; i:=i+2 end;<br>  Writeln('Максимальный из элементов на четных местах: ',m);
  {Удалить минимальный элемент массива}
  m:=a[1]; p:=1;
  for i := 1 to n do if m>a[i] then begin m:=a[i]; p:=i end;
  for i:=p to n-1 do a[i]:=a[i+1];
  Writeln('Массив после удаления минимального элемента ',m);
  for i:=1 to n-1 do Write(a[i]:4);
  Writeln;
  {Поменять местами первый и последний элементы массива}
  Writeln('Массив после обмена местами крайних элементов');
  m:=a[1]; a[1]:=a[n-1]; a[n-1]:=m;
  for i:=1 to n-1 do Write(a[i]:4);
  Writeln;
  {Вставить в середину массива элемент равный 10}
  p:=(n-1) div 2 + 1;
  for i:=n-1 downto p do a[i+1]:=a[i];
  a[p]:=10;
  Writeln('Массив после вставки в середину элемента со значением 10');
  for i:=1 to n do Write(a[i]:4);
  Writeln 
end.

Результат выполнения программы:
Исходный массив
   1  -3   6  -5  -2   8  -9  14 -24  15  17  12  17   4
Максимальный из элементов на четных местах: 15
Массив после удаления минимального элемента -24
   1  -3   6  -5  -2   8  -9  14  15  17  12  17   4
Массив после обмена местами крайних элементов
   4  -3   6  -5  -2   8  -9  14  15  17  12  17   1
Массив после вставки в середину элемента со значением 10
   4  -3   6  -5  -2   8  10  -9  14  15  17  12  17   1

(142k баллов)
0 голосов

Program test;
const
  n=14
var
  i, i1, x, s, mx : integer;
  t: string;
  m1: array [1..n] of integer;
begin
  for i := 1 to n do            //ввод данных
  begin
    writeln ('введите очередной элемент --> ');
    read (x);
    m1[i] := x;
  end;
 
  mx := m1[2];                  // поиск максимального элемента
  for i := 4 by 2 to n do
  begin
     x := m1[i];
     if (x > mx) then mx := x;
  end;
  writeln('максимальный элемент ',mx);
 
  mx := m1[1];                  // поиск минимального элемента
  for i := 2 to n do
  begin
     x := m1[i];
     if (x < mx) then
     begin
         mx := x;
         i1 := i;
      end;
  end;
  for i := i1 to (n-1) do m1[i] := m1[i+1];      //удаление минимального элемента
 
  x := m1[1];                         //меняем местами 1-й и последний элементы
  m1[1] := m1[n-1];
  m1[n-1] := x;
 
  for i := (n-1) by (-1) to 8 do m1[i-1] := m1[i];         //вставляем. освобождаем место
  m1[7] := 10;                                                //вставили.
 
   for i := 1 to n do  writeln(i, ' --> ', m1[i]);               //результат
end;
end.



(1.2k баллов)
0

ошибки в коде, переделай плиз