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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2008, 12:10   #1
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

Дана строка символов. Слова в строке разделены одним пробелом.
В заданном предложении указать слово, в котором доля гласных (А,Е,И,О) максимальна.

помогите плиз

напишите да или хоть подскажите уже весь день делаю не получается

Последний раз редактировалось Alex21; 21.03.2008 в 07:41.
fikret123 вне форума Ответить с цитированием
Старый 16.03.2008, 14:52   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

А где код ? Хотя бы что-то ?
Что конкретно не получается ?
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 15:11   #3
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

ну я нахожу количество слов
в первом слове только получается найти эти буквы
а вот чтоб ко всему предложению незнаю ..
fikret123 вне форума Ответить с цитированием
Старый 16.03.2008, 15:21   #4
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

А зачем количество слов ?

В цикле проходим все символы строки.
Находим очередной пробел. Все, что до предыдущего пробела - очередное слово.
В этом слове проверяем количество гласных (можно делать это по ходу цикла). Если оно больше, чем в предыдущем слове, запоминаем это слово.

Какое действие непонятно ?
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 15:50   #5
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

у меня же не 2 слова всего там нужно ввести строку где скоко угодно может быть пробелов

напиши да блин не фига не получается

Код:
var s,sub:string;
p,i,j,k,max:integer;
begin
writeln ('BBeguTe CTpoKy');
readln(s);
p:=pos(' ',s);
sub:=copy(s,1,p);
k:=0;
for j:=1 to length(sub) do if (sub[j]='a')or(sub[j]='e') then k:=k+1;
for i:=length(sub) to length(s) do
if (s[i]='a')or(s[i]='e')or(s[i]='o') then
writeln(k);
end.

Последний раз редактировалось Alex21; 16.03.2008 в 16:23. Причина: Чтобы дописать - используй кнопку Править
fikret123 вне форума Ответить с цитированием
Старый 16.03.2008, 16:00   #6
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

P := 1; // позиция за последним найденным пробелом
G := 0; // последнее количество найденных гласных
W:= ''; // последнее найденное слово

C:= 0; // текущее количество гласных
В цикле проходим все символы строки.
for i:=1 to length(S) do begin
if S[i] in ['АЕИО'] then inc(C);

Находим очередной пробел.
if (S[i] = ' ') or (i = length(S)) then begin

Все, что до предыдущего пробела -
очередное слово.
В этом слове проверяем количество гласных (можно делать это по ходу цикла). Если оно больше, чем в предыдущем слове, запоминаем это слово.
if C > G then begin
G := C;
W := слово от позиции P до позиции i


end;
// Запоминаем позицию после пробела
P := i+1;
C := 0; // сбрасываем счетчик гласных
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 16:17   #7
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

как программу напиши да
я не понял
fikret123 вне форума Ответить с цитированием
Старый 16.03.2008, 16:24   #8
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Код:

var S, W:String;
    P, G, C, i : integer;
begin
   S := 'строка слов разделенных пробелом';
   P := 1; G := 0; W:= ''; C:= 0;
   for i:=1 to length(S) do begin
      if (S[i] in ['а','е','и','о']) then inc(C);
      if (S[i] = ' ') or (i = length(S)) then begin
         if C > G then begin
            G := C;
            W := copy(S, P, i-P+1);
         end;
         P := i+1;
         C := 0;
      end;
   end;
   writeLn(W);
alexBlack вне форума Ответить с цитированием
Старый 16.03.2008, 16:33   #9
fikret123
Пользователь
 
Регистрация: 16.03.2008
Сообщений: 26
По умолчанию

спасибо, а че делает inc
fikret123 вне форума Ответить с цитированием
Старый 16.03.2008, 16:39   #10
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Ну, приплыли. А я распинаюсь.
Слово increment о чем нибудь говорит ?
А F1 нажать сил нет ?
alexBlack вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
разбить строку Ceprey Общие вопросы C/C++ 10 24.12.2009 20:47
Как проверить строку? nikleb PHP 6 07.07.2008 22:04
Числа в строку DeDoK Общие вопросы Delphi 8 07.06.2008 00:08
Как подставить строку в код? Voyager-69 Общие вопросы Delphi 4 09.05.2008 00:08
Считать строку XATAB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.04.2008 21:18