06.09.2011, 10:47 | #1 (permalink) |
Member
Регистрация: 24.08.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помощь по Pascal
Будьте добры, помогите пожалуйста с задачей! Я в отчаянии. Задание - дан текст; определить,содержит ли он символы, отличные от букв и пробела. Использовала решение от Vladimir_S с этого форума по сходному заданию. Поменяла переменные и тп - программа даже компилиться не хочет... Заранее прошу прощения если пропадет форматирование, форум позволяет применять настройки личного кабинета только после 15ти сообщений. program Text; uses Crt; const Lit= ['А','Б','В','Г','Д','Е','Ё','Ж','З','И', 'Й','К','Л','М','Н','О','П','Р','С','Т', 'У','Ф','Х','Ц','Ч','Ш','Щ','Ъ','Ы','Ь', 'Э','Ю','Я', 'а','б','в','г','д','е','ё','ж','з','и', 'й','к','л','м','н','о','п','р','с','т', 'у','ф','х','ц','ч','ш','щ','ъ','ы','ь', 'э','ю','я', 'A','B','C','D','E','F','G','H','I','J', 'K','L','M','N','O','P','Q','R','S','T', 'U','V','W','X','Y','Z', 'a','b','c','d','e','f','g','h','i','j', 'k','l','m','n','o','p','q','r','s','t', 'u','v','w','x','y','z',' ']; var f: Text; ch: Char; fl1: Boolean; n: Byte; begin assign(f,'C:\input.txt'); reSet(f); n:=0; repeat begin repeat begin read(f,Ch); end; end; until ch in Lit; repeat begin read(f,ch); if Ch in Lit then begin fl1:=true; end else begin fl1:=false; end; end; until NOT (ch in Lit); if fl1 then begin Inc(n); fl1:=false; end; until EoF(f); close(f); writeln('The number symlols which ane not letters of spaces is ',n); readln(); end. |
06.09.2011, 10:47 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Не стоит откладывать прочтение схожих тем Требуется помощь в написании программы на языке Turbo Pascal Pascal, две задачки, нужна помощь Pascal |
06.09.2011, 15:09 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А вот отчаиваться никогда не нужно! Поможем.
Теперь по программе. Тут полно ляпов как с моей, так и с Вашей стороны. Не, ну это же надо быть таким придурком (это я о себе), чтобы все буковки перечислять, вместо того, чтобы задать сумму диапазонов! Правда, в своей практической программистской деятельности я множествами не пользуюсь, потому этот тип знаю плохо. Но всё равно - стыдно! Теперь Ваш "вклад". Прежде всего, не нужно давать программе название, совпадающее с именем идентификатора либо с названием типа, в данном случае - "Text". Это приводит к ошибке. Вообще именование программ - это анахронизм, современные версии Паскаля этого не требуют. Есть имя файла, можно в начале написать любой комментарий, а с этим Program ... только проблемы! Потом - зачем Вы присоединяете модуль CRT? В программе же нет ни одной его команды - значит и ни к чему он. А уж что Вы там с циклами накрутили - Боже ж ты мой и мама рОдная в придачу! Даже разбираться не стал - на самом деле задачка решается почти в одну строчку. Пожалуйста: Код:
const Lit= ['А'..'Я']+['а'..'я']+['A'..'Z']+['a'..'z']+[' ']; var f: Text; ch: Char; n: Byte; begin assign(f,'C:\input.txt'); reSet(f); n:=0; Repeat read(f,Ch); if not(Ch in Lit) then Inc(n); until EoF(f); Close(f); writeln('The number of symbols which are not letters or spaces is ',n); readln; end. |
06.09.2011, 16:05 | #5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
08.09.2011, 09:05 | #7 (permalink) |
Member
Регистрация: 24.08.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Я снова, к сожалению, с вопросом. Задача очень похожа - Дан текст. Если в нём нет малых латинских букв , то оставить его без изменения ,иначе каждую такую букву заменить точкой.
const Vow= ['a'..'z']; var f: Text; ch: Char; n: Byte; begin assign(f,'C:\input.txt'); reSet(f); n:=0; Repeat read(f,Ch); if (Ch in Vow) then Ch:='.'; reWrite(f); until EoF(f); Close(f); writeln('The number of changed symbols is ', Ch); readln; end. Сейчас почему-то при запуске программы удаляются любые символы из input.txt |
08.09.2011, 09:31 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
const Код:
Vow= ['a'..'z']; var f,f1: Text; ch: Char; n: Byte; begin assign(f,'C:\input.txt'); reSet(f); assign(f1,'C:\output.txt'); reWrite(f1); n:=0; Repeat read(f,Ch); if (Ch in Vow) then begin write(f1,'.'); Inc(n); end else write(f1,Ch); Until EoF(f); Close(f); Close(f1); writeln('The number of changed symbols is ', n); readln; end. |
|
08.09.2011, 10:15 | #9 (permalink) |
Member
Регистрация: 24.08.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
А в мануале написано, что reWrite просто открывает файл на запись. Очень благодарю! Профессиональных вам успехов на подходе задачка по работе со стеком - усиленно читаю учебник.
|
08.09.2011, 15:55 | #10 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
И советую еще усилить внимание, потому что сразу предупреждаю - в динамических структурах не силен (ну еще с массивом поработать - туда-сюда), а уж в стеках, списках и т.п. - извините, но ни бум-бум. Просто ни разу в жизни мне эти структуры не надобились, вот и не разбирался с ними.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|