0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 6
1

Сделать так, чтобы паскаль не воспринимал знаки препинания за слова

25.03.2016, 19:18. Показов 1004. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дано следующее задание(ниже), эта программа считает знаки препинания за слова, а если будет несколько подряд идущих пробелов, то и их переносит на отдельные строки. Необходимо, чтобы даже несколько подряд идущих разделителей считались за одного.
Все никак не могу придумать
Буду очень благодарна, если кто-либо поможет или хотя бы подскажет

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
program stroki;
var  k,i,c,n:integer; {n-длина строки, с - счетчик пробелов}
     word,s, name:string;
     f:text;
begin
writeln ('Задание:',
'Читать тестовые строки из файла и печатать на экране каждое слово ',
'на отдельной строке с отступом от начала строки, ',
'равным номеру слова в строке.');
 
k:=0;
while k=0 do begin
                   write('Введите название файла - ');
                   readln(name);
                   {$I-}
                   assign(f, name);
                   reset(f);
                   {$I+}
                   if IORESULT<>0 then writeln('Файл не существует.')
                   else k:=1;
                   end;
while not Eof(f) do begin
     readln(f, s);
     writeln('Исходная строка:');
     writeln(s);
     c:=0;
     word:='';
     n:=length(s);
     for i:=1 to n  do begin
         if s[i]<>' ' then begin
         word:=word+s[i];
         end;
         if (s[i]=' ') then begin
         c:=c+1;
         writeln(' ':c,word);
         word:='';
         end;
         if i=n then begin
         c:=c+1;
         writeln(' ':c,word);
         end;
     end;
end;
close(f);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 19:18
Ответы с готовыми решениями:

Удалить из файла все слова в нижнем регистре, а так же знаки препинания
Необходимо из файла удалить все слова в нижнем регистре а так же знаки препинания. Пример...

Сделать, чтобы поле long_text выводило только 950 знаков, включая пробелы и знаки препинания
Нет, нет, делал поиск по сайту, нашел похожее, но там немного другое. У меня проблема поглубже....

как сделать так, чтобы знаки остались на месте
Хочу, чтобы была как бы загрузка и знаки (&quot;/&quot; и &quot;&quot;) заменяли друг друга

Как сделать так, чтобы после каждого знака препинания в строке стоял пробел?
Дело в том,что у меня осталась последняя задача,которую не могу довести до ума как все же сделать...

3
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.03.2016, 19:33 2
Есть разные способы. Например:
Объявите константу-множество разделителей.
Прочитав строку добавьте в конец запятую, потом замените в строке все разделители на запятые. Удалите лишние запятые
while pos(',,',s)>0 do
delete(s,pos(',,'),1);
После этого строка будет выглядеть так
слово,слово,слово,
Сейчас копируйте слово, считайте, выводите и удаляйте из строки
1
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 6
25.03.2016, 19:57  [ТС] 3
Цитата Сообщение от Puporev Посмотреть сообщение
while pos(',,',s)>0 do
delete(s,pos(',,'),1);
Ошибка 87: Предлагается "," на третьей по счету скобке
Pascal
while pos(',,',s)>0 do delete(s,pos(',,'),1);
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
25.03.2016, 19:59 4
Pascal
1
delete(s,pos(',,',s),1);
0
25.03.2016, 19:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2016, 19:59
Помогаю со студенческими работами здесь

Знаки препинания и продвигаемые слова
Верно ли утверждение о том, что: Рядом с ключ. выражением не должно стоять знаков препинания? ...

Заменить знаки препинания на соответствующие слова
Заменить знаки препинания на соответствующие слова С++ (работа с файлами)

добавить исключение, чтобы не переворачивались знаки препинания
код: using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Как распарсить предложение на слова и знаки препинания?
Здравствуйте! Столкнулся с проблемой. Вот допустим у меня есть предложения: &quot;Привет! Как у тебя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru