![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
В поток записана последовательность целых чисел. Найти минимум и максимум и поменять их местами, не используя дополнительных потоков.
Начала я с того, что попыталась сосчитать первое число, чтоб было с чем сравнивать... Проблема в том, что если в файле одно число - то оно фиксируется и выводиться (в компонент Memo) как надо, но если больше - приложение вылетает с ошибкой " '1-е число из файла' is not a valid integer value".. структура файла: 11 22 56 ... и т.д Объясните, как исправить, чтоб отработало без ошибок?
Сообщение отредактировано: 18192123 - 24.04.2008 14:14 |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата как исправить, чтоб отработало без ошибок? Вот так:while (c<>#13)and(i<=k-1) do // <--- Признак конца строки - это #13#10, а не наоборот... |
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот так: while (c<>#13)and(i<=k-1) do // <--- Признак конца строки - это #13#10, а не наоборот... Спасибо большое!) Теперь я нахожу максимальный-минимальный элементы последовательности..Вроде делаю аналогично..А выдаётся та же ошибка..Опять я что-то упустила...Объясните пожалуста!
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Во-первых, вот тут:
Цитата Position := i+1; // установка указателя потока после 1-го элемента Во-вторых, надо при чтении следующего числа сбрасывать str в пустую строку... А вообще, я бы сделал так: procedure TForm1.Convert; |
18192123 |
![]()
Сообщение
#5
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
А вообще, я бы сделал так: Спасибо за объяснение! С этим ясно.. А как теперь переставить местами найденные элементы? Наверное можно "запоминать" кол-во символов для каждого из них ещё в процессе поиска, а ещё нужно позицию мах и мин отследить...А как это осуществить?? И как в принципе осуществить саму перезапись? |
18192123 |
![]()
Сообщение
#6
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Добавила нахождение позиций максимального и минимального элемента, и запись элементов от этих позиции во вспомогательные..
Только не знаю, как записать вместо одного другое..Объясните пожалуста!
Сообщение отредактировано: 18192123 - 24.04.2008 20:42 |
18192123 |
![]()
Сообщение
#7
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
И даже то, что дописала про нахождение позиций не работает - вылетает ошибка..
А про перезапись так и не могу понять...Пожалуста, объясните... |
18192123 |
![]()
Сообщение
#8
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот что я добавила:перезаписала на место максимального миниальный..Но снова ошибка: " '' is not a valid integer value"..
Объясните, что я не так делаю... Сообщение отредактировано: 18192123 - 27.04.2008 12:25 |
18192123 |
![]()
Сообщение
#9
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот код для предыдущего сообщения..
А ещё у мея такой вопрос: я в отладчике обнаружила, что строки
попросту игнорируются отладчиком...почему так??? |
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Цитата А ещё у мея такой вопрос: я в отладчике обнаружила, что строки <...> попросту игнорируются отладчиком...почему так??? А почему они не должны игнорироваться? Ты что, где-то используешь mins/maxs? Нет... Вот когда будешь использовать - компилятор будет обрабатывать их изменение...Вот отработавший код (для случая, когда min и max содержат одинаковое число цифр!!!): Если минимальное и максимальное числа состоят из разного количества цифр - придется извращаться дополнительно... |
18192123 |
![]()
Сообщение
#11
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
Угу... Только следить за тем, чтобы копирование шло в правильном направлении... Если pos_max > pos_min, то проще копировать символы "назад" (перемещая их ближе к концу потока), а если наоборот - то "вперед", перемещая ближе к началу...
|
18192123 |
![]()
Сообщение
#13
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
18192123 |
![]()
Сообщение
#14
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Вот моя попытка разобрать случай, если кол-во цифр в максим. и миним. элементах не равно: пока сделала для случая если pos_max>pos_min...
Перезапись происходит, но на первоначальном месте максимального элемента я получаю минимальный элемент с некоторыми цифрами от максимального... Объясните пожалуста, как это исправить?
|
18192123 |
![]()
Сообщение
#15
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Пожалуста, объясните, как избавиться от лишних цифр, остающихся от максимального элемента, рядом с минимальным после изменения их порядка..??
|
volvo |
![]()
Сообщение
#16
|
Гость ![]() |
Лень запускать Дельфи
![]() uses sysutils; Вот что программа выводит: Цитата(Консоль) Running "g:\programs\pascal\__potok.exe" 72 21543 57 19 14 84 final = 72 14 57 19 21543 84 Running "g:\programs\pascal\__potok.exe" 72 14 57 19 8874 84 final = 72 8874 57 19 14 84 |
18192123 |
![]()
Сообщение
#17
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Снова я что-то напутала...Результаты работы приложения далеко не те, какими должны быть..
Содержимое файла: 45 2 3 1 Результат: 45 2 3 145 Содержимое файла: 1 2 3 45 Результат: 1452 3 1 2 1
Уже и не знаю, что я снова не правильно делаю..Объясните пожалуста!.. |
volvo |
![]()
Сообщение
#18
|
Гость ![]() |
... Содержимое файла: 72 11245 57 19 12 84 в Memo: 72 12 57 19 11245 84 Что я делаю не так? ![]() |
18192123 |
![]()
Сообщение
#19
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
|
![]() ![]() |
![]() |
Текстовая версия | 21.06.2025 14:00 |