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
сообщение 12.04.2005 14:54
Сообщение #2


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

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

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


А зачем разбивать на слова?
вот еще способ без разбиения, прога во всех зарез. словах первую букуву делает большой.
var
zar:array[1..51] of string[15];

function progwork(s:string):string;
var
i:integer;  n:byte;
begin
for i:=1 to 51 do  if pos(zar[i],s)<>0 then begin
 n:=pos(zar[i],s);
 s[n]:= upcase(s[n]);
end;
progwork:=s;
end;

var
f,f1:text; s:string;
begin
zar[1]:='and'; zar[2]:='asm';zar[3]:= 'array';zar[4]:= 'begin';zar[5]:= 'case';
zar[6]:= 'const';zar[7]:= 'constructor';zar[8]:= 'destructor';zar[9]:= 'div';zar[10]:= 'do';
zar[11]:= 'downto';zar[12]:= 'else';zar[13]:= 'end';zar[14]:= 'exports';zar[15]:= 'file';
zar[16]:= 'for';zar[17]:= 'function';zar[18]:= 'goto';zar[19]:= 'if';zar[20]:= 'implementation';
zar[21]:= 'in';zar[22]:= 'inherited';zar[23]:= 'inline';zar[24]:= 'interface';
zar[25]:= 'label';zar[26]:= 'library';zar[27]:= 'mod';zar[28]:= 'nil';zar[29]:= 'not';
zar[30]:= 'object';zar[31]:= 'of';zar[32]:= 'or';zar[33]:= 'packed';zar[34]:= 'procedure';
zar[35]:= 'program';zar[36]:= 'record';zar[37]:= 'repeat';zar[38]:= 'set';zar[39]:= 'shl';
zar[40]:= 'shr';zar[41]:= 'string';zar[42]:= 'then';zar[43]:= 'to';zar[44]:= 'type';zar[45]:= 'unit';
zar[46]:= 'until';zar[47]:= 'uses';zar[48]:= 'var';zar[49]:= 'while';zar[50]:= 'with';zar[51]:= 'xor';
readln(s);
assign(f,s);
assign(f1,'D:\temp1.pas');
{$i-}reset(f);{$i+}
If IOresult<>0 then begin writeln('error'); readln; halt; end;
rewrite(f1);
repeat
 readln(f,s);
 writeln(f1,progwork(s));
until eof(f);
close(F); close(f1);
end.



--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  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:18
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"