Выяснить, чего в тексте больше: букв или цифр - Pascal

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

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

Дан текстовый файл, содержащий произвольный текст. Выяснить, чего в нем больше: букв или цифр.
Листинг программы
  1. program Project1;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. var t:file of char;
  6. a,s,b,c:integer; x,y:char;
  7. begin
  8. assign(t,'text.txt');
  9. rewrite(t);
  10. readln(x);
  11. write(t,x);
  12. a:=0;
  13. s:=0;
  14. reset(t);
  15. while not eof(t) do begin
  16. read(t,y);
  17. if y in ['0'..'9'] then
  18. a:=a+1 else
  19. if y in ['А'..'Я','а'..'я'] then
  20. s:=s+1;
  21. end;
  22. close(t);
  23. if a>s then writeln('Chisel bolshe') else
  24. if a<s then writeln('bukv bolshe') else
  25. if a=s then writeln('odinakovo');
  26. readln;
  27. end.
Каждый раз когда тестишь прогу то буквы за цифры принимает то наоборот а бывает так что введешь какую то комбинацию букв и цифр где букв больше а прога выдает что одинаково...не понятно где косяк

Решение задачи: «Выяснить, чего в тексте больше: букв или цифр»

textual
Листинг программы
  1. const
  2.     DIGITS: Set Of Char = ['0'..'9'];
  3.     LETTERS: Set Of Char = ['a'..'z', 'A'..'Z', 'А'..'п', 'р'..'ё']; //по поводу русских букв - не помню точно.
  4. var
  5.     f: File Of Char;
  6.     c: Char;
  7.     dCount, lCount: LongWord;
  8. begin
  9.     dCount := 0; lCount := 0;
  10.     Assign(f, 'f.txt'); ReSet(f);
  11.     while (Not EoF(f)) do
  12.     begin
  13.         Read(f, c);
  14.         if (c in LETTERS)
  15.         then
  16.             Inc(lCount)
  17.         else
  18.             if (c in DIGITS)
  19.             then
  20.                 Inc(dCount);
  21.     end;
  22.     Close(f);
  23.     if (lCount > dCount)
  24.     then
  25.         Write('1Букв больше!')
  26.     else
  27.         if (lCount < dCount)
  28.         then
  29.             Write('2Цифр больше!')
  30.         else
  31.             Write('3Одинаково!');
  32. end.

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

  1. Объявление констант:
    • DIGITS - множество символов от '0' до '9'
    • LETTERS - множество символов от 'a' до 'z', от 'A' до 'Z' и от 'А' до 'п', а также от 'р' до 'ё' (по-видимому, множество русских букв)
  2. Объявление переменных:
    • f - файл символов
    • c - символ
    • dCount и lCount - переменные типа LongWord для подсчета количества цифр и букв соответственно
  3. Инициализация переменных:
    • dCount устанавливается в 0
    • lCount устанавливается в 0
  4. Открытие файла для чтения:
    • Файл f.txt открывается
  5. Чтение символов из файла и подсчет количества цифр и букв:
    • Пока не достигнут конец файла, символ c считывается из файла
    • Если c принадлежит множеству LETTERS, количество букв lCount увеличивается на 1
    • В противном случае, если c принадлежит множеству DIGITS, количество цифр dCount увеличивается на 1
  6. Закрытие файла:
    • Файл закрывается
  7. Вывод результата:
    • Если количество букв больше чем количество цифр, выводится сообщение 1Букв больше!
    • Если количество цифр больше чем количество букв, выводится сообщение 2Цифр больше!
    • В противном случае, выводится сообщение 3Одинаково!

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


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

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

13   голосов , оценка 4 из 5

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

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

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