Помощь - Поиск - Пользователи - Календарь
Полная версия: Составить таблицу слов данного предложения, начинающихся на букву
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
artem66rus
Составить таблицу слов данного предложения, начинающихся на букву "Ж" // "ж", с указанием числа повторений каждого такого слова. (прогамма считает как большую букву Ж так и маленькую ж) - паскаль АБС

Не могу разобратся с регистром (считает либо Ж или ж )
Может Вы поможете в дополнении программы

program slova;
Uses Crt;
var
stroka, slovo : string;
i,k : integer;
begin
ClrScr;
WriteLn('Введите строку ');
TextColor(Cyan);
ReadLn(stroka);
stroka:=stroka + '.';
i:= 1; TextColor(LightGreen);
while Length(stroka) <> 0 do
begin
if pos(copy(stroka,i,1),' ,.?!-:;') <> 0
then begin
slovo := copy(stroka,1,i-1);
if slovo[1]='ж' then
writeln(slovo);
delete(stroka,1,i);
i := 1;

end
else i := i+1;
end;
end.



Lapp
Цитата(artem66rus @ 25.04.2011 12:18) *

Составить таблицу слов данного предложения, начинающихся на букву "Ж" // "ж", с указанием числа повторений каждого такого слова. (прогамма считает как большую букву Ж так и маленькую ж) - паскаль АБС

Не могу разобратся с регистром (считает либо Ж или ж )
Может Вы поможете в дополнении программы

program slova;
Uses Crt;
var
stroka, slovo : string;
i,k : integer;
begin
ClrScr;
WriteLn('Введите строку ');
TextColor(Cyan);
ReadLn(stroka);
stroka:=stroka + '.';
i:= 1; TextColor(LightGreen);
while Length(stroka) <> 0 do
begin
if pos(copy(stroka,i,1),' ,.?!-:;') <> 0
then begin
slovo := copy(stroka,1,i-1);
if slovo[1]='ж' then
writeln(slovo);
delete(stroka,1,i);
i := 1;

end
else i := i+1;
end;
end.



Ты работай с множествами. Оно же тут напрашивается..
 if slovo[1] in ['Ж','ж'] then .. 

А применять Pos для определения является ли символ разделителем - это вообще крайне нецелесообразно.. И copy зачем?? Странно, дальше ты вроде не стесняешься непосредственно брать символ из слова..
    if stroka[i] in [' ', ',', '.', '?', '!', '-', ':', ';'] then ...


Но все равно неплохо )).
А до частотной таблицы пока дело не дошло?
artem66rus
Цитата(Lapp @ 25.04.2011 14:44) *


А применять Pos для определения является ли символ разделителем - это вообще крайне нецелесообразно.. И copy зачем?? Странно, дальше ты вроде не стесняешься непосредственно брать символ из слова..
    if stroka[i] in [' ', ',', '.', '?', '!', '-', ':', ';'] then ...


Но все равно неплохо )).
А до частотной таблицы пока дело не дошло?


частотная таблица - что это?? объясни дураку ))

Цитата(Lapp @ 25.04.2011 14:44) *


Pos для определения является ли символ разделителем - это вообще крайне нецелесообразно


А как лучше???
Lapp
Цитата(artem66rus @ 25.04.2011 12:49) *
частотная таблица - что это?? объясни дураку ))
Это то, что спрашивается в задании ))
вывод слов с количеством повторений

Цитата
А как лучше???
Ну я же написал, как.
artem66rus
Цитата(Lapp @ 25.04.2011 15:19) *

Это то, что спрашивается в задании ))
вывод слов с количеством повторений



вот это я и не знаю как сделать! Помогите пожалуйста

про POS до меня дошло, исправил, спасибо!
Lapp
Цитата(artem66rus @ 25.04.2011 13:26) *
вот это я и не знаю как сделать! Помогите пожалуйста

Заведи массив строк для слов. Все слова на ж склоадывай в него. Новые слова проверяй на совпадение со старыми.
artem66rus
Цитата(Lapp @ 25.04.2011 15:53) *

Заведи массив строк для слов. Все слова на ж склоадывай в него. Новые слова проверяй на совпадение со старыми.


Так как это когдом написать?????
Lapp
Цитата(artem66rus @ 25.04.2011 14:00) *
Так как это когдом написать?????

Примерно так же, как ты сделал в параллельной теме ))

Сделай Split
пройдись по полученному массиву и выброси слова, начинающиеся не с Ж
потом упорядочи массив
потом пройдись по нему и считай повторения
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.