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

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

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

2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
> строки
сообщение
Сообщение #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.

Заранее ОГРОМНОЕ спасибо
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.

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


Гость






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


Гость






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


Гость






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


Гость






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


Гость






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


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

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

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


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


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


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


Гость






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


Пионер
**

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

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


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


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


Гость






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


Гость






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

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


Гость






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


Гость






Небольшой вопросик ? А почему массив от 0 до 130?? И что мне нужно изменить, чтобы слова без гласных не считались как один слог???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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}
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


Гость






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


Гость






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

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

 





- Текстовая версия 29.06.2022 6:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name