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

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

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

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Форматирование исходников, Паскаль-программ
сообщение
Сообщение #21


Пионер
**

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

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


Цитата(volvo @ 13.04.05 16:11)
blink.gif А ты проверь, работает она, или нет.
Если работает, то нет ошибок. Или ты думаешь мы как-то по другому будем определять ее корректность?

Я и так знаю, что она не работает. unsure.gif И вообще. Меня на работе загрузили немного более серьезным языком программирования (RLL называется). Забот полон рот, как говорится. А тут ещё учёба со своим Паскалем. Ну не понимаю я его, и все!!! :fire:


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


Пионер
**

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

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


А почему не пашет такой вариант:
Код

Uses CRT;
var
znak:array[1..8] of string;
slovo:array[1..51] of string[15];
kolvo:array[1..51] of byte;
kol:byte;
ch:char;
i,n:integer;
t:integer;
s,s1:string;
f:text;
begin
clrscr;
write('Vvedite imya redaktiruemogo faila: ');
readln(s);
assign(f,s);
reset(f);
{$I-}if ioresult<>0 then begin
     write('Oshibka chteniya faila!');
     halt(1); end;
{$I+}
s:=''; s1:=''; kol:=0;
slovo[1]:='and';slovo[2]:='asm';slovo[3]:='array';slovo[4]:='begin';slovo[5]:='case';
slovo[6]:='const';slovo[7]:='constructor';slovo[8]:='destructor';slovo[9]:='div';slovo[10]:='do';
slovo[11]:='downto';slovo[12]:='else';slovo[13]:='end';slovo[14]:='exports';slovo[15]:='file';
slovo[16]:='for';slovo[17]:='function';slovo[18]:='goto';slovo[19]:='if';slovo[20]:='implementation';
slovo[21]:='in';slovo[22]:='inherited';slovo[23]:='inline';slovo[24]:='interface';
slovo[25]:='label';slovo[26]:='library';slovo[27]:='mod';slovo[28]:='nil';slovo[29]:='not';
slovo[30]:='object';slovo[31]:='of';slovo[32]:='or';slovo[33]:='packed';slovo[34]:='procedure';
slovo[35]:='program';slovo[36]:='record';slovo[37]:='repeat';slovo[38]:='set';slovo[39]:='shl';
slovo[40]:='shr';slovo[41]:='string';slovo[42]:='then';slovo[43]:='to';slovo[44]:='type';slovo[45]:='unit';
slovo[46]:='until';slovo[47]:='uses';slovo[48]:='var';slovo[49]:='while';slovo[50]:='with';slovo[51]:='xor';
i:=0;
znak[1]:=' ';znak[2]:='.';znak[3]:=',';znak[4]:=';';znak[5]:=':';
znak[6]:='(';znak[7]:=')';znak[8]:='=';
for i:=1 to 51 do
    kolvo[i]:=kol;
while not seekeof(f) do begin
    readln(f,s);
    n:=length(s);
    t:=n-(n+1);
    if s=slovo[i] then begin
       if (s[t]=znak[i]) and (s[n+1]=znak[i]) then
          kolvo[i]:=kol+1;
    end;
    end;
    s1:='';
    s:='';
    for i:=1 to 51 do begin
       if kolvo[i]>0 then begin
          writeln('Slovo ',slovo[i],' vstrechaetsia ',kolvo[i],' raz');
    end;
 end;
readln;
close(f);
close(f1);
end.


Сообщение отредактировано: Jaxx -


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


Гость






Возьмем вот эти 2 цикла:
 for i:=1 to 51 do
   kolvo[i]:=kol;

{ СТОП !!! Дальше можешь не ходить }
{ Значение i после выхода из цикла НЕ ОПРЕДЕЛЕНО }

while not seekeof(f) do begin
   readln(f,s);
   n:=length(s);
   t:=n-(n+1);
   if s=slovo[i] then begin
      if (s[t]=znak[i]) and (s[n+1]=znak[i]) then
         kolvo[i]:=kol+1;
   end;
   end;
   s1:='';
   s:='';
   for i:=1 to 51 do begin
      if kolvo[i]>0 then begin
         writeln('Slovo ',slovo[i],' vstrechaetsia ',kolvo[i],' raz');
   end;
end;
Может, в "немного более серьезном языке программирования (который RLL называется)" это и не так, но в Паскале ИМЕННО так... angry.gif И никак иначе...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Пионер
**

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

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


А вот так:

uses crt;
const
znak:array[1..14] of byte=(9,10,13,32,40,41,44,46,47,58,59,92,123,125);
var
slovo:array[1..51] of string[15];
{mass:array[1..51] of string;}
mask:array[1..51] of byte;
txt:array[1..60000] of char;
kol:byte;
ns:byte;
f1:text;
f:file of char;
simv:char;
flag:boolean;
j:byte;
n:byte;
dtxt:word;
i:word;
s,s1,temp:string;
begin
clrscr;
write('Vvedite ymia ishodnogo faila: ');
readln(s);
assign(f,s);
{$I-} reset(f); {$I+}
 if ioresult<>0 then begin
    writeln('file not found or read error!');
    readkey;
    close(f);
    halt(1);
 end;
