Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
ParkWay
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 6
1

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

27.02.2012, 18:18. Просмотров 1136. Ответов 2
Метки нет (Все метки)

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

З.Ы. Очень прошу помощи.

Добавлено через 28 минут
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
program glas;
uses crt;
type T_str=array[1..10] of string[80];
     T_set=set of char;
var s,new: T_str;
    alf,gls,sogl: T_set;
    kol,i,j,kolg,kolsg,schet,num,num1:byte;
    prom: string;
    arr:array[0..80] of byte;
begin
clrscr;
num:=1;
textcolor(green);
schet:=1;
kolg:=0; kolsg:=0;
alf:=['A'..'Z'];
gls:=['A','E','I','O','U','Y'];
sogl:=['B','C','D','F','G','H','J','K',
'L','M','N','P','Q','R','S','T','V','W','X'];
writeln;
writeln(' Vvedite kol-vo slov(ne > 10 !):');
readln(kol);
writeln;
textcolor(red);
writeln(' VVODIM TOLKO ZAGLAVNIMI !!!');
textcolor(green);
writeln;
for i:=1 to kol do
   begin
   writeln(' vvod ',i,'-go slova:');
   readln(s[i]);
   prom:=s[i];
   kolg:=0; kolsg:=0;
   for j:=1 to length(prom) do
      begin
      if (prom[j] in gls) then
         kolg:=kolg+1
      else kolsg:=kolsg+1;
      end;
      arr[j]:=kolg;
   end;
   for j:=1 to kol do
   Write('-',arr[j]);
   if num<arr[j] then num:=j;
   Write('!!',num);
clrscr;
writeln;
writeln(' IsHodnii massiv slov:');
writeln;
for i:=1 to kol do
   begin
   write(' ',s[i]);
   end;
readkey;
writeln;writeln;
writeln(' Slova gde > glas.');
writeln;
for i:=1 to schet do
   begin
   write(' ',new[i]);
   end;
readkey;
end.
Вот код предыдущей задачи - выводит слова в которых больше гласных, чем согласных.
Но как поменять местами слова я не могу придумать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2012, 18:18
Ответы с готовыми решениями:

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

Найти слова, содержащие наибольшее и наименьшее количество нечетных цифр, и поменять их местами
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Слова могут...

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

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

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

2
КонецСвета
Почетный модератор
7929 / 3900 / 2464
Регистрация: 30.10.2011
Сообщений: 5,379
27.02.2012, 18:29 2
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;
const nmax=50;
var a: array [1..nmax] of string[80];
    n,i,j,k,kmax,kmin,imax,imin: byte;
    g: set of char;
    s: string;
begin
g:=['E','Y','I','O','A'];
repeat
write('Количество слов, не более ',nmax,', n=');
readln(n);
until n in [1..nmax];
writeln('');
kmin:=85;
kmax:=0;
for i:=1 to n do
    begin
    k:=0;
    write(i,' слово : ');
    readln(a[i]);
    for j:=1 to length(a[i]) do
        if a[i][j] in g then inc(k);
    if k>kmax then
       begin
       imax:=i; kmax:=k;
       end;
    if k<kmin then
       begin
       imin:=i; kmin:=k;
       end;
    end;
writeln('До обмена');
for i:=1 to n do
    write(a[i],' ');
writeln;
s:=a[imin];
a[imin]:=a[imax];
a[imax]:=s;
writeln('После обмена');
for i:=1 to n do
    write(a[i],' ');
readln;
end.
1
ParkWay
0 / 0 / 0
Регистрация: 27.02.2012
Сообщений: 6
27.02.2012, 18:46  [ТС] 3
Спасибо большое
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2012, 18:46

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

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

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


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

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

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