Добрый день, Тик! Такие задачи в школах на первых уроках Паскаля решают... Посмотри, что твоя программа делает - она же 4 раза присваивает max число из mm[1,1], а потом если последняя клетка больше max, то записывает тужда её значение. Перебось max:=... в начало функции. for i:=1 to 2 do for j:=1 to 2 do max:=mm[1,1]; if max Ответ отправлен: 06.09.2002, 15:55 Отправитель: Necro Отвечает Painbringer
Здравствуйте, Тик! Function fut(mm:mas):integer; Var i,j,max:integer; Begin max:=mm[1,1]; {это должно быть тут!!!} for i:=1 to 2 do for j:=1 to 2 do if max fut:=max; {а тут точка с зяпятой} end;
Ответ отправлен: 09.09.2002, 23:44 Отправитель: Painbringer Отвечает vitya
Приветствую Вас, Тик! явно не верно. max = a[1, 1]; for i:= 1 to 2 do for j := 1 to 2 do if (a[i, j] > max) max := a[i, j];
Ответ отправлен: 06.09.2002, 14:23 Отправитель: vitya Отвечает Ayl
Добрый день, Тик! Ну, так все элементарно. См. функцию fut (я отступы сделал, чтобы понятнее было): for i:=1 to 2 do for j:=1 to 2 do max:=mm[1,1]; if maxfut:=max Т.е. ты в цикле переменной max 4 раза присваиваешь значение элемента mm[1,1]. А потом пытаешься сравнить это значение с элементов mm[i,j] ПОСЛЕ выхода из цикла! А в этом случае i и j неопределены (цикл FOR). В лучшем случае получишь ошибку "Выход за пределы массива". Чтобы прога работала правильно, вынеси строку max:=mm[1,1] перед циклом: max:=mm[1,1]; for i:=1 to 2 do for j:=1 to 2 do if maxfut:=max
Ответ отправлен: 06.09.2002, 14:31 Отправитель: Ayl Отвечает baldr
Добрый день, Тик! Строку max:=mm[1, 1] вынеси перед циклом, а то у тебя она каждый раз обновляется... Ответ отправлен: 06.09.2002, 14:33 Отправитель: baldr Отвечает Sensey
Здравствуйте, Тик! :) самые простые ошибки - самые трудноуловимые :( max:=mm[1,1]; вне тела цикла... ЗЫ Пошагово пройдись - поймешь.. (клавиши F7 F8)
Ответ отправлен: 06.09.2002, 16:11 Отправитель: Sensey Отвечает Lank
Здароав уважаемый, Тик :). Ти мне скажи как можно было в одной функции допустить стоко ошибок? Во первых логическая ошибка в функции ти пропустил Begin ... End; и поетому твой цикл просто присваевает переменной MAX значение Mas[1,1], а после етого сравнивает первый елемент с последним и возвращает болшее из них. Ну Как тебе ето? Но ето фигня полная на самом деле всё проще тебе просто надо поставить присваевание max:=mm[1,1]; перед цыклом и всё ОК. Кароче исправленую прогу смотри если не понял. С уважением Lank.
Приложение: Ответ отправлен: 06.09.2002, 16:31 Отправитель: Lank Отвечает portos
Доброе время суток, Тик! вот так все заработает
Приложение: Ответ отправлен: 06.09.2002, 17:59 Отправитель: portos
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.