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

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

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

Дан текстовый файл, содержащий произвольный текст. Выяснить, чего в нем больше: букв или цифр.
program Project1; 
 
{$APPTYPE CONSOLE} 
 
uses 
SysUtils; 
 
var t:file of char; 
a,s,b,c:integer; x,y:char; 
begin 
assign(t,'text.txt'); 
rewrite(t); 
readln(x); 
write(t,x); 
a:=0; 
s:=0; 
reset(t); 
while not eof(t) do begin 
read(t,y); 
if y in ['0'..'9'] then 
a:=a+1 else 
if y in ['А'..'Я','а'..'я'] then 
s:=s+1; 
end; 
close(t); 
if a>s then writeln('Chisel bolshe') else 
if a<s then writeln('bukv bolshe') else 
if a=s then writeln('odinakovo'); 
readln; 
end.
Каждый раз когда тестишь прогу то буквы за цифры принимает то наоборот а бывает так что введешь какую то комбинацию букв и цифр где букв больше а прога выдает что одинаково...не понятно где косяк

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

textual
Листинг программы
const
    DIGITS: Set Of Char = ['0'..'9'];
    LETTERS: Set Of Char = ['a'..'z', 'A'..'Z', 'А'..'п', 'р'..'ё']; //по поводу русских букв - не помню точно.
var
    f: File Of Char;
    c: Char;
    dCount, lCount: LongWord;
begin
    dCount := 0; lCount := 0;
    Assign(f, 'f.txt'); ReSet(f);
    while (Not EoF(f)) do
    begin
        Read(f, c);
        if (c in LETTERS)
        then
            Inc(lCount)
        else
            if (c in DIGITS)
            then
                Inc(dCount);
    end;
    Close(f);
    if (lCount > dCount)
    then
        Write('1Букв больше!')
    else
        if (lCount < dCount)
        then
            Write('2Цифр больше!')
        else
            Write('3Одинаково!');
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
Похожие ответы