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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2013, 00:30   #1
DAn9I
 
Регистрация: 15.05.2013
Сообщений: 8
По умолчанию Дан текст, посчитать сколько букв 'c' в каждом из слов.

Помогите решить, на первый взгляд задачка простая, но никак не могу додуматься как ее сделать .
Собственно задача:
Дан текст, посчитать сколько букв 'c' в каждом из слов.
DAn9I вне форума Ответить с цитированием
Старый 03.07.2013, 02:37   #2
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Можно по подробнее,в каком виде дан текст?(переменная,массив или файл) И имеет ли значение рациональность выполнения?
Golden_RUS вне форума Ответить с цитированием
Старый 21.07.2013, 21:41   #3
Maxloki
Новичок
Джуниор
 
Регистрация: 21.07.2013
Сообщений: 6
Сообщение

Код:
Program bukvac;
Uses crt;
Var s:string;
    f,i:byte;
Begin clrscr;
Write ('Введите текст:');
Readln (s);
For i:= 1 to length (s) do
   If ((s[i]='с') or (s[i]='c')) then f:=f+1;
Write ('Количество букв с=',f);
End.
Вот код такой программы, если надо можно чтобы вводился текст из файла (потребуется переделать начало программы), главное здесь сама задача!
Две буквы с проверяются потому что 'с' есть английская и русская.

Последний раз редактировалось Stilet; 23.07.2013 в 07:19.
Maxloki вне форума Ответить с цитированием
Старый 21.07.2013, 22:42   #4
interacia
Пользователь
 
Аватар для interacia
 
Регистрация: 24.01.2013
Сообщений: 67
По умолчанию

Осмелюсь чуть-чуть подкорректировать вашу программу.
Поскольку в условии указано (Дан текст, посчитать сколько букв 'c' в каждом из слов.)
Программа будет выводить количество букв в каждом слове в столбик.

Код:
 Program bukvac;
 Uses crt;
 Var s:string;
 f,i:byte;
 Begin clrscr;
 Write ('Введите текст:');
 Readln (s);
 f:=0;
 If ((s[1]='с') or (s[1]='c')) then f:=f+1;
 For i:= 2 to length (s) do begin
 If ((s[i]='с') or (s[i]='c')) then f:=f+1;
 if (s[i]=' ') and (not(s[i-1]=' '))  then begin Writeln(f); f:=0; end;
 end;
 Writeln(f);
 
 End.
interacia вне форума Ответить с цитированием
Старый 22.07.2013, 11:09   #5
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

interacia
Решение, вроде, верное, но я бы дал такие советы:
1. Буква С может оказаться и большой (строчной), поэтому этот кусок кода
Код:
If ((s[i]='с') or (s[i]='c'))
я бы написал так
Код:
if UpperCase(s[i]) in ['C','С']
2. Не особо мне нравится то, что первый символ обрабатывается отдельно от всей остальной строки.
Вадим Мошев вне форума Ответить с цитированием
Старый 22.07.2013, 23:41   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
if UpperCase(s[i]) in ['C','С']
Это написано на ДЭльфийском. А т.к. раздел "Паскаль", то наверное, лучше писать UpCase.
Poma][a вне форума Ответить с цитированием
Старый 23.07.2013, 00:03   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
А т.к. раздел "Паскаль", то наверное, лучше писать UpCase.
бессмыслено так писать. русские буквы (кириллица) стандартным UpCase в Паскаль (по крайней мере в TurboPascal) не обрабатываются, да и не вижу острой необходимости привязываться к особенностям языка, вместо:
Код:
if s[i] in ['c','C','с','С'] then ...


кстати, я думаю, что автор темы явно неверно понял задание. Ему дан текст на определённом языке и нужно найти букву C одного из алфавитов (т.е. либо строго русскую, либо строго латинскую, но никак не ту или другую...)
Хотел бы я посмотреть на рассуждения автора, если бы в задании было сказано:
"Cосчитать сколько букв 'w' в каждом из слов."
или — "Cосчитать сколько букв 'ф' в каждом из слов."
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.07.2013, 00:23   #8
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
бессмыслено так писать
Ага. Мой косяк. Признаю. Прошу простить.
Цитата:
(по крайней мере в TurboPascal)
Во Free дела обстоят так же..
Цитата:
"Cосчитать сколько букв 'w' в каждом из слов."
Тут явный намек на букву Ш
Цитата:
"Cосчитать сколько букв 'ф' в каждом из слов."
А тут уже целое сочетание cp
Poma][a вне форума Ответить с цитированием
Старый 23.07.2013, 07:21   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Во Free дела обстоят так же..
В нем хотя бы есть AnsiUperCase().
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.07.2013, 08:23   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
В нем хотя бы есть AnsiUperCase().
наверное, AnsiUpperCase()
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано предложение, слова отделяются друг от друга пробелами. Подсчитать, сколько букв «а» в каждом слове. alexx7312 Помощь студентам 1 28.05.2013 20:51
Дан файл, содержащий текст на русском языке. Выяснить входит ли данное слово в указанный текст,и если да, то сколько раз. NataliaShipaeva Помощь студентам 2 28.05.2013 18:07
Посчитать сколько слов в текст.файле содержат 1,2,3..буквы (при работе зависает).Delphi. neytron007 Помощь студентам 3 03.01.2013 20:58
Определите сколько слов заданного текста составлено из букв русского алфавита, а сколько из букв латинского алфавита. Слова, в кот potemos Паскаль, Turbo Pascal, PascalABC.NET 2 18.04.2012 13:14
Установить сколько согласных букв в каждом слове данного предложения ivan89 Общие вопросы C/C++ 2 12.11.2008 15:29