Найти максимальное повторение гласной и согласной буквы в тексте - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Помогите..пока буквы были строчными работала, использовал UpCase выдает только гласные. Исправьте, пожалуйста
Листинг программы
  1. uses crt;
  2. const sog=['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'];
  3. gl=['A','E','Y','U','I','O'];
  4. var s,s1:string;
  5. i,k,mx,mx1,p:byte;
  6. c,t:char;
  7. begin
  8. writeln('Введите строку:');
  9. readln(s);
  10. s1:=s;
  11. mx:=0;
  12. for i:=1 to length(s) do
  13. s[i] := UpCase(s[i]);
  14. if s[i] in sog then
  15. begin
  16. k:=0;
  17. while pos(s[i],s1)>0 do
  18. begin
  19. k:=k+1;
  20. delete(s1,pos(s[i],s1),1);
  21. end;
  22. if k>mx then
  23. begin
  24. mx:=k;
  25. c:=s[i];
  26. end;
  27. end;
  28. s1:=s;
  29. mx1:=0;
  30. for i:=1 to length(s) do
  31. s[i] := UpCase(s[i]);
  32. if s[i] in gl then
  33. begin
  34. p:=0;
  35. while pos(s[i],s1)>0 do
  36. begin
  37. p:=p+1;
  38. delete(s1,pos(s[i],s1),1);
  39. end;
  40. if p>mx1 then
  41. begin
  42. mx1:=p;
  43. t:=s[i];
  44. end;
  45. end;
  46.  
  47. if mx=0 then write('В строке нет согласных букв!')
  48. else write('Наиболее частая согласная буква ',c,' повторяется ',mx,' раз(а)');
  49. writeln;
  50. if mx1=0 then write('В строке нет гласных букв!')
  51. else write('Наиболее частая гласная буква ',t,' повторяется ',mx1,' раз(а)');
  52. end.

Решение задачи: «Найти максимальное повторение гласной и согласной буквы в тексте»

textual
Листинг программы
  1. const sog=['B','C','D','F','G','H','J','K','L','M','N','P','Q','R','S','T','V','W','X','Z'];
  2.       gl=['A','E','Y','U','I','O'];
  3. var s:string;
  4. a:array ['A'..'Z'] of integer;
  5. i,mx1,mx2:integer;
  6. c,sogl,glas:char;
  7. begin
  8. writeln('Введите строку:');
  9. readln(s);
  10. For c:='A' to 'Z' do a[c]:=0;
  11. For i:=1 to Length(s) do begin
  12. c:=Upcase(s[i]);
  13. a[c]:=a[c]+1;
  14. end;
  15. mx1:=0;
  16. mx2:=0;
  17. For c:='A' to 'Z' do begin
  18. IF c in sog THEN begin
  19.   IF a[c]>mx1 THEN begin mx1:=a[c];
  20.                           sogl:=c;
  21.                     end;
  22.                   end
  23.              ELSE begin
  24.   IF a[c]>mx2 THEN begin mx2:=a[c];
  25.                           glas:=c;
  26.                     end;
  27.                    end;
  28. end;
  29. if mx1=0 then write('В строке нет согласных  букв!')
  30. else write('Наиболее частая согласная буква ',sogl,'  повторяется ',mx1,' раз(а)');
  31. writeln;
  32. if mx2=0 then write('В строке нет гласных букв!')
  33. else write('Наиболее частая гласная буква ',glas,'  повторяется ',mx2,' раз(а)');
  34. end.

Объяснение кода листинга программы

  1. Создаются две константы: sog и gl, которые содержат наборы букв для поиска.
  2. Создается переменная s типа string для хранения введенной строки.
  3. Создается массив a типа array ['A'..'Z'] of integer для подсчета количества каждой буквы в строке.
  4. Запускается цикл For для каждой буквы в строке.
  5. Внутри цикла буква преобразуется в верхний регистр и присваивается переменной c.
  6. Проверяется, содержится ли эта буква в константе sog. Если да, то проверяется, сколько раз она встречается в строке.
  7. Если буква встречается больше, чем mx1, то mx1 обновляется и присваивается значение этой буквы. Также присваивается значение c переменной sogl.
  8. Если буква не содержится в константе sog, то аналогичные действия выполняются для переменной mx2 и буквы из константы gl.
  9. После завершения цикла выводится сообщение, если mx1 равно 0, то В строке нет согласных букв! иначе Наиболее частая согласная буква [sogl] повторяется [mx1] раз(а).
  10. Аналогично выводится сообщение для переменной mx2.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы