0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
1

Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u).

03.11.2011, 17:56. Показов 4861. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u).

Горю, помогите!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2011, 17:56
Ответы с готовыми решениями:

Найти все слова в которых чётное количество гласных букв
Условие: Необходимо найти все слова в которых чётное количество гласных букв. Словом считать один...

Найти все слова,содержащие наибольшее кол-во гласных латинских букв
Дан текст.Группа символов,разделенные пробелом. Найти все слова,содержащие наибольшее кол-во...

Найти все слова, содержащие наибольшее количество гласных латинских букв
Помогите пожалуйста. последняя задача осталась. Не могу сообразить как правильно написать. Дан...

Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u)
Через строки: Дан текст. Группы символов, разделенные пробелом (1 или несколько) не содержащие...

17
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
04.11.2011, 21:46  [ТС] 2
Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u).

Часть задачи, как это сделать?

например:

пусть дан текст
t="asdy aso etiur ojhksaa oke"

запишем теперь как массив

t1[1]="asdy"
t1[2]="aso"
t1[3]="etiur"
t1[4]="ojhksaa"
t1[5]="oke"

после выбираем максимальные число входящих букв и выдаем на экран слова содержащие это максимальное число входящих букв
Как записать строку в массив строк?????!!!!!!
0
289 / 34 / 6
Регистрация: 20.09.2011
Сообщений: 464
04.11.2011, 22:45 3
Цитата Сообщение от Sihar Посмотреть сообщение
Как записать строку в массив строк?????!!!!!!
Допустим a - строковый массив, который объявляется так:
Pascal
1
var a:array[1..100] of string;
Тогда записать в него можно так:
Pascal
1
a[i]:='строка';
или так
Pascal
1
a[i]:=t1[1];
0
29 / 29 / 23
Регистрация: 04.11.2011
Сообщений: 65
04.11.2011, 23:19 4
Вы условие точно правильно написали???
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
04.11.2011, 23:27 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
36
37
38
39
40
41
42
43
uses crt;
var a: array [1..10] of string;
    s, sl: string;
    i, j, k, kg, kgmax: integer;
begin
     write ('s='); readln (s); s:=s+' ';
     sl:='';
     j:=1;
     for i:=1 to length (s) do
         if s[i]<>' ' then
                      begin
                      sl:=sl+s[i];
                      if s[i] in ['a','e','u','i','o'] then
                      inc(kg);
                      end
            else
                begin
                     a[j]:=sl;
                     inc(j);
                     sl:='';
                     inc(k);
                     if kg>kgmax then
                        begin
                        kgmax:=kg;
                        kg:=0;
                        end
                     else kg:=0;
                end;
writeln ('Максимальное количество гласных =', kgmax);
        if kgmax>0 then
        begin
             writeln ('содержат следующие слова');
                     for j:=1 to k do
                         begin
                              kg:=0;
                              sl:=a[j];
                              for i:=1 to length(sl) do
                              if sl[i] in ['a','e','u','i','o'] then
                              inc(kg);
                              if kg=kgmax then writeln(a[j]);
                         end;
        end;
end.
1
143 / 143 / 141
Регистрация: 05.04.2011
Сообщений: 270
04.11.2011, 23:31 6
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
uses math;
var
    a:array[1..1000] of string;
    d:array[1..1000] of longint;
    s,ss:string;
    i,k,m,t,j:longint;
begin
 
    readln(s);
    s:=s+' ';
 
    for i:=1 to length(s) do begin
    
        if s[i] in [',','.','!','?',' '] then begin
        
            k:=k+1;
            a[k]:=ss;
            ss:='';
        
        end
        else
        ss:=ss+s[i];
    
    end;
 
    for i:=1 to k do begin
    
        t:=0;
        for j:=1 to length(a[i]) do 
            if a[i][j] in ['a', 'e','i', 'o', 'u'] then t:=t+1;
        d[i]:=t;
        m:=max(m,d[i]);  
    end;
 
    for i:=1 to k do 
        if d[i]=m then writeln(a[i]);
 
end.
0
29 / 29 / 23
Регистрация: 04.11.2011
Сообщений: 65
05.11.2011, 00:29 7
Цитата Сообщение от Small Lamer Посмотреть сообщение
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
uses math;
var
    a:array[1..1000] of string;
    d:array[1..1000] of longint;
    s,ss:string;
    i,k,m,t,j:longint;
