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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> строки
VIK@
сообщение 24.12.2005 20:23
Сообщение #1


Гость






Посмотрите, пожалуйста, какие ошибки, а то чего-то не получается sad.gif
Определить каков процент слов в тексте начинается на
букву К. Слова разделены пробелами.

var
a,k: string [100];

i,b,m,c: integer;
x: real;
begin
writeln ('Введите текст:');
readln (S);
cut:=0
S:=' ' + S;
b:=length (S);
for i:=1 to b do
begin
k:= ' ' + 'k';
if copy (a,i,2)=k then m:=m+1;
end;
writeln ('количество k=',m)
writeln('x=', X:4:3);
end.

Заранее ОГРОМНОЕ спасибо
 К началу страницы 
+ Ответить 
КМА
сообщение 24.12.2005 22:15
Сообщение #2


Гость






var
a: string [100];

i,m: integer;
x: real;
begin
writeln ('Введите текст:');
readln (S);
S:=' ' + S;
for i:=1 to length (s) do
if (s[i]=' ' and s[i]=k)
then m:=m+1;
writeln ('количество k=',m);
x:=(m/length (s))*100;
writeln('%=', X:4:1);
end.

Вот , вроде должна пойти.
 К началу страницы 
+ Ответить 
volvo
сообщение 24.12.2005 22:19
Сообщение #3


Гость






А почему делим на длину строки, а не на общее число слов в строке? Что, если у меня будет строка:
Код
"kuku                "
(16 пробелов), то процент будет равен 5%? Вообще-то тут 100% должно получиться...
 К началу страницы 
+ Ответить 
Гость
сообщение 24.12.2005 22:25
Сообщение #4


Гость






Мда, ты прав, тогда может завести еще одну переменную, которая будет сообщать о количестве слов???
Например
if s[i]=' ' and s[i+1]<>' '
then inc (summWord);
 К началу страницы 
+ Ответить 
Shura
сообщение 24.12.2005 22:34
Сообщение #5


Пионер
**

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

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


Да и вообще, выложенная программа не скомпилируется))
А цикл надо начинать с двойки, а не с единицы, т.к. первый символ строки мы сделали пробелом.
Вот код:

Код

Var
s: String;
i,w,k: Byte;

Begin
WriteLn('Enter string: ');
ReadLn(s);

k:=0;
w:=0;
s:=' '+s;

for i:=2 to length(s)
do if (s[i-1] = ' ')and(s[i] <> ' ')
    then begin
      Inc(w);
       if s[i] = 'k'
       then Inc(k)
     end;

Write((k*100/w):0:1, ' percents.');
ReadLn
End.


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 9:44
Сообщение #6


Гость






СПАСИБО ОГРОМНОЕ!!!!!!!!! Если не трудно, подскажите, пожалуйста, как быть со второй задачей..
Нужно определить сколько слов в тексте содержат один слог, два слога, три слога и т.д.
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 14:40
Сообщение #7


Гость






Ну помогите, пожалуйста, завтра зачет, а у меня вообще никаких идей как решается задача.. sad.gif((
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 17:00
Сообщение #8


Гость






На вас последняя надежда... откликнитесь, pls!!!!
 К началу страницы 
+ Ответить 
klem4
сообщение 25.12.2005 17:41
Сообщение #9


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


Тут смотря что понимается под слогом .. какие-то конкретные буквосочетания ? Сочетания одной гласной и одной согласной ? Ты бы информации дала побольше


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shura
сообщение 25.12.2005 18:09
Сообщение #10


Пионер
**

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

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


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

Код

Var
a: Array [0..130] of Byte; {i-й элемент массива содержит кол-во слов, которые состоят из i слогов.}
s,w: String; {s - вся строка, w - очередное слово}
i,n: Byte;
f: Boolean; {прибавлять ли к w очередную букву}

Function Slogs(s: String): Byte; {Возвращает кол-во слогов}
var
  i,p: Byte;
begin
  p:=0;
  for i:=1 to length(s)
  do if s[i] in ['e','y','u','i','o','a']
     then Inc(p);
   if p = 0
   then p:=1;  
  Slogs:=p
end; {Slogs}

Begin
Write('Enter string: ');
ReadLn(s);
s:=' ' + s;

w:='';
f:=false;
for i:=2 to length(s)
do begin
     if (s[i] <> ' ')and(s[i-1] = ' ')
     then f:=true;
     if ((s[i] = ' ')or(i = length(s)))and(f)
     then begin
       f:=false;
       Inc(a[slogs(w)]);
       w:=''
      end;
      if f
      then w:=w+s[i]
    end;

for i:=0 to 130
do if a[i] <> 0
    then WriteLn('Slov, soderzhaschih ', i, ' slogov: ', a[i], '.');

ReadLn
End.


Сообщение отредактировано: Shura - 25.12.2005 18:30


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 18:17
Сообщение #11


Гость






спасибо.. а разве есть в русском языке слова без гласных?
 К началу страницы 
+ Ответить 
Shura
сообщение 25.12.2005 18:20
Сообщение #12


Пионер
**

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

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


Та в русском языке полно таких слов!!! smile.gif)) Тебе для русского надо? Ну тогда все в порядке - просто поменяй в функции множество латинских на множество русских гласных, и готово. А в английском языке по-другому слога считаются... Ну, я думаю преподу сдать - это подойдет.


--------------------
Старайтесь восполнять пробелы в области незнания! ;-D
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 18:23
Сообщение #13


Гость






Заинтересовал... какие например?
 К началу страницы 
+ Ответить 
volvo
сообщение 25.12.2005 18:24
Сообщение #14


Гость






Цитата
Ну тогда все в порядке

Еще пример привести? wink.gif
 К началу страницы 
+ Ответить 
Гость
сообщение 25.12.2005 18:32
Сообщение #15


Гость






Все, разобралась... Спасибо!!!
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 19:03
Сообщение #16


Гость






Небольшой вопросик ? А почему массив от 0 до 130?? И что мне нужно изменить, чтобы слова без гласных не считались как один слог???
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 19:06
Сообщение #17


Гость






Begin
Write('Enter string: ');
ReadLn(s);
s:=' ' + s;

w:='';
f:=false;
for i:=2 to length(s)
do begin
if (s[i] <> ' ')and(s[i-1] = ' ')
then f:=true;
if ((s[i] = ' ')or(i = length(s)))and(f)
then begin
f:=false;
Inc(a[slogs(w)]);
w:=''
end;
if f
что писать тут? что-то пропущено..

then w:=w+s[i]
end;

for i:=0 to 130
do if a[i] <> 0
then WriteLn('Slov, soderzhaschih ', i, ' slogov: ', a[i], '.');

ReadLn
End.
 К началу страницы 
+ Ответить 
volvo
сообщение 25.12.2005 19:34
Сообщение #18


Гость






Цитата
что-то пропущено..
blink.gif Ничего тут не пропущено... F это Boolean, все в порядке... Ты бы запустила программу сначала, потом - критикуй...

Цитата
чтобы слова без гласных не считались как один слог

Function Slogs(s: String): Byte; {Возвращает кол-во слогов}
var i, p: Byte;
begin
p:=0;
for i:=1 to length(s)
do if s[i] in ['e','y','u','i','o','a']
then Inc(p);
{ if p = 0 then p:=1; } { <--- Убрать это !!! }
Slogs:=p
end; {Slogs}
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 19:39
Сообщение #19


Гость






Пробовала - не работает.. sad.gif((((
 К началу страницы 
+ Ответить 
VIK@
сообщение 25.12.2005 19:41
Сообщение #20


Гость






А почему массив от 0 до 130??
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 1:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"