Помогите пожалуйста!) ) Как провести считывание из файла букв латинницы (не учитывая регистр) попутно подсчитывая их количество? Строка в файле может быть любой длины. .
я пробовал так
for i:=1 to 26 do
schet:=0;
letter:=copy ( abc, i, 1 );
repeat
read ( infile, c);
c:=upcase(c);
if c = letter then
begin
schet:=schet+1;
end;
until eof(infile);
Другие языки программирования и технологии
И Снова Паскаль
Доброго времени суток.
С трудом понимаю, что вам требуется. Есть файл, состоящий из строк символов. Все символы латиница или нет? Главного не сказали. То что строка может иметь любую длину ничего не дает.
Итак. Если в строке могут быть кроме латиницы и другие символы, то прислушайтесь к DiG DeePeR в части множества символов латиницы. Если вам надо, ко всему прочему, подсчитывать количество каждого символа, то советую сделать так. Объявляете массив, индексами которого будут символы латиницы.
var C : array['A'..'Z'] of Byte; {или Word, если текст большой, а поскольку не учитывая регистр, то от A до Z}
FillChar(C, SizeOf(C), 0); {обнулили массив С}
затем открываете файл на чтение
Assign(InFile, 'MyFile.txt');
Reset(InFile);
И приступаете к чтению строк
while not Eof(InFile) do begin
ReadLn(InFile, AnyStr);
for j:=1 to Length(AnyStr) do
if UpCase(AnyStr[j]) in ['A'..'Z'] then
Inc(C[UpCase(AnyStr[j])]);
end;
А теперь можно вывести подсчитанное количество символов.
for ch:='A' to 'Z' do
if C[ch] > 0 then WriteLn(ch, ' - ', C[ch]); {вывод встретившихся в тексте символов и их количества}
Все. Остальное оформление сами, плз.
Удачи!
С трудом понимаю, что вам требуется. Есть файл, состоящий из строк символов. Все символы латиница или нет? Главного не сказали. То что строка может иметь любую длину ничего не дает.
Итак. Если в строке могут быть кроме латиницы и другие символы, то прислушайтесь к DiG DeePeR в части множества символов латиницы. Если вам надо, ко всему прочему, подсчитывать количество каждого символа, то советую сделать так. Объявляете массив, индексами которого будут символы латиницы.
var C : array['A'..'Z'] of Byte; {или Word, если текст большой, а поскольку не учитывая регистр, то от A до Z}
FillChar(C, SizeOf(C), 0); {обнулили массив С}
затем открываете файл на чтение
Assign(InFile, 'MyFile.txt');
Reset(InFile);
И приступаете к чтению строк
while not Eof(InFile) do begin
ReadLn(InFile, AnyStr);
for j:=1 to Length(AnyStr) do
if UpCase(AnyStr[j]) in ['A'..'Z'] then
Inc(C[UpCase(AnyStr[j])]);
end;
А теперь можно вывести подсчитанное количество символов.
for ch:='A' to 'Z' do
if C[ch] > 0 then WriteLn(ch, ' - ', C[ch]); {вывод встретившихся в тексте символов и их количества}
Все. Остальное оформление сами, плз.
Удачи!
проще всего использовать признак вхождения в множество ['A'..'z']
типа:
for x:=1 to length(abc) if abc[x] in ['A'..'z'] then schet:=schet+1
примерно так ))
p.s. подразумевается, что abc - строка из файла
типа:
for x:=1 to length(abc) if abc[x] in ['A'..'z'] then schet:=schet+1
примерно так ))
p.s. подразумевается, что abc - строка из файла
chars: array [0..255] of byte;
c: char;
..
fillchar(chars, 256, 0);
repeat
read(c);
if c in ['A'..'z'] then inc(chars[byte(c)]);
until eof;
c: char;
..
fillchar(chars, 256, 0);
repeat
read(c);
if c in ['A'..'z'] then inc(chars[byte(c)]);
until eof;
Похожие вопросы
- Снова Паскаль) ) Переменные и занимаемая ими память
- Аналог ассоциативного массива в Паскале.
- Я внутри написал, что я знаю про паскаль не то что решать и все такое а так теоретический в общем, смысл проги, я прав?
- ПАСКАЛЬ и ГРАФИКА
- Товарищи программисты на Delphi и Pascal помогите девушке!!!)) вопрос глупый..насчет паскаля..
- Проблема с оператором random в паскале
- С++, блин, легче Паскаля.
- Нужны программы на языке Паскаль
- Вопрос про ЯП Паскаль.
- Объясните зачем учить ЯП Паскаль для обучения программированию?