Помощь - Поиск - Пользователи - Календарь
Полная версия: Составить таблицу слов данного предложения, начинающихся на букву
Форум «Всё о Паскале» > 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
пройдись по полученному массиву и выброси слова, начинающиеся не с Ж
потом упорядочи массив
потом пройдись по нему и считай повторения
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.