Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для metamarfoz
2 / 2 / 1
Регистрация: 27.08.2009
Сообщений: 106

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

22.12.2012, 20:15. Показов 1285. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, задача 1 курса: Пользователь вводит предложение.. Нужно ввести в массив слов все слова из этого предложения, в которых гласных букв больше, чем согласных. Второй час бьюсь, не могу никак разобрать то, что написал, программа работает некорректно, точнее очень далека от правильной.

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
program a1;
 
type
  mas = array[1..128] of string;
 
var
  s: string[11];
  r: string;
  a: mas;
  flag: boolean;
  i, j, k, d, n, sogl, glas: integer;
 
 
 
begin
  {Вводим строку}
  writeln('Введите строку');
  readln(s);
  {Считываем слова}
  begin
    n := length(s);
    k := 0;flag := true;
    for i := 1 to n do
      if s[i] = ' ' then
        flag := true
      else if flag then begin
        r := copy(s, i, n);
        flag := false;
 
      end;
              write(r);
    {Считаем кол-во согласных и гласных в слове}
    sogl := 0;
    glas := 0;
    for j := 1 to length(r) do 
    begin
      if r[j] in ['Б', 'В', 'Г', 'Д', 'Ж', 'З', 'Й', 'К', 'Л', 'М', 'Н', 'П', 'Р', 'С', 'Т', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ'] then
        sogl := sogl + 1;
      if r[j] in ['А', 'Е', 'Ё', 'И', 'О', 'У', 'Ы', 'Э', 'Ю', 'Я'] then
        glas := glas + 1;
    end;
    {Заносим слово в массив, если выполняется условие}
    if (glas - sogl) > 0 then begin
      d := d + 1;
      a[d] := r;
    end;
  end;
 
end.
Я надеюсь, что мне сможет кто-нибудь, хотя бы разъяснить принцип работы программы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.12.2012, 20:15
Ответы с готовыми решениями:

Определить слова, в которых больше гласных букв, чем согласных
В программировании пока не силен. Не могу решить 3 интересных задачки. Нужна помощь. 1) В предложении, вводимом пользователем с...

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

Множества. Вывести слова в которых гласных букв больше чем согласных
Вывести слова в которых гласных букв больше чем согласных

1
durila :d
 Аватар для baquaqa
125 / 107 / 98
Регистрация: 21.12.2012
Сообщений: 160
23.12.2012, 05:19
Здравствуйте, может быть Вам подойдет такой вариант:
Кликните здесь для просмотра всего текста

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
75
Program Words;
 
Var
  
  i,count:integer;
  WordsMas:Array [1..50] of String;
  inString,iWord:String;
 
  
  
Procedure PullWord(var aString,aWord:string);  
{процедура отделяет от всей строки одно слово
  за слово будем считать любую последовательность 
  символов разделенную пробелами}
 
 Var
 
 iSpace_pos:integer;
 
 begin
 iSpace_pos:=pos(' ',aString); {ищем пробел в строке}   
 if iSpace_pos>0 then begin    {если пробел найден}              
            aWord:=copy(aString,1,iSpace_pos);  {записываем слово в переменную}
            delete(aString,1,iSpace_pos);  {удаляем слово из строки}
            end
       else begin {если пробел не найден}
            aWord:=aString; {то строка является словом}
            aString:=''; 
            end;
end;
 
function ScanWord(var aWord:String):boolean;
{ Функция сканирует слово и возвращает 
  TRUE  если гласных букв больше, чем 
  согласных, иначе FALSE              }
 var
   Sl,Gl:set of char;
   isl,igl,i:integer;
 begin
 
 Sl:=['ц','Ц','к','К','н','Н','г','Г','ш','Ш','щ','Щ','з','З',
      'х','Х','ъ','ь','ф','Ф','в','В','п','П','р','Р','л','Л',
      'д','Д','ж','Ж','ч','Ч','с','С','м','М','т','Т','б','Б',
      'Ъ','Ь']
 ;
 Gl:=['у','У','е','Е','ы','Ы','а','А','о','О','э','Э','я','Я',
      'и','И','ю','Ю']
 ;
 for i:=1 to length(aWord) do
  begin
  if aWord[i] in Sl then inc(iSl);
  if aWord[i] in Gl then inc(iGl);
  
  if iSl < iGl then ScanWord:=TRUE
               else ScanWord:=FALSE
  end;
end;
 
Begin
{ input }
 Write('input String: ');Readln(inString);
{ Scan. string }
 while length(inString)>0 do begin {пока в строке есть слова}
                             PullWord(inString,iWord); {отделяем слово}
                             if ScanWord(iWord) {Проверяем слово}
                             then begin
                                  inc(count);
                                  WordsMas[count]:=iWord
                                  end;
                             end;
                                                     
{ output } 
Writeln('count: ',count);
for i:=1 to count do writeln(WordsMas[i]);                            
End.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.12.2012, 05:19
Помогаю со студенческими работами здесь

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

Посимвольный ввод. Вывести слова в которых гласных букв больше чем согласных
Вывести слова в которых гласных букв больше чем согласных По окончанию введения строки надо ограничение точку.Как это сделать?

Определить в каждой строке слова в которых гласных букв больше чем согласных
Пожалуйста, помогите оч срочно надо. Завтра уже сдавать. дан текстовый файл. Определить в каждой строке слова в которых гласных букв...

В каких словах предложения гласных букв больше чем согласных?
Товарищи! Это снова я, и я снова нуждаюсь в вашей помощи. Желательно бы как можно быстрее. Дана задача: В каких словах предложения гласных...

Вывести слова, в которых гласных букв больше согласных
1)Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные латинские ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru