Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
5 / 5 / 6
Регистрация: 29.03.2012
Сообщений: 29
1

Подсчет согласных букв в строке

04.10.2012, 19:41. Показов 3557. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
программа должна подсчитать сколько согласных в строке
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
uses crt;
const n=2;
//const R=['б','Б','в','В','г','Г','д','Д','ж','Ж','з','З','й','Й','к','К','л','Л','м','М','н','Н','п','П','р','Р','с','С','т','Т','ф','Ф','х','Х','ц','Ц','щ','Щ','Ш','ш','ь','Ь','ъ','Ъ'];
type
   mas=array[1..n] of string;
var
   a:mas;
   sum:integer;
   st:string;
procedure vvod(var a:mas); //ввод массива
var
   i:integer;
begin
   writeln('введите строки');
   for i:=1 to n do
   readln(a[i]);
end;
procedure vuvod(var a:mas); //вывод массива
var
   i:integer;
begin
   for i := 1 to n do
    writeln(a[i]:4);
 end;
 procedure chet(st:string; var a:mas; sum:integer); //подсчет
 var
    i:integer;
 begin
     st:='бБвВгГдДжЖзЗйЙкКлЛмМнНпПрРсСтТфФхХцЦщЩШшьЬъЪ';
    sum:=0;
    for i:=1 to length(a[i]) do
    if pos(a[i],st)<>0 then inc(sum);
 end;
 begin
    vvod(a);
    vuvod(a);
    chet(st,a,sum);
    writeln('sum=',sum);
 end.
написал с ошибками, вероятно совсем не правильно. как будит правильно?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2012, 19:41
Ответы с готовыми решениями:

Подсчет гласных и согласных букв в строке
Помогите пожалуйста. Нужно написать полностью программу(если не усложнит сильно дело, написать к...

Множества: определить, каких букв – гласных или согласных – больше в заданной строке
Дана строка символов. Определить, каких букв – гласных или согласных – больше в этой строке.Сначала...

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

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

4
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
04.10.2012, 21:53 2
вот как вариант
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  str: string;
  i,k: integer;
begin
  write('Введите строку: ');
  readln(str);
  for i:=1 to length(str) do
    if str[i] in['б','Б','в','В','г','Г','д','Д','ж','Ж','з','З','й','Й','к','К','л','Л','м','М','н','Н','п','П','р','Р','с','С','т','Т','ф','Ф','х','Х','ц','Ц','щ','Щ','Ш','ш']
      then inc(k);
  writeln('В предложении ',k,' согласных');
  readln;
end.
0
5 / 5 / 6
Регистрация: 29.03.2012
Сообщений: 29
04.10.2012, 21:59  [ТС] 3
Цитата Сообщение от ermolay Посмотреть сообщение
вот как вариант
слишком простой именно предложенным мною необходимо решить. предполагаю что в процедуре подсчет намудрил...
0
3451 / 2389 / 2135
Регистрация: 04.12.2011
Сообщений: 3,966
04.10.2012, 22:22 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
const
  nmax = 255;
//const R=['б','Б','в','В','г','Г','д','Д','ж','Ж','з','З','й','Й','к','К','л','Л','м','М','н','Н','п','П','р','Р','с','С','т','Т','ф','Ф','х','Х','ц','Ц','щ','Щ','Ш','ш','ь','Ь','ъ','Ъ'];
type
  mas = array[1..nmax] of string;
 
var
  a: mas;
  sum: integer;
  st: string;
 
function vvod(var a: mas): integer;//ввод массива
var
  i: integer;
  ch: char;
begin
  writeln('введите строкy');
  while ord(ch)<>13 do
  begin
    read(ch);
    inc(i);
    a[i]:=ch;
  end;
  vvod:=i;
end;
 
procedure vuvod(var a: mas);//вывод массива
var
  i,n: integer;
begin
  for i := 1 to n do
    writeln(a[i]:4);
end;
 
procedure chet(st: string; var a: mas; n: integer);//подсчет
var
  i: integer;
begin
  st := 'бБвВгГдДжЖзЗйЙкКлЛмМнНпПрРсСтТфФхХцЦщЩШшьЬъЪ';
  sum := 0;
  for i := 1 to n do
    if pos(a[i], st) <> 0 then inc(sum);
end;
var
  n: integer;
begin
  n:=vvod(a);
  vuvod(a);
  chet(st, a, n);
  writeln('sum=', sum);
end.
как то так..

Добавлено через 1 минуту
Цитата Сообщение от винт Посмотреть сообщение
writeln('введите строки');
почему строки? программа подсчитывает согласные одной строки (максимум - 255 символов)
1
5 / 5 / 6
Регистрация: 29.03.2012
Сообщений: 29
04.10.2012, 22:48  [ТС] 5
Цитата Сообщение от ermolay Посмотреть сообщение
почему строки?
я решил раз массив то строки будут располагаться примерно так:
привет
как оно
хорошо
а так просто пишу для себя подсказки.
спасибо! все работает
0
04.10.2012, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2012, 22:48
Помогаю со студенческими работами здесь

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

В строке определить количество гласных и согласных букв
В строке определить количество гласных и согласных букв

Определить, каких букв — гласных или согласных больше в строке
Задание: Ввести строку, содержащую цифры и буквы латинского алфавита. Определить, каких букв -...

Проверить, каких букв в строке больше: гласных или согласных.
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или...


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

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