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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 18:11   #1
Dane4ka
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 13
По умолчанию Посчитать кол-во знаков препинания в тексте.

С клавиатуры вводится текст. Слова разделяются пробелом. Ввод текста прекращается после нажатия на клавиатуре точки. Посчитать количесво знаков препинания в этом тексте.

вот что получилось

Program pr7;
var
c: char;
k: integer;
begin
writeln (‘vvedite tekst’);
readln (c);
k:= 0;
repeat
if (c = ‘ , ‘) or (c = ‘ ! ‘) or (c = ‘ ? ‘) or (c = ‘ : ‘) or (c = ‘ ; ‘) then
k:= k + 1;
until с = ‘ . ‘ ;
writeln (‘kolichestvo znakov prepinania = ‘ , k);
readln;
end.

всё работает, но результата добиться никак не могу((( помогите, пожалуйста, в чем ошибки??
Dane4ka вне форума Ответить с цитированием
Старый 08.05.2011, 18:35   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

попробуйте readln(c) убрать, а после repeat написать read(c)
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 08.05.2011, 18:47   #3
Dane4ka
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 13
По умолчанию

не выходит....
Dane4ka вне форума Ответить с цитированием
Старый 08.05.2011, 18:58   #4
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Код:
Program pr7;
var
c: char;
k: integer;
begin
writeln (‘vvedite tekst’);
k:= 0;
repeat
read(c);
if (c = ‘ , ‘) or (c = ‘ ! ‘) or (c = ‘ ? ‘) or (c = ‘ : ‘) or (c = ‘ ; ‘) then
k:= k + 1;
until с = ‘ . ‘ ;
writeln (‘kolichestvo znakov prepinania = ‘ , k);
readln;
end.
У вас такой код получился?
Тип char - "место" только под один символ,а не под строку. Так что перед repeat писать readln(c) и ожидать, что будет прочитана строка, неправильно, прочтется только один символ.
Поэтому в repeat помещаем read(c) - посимвольное считывание, каждый символ на каждом шаге помещается в переменную с
Если помог - кликни на значок весов под аватаром.

Последний раз редактировалось malinoff; 08.05.2011 в 19:01.
malinoff вне форума Ответить с цитированием
Старый 08.05.2011, 19:23   #5
Dane4ka
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 13
По умолчанию

блин....у меня всё равно не выходит результата...уже написала как вы сказали
Dane4ka вне форума Ответить с цитированием
Старый 08.05.2011, 19:44   #6
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Код:
Program pr7;
var
c: char;
k: integer;
begin
writeln (‘vvedite tekst’);
k:= 0;
repeat
read(c);
if (c = ‘,‘) or (c = ‘!‘) or (c = ‘?‘) or (c = ‘:‘) or (c = ‘;‘) then
k:= k + 1;
until с = ‘ . ‘ ;
writeln (‘kolichestvo znakov prepinania = ‘ , k);
readln;
end.
А так?
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 08.05.2011, 19:45   #7
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

а что если вот так ?
Код:
s:string;
i,j:integer;

writeln('Vvedite predlogenie');
readln(s);
j:=0;
for i:=1 to length(s) do
 if (s[i]=',') or (s[i]='!') or (s[i]='?') or (s[i]=':') or (s[i]=';') then j:=j+1;
writeln('kolichestvo znakov prepinania = ',j);
kakawkin вне форума Ответить с цитированием
Старый 08.05.2011, 19:57   #8
Dane4ka
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от kakawkin Посмотреть сообщение
а что если вот так ?
Код:
s:string;
i,j:integer;

writeln('Vvedite predlogenie');
readln(s);
j:=0;
for i:=1 to length(s) do
 if (s[i]=',') or (s[i]='!') or (s[i]='?') or (s[i]=':') or (s[i]=';') then j:=j+1;
writeln('kolichestvo znakov prepinania = ',j);





да, спасибо)))
получилось)))
Dane4ka вне форума Ответить с цитированием
Старый 08.05.2011, 20:05   #9
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Цитата:
Сообщение от Dane4ka Посмотреть сообщение
да, спасибо)))
получилось)))
Вот только сможете ли вы объяснить этот код преподавателю...
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 08.05.2011, 20:38   #10
Dane4ka
Пользователь
 
Регистрация: 13.04.2011
Сообщений: 13
По умолчанию

да попытаюсь уж как-нибудь
только я вот до сих пор не могу понять, почему не получалось сделать как я первоначально писала
Dane4ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить кол-во знаков после запятой k1r1ch Общие вопросы Delphi 3 21.03.2023 11:18
Счёт кол-во знаков в числе (Pascal) _fynjy_ Помощь студентам 6 06.12.2010 20:19
Как посчитать количество знаков PARTOS Microsoft Office Excel 11 05.06.2010 22:46
последовательность знаков препинания Владимир_король Помощь студентам 3 29.04.2010 10:56
Программа удаления знаков препинания... hen Общие вопросы C/C++ 17 11.10.2009 16:57