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