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

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

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

> Задача по теме Файлов. Номер компонента. + счёт повтор. компонентов!, вообще не врубаюсь =(
сообщение
Сообщение #1


Новичок
*

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

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


вообщем вот эта задача, спасите кто может.

Программа запрашивает имя файла и номер компонента и определяет, сколько повторяющихся компонентов встретилось на участке от начала файла до указанного компонента. Программа печатает сколько раз и какие повторяющиеся компоненты встретилось на заданном участке.

огромное спасибо =)

Сообщение отредактировано: Myasnik -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
сообщение
Сообщение #2


Гость






Ну, и что сложного?
Определяй массив и переменную - счетчик:

Var
arr: array[1 .. max_size] of record
value: integer;
count: integer;
end;
arr_count: integer;


Далее идешь по файлу до того компонента, номер которого ввел как граничный, читаешь очередной компонент, и ищешь его в массиве Arr. Если он есть - увеличиваешь ЕГО count, если нет - добавляешь к Arr (и увеличиваешь arr_count)...

В результате в Arr будут содержаться все компоненты, присутствующие в файле, а в поле Count, соответственно, сколько раз они присутствуют... То, что больше одного раза - распечатываешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


ага, супер я всё понял... lol.gif
p.s. я в теме файлов полный ноль, читал её, нифига не врубился. мне бы лучше бы всю задачу разом. wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Ну, если ты считаешь, что тебе будет легче разобраться в том, что написал я - попробуй:
type
T = integer;

const
max_size = 100;

var
s: string;
f: file of T;
X: T;

arr: array[1 .. max_size] of record
value: T;
count: integer;
end;
arr_count: integer;
found: boolean;
i, j, last: integer;

begin
arr_count := 0;
write('file name = '); readln(s);
assign(f, s); reset(f);
write('last component to read = '); readln(last);

for i := 0 to last do begin

read(f, X);
j := 1; found := false;
while (j <= arr_count) and (not found) do begin

if arr[j].value = X then begin
inc(arr[j].count);
found := true;
end
else inc(j);

end;

if not found then begin
inc(arr_count);
with arr[arr_count] do begin
value := X;
count := 1;
end;
end;

end;
close(f);

for i := 1 to arr_count do
if arr[i].count > 1 then
writeln(arr[i].value:4, ' -> ', arr[i].count:3, ' times');
end.
Файл "f.in" - с целыми компонентами - создашь сам: по условию - файл уже существует...

P.S. Ошибки не обрабатывались. Нужно - добавляй сам...
 К началу страницы 
+ Ответить 

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

 





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