1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Jaxx |
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 145 Пол: Мужской Реальное имя: Павел Репутация: 0 |
1.Текст программы на Паскале хранится в файле на диске. Составить программу обработки текста программы: а)определить максимальную степень вложенности циклов в программе; б)определить общее количество строк и количество символов, отличных от пробела; в)удалить из текста программы все комментарии.
2.Текст программы на Паскале хранится в файле на диске. Составить программу обработки текста программы: а)первые буквы служебных слов сделать заглавными; б)текст комментария заменить на номер комментария по порядку; в)переписать текст программы в новый файл с минимальным количеством пробелов, сохранив их только там, где они необходимы. 3.Текст программы на Паскале хранится в файле на диске. Распечатать на экране текст программы таким образом, чтобы в каждой строке размещался только один оператор. Организовать смещение операторов относительно операторных скобок, как это принято в Паскале. Помогите сделать какую-нибудь одну ! -------------------- - Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
|
![]() ![]() |
| Altair |
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
первая пока
Код { 1.Текст программы на Паскале хранится в файле на диске. Составить программу обработки текста программы: + а)определить максимальную степень вложенности циклов в программе; б)определить общее количество строк и количество символов,отличных от пробела; в)удалить из текста программы все комментарии. } Program Format_Text_Program_Pascal; Uses CRT; var F,f2:text; {файл с текстом программы} filename:string; {путь к файлу} s:string; {читаемая строка из файла} NZ,i,ii,j,k,stringys,charsys:byte; z:boolean; c:char; koment:boolean; {-------------------} Function UpStr(S:String):String; {перевод строки в верхний регистр} Var I:Byte; Begin For I:=1 To ORD(S[0]) Do Begin Case S[I] Of 'a'..'z':S[I]:=Chr(Ord(S[I])-$20); 'а'..'п':S[I]:=Chr(Ord(S[I])-$20); 'р'..'я':S[I]:=Chr(Ord(S[I])-$50) End End; UpStr:=S End; {PROGRAM BEGIN ...} Begin repeat ClrScr; Writeln('Введите путь к файлу'); readln(filename); Assign(f,filename); {$I-} Reset(f); {$I+} until IOResult=0; {повторяем если произошла ошибка} While NOT EOF(F) do begin ReadLn(f,s); Inc(stringys); {Ищем символы исчитаем их} For k:=1 to Ord(s[0]) do If s[k]<>' ' then inc(chsrsys); {для избежания ошибок приводим строку к верхнему регистру} s:=UpStr(s); For I:=1 to ORD(S[0]) do begin If ((s[i]='F') and (s[i+1]='O') and (s[i+2]='R')) or ( (s[i]='W') and (s[i+1]='H') and (S[i+2]='I') and (s[i+3]='L') and (s[i+4]='E')) or ( (s[i]='R') and (S[i+1]='E') and (S[I+2]='P') and (S[I+3]='E') and (s[i+4]='A') and (s[i+5]='T') then begin {Значит цикл "открылся"} j:=i+1; {запомним, где цикл отрылся, а на 1 больше, чтобы потом заново его не посчитать } Inc(NZ); {увелич. счетчик вложенности циклов} For ii:=j to ORD(s[0]) do begin If ((s[ii]='E') and (s[ii+1]='N') and (s[ii+2]='D')) or ((s[ii]='U') and (S[ii+1]='N') and (S[ii+2]='T') and (s[Ii+3]='I') and (s[ii+4]='L')) then begin {цикл "закрылся"} Dec(NZ) end end end end end; CLose(F); Writeln('Информация о файле . . . . . . . . . . . . . .',filename); Writeln('Вложенность циклов равна . . . . . . . . . . .',NZ); Writeln('Колическво строк равно . . . . . . . . . . . .',stringys); Writeln(Количество символов, отличных от пробела равно ',charsys); Writeln('-------------------------------------------------------'); writeln; writeln('сейчас файл будет перезаписан - из него будут удалены коментарии'); Assign(f2,'datafile.tmp'); Rewrite(f2); Reset(f); While not Eof(f) do begin read(f,c); If c= '{' then koment:=true; If (c=('}') and (koment=true) then koment:=false; If koment=false then write(f,c) end; Close(f); Close(f2); Erase(f); Rename(f2,filename); Writeln('Программа выполнена.'); end. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Jaxx Несколько задач на работу с файлами и строками. 28.04.2004 18:46
APAL Первая, на мой взгляд, самая простая.
А циклы в не… 29.04.2004 13:18
Jaxx Я думаю, что нужна степень вложенности по каждому … 30.04.2004 18:07
APAL Комментарии могут еще обозначаться так:
(* cv… 15.05.2004 13:33
Altair Да, вот это проблемма, я забыл про это.
(Кто же до… 15.05.2004 13:54
Jaxx Я думаю, что комментарии типа (* *) можно не учит… 15.05.2004 14:36
Altair Ну тогда как следует протестируйте эту прогу, я ее… 15.05.2004 17:47
trminator
(***************************************
* Т… 15.05.2004 22:44
P@sh@ Oleg_Z
несколько замечаний...
1. интересно, а что… 15.05.2004 23:01
Altair 1. Да он не правильно посчитает.
2. не уверен, над… 15.05.2004 23:35
P@sh@ а я люблю компактность + читабельность, поэтому лу… 16.05.2004 1:10
Jaxx у меня вообще со всем проблемы (если это кого-то и… 16.05.2004 1:13
P@sh@ короче, надо кроме for и while считать еще и begin… 16.05.2004 1:14
P@sh@ форматирование текста по ширине путем вставки проб… 16.05.2004 1:22
Jaxx это для вас задача элементарная. а мне месяц мучен… 16.05.2004 1:37
Altair
Задачи еще никого не кусали и не убивали :)
Про… 16.05.2004 11:18
GLuk А насчет вложенности циклов никаких реализаций кро… 17.05.2004 0:22
Altair
Согласен с вами. Я думаю, что если бы это задание… 17.05.2004 10:19
GLuk Oleg_Z: Обращайся ко мне пожалуйста на ТЫ, на ВЫ к… 18.05.2004 1:26
APAL GLuk, скорее всего имется в виду "красивое… 18.05.2004 15:29
Jaxx Господин APAL прав. Именно это и означает смещение… 18.05.2004 19:02
GLuk
Ну если хватит и одной, лови...
Надеюсь удаление … 20.05.2004 5:17![]() ![]() |
|
Текстовая версия | 6.11.2025 18:52 |