IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Форматирование исходников, Паскаль-программ
Jaxx
сообщение 6.04.2005 12:26
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 145
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Вот я опять и появился. Теперь у меня задание еще более интересное. Смысл следующий: есть текстовый файл с исходником программы на Паскале, нужно-
1) первые буквы служебных слов сделать заглавными
2) текст комментариев заменить на их номер по порядку
3) переписать текст в новый файл с удалением лишних пробелов.
Я понимаю, что тут может быть только один путь решения: создать массив (или множество) служебных слов, затем считывать текст файла посимвольно (т.к. служебные слова обязательно должны быть отделены от других пробелами или знаками препинания). Я прав? С комментариями попроще: просто найти символ '{' и проверить следующий после него, и если это не '$' то удалить все символы начиная с этого до символа '}'. Удаление пробелов еще проще. Но с первой частью задания у меня небольшие трудности. Решайте! :yes:

В следующий раз давайте более подходящий заголовок


--------------------
- Дорогие девушки! У вас сухая кожа? Редкие волосы? Проблемы с фигурой? Приходите к нам! У нас темно и мы пьяные.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Altair
сообщение 13.04.2005 14:13
Сообщение #2


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Ну раскритиковали smile.gif
Я шаблон для рассуждений дал smile.gif
такие элементы как BegIn легко устраняются путем изменения кода. (проверять на вхождениеодного словав другое).
Так что разбивать на слова необязательно smile.gif

Цитата
Во всех зарезервированных словах, записанных только маленькими буквами". А если "FUNCTION a: integer", то что будет с FUNCTION ?

Ну для этого добавить в программуфункцию:

Код
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;

И вот эти строчки:
Код
for i:=1 to 51 do  if pos(zar[i],s)<>0 then begin
n:=pos(zar[i],s);
s[n]:= upcase(s[n]);

Заменитиь на:
Код
for i:=1 to 51 do  if pos(UpStr(zar[i]),ipstr(s))<>0 then begin
n:=pos(Upstr(zar[i]),upstr(s));
s[n]:= upcase(s[n]);

smile.gif
Хотя возникает вопрос -если уже в большом регистре слово, зачем первую букву поднимать? smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Jaxx   Форматирование исходников   6.04.2005 12:26
volvo   Посмотри вот эту мою программку... Программа форм...   6.04.2005 12:33
Jaxx   Насчет (* *) я знаю. Тут смысл будет такой же, тол...   6.04.2005 12:44
volvo   А ты в курсе, что есть Nested Comments, что усложн...   6.04.2005 13:03
Jaxx   Ладно, я все понял. Условие задачи остается началь...   6.04.2005 13:23
Altair   Jaxx, привет! Почти год тебя не было! С во...   6.04.2005 14:38
Jaxx   Привет и тебе, OlegZ !!! :thanks: У м...   6.04.2005 16:30
Jaxx   Я тут вот чего-то написал, правда нифига не работа...   7.04.2005 14:57
Jaxx   Ну так что, никто мне не поможет?! Скажите, в ...   12.04.2005 14:09
volvo   Jaxx, ты ходил по первой ссылке, которую я тебе да...   12.04.2005 14:22
Jaxx   А в моём варианте проги, кроме заполнения массива ...   13.04.2005 16:02
Altair   А зачем разбивать на слова? вот еще способ без раз...   12.04.2005 14:54
volvo   :no: "Во всех зарезервированных словах, зап...   12.04.2005 15:02
Jaxx   Между прочим, OlegZ, твоя программа работает непра...   12.04.2005 16:27
volvo   Oleg_Z, вот и ответ на твой вопрос:   12.04.2005 16:45
Jaxx   Вот в этом то и моя проблема. Как проверить, являе...   12.04.2005 17:05
volvo   Ты меня понимать не хочешь? Я же тебе привел ссылк...   12.04.2005 17:30
volvo   Кстати, если функцию progwork, написанную Oleg_Z ч...   12.04.2005 18:30
Altair   Ну раскритиковали :) Я шаблон для рассуждений дал ...   13.04.2005 14:13
volvo   :blink: А ты проверь, работает она, или нет. Если ...   13.04.2005 16:11
Jaxx   Я и так знаю, что она не работает. :unsure: И воо...   13.04.2005 16:17
Jaxx   А почему не пашет такой вариант: Uses CRT; var z...   15.04.2005 15:51
volvo   Возьмем вот эти 2 цикла: for i:=1 to 51 do    ko...   15.04.2005 16:59
Jaxx   А вот так: uses crt; const znak:array[1..14] of ...   19.04.2005 14:36
volvo   А здесь - я прогнал пошагово... Посмотри вниматель...   19.04.2005 14:57
Jaxx   Да я бы взял, но хочется понять, где я допускаю о...   19.04.2005 15:54
Romtek   Не сочтите за оффтоп, но есть готовые программы фо...   19.04.2005 21:09
Jaxx   Вот только с примерами всего-то 40 Мб :p2:   20.04.2005 13:50
Romtek   Вот исходник и ЕХЕ вместе.   20.04.2005 16:30


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 11:15
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"