Автор | Сообщение |
|
Отправлено: 15.05.21 13:22. Заголовок: задание 24 вопрос по программе
Здравствуйте. Помогите решить проблему. Скажите, пожалуйста, какие настройки в среде PascalABC.Net надо проверить, чтобы узнать, почему не выполняется код программы. У меня на разных компьютерах разная версия Паскаля.НЕТ. В одних версиях программы работают, а в других нет. Вот код программы задания 2 из ЕГЭ-24: var maxLen, cLen, i: integer; s: string; begin assign(input, 'k7-3.txt'); readln (s); maxLen := 0; for i:=1 to length(s) do if s[ i]='C' then begin cLen := cLen+1;; if cLen>maxLen then maxLen:=cLen; end else cLen := 0;; writeln (maxLen); end. Ответ получается 1 в одной версии, а другая версия программы (на школьном ноутбуке) все время выдает 0. Хотя код такой же. Дома на компьютере стоит версия 3.5 - все работает, на школьном компьютере версия 3.7 и 3.8 - не работает
|
|
|
Ответов - 4
[только новые]
|
|
|
| Администратор
|
Сообщение: 2797
|
|
Отправлено: 15.05.21 13:43. Заголовок: Тут проблема в том, ..
Возможно, тут проблема в том, что в этом файле после латинских букв НЕТ символа перевода строки. Видимо, реализация assign(input,...) такова, что такой символ обязательно нужен. Что делать: 1) вручную добавить такой символ - открыть файл в Блокноте, нажать Enter и сохранить. 2) использовать классический вариант работы с файлом: var maxLen, cLen, i: integer; s: string; F: text; begin assign( F, 'k7-3.txt' ); reset( F ); readln( F, s ); maxLen := 0; for i:=1 to length(s) do if s[ i]='C' then begin cLen := cLen+1;; if cLen>maxLen then maxLen:=cLen; end else cLen := 0; writeln (maxLen); end.
|
|
|
|
Отправлено: 15.05.21 13:47. Заголовок: Спасибо за ответ. Кл..
Спасибо за ответ. Классический вариант мы пробовали. Все равно не работает. Пробовали в файлы добавлять нужные цепочки, чтобы они наверняка встречались, тоже не работает. Попробуем первый вариант
|
|
|
|
| Администратор
|
Сообщение: 2798
|
|
Отправлено: 15.05.21 13:52. Заголовок: Агаркова пишет: Спас..
Агаркова пишет: цитата: | Спасибо за ответ. Классический вариант мы пробовали. Все равно не работает. |
|
Я проверял на версии 3.8, сборка 2870 от 25.03.2021, все отработало, получил ответ 1.
|
|
|
|
Отправлено: 15.05.21 15:32. Заголовок: Спасибо, Константин ..
Спасибо, Константин Юрьевич. Все моя невнимательность. В Readln (F, s) просто пропускала текстовую переменную, из которой считывать. Добавила, все заработала.
|
|
|
|