0 / 0 / 2
Регистрация: 30.04.2010
Сообщений: 11
|
|||||||||||
1 | |||||||||||
Один и тот же код работает по-разному28.11.2011, 19:23. Показов 1585. Ответов 11
Метки нет (Все метки)
Составила программу, программа работает, выдаёт верное решение:
Для n=108, ответ 3 Приятельница скопировала у меня эту программу, допустив единственное отличие: в объявлении переменных переставила местами переменные k и r. То есть написала
Для n=128 ответ =5 для n=108 ответ 4 Всё остальное проверено досимвольно, всё верно, более того, неверная программа после перестановки переменных во второй строке работает ВЕРНО!!! Это кто-нибудь может объяснить?
0
|
28.11.2011, 19:23 | |
Ответы с готовыми решениями:
11
Один и тот же код по разному работает Один и тот же код, но работает по разному Один и тот же код на Си и Паскале работает по-разному! Почему в WEB приложении и в обычном один и тот же код по разному работает? |
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
28.11.2011, 19:25 | 2 |
Так конечно, переменная к зависит от r, если ее переставить вперед, то r не определено, по умолчанию всегда=0.
0
|
0 / 0 / 2
Регистрация: 30.04.2010
Сообщений: 11
|
|
28.11.2011, 19:28 [ТС] | 3 |
Не сочтите за тупость, поясните, причём здесь объявление переменных?
0
|
Платежеспособный зверь
8926 / 4354 / 1642
Регистрация: 28.10.2009
Сообщений: 11,568
|
|
28.11.2011, 19:36 | 4 |
Puporev, у тебя не сходится. k стоит впереди, но программа правильно работает.
И вообще, с каких пор результат стал зависеть от порядка перечисления переменных в var? Может паскаль кривой?
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
28.11.2011, 19:40 | 5 |
Бред. Паскаль - компилируемый язык. Поэтому сначала создаются все переменные, а потом уже запускается исполнение. И значения по той же причине не зависят от деклараций.
0
|
0 / 0 / 2
Регистрация: 30.04.2010
Сообщений: 11
|
|
28.11.2011, 19:51 [ТС] | 6 |
Нет, Паскаль у меня не кривой, а стандартный ТР-7, но на всякий случай скопировала Паскаль из рекомендуемого здесь, запустила в нём - результат идентичный. Вывод ужасен:
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|||||||||||
28.11.2011, 20:04 | 7 | ||||||||||
кот Бегемот,Я почему-то подумал что переставили
Добавлено через 5 минут Здесь
1
|
0 / 0 / 2
Регистрация: 30.04.2010
Сообщений: 11
|
|
28.11.2011, 20:09 [ТС] | 8 |
Вот скопируйте, попробуйте, убедитесь и извинитесь.
Добавлено через 5 минут Исправляется просто: заменяем начальное значение i на 0 for i:=0 to n do min[i]:=i; и теперь min[0] существует, за диапазон мы не выходим, но это не решает проблемы
0
|
54 / 54 / 43
Регистрация: 11.12.2009
Сообщений: 110
|
|
28.11.2011, 20:09 | 9 |
Действительно, если поменять местами переменные в объявлении, то выдает другой результат
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
||||||
28.11.2011, 20:16 | 10 | |||||
Сообщение было отмечено Памирыч как решение
Решение
Напишите так
0
|
0 / 0 / 2
Регистрация: 30.04.2010
Сообщений: 11
|
||||||
28.11.2011, 20:17 [ТС] | 11 | |||||
Да. Видимо, связано с выходом за пределы массива.
Подправила объявление массива и начальное значение, - всё заработало
0
|
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
28.11.2011, 20:18 | 12 |
Вечно вместо того чтобы подумать, включить проверку, пошаговую детализацию, начинают про чудеса, глючный Паскаль и прочее...
0
|
28.11.2011, 20:18 | |
28.11.2011, 20:18 | |
Помогаю со студенческими работами здесь
12
Один и тот же код выполняется по-разному Один и тот же рекордсет - но работает по разному Один и тот же внешний жесткий диск по разному работает на двух похожих ноутбуках Text-align: justify один код работает по разному Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |