Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 36
1

Указать слово, в котором доля гласных максимальна

06.11.2009, 22:15. Показов 3452. Ответов 6
Метки нет (Все метки)

В заданном предложении указать слово,в котором доля гласных максимальная.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2009, 22:15
Ответы с готовыми решениями:

Указать слово, в котором доля гласных (А, Е, I, O) максимальна
В заданном предложении указать слово, в котором доля гласных (А, Е, I, O) максимальна.

В предложении указать слово, в котором доля гласных максимальна
пожалосто кто можит помоч в PASCALE....Условие задачи:в заданном предложении указать слово, в...

В предложении указать слово, в котором доля гласных максимальна
В заданнном предложении указать слово в котором доля гласных максимальна

В заданном предложении указать слово, в котором доля гласных(A,E,I,O) максимальна
пожалосто кто можит помоч в PASCALE....Условие задачи:в заданном предложении указать слово, в...

6
Программист 1С
859 / 647 / 187
Регистрация: 03.03.2009
Сообщений: 1,154
06.11.2009, 22:21 2
jordj-93, Можно так!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
uses crt;
var str,substr,maxstr:string;
      max:real;
      i,kolgl,j:integer;
begin
clrscr;
writeln('Введите строку ');
readln(str);
 
substr:='';
max:=0;
kolgl:=0;
for i:=1 to length(str) do
   begin
      if str[i] in ['a'..'z','A'..'Z'] then substr:=substr+str[i]
      else
         if substr<>'' then
         begin
            for j:=1 to length(substr) do
               if (substr[j] in ['e','u','i','o','a','E','U','I','O','A']) then kolgl:=kolgl+1;
            if(kolgl>0)and(max<kolgl/length(substr)) then
               begin
                  max:=kolgl/length(substr);
                  maxstr:=substr;
               end;
               substr:='';
               kolgl:=0;
        end;
   end;
writeln(maxstr);
readln;
end.
Добавлено через 1 минуту
jordj-93, Или так..--с комментариями!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
var predl: string; //наше предложение
word: string; //текущее слово
maxword: string; //искомое слово
percent: real; //процент гласных в текущем
maxpercent: real; //процент гласных в искомом
glasn: set of char; //множество гласных букв
letters: set of char; //множество всех букв
ch: char; //очередной символ
i: integer;
wln, gcount: integer; //длина и колво гласных в текущем
 
begin
glasn := ['A', 'E', 'I', 'U', 'O', 'a', 'e', 'i', 'u', 'o'];
letters := ['A'..'Z', 'a'..'z'];
//заполняем множества
readln(predl);
wln := 0;
gcount := 0;
maxpercent := 0;
maxword := '';
word := '';
for i := 1 to length(predl) do
//пробегаем по всем символам
begin
ch := predl[i];
if ch in letters then
//если очередной символ буква
begin
word := word + ch;
//дописываем сивол к текущему слову
wln := wln + 1;
if ch in glasn then
gcount := gcount + 1;
//увелчиваем колво букв и гласных в текущем
end
else
//если нет то это какой-то разделитель слов
begin
if wln > 0 then
//проверяем не будет ли деления на 0
//такая ситуация может возникнуть если у нас 2 разделителя подряд
begin
percent := gcount / wln;
//вычисляем процент
if (percent > maxpercent) then
begin
maxword := word;
maxpercent := percent;
end;
//сравниваем
wln := 0;
gcount := 0;
word := '';
//начинаем обработку нового слова
end;
end;
end;
 
if wln > 0 then
begin
percent := gcount / wln;
if (percent > maxpercent) then
begin
maxword := word;
maxpercent := percent;
end;
wln := 0;
gcount := 0;
word := '';
end;
//необходимо для обработки последнего слова, если не в конце не поставлен разделитель
 
writeln(maxword);
end.
0
4337 / 1469 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
06.11.2009, 22:23 3
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
program kkk;
uses crt;
const gl:set of char=['A','O','U','I','E','Y'];
var count,i,j,cc,max_num:integer;
    st,buf:string;
    max:real;
    slova:array[1..100]of string;
begin
 clrscr;
 readln(st);
 count:=1;
 repeat
  if (st[1]=' ') or (length(st)=1) then while st[1]=' ' do delete(st,1,1)
  else
  begin
   while (st[1]<>' ') and (length(st)>1) do
   begin
    buf:=buf+st[1];
    delete(st,1,1);
   end;
  slova[count]:=buf;
  buf:='';
  inc(count);
  end;
 until (length(st)=1) and (length(buf)=0);
 
 max:=-1;
 max_num:=0;
 for i:=1 to count-1 do
 begin
  cc:=0;
  for j:=1 to length(slova[i]) do if upcase(slova[i][j]) in gl then inc(cc);
  if cc>max*length(slova[i]) then
  begin
   max:=cc/length(slova[i]);
   max_num:=i;
  end;
 end;
 if max_num=0 then writeln('Нет таких слов!') else
 writeln(slova[max_num]);
 readln;
end.
0
28 / 28 / 7
Регистрация: 03.10.2009
Сообщений: 122
07.11.2009, 20:25 4
один из вариантов: 1.создаем массив из согласных
............................2.удаляем соглассные из слов
............................3.проверяем длину каждого слова, нужные символы выводим на печать

ну или массив из гласных
0
4337 / 1469 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
07.11.2009, 20:29 5
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program kkk;
uses crt;
const gl:set of char=['A','O','U','I','E','Y'];
var count,i,j,cc,max_num:integer;
    st,buf:string;
    max:real;
    slova:array[1..100]of string;
begin
 clrscr;
 readln(st);
 count:=1;
 repeat
  if (st[1]=' ') or (length(st)=1) then while st[1]=' ' do delete(st,1,1)
  else
  begin
   while (st[1]<>' ') and (length(st)>1) do
   begin
    buf:=buf+st[1];
    delete(st,1,1);
   end;
  slova[count]:=buf;
  buf:='';
  inc(count);
  end;
 until (length(st)=1) and (length(buf)=0);
 
 
 for i:=1 to count-1 do
 begin
  cc:=0;
  for j:=1 to length(slova[i]) do if upcase(slova[i][j]) in gl then inc(cc);
  writeln(slova[i],' - доля гласных - ',(100*cc/length(slova[i])):0:3),'%');
 end;
 readln;
end.
2
0 / 0 / 0
Регистрация: 03.11.2009
Сообщений: 36
07.11.2009, 21:12  [ТС] 6
огргмное спасибо

Добавлено через 3 минуты
а можешь еще сделать чтобы отдельно выводилось слово с наибольшей долей?
0
4337 / 1469 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
07.11.2009, 21:15 7
https://www.cyberforum.ru/pascal/thread61758.html
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2009, 21:15

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

В заданном предложении указать слова в котором доля гласных а, е, о максимальна.
Помогите решить задачи на строки: 1)в заданном предложении указать слова в котором доля гласных...

В заданном предложении укажите слово, в котором доля гласных «А» максимальна
В заданном предложении укажите слово, в котором доля гласных «А» максимальна.

Для каждого слова заданного предложения укажите долю со-гласных. Определите слово, в котором доля согласных максимальна
Помогите пожалуйста)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.