IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на символьный файл
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Определить, чего больше в символьном файле – цифр или букв ла-тинского алфавита.
Вод собствено такая не сложная задача, но чегото не как не получается, помогите... smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Подобные задачи решались, поищи, а алгоритм такой: Читаешь символы из файла, исмотришь если символ - буква (ch in ['a'..'z', 'A'..'Z']) то увеличиваешь счетчик букв, иначе если символ - цифра, то увеличиваешь счетчик цифр, как работать с файлами, в том числе и типизированными (как раз твой вариант, у тебя будет file of char) можешь почитать тут: Файлы


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


rolleyes.gif
program fail;
var f:file of char;
c:char;
a,b:integer;
Begin
Assign(f,'file1.sim');
Rewrite(f);
writeln('Введите символы, окончание точка');
readln©;
while c<>'.' do
begin
write(f,c); readln©;
end;
reset(f);
write('Получен файл');
while not eof(f) do
begin
read(f,c);
write©;
end;
writeln;
a:=0;
b:=0;
begin
assign (f,'file1.sim');
reset (f);
while not eof (f) do
read (f,c);
while not eof (f) do
if c in ['a'..'z', 'A'..'Z'] then
a:=a+1
else
b:=b+1;
end;
close (f);
begin
if a>=b then writeln ('больше букв');
if a<b then writeln ('больше цифр');
end;
end.

Ну вот так у меня получилось, только не работает)) rolleyes.gif Что не так?)) wink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Кстати, тебе обязательно 2 счетчика? Недостаточно при встрече буквы увеличивать счетчик, а при встрече цифры - уменьшать? Тогда сравниваешь с нулем, и однозначно получаешь ответ, чего больше - букв или цифр...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Вот как-то так

uses crt;

var
f: file of char;
ch: char;
a, b: Integer;

begin

clrscr;

assign(f, 'chars.ch');
rewrite(f);

repeat

readln(ch);

if ch <> '.' then write(f, ch);

until ch = '.';

reset(f);

a := 0; b := 0;

while not(eof(f)) do begin

read(f, ch);

if ch in ['a'..'z', 'A'..'Z'] then inc(a) else
if ch in ['0'..'9'] then inc(b);

end;

close(f);

if a > b then writeln('A') else
if b > a then writeln('B') else writeln('AB');

end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 18.04.2024 12:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name