Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2010, 02:22   #1
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию работа со строками в паскале

на паскале
Дан текстовый файл
-надо подсчитывать длины строк (с учетом пробелов м/у словами) и выдавать распределение этих длин.
-подсчитывать число строк, слов и букв в исходном тексте.
букв и строк я уже написал как подсчитывать, а вот со строками проблемка, хотя может можно и было как нить пограмотней написать, но писал ночью, и уже не особо думал)

Код:
uses crt;
Const mn=['а'..'я'];
type mas = array[1..250] of integer;
Var f:text;
i,j,byk,sl,str,dl:integer;
name:string;
s:char;
word :string;
a: mas;
BEGIN
writeln('введите имя файла');
readln(name);
assign(f,name);
reset(f);
s:=' ';
sl:=0;
byk:=0;
str:=0;
      while not eof(f) do
      begin
      readln(f,word);
      i:=1;
      While i<=length(word) do
            begin
            if word[i]<>' ' then sl:=sl+1;
            while (word[i]<>' ') and (i<=length(word)) do inc(i);
            inc(i)
            end;
      end;
      close(f);
               reset(f);
               while not eof(f) do
                begin
                while not eoln(f) do
                      begin read(f,s);
                      if (s in mn) then byk:=byk+1;
                      end;
                      readln(f);

                end;
                close(f);


writeln('число слов: ',sl,' число букв: ',byk,' число строк: ',str);
END.

Последний раз редактировалось kuzzz; 07.03.2010 в 11:34.
kuzzz вне форума Ответить с цитированием
Старый 07.03.2010, 14:30   #2
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

никто не может помочь или подсказать?(((
kuzzz вне форума Ответить с цитированием
Старый 07.03.2010, 21:10   #3
RUSt88
Участник клуба
 
Регистрация: 29.12.2009
Сообщений: 1,166
По умолчанию

Цитата:
букв и строк я уже написал как подсчитывать, а вот со строками проблемка
так в чем проблема? строки написал горишь и тут же со строками проблема у тя.

мож проблема с подсчетом слов? слово - это что такое? набор символов до знака препинания или пробела. вот тебе и алгоритм - значит надо считывать в переменную знаки до пробела\точки\зпт\и т.п., как только на них наткнешься, кол-во слов +1
прогер C\C++\C#\Delphi
ася: [семь 3]-[97]-[1 шесть]
RUSt88 вне форума Ответить с цитированием
Старый 08.03.2010, 14:33   #4
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

у меня считает буквы и слова)))) мне нужно подсчитать колличество строк в тексте)
примерный алгоритм я знаю, но вот реализовать в коде что то не получается, не понимаю каким переменным что присваивать, но принцип такой, считывать строку до энтера, и ели ентер то +1 и дальше идти, а вот как это сделать не соброжу(((
и как раз как только подсчетаю колличество строк, тои длинну строку туда еще впихну)))) вот такую цепочку хочу сделать) что бы было примерно так
ведите имя файла
ррырвыф.тхт
колличество слов - n
кол-во букв - m
кол-во строк - z
длина i строки - x
и т.д...)

Последний раз редактировалось kuzzz; 08.03.2010 в 14:39.
kuzzz вне форума Ответить с цитированием
Старый 08.03.2010, 14:35   #5
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

был бы благодарен если бы просто выложили примерный код подсчета строк в тексте, а там я подкорректирую и подправлю)))
kuzzz вне форума Ответить с цитированием
Старый 08.03.2010, 15:06   #6
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

все, разобрался))))
kuzzz вне форума Ответить с цитированием
Старый 08.03.2010, 15:06   #7
kuzzz
 
Регистрация: 18.05.2009
Сообщений: 9
По умолчанию

все работает хорошо только с txt файлами, и c небольшими doc. а при большых текстах в doc выдает ошибку, мол, ревышен лимит строки 0..255, как и нде исправить, подскажите пожалуйста
Код:
uses crt;
Const mn=['а'..'я'];
const n = 1500;
type mas = array[1..n] of integer;
Var f:text;
i,j,byk,sl,dl,kol:integer;
name:string;
s,c:char;
word,str :string;
a:mas;
BEGIN
writeln('введите имя файла');
readln(name);
assign(f,name);
reset(f);
s:=' ';
sl:=0;
byk:=0;
kol:=0;
dl:=0;
c:=chr(13);
      while not eof(f) do
      begin
      readln(f,word);
      i:=1;
      While i<=length(word) do
            begin
            if word[i]<>' ' then sl:=sl+1;
            while (word[i]<>' ') and (i<=length(word)) do inc(i);
            inc(i)
            end;
      end;
      writeln('число слов: ',sl);
      close(f);
               reset(f);
               while not eof(f) do
                begin
                while not eoln(f) do
                      begin read(f,s);
                      if (s in mn) then byk:=byk+1;
                      end;
                      readln(f);
 
                end;
                writeln('число букв: ',byk);
                close(f);
 
 
      reset(f);
                while not eof(f) do
                begin
                readln(f,str);
                kol:=kol+1;
                end;
                writeln('колличество строк: ',kol);
                close(f);
      reset(f);
                while not eof(f) do
                begin
                     for j:=1 to kol do
                     begin
                     readln(f,str);
                     dl:=length(str);
                     writeln('длинна ',j,' строки: ',dl);
                     end;
                end;
                close(f);
readln;
END.

Последний раз редактировалось kuzzz; 08.03.2010 в 16:04.
kuzzz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Паскале со строками maziLa Помощь студентам 2 28.12.2008 16:08
Помогите со строками в паскале kiki14 Помощь студентам 2 16.05.2007 17:46
Помогите пожалуйста со строками в паскале. radist Паскаль, Turbo Pascal, PascalABC.NET 6 14.01.2007 01:26