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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 06:53   #1
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
Восклицание Двумерный массив Delphi

Всем доброго времени суток
Прошу помочь доделать програму

Код:
var i,j,s,max,min:integer;
begin
for i:=0 to n-1
max:=a[i,0];
min:=a[i,0];
for j:=0 to m-1 do if a[i,j]>max then begin
max:=a[i,j];
end;
for j:=0 to m-1 do if a[i,j]<min then begin
min:=a[i,j];
как реалтзовать так что бы после нахождения максимального и минимального элемента строки они менялись с перым и последним элементом соответственно. Спасибо. За час еще нужно достаточное количество программ сделать очень прошу помощи..тема будет пополняться вопросами заранее огромное спасибо! Реально некоторые вещи просто недоходят путаюсь

Ссылка на темку с задачей http://programmersforum.ru/showthrea...318#post683318



В чем может быть ошибка задача 2


Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j, n,i1,i2,m,t : integer;
a : array [0..50, 0..50] of integer;
begin
n := 7;
for i:=1 to n do
begin
i1:=1;i2:=1;
for j:=2 to m do begin
if a[i,j]>a[i,i1] then i1:=j;
if a[i,j]<a[i,i2] then i2:=j;
end;
t:=a[i,1];
a[i,1]:=a[i,i1];
a[i,i1]:=a[i,1];
t:=a[i,m];
a[i,m]:=a[i,i2];
a[i,i2]:=a[i,m];

   StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
Изображения
Тип файла: jpg Новый точечный рисунок.jpg (21.9 Кб, 155 просмотров)

Последний раз редактировалось MrMorozko; 13.12.2010 в 07:13.
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 07:55   #2
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

a[i,i1]:=a[i,1];
Надо бы заменить на
a[i,i1] := t;


a[i,i2]:=a[i,m];
На
a[i,i2]:=t;

2 Задача.
Код:
for i := 1 to 7 do
 if i < N div 2 then
  for j := i to 8-i do
    a[i,j] := 1;
  else
  for j := 8-i downto i do
    a[i,j] := 1;
Как вариант. Как мне кажется, есть более лаконичное решение, но с утра голова не варит совсем. =)

Последний раз редактировалось Asker13; 13.12.2010 в 08:02.
Asker13 вне форума Ответить с цитированием
Старый 13.12.2010, 08:04   #3
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
Вопрос

Проверте пожалуйста что то не так

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, n, m, mx,imx,sm: integer;
a : array [0..50, 0..50] of integer;
begin
Randomize;
n := StrToInt(Edit1.Text);
m := StrToInt(Edit2.Text);
for i := 0 to n - 1 do
 for j := 0 to m - 1 do
 a[i,j]:=Round(Sin(Random(100))*100);
 StringGrid1.RowCount:=n+1;
 StringGrid1.ColCount:=m+1;
 with StringGrid1 do
  begin
   i:=0 ;
   for j:=1 to RowCount do
   Cells[i,j]:=IntToStr(j);
   j:=0 ;
   for i:=1 to ColCount do
   Cells[i,j]:=IntToStr(i);
   end;
   with StringGrid1 do
   for i:=1 to n do
   for j:=1 to m do
   Cells[i,j]:=IntToStr(a[i-1,j-1]);
   mx:=0;
for i:=1 to n do
mx:=mx+a[1,i];
imx:=1;
for i:=1 to m do
 begin
  sm:=0;
  for j:=1 to n do
  sm:=sm+a[i,j];
  if sm>mx then
   begin
    mx:=sm;
    imx:=i;
    Label3.Caption:=IntToStr(i);
   end;
    end;
    end;
Нужно найти строку с минимальной суммой и в ней максимальный элемент
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 08:06   #4
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Asker13 Посмотреть сообщение
[COLOR="Red"]
Спасибо))Как я понимаю двое с половиной суток вообще не сплю
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 08:09   #5
Asker13
Форумчанин
 
Аватар для Asker13
 