i:=1;
for i:=1 to 51 do mask[i]:=0;
i:=1;
slovo[1]:='and';slovo[2]:='asm';slovo[3]:='array';slovo[4]:='begin';slovo[5]:='case';
slovo[6]:='const';slovo[7]:='constructor';slovo[8]:='destructor';slovo[9]:='div';slovo[10]:='do';
slovo[11]:='downto';slovo[12]:='else';slovo[13]:='end';slovo[14]:='exports';slovo[15]:='file';
slovo[16]:='for';slovo[17]:='function';slovo[18]:='goto';slovo[19]:='if';slovo[20]:='implementation';
slovo[21]:='in';slovo[22]:='inherited';slovo[23]:='inline';slovo[24]:='interface';slovo[25]:='label';
slovo[26]:='library';slovo[27]:='mod';slovo[28]:='nil';slovo[29]:='not';slovo[30]:='object';
slovo[31]:='of';slovo[32]:='or';slovo[33]:='packed';slovo[34]:='procedure';slovo[35]:='program';
slovo[36]:='record';slovo[37]:='repeat';slovo[38]:='set';slovo[39]:='shl';slovo[40]:='shr';
slovo[41]:='string';slovo[42]:='then';slovo[43]:='to';slovo[44]:='type';slovo[45]:='unit';
slovo[46]:='until';slovo[47]:='uses';slovo[48]:='var';slovo[49]:='while';slovo[50]:='with';slovo[51]:='xor';
 write('Vvedite imia novogo faila: ');
 readln(s1);
 assign(f1,s1);
 {$I-} rewrite(f1); {$I+}
  if ioresult<>0 then begin
     writeln('error writing file!');
     readkey;
     close(f1);
     halt(1);
  end;
  s:=''; s1:=''; temp:='';
  kol:=0;
  n:=0;
while not eof(f) do begin
  read(f,simv);
  inc(dtxt);
  ns:=ord(simv);
  txt[dtxt]:=chr(ns);
   for i:=1 to dtxt do begin
       ns:=ord(txt[i]);
       flag:=true;
       for j:=1 to 14 do begin
       if ns=znak[j] then flag:=false;
         if flag then s:=s+txt[i];
        for n:=1 to 51 do begin
          if s=slovo[n] then begin
            mask[n]:=kol+1;
            i:=1;
            for i:=1 to 51 do begin
              n:=i;
              if mask[n]>0 then begin
               write('Slovo : ' ,slovo[n]);
               writeln('vstrechaetsia : ',mask[n],' raz');
               s1:=slovo[n];
               writeln(f1,s1);
              end;
             end;
           end;end;end;end;end; {<== ЗДЕСЬ ПРОГРАММА ОСТАНАВЛИВАЕТСЯ НАМЕРТВО, ВЫХОЖУ ctrl+break}
readln;
close(f);
close(f1);
end.


sad.gif


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


Гость






А здесь - я прогнал пошагово... Посмотри внимательно, что происходит вот тут:

...
 for j:=1 to 14 do begin
   if ns=znak[j] then flag:=false;
   if flag then s:=s+txt[i]; { <-- следующий символ из файла НЕ читается... }
...

Я взял файл с первым словом 'const', но после 5-ой итерации получил в строке s значение "ссссс", т.е. просто дублирование первого символа. Это будет продолжаться бесконечно... Да и вложенных циклов достаточно много - даже если исправишь этот недочет, программа будет медленно работать...

А чего ты не хочешь воспользоваться функцией, которую я приводил в посте №17 (немного переделанная функция Oleg_Z)? Я ее вроде погонял, сбоев не нашел... Нормально работает...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Пионер
**

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

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


Цитата(volvo @ 19.04.05 14:57)
А чего ты не хочешь воспользоваться функцией, которую я приводил в посте №17 (немного переделанная функция Oleg_Z)? Я ее вроде погонял, сбоев не нашел... Нормально работает...

Да я бы взял, но хочется понять, где я допускаю ошибки, чоб знать на будущее. Ошибки-то глупейшие! А из-за них курсач стоит на месте...


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


Знаток
****

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

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


Не сочтите за оффтоп, но есть готовые программы форматирования исходников Паскаля, одна их них - PTOP - Free Pascal source formatter - входит в дистриб компилятора FreePascal, её описание здесь: http://www.freepascal.org/tools/ptop.html
Цитата
ptop is a configurable source formatter. It pretty-prints your pascal code, much like indent does for C code.


Кстати, и исходники её доступны...

Сообщение отредактировано: Romtek -


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #28


Пионер
**

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

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


Цитата(Romtek @ 19.04.05 21:09)
Не сочтите за оффтоп, но есть готовые программы форматирования исходников Паскаля, одна их них - PTOP - Free Pascal source formatter - входит в дистриб компилятора FreePascal, её описание здесь: http://www.freepascal.org/tools/ptop.html
Кстати, и исходники её доступны...

Вот только с примерами всего-то 40 Мб :p2:


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


Знаток
****

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

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


Вот исходник и ЕХЕ вместе.


Прикрепленные файлы
Прикрепленный файл  ptop.rar ( 33.08 килобайт ) Кол-во скачиваний: 199


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 1.01.2026 7:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name