Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2014, 22:18   #1
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию Задан целочисленный массив, состоящий из n элементов

Задан целочисленный массив, состоящий из n элементов (число n ввести с клавиатуры). Если число элементов окажется чётным, то максимальный элемент поместить в начало массива, а минимальный элемент поместить в конец массива, в противном случае удалить из массива все чётные элементы.
вот наработки, дальше не знаю...да и здесь что-то не получается.
очень срочно нужно до завтра
Код:
Program ReplaceMinAndMax;
Var
 Matrix:Array[1..3,1..3] of Byte = (1,2,3,4,5,6,7,8,9);
 PP:Byte;
 Max,Min:Byte;
 XMin,YMin,XMax,Ymax:Byte;
 X,Y:Byte;
Begin
 XMin := 1;
 YMax := 1;
 XMax := 1;
 YMax := 1;
 Max := Matrix[1,1];
 Min := Matrix[1,1];
 For Y := 1 to 3 do
  For X := 1 to 3 do
   Begin
    If Matrix[X,Y] > Max Then  Begin Max := Matrix[X,Y]; XMax := X; YMax := Y; End;
    If Matrix[X,Y] < Max Then Begin Min := Matrix[X,Y]; XMin := X; YMin := Y; End;
   End;
 PP := Matrix[XMax,YMax];
 Matrix[XMax,YMax] := Matrix[Xmin,YMin];
 Matrix[XMin,YMin] := PP;
End.
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 22:47   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
If Matrix[X,Y] < Min Then Begin Min := Matrix[X,Y]; XMin := X; YMin := Y; End;
эт раз
а как согласуется ваша матрица и одномерный массив, данный по заданию? эт два
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.05.2014, 22:52   #3
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

ошибку выдает на 3-й строке, непонятно почему...и писали что нужно преобразовать в одномерный массив, только я не знаю, если кто знает, помогите прописать программу. В задании больше ничего не было, только то что вверху написано... Вот что еще писали: "Массив, скорее всего одномерный. Нужно переписать код под одномерный массив.
И удаление элемента делается сдвигом массива влево, который также описан по ссылке.
Пример:
1 2 3 4 5
Нужно удалить третий элемент. Сдвигаете элементы влево
Получается
1 2 4 5 5
Для статических массивов хвост массива либо обнуляют, либо не показывают при выводе.
Для динамических используют процедуру setlength(a,n-1)
Где n - размерность массива. Setlength при переназначении длины массива оставит в данном случае 4 элемента, последний же удалит.
Окончательно получим удаление третьего элемента."

Последний раз редактировалось maxim1592; 28.05.2014 в 22:55.
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 23:12   #4
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
const nmax=10;
var 
  a:array[0..nmax] of integer;
  i,imin,imax,n:integer;
begin
  Randomize;
  readln(n);
  for i:=1 to n do 
  begin
    a[i]:=random(n+1)-n div 2;
    write(a[i]:4);
  end;
  writeln;
  case n mod 2= 0 of
    true:
      begin
        imax:=1;imin:=1;
        for i:=2 to n do
          begin
            if a[i]>a[imax] then imax:=i;
            if a[i]<a[imin] then imin:=i;
          end;
        a[1]:=a[1]+a[imax];
        a[imax]:= a[1]-a[imax];
        a[1]:= a[1]-a[imax]; 
        a[n]:=a[n]+a[imin];
        a[imin]:= a[n]-a[imin];
        a[n]:= a[n]-a[imin];
      end;
   false:
    begin
      i:=1;
      while i<=n do
        begin
          if a[i] mod 2 = 0 then 
            begin
              for imin:=i to n-1 do
                a[imin]:=a[imin+1];
              n:=n-1;
        end
          else inc(i);
        end;
    end;
 end;   
      for i:=1 to n do
        write(a[i]:4);
 writeln;   
end.
Цитата:
10
-2 1 -3 0 4 -5 0 0 -4 -4
4 1 -3 0 -2 -4 0 0 -4 -5
Цитата:
7
1 2 3 2 -3 -1 2
1 3 -3 -1
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.05.2014, 23:37   #5
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

выдает ошибку где помечено
Код:
const nmax=10;
var 
  a:array[0..nmax] of integer;
  i,imin,imax,n:integer;
begin
  Randomize;
  readln(n);
  for i:=1 to n do 
  begin
    a[i]:=random(n+1)-n div 2;
    write(a[i]:4);
  end;
  writeln;
 case n mod 2= 0 of здесь выдает ошибку
      begin
        imax:=1;imin:=1;
        for i:=2 to n do
          begin
            if a[i]>a[imax] then imax:=i;
            if a[i]<a[imin] then imin:=i;
          end;
        a[1]:=a[1]+a[imax];
        a[imax]:= a[1]-a[imax];
        a[1]:= a[1]-a[imax]; 
        a[n]:=a[n]+a[imin];
        a[imin]:= a[n]-a[imin];
        a[n]:= a[n]-a[imin];
      end;
   false:
    begin
      i:=1;
      while i<=n do
        begin
          if a[i] mod 2 = 0 then 
            begin
              for imin:=i to n-1 do
                a[imin]:=a[imin+1];
              n:=n-1;
        end
          else inc(i);
        end;
    end;
 end;   
      for i:=1 to n do
        write(a[i]:4);
 writeln;   
end.
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 23:38   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
выдает ошибку где красным помечено
а у меня работает)
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.05.2014, 23:46   #7
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

пишет выражение выбора в операторе case должно иметь тип integer, byte, char, интервальный или перечисленый
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 23:50   #8
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

а у меня какой?
Цитата:
Перечисляемый тип (сокращённо перечисле́ние, англ. enumeration, enumerated type) — в программировании тип данных, чьё множество значений представляет собой ограниченный список идентификаторов.
boolean и есть перечисляемый
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.05.2014, 23:53   #9
maxim1592
Новичок
Джуниор
 
Регистрация: 27.05.2014
Сообщений: 60
По умолчанию

а что тогда там может быть не так???? почему оно ошибку выдает???
maxim1592 вне форума Ответить с цитированием
Старый 28.05.2014, 23:54   #10
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
почему оно ошибку выдает
видимо потому что мы пишем в разных компиляторах паскаля
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задан целочисленный массив maxim1592 Паскаль, Turbo Pascal, PascalABC.NET 8 31.05.2014 19:42
СИ: Задан массив, состоящий из целых положительных и отрицательных чисел. Создать новый массив из положительных элементов старого Любимая Помощь студентам 0 28.05.2013 18:44
задан массив чисел из n элементов. вывести все возможные варианты перестановки из n элементов по m ( на паскале ) Sting707 Паскаль, Turbo Pascal, PascalABC.NET 2 11.03.2012 08:20
Задан целочисленный одномерный массив A из N элементов. Найти номер последне Vladimir Ryabov Фриланс 5 01.11.2011 13:21