![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Eugen |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста!Необходимо упорядочить список студентов по алфавиту.Задачи с использованием записей.Файл со списком студентов уже создан.На выходе должен получится второй файл с упорядоченным списком!
|
DarkWishmaster |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите пожалуйста!Необходимо упорядочить список студентов по алфавиту.Задачи с использованием записей.Файл со списком студентов уже создан.На выходе должен получится второй файл с упорядоченным списком!
|
IUnknown |
![]()
Сообщение
#3
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата for j:=i+1 to n do //смещаем весь список влево procedure CheckPos(S:student);, а если использовать Move, то можно обойтись и без цикла вообще. Кстати, обрати внимание: обычно сначала проверяется условие (i < n), и только потом, если оно выполняется, проверяется второе условие. Не надо давать ошибке ни малейшего шанса произойти. Сообщение отредактировано: IUnknown - 10.06.2011 21:10 |
DarkWishmaster |
![]()
Сообщение
#4
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 168 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ты это серьезно? Неэффективно. Очень неэффективно, много лишних действий, которые усложняют понимание программы... Все делается проще: procedure CheckPos(S:student);, а если использовать Move, то можно обойтись и без цикла вообще. Кстати, обрати внимание: обычно сначала проверяется условие (i < n), и только потом, если оно выполняется, проверяется второе условие. Не надо давать ошибке ни малейшего шанса произойти. Ого, спасибо! { <--- 3000 в байт не поместится - будут проблемы. Оно тебе надо? } - , просто изначально делал для array[1..100] но потом подумал, зачем 255 символом в строке, откуда такие длинные имена, и поменял на string[20] и array[1..3000] совсем забыв про байт =) Кстати, обрати внимание: обычно сначала проверяется условие (i < n), и только потом, если оно выполняется, проверяется второе условие." - А я думал что проверяются оба условия и потом в зависимости от оператора выдается True или False. Сообщение отредактировано: DarkWishmaster - 10.06.2011 21:21 |
IUnknown |
![]()
Сообщение
#5
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата А я думал что проверяются оба условия и потом в зависимости от оператора выдается True или False. По умолчанию выполняется быстрое вычисление логических выражений: как только результат станет известен - вычисление тут же прекращается. На этом, в частности, построены вот такие конструкции:if (head <> nil) and (head^.value <> 1) then ..., если бы выражения всегда вычислялись полностью - был бы вылет при попытке head^, если head = nil... А так, в сокращенном варианте, до разыменования не дойдет: выполнится первая проверка, ее результат = False, оператор - And, чего зря вычислять вторую часть выражения, если в любом случае False and X = False? Результат - разыменования нет, вылета с ошибкой - тоже. А поменял бы местами эти две части - было бы гораздо хуже... Это как раз тот случай, когда от перемены мест слагаемых (или множителей) сумма (или произведение, соответственно) очень даже меняются ![]() |
Eugen |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 2 Пол: Мужской Репутация: ![]() ![]() ![]() |
Спасибо огромное!!!
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 11:10 |