![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Pork6 |
![]()
Сообщение
#1
|
![]() Новичек Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Денис Репутация: ![]() ![]() ![]() |
Доброго вам времени суток!
Сейчас работаю над заданием, которое выглядит так: Дан список группы в 10 человек в виде: ФАМИЛИЯ: 14 символов (13+1 пробел) ПОЛ: 2 символа (1+1 пробел) РЕЗУЛЬТАТЫ_СЕССИИ: 4 символа Всего в строке 20 символов. Данные в одной строке отделяются друг от друга пробелами. Например: Иванов________м_4455 Петрова_______ж_3554 …………………………. Отсортировать по убыванию среднего балла мужчин и женщин по отдельности. Список брать из файла и сохранить в файл. Процедуры, функции и string-и не использовать. Реализовать программу через сортировку двумерного массива. Вот что я написал:
Но программа не работает. Пожалуйста, помогите исправить ошибку. Заранее спасибо. P.S. Файл "INPUT.TXT" приложил, "OUTPUT.TXT" программа создаст сама. Прикрепленные файлы ![]() -------------------- We Do What We Must, Because We Can © GLaDOS
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Где ошибка? Здесь:for i:=1 to 10 doТо действие, которое я отметил, запрещено. Нельзя менять переменную цикла самостоятельно... |
Pork6 |
![]()
Сообщение
#3
|
![]() Новичек Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Денис Репутация: ![]() ![]() ![]() |
Ой, это я так ловко на следующую строчку хотел перейти... Но для этого есть Цикл for. Согласен.
Но если эту строку удалить, то сортировка все равно не происходит. Почему? -------------------- We Do What We Must, Because We Can © GLaDOS
|
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Зачем переменную цикла (i) внутри цикла меняешь?
И вообще обмен неправильно реализован. Попробуй сам понять, ЗАЧЕМ нужны 2 цикла при обмене. И как они работают. -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Pork6 |
![]()
Сообщение
#5
|
![]() Новичек Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Денис Репутация: ![]() ![]() ![]() |
Я не очень глупый человек, и, естественно, перед тем, как постить что-то на форум, не раз менял и изменял код.
Изучал, анализировал. Ну и наконец пришел к мертвой точке, когда вроде все правильно, а ничего не работает. Ну и за помощью я сюда и пришел. Так что можете мне конкретно показать ошибку, которую я найти, увы, не могу. 2 мисс_граффити: Можно попробовать убрать перебор по j, оставив только i (т.е. только по строчкам), но опять же сортировка не работает. -------------------- We Do What We Must, Because We Can © GLaDOS
|
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Цитата Можно попробовать убрать перебор по j, оставив только i (т.е. только по строчкам), но опять же сортировка не работает. Не надо ничего пробовать просто так... Ты должен делать только то, что понимаешь, как работает. Зайди вот сюда: Методы сортировок , посмотри, как реализуется сортировка "пузырьком", и сравни с тем, что делаешь ты...Хинт: тебе надо отсортировать строки... Все, больше ничего... Условие, при котором строки меняются местами, у тебя почти правильное ("почти" - потому, что с твоим условием это будет сортировка по возрастанию, а не по убыванию)... Над остальным - подумай... Добавлено через 9 мин. P.S. Хинт №2: не считай массив A двумерным. Его можно сделать одномерным быстрее, чем ты думаешь... Смотри: type... Теперь тебе надо отсортировать одномерный массив A (неважно, элементы какого типа он содержит, это не играет никакой роли, сортировка будет совершенно идентична при любом типе элементов...) при помощи дополнительной переменной типа massC... Все как в примере по ссылке... Теперь понятнее? Сообщение отредактировано: volvo - 7.10.2008 22:37 |
Pork6 |
![]()
Сообщение
#7
|
![]() Новичек Группа: Пользователи Сообщений: 4 Пол: Мужской Реальное имя: Денис Репутация: ![]() ![]() ![]() |
1) Хинт №2. Я в Паскале не очень, отсюда и вопрос - как загнать файл в 2 массива? Или его уже готовый нужно будет разбить на 2 части?
2) А на каком языке, я извиняюсь, написан пример в FAQ? Я таких операторов раньше не видел, сам пишу на Turbo Pascal (извиняюсь, что забыл сие уточнить). P.S. Спасибо за помощь. Сообщение отредактировано: Pork6 - 7.10.2008 23:29 -------------------- We Do What We Must, Because We Can © GLaDOS
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Цитата как загнать файл в 2 массива? Или его уже готовый нужно будет разбить на 2 части? Работа с тем массивом A, который описал я, ничем не отличается от того, что описал ты. Это совершенно идентичные массивы, просто с моим описанием легче воспринять то, что с A можно работать и как с одномерным... Так что код заполнения массива данными из файла не будет меняться вообще...Цитата А на каком языке, я извиняюсь, написан пример в FAQ? Я таких операторов раньше не видел, сам пишу на Turbo Pascal На Паскале он написан... Проверялось и на Турбо Паскале тоже. Что именно ты не видел? Функцию Pred? Ну, замени Pred(j) на (j - 1)... Так будет понятнее? |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 2:51 |