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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2011, 20:34   #21
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

Собсно с этим то и проблема, понимаю что решение элементарно, однако из за этих
Write('a[',i,']=');
Readln(a[i]);
запутался((.
Макспч21 вне форума Ответить с цитированием
Старый 23.09.2011, 20:57   #22
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Есть два варианта решения. Можно работать напрямую с массивом StringGrid2, а можно передать его значения в уже описанный тобой массив а и работать по тому алгоритму, который написан выше. Второй вариант можно реализовать так
Код:
With StringGrid2 do
Begin
  For i:=0 to ColCount-1 do
  A[i+1]:=StrToInt(Cells[i,0])
End;
А вот это
Код:
Write('a[',i,']=');
Readln(a[i]);
For i:=1 to n do Write(A[i])
тебе не понадобится.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 24.09.2011, 14:42   #23
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

Такс, пока безуспешно...

Суммируя вышесказанное

Код:
var a:array[1..10] of integer;
min,max,i:integer;
  begin
    for i:=1 to n do begin
    With StringGrid2 do
      begin
        For i:=0 to ColCount-1 do
         A[i+1]:=StrToInt(Cells[i,0]);
     end;
begin
max:=a[1];
min:=a[1];
for i:=1 to n do
      begin
       if a[i]>max then max:=a[i];
       if a[i]<min then min:=a[i];
      end;
 end;
end.

Что делать с куском выделенным жирным шрифтом?

Последний раз редактировалось Макспч21; 24.09.2011 в 16:30.
Макспч21 вне форума Ответить с цитированием
Старый 24.09.2011, 20:31   #24
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Цитата:
Что делать с куском выделенным жирным шрифтом?
Да ничего не делать вообщем то. Только убери лишние операторные скобки begin..end. В этом куске ты нашел максимальный и минимальный элементы массивы( правда опять забыл найти их номера). Записывай полученные значения в 3 и 4 StringGrid и все дела.
Добавлено
Ну и конечно сравни как у меня
Код:
With StringGrid2 do
Begin
  For i:=0 to ColCount-1 do
  A[i+1]:=StrToInt(Cells[i,0])
End;
И как ты написал
Код:
 for i:=1 to n do begin
    With StringGrid2 do
      begin
        For i:=0 to ColCount-1 do
         A[i+1]:=StrToInt(Cells[i,0]);
     end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681

Последний раз редактировалось GetMax; 24.09.2011 в 20:33.
GetMax вне форума Ответить с цитированием
Старый 24.09.2011, 23:30   #25
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

Код:
var a:array[1..10] of integer;
min,max,i:integer;
  begin
      With StringGrid2 do
         begin
             For i:=0 to ColCount-1 do
             A[i+1]:=StrToInt(Cells[i,0]);
         end;
       max:=a[1];
       min:=a[1];
   for i:=1 to n do
  begin
      if a[i]>max then
    begin
      max:=a[i];
      imax:=i;
   End;
    if a[i]<min then
    Begin
      min:=a[i];
      imin:=i
    End;
  end;
      begin
       if a[i]>max then max:=a[i];
       if a[i]<min then min:=a[i];
      end;
 end;
end.
Вот так? Объявить ничего не забыл? n к примеру...
Макспч21 вне форума Ответить с цитированием
Старый 25.09.2011, 10:52   #26
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Так как тебе изначально известен размер исходного массива (1 х 25), то естественно
массив а у тебя тоже будет из 25 элементов, ну и вместо n тоже можно сразу писать 25( при условии, что размер постоянный и заполнены все столбцы массива StringGrid2). Вообщем так будет
Код:
var a:array[1..25] of integer;
min,max,i,imax,imin:integer;
  begin
      With StringGrid2 do
         begin
             For i:=0 to ColCount-1 do
             A[i+1]:=StrToInt(Cells[i,0]);
         end;
       max:=a[1];
       min:=a[1];
   for i:=1 to 25 do
  begin
      if a[i]>max then
    begin
      max:=a[i];
      imax:=i;
   End;
    if a[i]<min then
    Begin
      min:=a[i];
      imin:=i
    End;
  end;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 26.09.2011, 13:52   #27
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от GetMax Посмотреть сообщение
Так как тебе изначально известен размер исходного массива (1 х 25), то естественно
массив а у тебя тоже будет из 25 элементов, ну и вместо n тоже можно сразу писать 25( при условии, что размер постоянный и заполнены все столбцы массива StringGrid2). Вообщем так будет
Код:
var a:array[1..25] of integer;
min,max,i,imax,imin:integer;
  begin
      With StringGrid2 do
         begin
             For i:=0 to ColCount-1 do
             A[i+1]:=StrToInt(Cells[i,0]);
         end;
       max:=a[1];
       min:=a[1];
   for i:=1 to 25 do
  begin
      if a[i]>max then
    begin
      max:=a[i];
      imax:=i;
   End;
    if a[i]<min then
    Begin
      min:=a[i];
      imin:=i
    End;
  end;
Добавить нужно это:?

Код:
 with StringGrid3 do
    S:=Cells[max, imax];
         with StringGrid4 do
    S:=Cells[min, imax];
Макспч21 вне форума Ответить с цитированием
Старый 26.09.2011, 14:56   #28
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Добавить нужно это
Код:
With StringGrid3 do
Begin
  Cells[0,0]:=IntToStr(Max);
  Cells[1,0]:=IntToStr(imax)
End;
With StringGrid4 do
Begin
  Cells[0,0]:=IntToStr(Min);
  Cells[1,0]:=IntToStr(imin)
End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 26.09.2011, 15:08   #29
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

СПАСИБО БОЛЬШОЕ!
Макспч21 вне форума Ответить с цитированием
Старый 04.10.2011, 19:33   #30
Макспч21
Пользователь
 
Регистрация: 08.09.2011
Сообщений: 28
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
   var a:array[1..5] of extended;
min,max,i: extended;
imax,imin:integer;
  begin
      With StringGrid2 do
         begin
             For i:=0 to RowCount-1 do
             A[i+1]:=StrTofloat(Cells[0,i]);
         end;
       max:=a[1];
       min:=a[1];
       imin:=1;
        imax:=1;
   for i:=1 to 5 do
  begin
      if a[i]>max then
    begin
      max:=a[i];
      imax:=i;
   End;
    if a[i]<min then
    Begin
      min:=a[i];
      imin:=i;
    End;
  end;
    With StringGrid3 do
   Begin
     Cells[0,0]:=FloatToStrF(Max);
     Cells[1,0]:=FloatToStrF(imax);
   End;
     With StringGrid4 do
     Begin
       Cells[0,0]:=FloatToStrF(Min);
       Cells[1,0]:=FloatToStrF(imin);
     End;
    end;

   end.
Люди пасмарите плиз где ошибка, что исправить? По отладчику прога в самом начале показывает что гон.
Макспч21 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вырезка бит в паскале. dukales Паскаль, Turbo Pascal, PascalABC.NET 6 02.09.2011 05:57
Вырезка изображения и переменные Максим139 Помощь студентам 0 31.03.2011 17:31
Canvas, вырезка, буфер... Максим139 Помощь студентам 0 28.03.2011 19:05
Ф-ия, определяющая сумму строк матрицы, если на главной диагонали матрицы имеется отрицательный эл-т. Volk_xD Помощь студентам 6 05.01.2011 13:39
На главную диагональ матрицы поместить наибольшие элементы этой матрицы mivel Помощь студентам 2 23.12.2009 21:19