Регистрация: 01.12.2010
Сообщений: 140
По умолчанию

Код:
for i:=1 to n do
mx:=mx+a[1,i];

imx:=1;
for i:=2 to m do begin
  sm:=0;
  for j:=1 to n do sm:=sm+a[i,j];
  if sm<mx then
   begin
    mx:=sm;
    imx:=i;
    Label3.Caption:=IntToStr(i);
   end;
Попробуйте вот так. У вас условие было неверное (if sm>mx then), это условие для нахождение максимума, а не минимума. Ну а найдя строку, максимальный элемент найти просто, по аналогии, как вы делали. =)
Asker13 вне форума Ответить с цитированием
Старый 13.12.2010, 08:23   #6
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Спасибо вам

а вот еще
Код:
for i := 1 to 7 do
 if i < N div 2 then
  for j := i to 8-i do
    a[i,j] := 1;
  else
  for j := 8-i downto i do
    a[i,j] := 1;
Это заполнения массива по правилу что интересно он не ругаеться но массив не выводит..
Вот так моя процедура выглядит
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j, n,i1,i2,m,t : integer;
a : array [0..50, 0..50] of integer;

begin
for i := 1 to 7 do
 if i < N div 2 then
  for j := i to 8-i do
    a[i,j] := 1
  else
  for j := 8-i downto i do
    a[i,j] := 1;

   StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
  end;
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 08:27   #7
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Как вы начали помогать аж жить как то захотелось XD спасибо еще раз щас хоть что то вкуривать начинаю, ненадо было пары прогуливать раньше)
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 08:42   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
Это заполнения массива по правилу что интересно он не ругаеться но массив не выводит..
Вот так моя процедура выглядит
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
i,j, n,i1,i2,m,t : integer;
a : array [0..50, 0..50] of integer;

begin
for i := 1 to 7 do
if i < N div 2 then
for j := i to 8-i do
a[i,j] := 1
else
for j := 8-i downto i do
a[i,j] := 1;

StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
end;
А вот у меня к вам вопрос вы после цикла к каким индексам обращаетесь
вот в это месте
StringGrid1.Cells[i,j] := IntToStr(a[i,j])
Судя по коду по не известным!
Вот поэтому массив и не выводится!

Возможно такая поправочка решит дело
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j, n,i1,i2,m,t : integer;
a : array [0..50, 0..50] of integer;

begin
for i := 1 to 7 do
if i < (N div 2) then
for j := i to 8-i do
begin
a[i,j] := 1
StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
end
else
for j := 8-i downto i do
begin
a[i,j] := 1;
StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
end;
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303

Последний раз редактировалось Stilet; 13.12.2010 в 10:19.
Hacker19_90 вне форума Ответить с цитированием
Старый 13.12.2010, 08:51   #9
MrMorozko
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Возможно такая поправочка решит дело
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i,j, n,i1,i2,m,t : integer;
a : array [0..50, 0..50] of integer;

begin
for i := 1 to 7 do
if i < (N div 2) then
for j := i to 8-i do
begin
a[i,j] := 1
StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
end
else
for j := 8-i downto i do
begin
a[i,j] := 1;
StringGrid1.Cells[i,j] := IntToStr(a[i,j]);
end;
end;
Вот что получилось после поправки


А желательно бы вот


Изображения
Тип файла: jpg Новый точечный рисунок (2).jpg (32.7 Кб, 154 просмотров)
Тип файла: bmp Новый точечный рисунок.bmp (115.6 Кб, 153 просмотров)
MrMorozko вне форума Ответить с цитированием
Старый 13.12.2010, 08:54   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Странно а у меня код другой!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Delphi MrMorozko Помощь студентам 10 24.11.2013 19:56
Delphi двумерный массив ДваДваВо7 Помощь студентам 2 08.12.2010 17:19
Двумерный массив Delphi 7 Hasray Помощь студентам 7 05.12.2010 14:12
Delphi Двумерный массив forumu Помощь студентам 3 24.12.2007 13:58