Выяснить, чего в тексте больше: букв или цифр - 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Одинаково!
- Если количество букв больше чем количество цифр, выводится сообщение
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д