Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на языке Pascal

Выпуск № 037
от 10.09.2002, 00:00

Администратор:
Имя: Sensey
URL: Информационный ресурс
ICQ: 105679124
Украина, Харьков
О рассылке:
Задано вопросов: 60
Отправлено ответов: 167
Активность: 278.3 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе]


 Список экспертов, ответы которых опубликованы в данном выпуске

Necro
Статус: Доверительный
Общий рейтинг: 113.27
[Подробней >>]
Painbringer
Статус: Профессиональный
Общий рейтинг: 160.37
URL: Музычка, стишки и прочая дрянь
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 111.36
[Подробней >>]
 
Ayl
Статус: Профессиональный
Общий рейтинг: 119.49
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 117.43
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 128.93
URL: Страничка рассылки Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
 
Lank
Статус: Начальный
Общий рейтинг: 114.89
[Подробней >>]
portos
Статус: Опытный
Общий рейтинг: 146.59
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 59. Найдите ошибку: Нахождение макс. эл. в матрице. ... (ответов: 8)

Вопросов: 1, ответов: 8


 Вопрос № 59

Найдите ошибку:
Нахождение макс. эл. в матрице.


Приложение:


Вопрос отправлен: 06.09.2002, 14:00
Отправитель: Тик (buick@online.sinor.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Necro

Добрый день, Тик!
Такие задачи в школах на первых уроках Паскаля решают...
Посмотри, что твоя программа делает - она же 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.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (40)
C / C++ (28)
Perl (9)
Delphi (14)
Pascal (25)
Basic / VBA (10)
Java / JavaScript (13)
PHP (9)
MySQL / MSSQL (10)
Пользователю
Windows 95/98/Me (39)
Windows NT/2000/XP (27)
"Железо" (36)
Поиск информации (12)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (16)
Юристу
Гражданское право (11)
Семейное право (6)
Трудовое право (8)
КоАП (6)

Отправить вопрос всем экспертам выбранной рассылки.




be number one Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное