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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2008, 16:38   #1
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию двумерный массив, нати макс.сумму по столбцам

Всем доброго времени суток.

Есть такая задача: Вычислить суммы столбцов двумерного массива, максимальную сумму вывести на экран.

Есть такой текст:

procedure TForm1.Button1Click(Sender: TObject);

var

i, j: integer;
s, max: real; //s - summa, max - maksimalnaya summa

begin

max:=0;
for i:=1 to SG1.ColCount-1 do
if SG1.Cells[i,j] <> '' then
begin
s:=0;
for j:=1 to SG1.RowCount-1 do
s:= s + strtofloat(SG1.Cells[i,j]);
end;
if max < s then
max:=s;
showmessage ('maks sum ravna ' + floattostr(max));

end;

end.

Ошибок не выдает, но результат при любых значениях ячеек string grid один, примерно так - 7,904....+Е04.

В чем проблема может быть?
mau6 вне форума Ответить с цитированием
Старый 04.06.2008, 16:41   #2
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

В начле програмы обнулите все переменые. И чтото алгоритм какойто кривенький...
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 04.06.2008, 16:52   #3
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию

переменная max обнуляется в начале, s - обнуляется перед каждым новым столбцом.
предложите, пожалуйста, некривенький алгоритм, очень хочется, чтобы заработало наконец.
спасибо.
mau6 вне форума Ответить с цитированием
Старый 04.06.2008, 17:19   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Какие данные у Вас записаны в массиве? Это кусочек программы?
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 04.06.2008, 17:20   #5
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Для начала надо рандомно заполнить. Событие ОнКреат формы:

Код:
Randomize;
For y := 1 To 4 Do
  For x := 1 To 4 do
    SG.Cells[x,y] := IntToStr(Random(5) + 1);
Теперь найдём суммы столбцов:

Код:
For y := 1 To 4 Do
  Begin
    For x := 1 To 4 Do
      S := S + StrToInt(SG.Cells[y,x]);
    SG.Cells[y, 0] := IntToStr(S);
    S := 0;
  End;
Теперь осталось только найти максимум и "вывести на экран"


x, y, S : Integer;
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Старый 04.06.2008, 21:14   #6
mau6
 
Регистрация: 04.06.2008
Сообщений: 6
По умолчанию

все получилось, спасибо
mau6 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив... slim5 Помощь студентам 2 20.06.2008 23:16
Двумерный массив в С++ Draid Помощь студентам 2 07.03.2008 22:06
Двумерный массив Jodu Помощь студентам 18 05.12.2007 22:44
Двумерный массив help Imperceptible Паскаль, Turbo Pascal, PascalABC.NET 25 02.03.2007 20:00