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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2012, 17:41   #11
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Да, все верно. Массив заполняется верными элементами а на печать выводятся не те. Будем искать индексы нужных нам элементов
Код:
For i:=1 to n do
 begin
 if i mod 2 =0 then
   begin
    max:=1;
     for j:=2 to m do
      if a[i,j]>a[i,max] then max:=j;
      ms[i]:=a[i,max];
     writeln('Element ',a[i,max],'[',i,',',max,']');
   end
    else
     begin
    min:=1;
     for j:=2 to m do
      if a[i,j]<a[i,min] then min:=j;
      ms[i]:=a[i,min];
     writeln('Element ',a[i,min],'[',i,',',min,']');
     end;
 end;
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 10.01.2012 в 17:45.
alex_fcsm вне форума Ответить с цитированием
Старый 10.01.2012, 18:12   #12
Maklin55
Новичок
Джуниор
 
Регистрация: 10.01.2012
Сообщений: 12
По умолчанию

Это сработало, но вот как теперь их отсортировать?

У меня так продолжение получилось, но паскаль выдаёт ошибку
Код:
end;
begin
   For i := 1 To n-1 Do
     If a[i]>a[i+1]  Then
       Begin
         x:=a[i];
         a[i]:=a[i+1];
         a[i+1]:=x
       End;
 Writeln('Ћвб®авЁа®ў***л© ¬*ббЁў зЁбҐ«:');
 For i:=1 To n Do
 Write (' ',a[i]:2);

end;
readkey;
end.

Последний раз редактировалось alex_fcsm; 10.01.2012 в 18:15.
Maklin55 вне форума Ответить с цитированием
Старый 10.01.2012, 18:16   #13
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Код правильно оформляйте. Вам надо новый массив сортировать, а вы пытаетесь сортировать двумерный
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 10.01.2012, 18:20   #14
Maklin55
Новичок
Джуниор
 
Регистрация: 10.01.2012
Сообщений: 12
По умолчанию

А вот с этого места по подробнее можно?
Maklin55 вне форума Ответить с цитированием
Старый 10.01.2012, 18:22   #15
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Вам надо сортировать массив ms[i] а не а[i,j]
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 10.01.2012, 18:38   #16
Maklin55
Новичок
Джуниор
 
Регистрация: 10.01.2012
Сообщений: 12
По умолчанию

Код:
.......if a[i,j]<a[i,min] then min:=j;
ms[i]:=a[i,min];
writeln('ЊЁ*Ё¬*«м*л© н«Ґ¬Ґ*в ',a[i,min],'[',i,',',min,']');
end;
end;
begin
 For k := 1 To n-1 Do
   For i := 1 To n-1 Do
     If ms[i]>ms[i+1]  Then
       Begin
         x:=ms[i];
         ms[i]:=ms[i+1];
         ms[i+1]:=x
       End;
 Writeln('Ћвб®авЁа®ў***л© ¬*ббЁў зЁбҐ«:');
 For i:=1 To m Do
 Write (' ',ms[i]:2);
end;
readkey;
end.
Массив выводится. Но он сортируется в разнобой. Где у меня ошибка?

Последний раз редактировалось alex_fcsm; 10.01.2012 в 18:46.
Maklin55 вне форума Ответить с цитированием
Старый 10.01.2012, 18:46   #17
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Ох. Форматируйте код, оформляйте правильно.
Код:
For k := 2 To n Do
 For i := n downto k Do
  If ms[i]>ms[i+1] Then
   Begin
    x:=ms[i];
    ms[i]:=ms[i+1];
    ms[i+1]:=x;
   end;
В цикле в используете N Ниже выводите массив уже до M Разберитесь уже, наконец, где какая переменная
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 10.01.2012, 19:11   #18
Maklin55
Новичок
Джуниор
 
Регистрация: 10.01.2012
Сообщений: 12
По умолчанию

Я сделал так же, как и вы мне сейчас выдали. У меня теперь просто выводится массив и сортировка не происходит вообще.
Maklin55 вне форума Ответить с цитированием
Старый 10.01.2012, 19:15   #19
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

Свои слова подкрепляйте вашим кодом. Гадать что у вас не так никто не будет
Нормальное состояние техники - нерабочее, все остальное частный случай.
alex_fcsm вне форума Ответить с цитированием
Старый 10.01.2012, 19:23   #20
Maklin55
Новичок
Джуниор
 
Регистрация: 10.01.2012
Сообщений: 12
По умолчанию

У меня в общем вышла такая программа:

Код:
program iwakurs;
uses crt;
var
a:array[1..10,1..10]of integer;
ms:array[1..10] of integer;
m,n,i,j,max,min,k,x:integer;
Begin
clrscr;
read (m);
read (n);
For i:=1 to m do
for j:=1 to n do
Begin
gotoxy (j*4,i+10);
read(a[i,j]);
end;
for i:=1 to m do
begin
if i mod 2=0 then
begin
max:=1;
for j:=2 to n do
if a[i,j]>a[i,max] then max:=j;
ms[i]:=a[i,max];
writeln('Максимальный элемент ',a[i,max],'[',i,',',max,']');
end
else
begin
min:=1;
for j:=2 to n do
if a[i,j]<a[i,min] then min:=j;
ms[i]:=a[i,min];
writeln('Минимальный элемент ',a[i,min],'[',i,',',min,']');
end;
end;
begin
 For k:= 2 To n Do
   For i := n downto k Do
     If ms[i]>ms[i+1]  Then
       Begin
         x:=ms[i];
         ms[i]:=ms[i+1];
         ms[i+1]:=x;
       End;
 Writeln('Отсортированный масив чисел');
 For i:=1 To m Do
 Write (' ',ms[i]:2);


end;
readkey;
end.
У меня в итоге выводится массив, но он не сортируется. И я не могу понять почему.

Код:
 Writeln('Отсортированный масив чисел');
 For i:=1 To m Do
 Write (' ',ms[i]:2);
Если тут "M" заменить на "N", то количество элементов массива равно не количеству строк, а количеству столбцов.

Последний раз редактировалось alex_fcsm; 10.01.2012 в 19:35.
Maklin55 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача с While по Pascal PascalABC Помощь студентам 7 26.02.2013 16:27
задача(Pascal) giv93 Помощь студентам 1 05.11.2011 13:54
задача (pascal) counterparts Помощь студентам 7 29.12.2010 17:38
[Pascal] курсовая работа Retreat Фриланс 1 09.01.2010 19:21
Курсовая на Turbo Pascal maximk Фриланс 8 22.10.2009 14:23