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

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


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


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

Выпуск № 010
от 20.05.2002, 21:00

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


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

Ayl
Статус: Профессиональный
Общий рейтинг: 151.27
[Подробней >>]
Vallon
Статус: Начальный
Общий рейтинг: 111.42
[Подробней >>]
igorash
Статус: Начальный
Общий рейтинг: 137.5
[Подробней >>]
 
Andre Lukichov
Статус: Начальный
Общий рейтинг: 127.27
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 137.16
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]


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

Вопрос № 17. Зравствуйте все! Вот тут моя подруга послала просьбу Вам, так вот вопрос: а мне поможете? Послезавтр... (ответов: 2)
Вопрос № 20. Уважаемые эксперты, подскажите, пожалуйста, что нужно сделать со старой прогой, чтобы она работала н... (ответов: 3)

Вопросов: 2, ответов: 5


 Вопрос № 17

Зравствуйте все!
Вот тут моя подруга послала просьбу Вам, так вот вопрос: а мне поможете?
Послезавтра экзамен, помогите пожалуйста!!!
Надо написать программу:
"Найти наибольшее симметричное слово из предложения"
Целую, Яночка...



Вопрос отправлен: 14.05.2002, 12:14
Отправитель: Яна

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

Отвечает Ayl

Доброе время суток, Яна!
Предлагаю следующий алгоритм:
1. Определяещь переменную типа BOOLEAN (например, InWord), которая указывает, находимся ли мы внутри слова или нет. Вначале она равна FALSE - мы не внутри слова.
2. Перебираем символы строки до тех пор, пока очередной символ все еще является разделителем слов (пробел, знаки препинания, цифры и т.п.)
3. Как только нашли начало слова - InWord = TRUE
4. Перебираем символы в строке до тех пор, пока снова не обнаружим разделитель. Символы сохраняем в какой-нибудь строковой переменной.
5. Опять устанавливаем InWord = FALSE
6. Проверяем слово на симметричность. Для этого сравниваем равноудаленные от концов слова символы до первого несовпадения (слово не симметричное) либо пока индекс от начала слова не станет больше индекса от конца слова (слово - симметричное).
7. Если слово симметричное - сравниваем его длину с текущим максимумом (в начале программы он равен 0). Если длина слова больше максимума, то корректируем значение текущего максимума.
8. Переходим к п.2.
Если что не понятно - пиши, отвечу


Ответ отправлен: 14.05.2002, 15:14
Отправитель: Ayl


Отвечает Vallon

Здравствуйте, Яна!
Держи поцедуру нахождения симмтричных слов


Приложение:

Ответ отправлен: 16.05.2002, 15:05
Отправитель: Vallon


 Вопрос № 20

Уважаемые эксперты, подскажите, пожалуйста, что нужно сделать со старой прогой, чтобы она работала на новом компе. Где-то читал, что там какие-то задержки не подходят… Прога на паскале. Пробовал увеличить задержки аж в 100000 раз - не помогло. Пишет "Runtime error 216". Эта же прога прекрасно компилируется на 486.
Заранее благодарю,
NeverHood.



Вопрос отправлен: 17.05.2002, 20:57
Отправитель: NeverHood

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

Отвечает igorash

Здравствуйте, NeverHood!
Не помешал бы текст проги, а ваще-то вот что пишет хелп компилятора по поводу твоей проги:
Эта ошибка возникает, если вы пробуете
обращаться к памяти, доступ к которой закрыт
вашему приложению. Операционная система
останавливает ваше приложение и сообщает, что
произошла ошибка защиты.
Следующие действия обычно вызывают GPF:
_ Загрузка констант в сегментные регистры
_ Выполнение арифметических операций на сегментных регистрах селекторов
_ Использование сегментных регистров для временного хранения
_ Запись в сегменты кода
_ Доступ к памяти вне локального адресного
пространства, данного вашему приложению
_ Переименование нулевых указателей
Разница тут скорее всего не в паузах (это 200 ошибка - деление на 0) юЭта ошибка возникает, если вы пробуете
обращаться к памяти, доступ к которой закрыт
вашему приложению. Операционная система
останавливает ваше приложение и сообщает, что
произошла ошибка защиты.
Следующие действия обычно вызывают GPF:
_ Загрузка констант в сегментные регистры
_ Выполнение арифметических операций на сегментных регистрах селекторов
_ Использование сегментных регистров для временного хранения
_ Запись в сегменты кода
_ Доступ к памяти вне локального адресного
пространства, данного вашему приложению
_ Переименование нулевых указателей"
Дело тут совсем не в задержках (вылетает на быстрых компах модуль crt из-за обнуления счетчика паузы, но не с 216 ошибкой а с 200 - деление на ноль, кстати этот баг исправлен в турбо паскале 7.1), а по моему в разной реализации работы с памятью в разных процессорах и возможно из-за разных ОС

Ответ отправлен: 17.05.2002, 23:37
Отправитель: igorash


Отвечает Andre Lukichov

Добрый день, NeverHood!
Замените модуль Crt на тот, что в дистрибутиве TP 7.1. Тогда ошибка Runtime Error 200 исчезнет.
Если же ошибка 216 - то это из-за нарушения защиты. Задержки тут ни при чем.

Ответ отправлен: 17.05.2002, 21:23
Отправитель: Andre Lukichov


Отвечает baldr

Доброе время суток, NeverHood!
Так еггог 216 или еггог 200? Наверное, 200? Деление на ноль... Объяснять, почему это так сейчас
не буду - ты об этом не спрашивал да и неохота. А исправляется это просто... Если такая прога
уже скомпилирована, то ей помогут спец. программки, которые ее просто патчат. И еггога нету!
А для программ, которые еще только будут компилироваться есть исправленная версия модуля crt,
который находится в файле turbo.tpl. Пиши на baldr@pisem.net - вышлю все это...


Ответ отправлен: 19.05.2002, 00:17
Отправитель: baldr



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "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 (57)
C / C++ (32)
Perl (10)
Delphi (20)
Pascal (32)
Basic / VBA (16)
Java / JavaScript (10)
PHP (7)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (55)
Windows NT/2000/XP (39)
"Железо" (45)
Поиск информации (18)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (9)
Юристу
Гражданское право (17)
Уголовное право (4)
Семейное право (8)
Трудовое право (9)
КоАП (6)

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




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

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

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

В избранное