begin
 
    readln(s);
    s:=s+' ';
 
    for i:=1 to length(s) do begin
    
        if s[i] in [',','.','!','?',' '] then begin
        
            k:=k+1;
            a[k]:=ss;
            ss:='';
        
        end
        else
        ss:=ss+s[i];
    
    end;
 
    for i:=1 to k do begin
    
        t:=0;
        for j:=1 to length(a[i]) do 
            if a[i][j] in ['a', 'e','i', 'o', 'u'] then t:=t+1;
        d[i]:=t;
        m:=max(m,d[i]);  
    end;
 
    for i:=1 to k do 
        if d[i]=m then writeln(a[i]);
 
end.
Но ведь ваша программа выводит, слово с максимальным количеством гласных, а по условию слова!
НЕ ошибка ли в условии???

Извиняюсь, сам дуренЬ, не так понял код! Прошу простить!
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 00:40  [ТС] 8
О_О ох, спасибо огромное!!!!!
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 00:43  [ТС] 9
да условие таково, что дан текст, ой даже щя скопирну с книги
Условие задачи :

Дан текст. Группы слов, разделены пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть, как и прежде словами. Найти все слова, содержащие наибольшее количество гласных латинских букв (a, e, i, o, u).


это всё что мне было дано!(((
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
05.11.2011, 00:45 10
О, тогда мой код неполноценен (
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 00:47  [ТС] 11
Цитата Сообщение от КонецСвета Посмотреть сообщение
По моему так...
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
uses crt;
var a: array [1..10] of string;
    s, sl: string;
    i, j, k, kg, kgmax: integer;
begin
     write ('s='); readln (s); s:=s+' ';
     sl:='';
     j:=1;
     for i:=1 to length (s) do
         if s[i]<>' ' then
                      begin
                      sl:=sl+s[i];
                      if s[i] in ['a','e','u','i','o'] then
                      inc(kg);
                      end
            else
                begin
                     a[j]:=sl;
                     inc(j);
                     sl:='';
                     inc(k);
                     if kg>kgmax then
                        begin
                        kgmax:=kg;
                        kg:=0;
                        end
                     else kg:=0;
                end;
writeln ('Максимальное количество гласных =', kgmax);
        if kgmax>0 then
        begin
             writeln ('содержат следующие слова');
                     for j:=1 to k do
                         begin
                              kg:=0;
                              sl:=a[j];
                              for i:=1 to length(sl) do
                              if sl[i] in ['a','e','u','i','o'] then
                              inc(kg);
                              if kg=kgmax then writeln(a[j]);
                         end;
        end;
end.

Огромное спасибо, пашет, и главное так просто, а у меня так ваще огромная , длинная, да и в дебри заплутала вместе с преподом((( ОГРОМНОЕ спасибо!!!
0
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 00:48  [ТС] 12
Цитата Сообщение от КонецСвета Посмотреть сообщение
О, тогда мой код неполноценен (
чего так? О_О чёт провронила?
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
05.11.2011, 00:50 13
Осталась без внимания возможность того, что слова могут разделяться не одним пробелом, а несколькими. Сейчас перепробью!
1
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 00:52  [ТС] 14
Цитата Сообщение от Small Lamer Посмотреть сообщение
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
uses math;
var
    a:array[1..1000] of string;
    d:array[1..1000] of longint;
    s,ss:string;
    i,k,m,t,j:longint;
begin
 
    readln(s);
    s:=s+' ';
 
    for i:=1 to length(s) do begin
    
        if s[i] in [',','.','!','?',' '] then begin
        
            k:=k+1;
            a[k]:=ss;
            ss:='';
        
        end
        else
        ss:=ss+s[i];
    
    end;
 
    for i:=1 to k do begin
    
        t:=0;
        for j:=1 to length(a[i]) do 
            if a[i][j] in ['a', 'e','i', 'o', 'u'] then t:=t+1;
        d[i]:=t;
        m:=max(m,d[i]);  
    end;
 
    for i:=1 to k do 
        if d[i]=m then writeln(a[i]);
 
end.

как исправить ошибку "модуль math не найден"? может конечно и глупый вопрос, но с паскалем виделась только 3и года назад(

Добавлено через 2 минуты
КонецСвета, буду весьма благодарна, хотя мона и схитрить, просто в задаче перед её реализацией выдать на экран требование, чтоб пробелы не были двойными)))), канечно это ужене та задача, но всё же))
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
05.11.2011, 00:54 15
Цитата Сообщение от КонецСвета Посмотреть сообщение
Осталась без внимания возможность того, что слова могут разделяться не одним пробелом, а несколькими. Сейчас перепробью!
А, нет, таки работает, зараза.

Добавлено через 58 секунд
И с двумя, и с тремя пробелами - работает!
1
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 01:19  [ТС] 16
огромное спасибо!))) Очень вырули, месяц маилась с ней((((

Добавлено через 18 минут
КонецСвета, прошу простить за наглость, но не могли бы вы оставить рядом с операцией коментарий? мне для школьников коментарий нужен, я примерно понимаю, что и как но путаюсь и не доконца осознаю действия связаные с примерно вот этим inc(kg); и inc(k);

Не могли бы вы для достоверности прокоментирывать прогу рядом с операцией)?
0
Почетный модератор
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
05.11.2011, 01:50 17
Исполняю

Добавлено через 13 минут
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
uses crt;
var a: array [1..10] of string;       // массив, каждый элемент будет словом
    s, sl: string;                    // исходная строка и строка для работы с отдельным словом
    i, j, k, kg, kgmax: integer;      //переменные-счетчики для строки, массива, для подсчета количества слов, гласных в слове, максимального количества гласных в слове
begin
     write ('s='); readln (s); s:=s+' ';    // считываю строку в память и добавляю в конце пробел, чтобы не загружать код для выделения последнего слова
     sl:='';                                // задаю начальное значение переменных - для слова - 0 символов, для счетчика массива слов - 1
     j:=1;
     for i:=1 to length (s) do              // задаю цикл для перебора всех символов строки
         if s[i]<>' ' then                  // если символ строки не является пробелом, то
                      begin
                      sl:=sl+s[i];                         //добавляю этот символ в слово
                      if s[i] in ['a','e','u','i','o'] then        // если символ - это гласная, то
                      inc(kg);                                         // увеличиваю значение количества гласных на 1
                      end
            else                                             // иначе
                begin
                     a[j]:=sl;                               //в элемент массива под номером j помещаю получившееся слово
                     inc(j);                                 // увеличиваю индекс элемента массива на 1
                     sl:='';                                 // очищаю значение переменной слова
                     inc(k);                                 // увеличиваю значение количества слов на 1
                     if kg>kgmax then                        // если количество гласных в слове превышает ранее найденное максимальное значение количества гласных в слове, то
                        begin
                        kgmax:=kg;                          //меняю значение количества гласных в слове на новое, большее
                        kg:=0;                              // очищаю переменную для подсчета гласных в слове
                        end
                     else kg:=0;                            //иначе только очищаю переменную для подсчета гласных в слове
                end;
writeln ('Максимальное количество гласных =', kgmax);       //вывожу на экран максимальное количество гласных в слове
        if kgmax>0 then
        begin
             writeln ('содержат следующие слова');
                     for j:=1 to k do                      // задаю цикл для перебора только что сформированного массива слов
                         begin
                              kg:=0;                       // для каждого слова очищаю вначале количество гласных
                              sl:=a[j];                                //помещаю элемент массива в переменную sl
                              for i:=1 to length(sl) do                     //для этой переменной (слова) задаю цикл перебора для проверки условия
                              if sl[i] in ['a','e','u','i','o'] then              //если символ под номером  i - гласная, то
                              inc(kg);                                                     //увеличиваю количество гласных для данного слова на 1
                              if kg=kgmax then writeln(a[j]);                                    //если количество гласных совпадает с ранее вычисленным максимальным количеством гласных, то
                         end;                                                                    // вывожу этот элемент массива (то есть слово) на экран
        end;
end.
Добавлено через 4 минуты
А inc(i), inc(k) - это меня Dekio научил, за что ему спасибо огромное!
Это просто более оптимальный способ записи выражения
i:=i+1; k:=k+1, то есть процедура увеличения значения на 1
1
0 / 0 / 0
Регистрация: 02.11.2011
Сообщений: 23
05.11.2011, 12:51  [ТС] 18
КонецСвета, ОГОРОМНОЕ СПАСИБО, всё супер!!!!! угу всё поняла))))
0
05.11.2011, 12:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2011, 12:51
Помогаю со студенческими работами здесь

Найти все слова, содержащие наибольшее количество гласных латинских букв
Можете помочь с задачей?? &quot;Дан текст. Группы символов, разделенные пробелами (одним или...

Дан текст (английский). Найти все слова, содержащие наибольшее количество гласных латинских букв. (a,e,i,o,u)
Дан текст (английский). Найти все слова, содержащие наибольшее количество гласных латинских букв....

Hайти все слова, содержащие наибольшее количество гласных латинских букв
Дан текст. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие...

Вывести в алфавитном порядке все слова, содержащие наибольшее количество гласных букв; найти все слова, в которые буква
Вывести в алфавитном порядке все слова, содержащие наибольшее количество гласных букв; найти все...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru