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

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

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

> Файлы!
Светлана
сообщение 21.12.2006 23:39
Сообщение #1


Пионер
**

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

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


Здравствуйте! У меня тут такая задачка: "Заполнить файл последовательного доступа f целыми чмслами, полученными с помощью генератора случайных чисел. Из файла f получить файл q, исключив повторные вхождения чисел. Вывести файл q на печать."

Вот мой вариант... но у меня ошибка высвечивается... Помогите пож-та подкорректировать.


Program FAIL5;
const n=30;
var f,q:text;
a:array[1..n] of integer;
i:integer;
begin
randomize;
for i:=1 to n do
a[i]:=random(100);
assign(f,'c:\celie.txt');
rewrite(f);
for i:=1 to n do
writeln(f,a[i]);
close(f);
reset(f);
assign(q,'c:\povtornye.txt');
rewrite(q);
while not (Eof(f)) do begin
readln(f,i);
if a[i]<>a[i+1] then writeln(q,a[i]); (--> ошибка Range check error)
close(f);
close(q);
writeln('poluchili:','c:\celie.txt','c:\povtornye.txt');
readln;
end;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 22.12.2006 0:35
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


вот так компилируется, но работает неправильно.
Program FAIL5;
const n=30;
var f,q:text;
a:array[1..n] of integer;
i:integer;
begin
randomize;
for i:=1 to n do
a[i]:=random(100);
assign(f,'c:\celie.txt');
rewrite(f);
for i:=1 to n do
writeln(f,a[i]);
close(f);
reset(f);
assign(q,'c:\povtornye.txt');
rewrite(q);
while not (Eof(f)) do
begin
readln(f,i);
if a[i]<>a[i+1] then
writeln(q,a[i]);
end;
close(f);
close(q);
writeln('poluchili:','c:\celie.txt','c:\povtornye.txt');
readln;
end.

(ты ошиблась с границами цикла)
почему не стала исправлять ошибки: не поняла, какой алгоритм используется.
как ты проверяешь, что число не повторяется?
readln(f,i);
if a[i]<>a[i+1] then
writeln(q,a[i]);

то есть, допустим, первое число в f равно 7
если а[7]<>a[8], то записываем a[7] в q
разве это то, что от нас требовалось в задаче?
а если в f записано 99, то будем пытаться сравнить a[99] и а[100] (ты знаешь, что у тебя там находится? я бы не рискнула строить прогнозы)


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Светлана   Файлы!   21.12.2006 23:39
ammaximus   Вылетаешь за рамки массива. Попробуй так :dry:   22.12.2006 0:30
Светлана   Вылетаешь за рамки массива. Попробуй так Только ...   22.12.2006 0:35
volvo   При твоем способе будет то же самое - надо поменят...   22.12.2006 0:33
мисс_граффити   вот так компилируется, но работает неправильно. Pr...   22.12.2006 0:35
Светлана   будем пытаться сравнить a[99] и а[100] (ты знаеш...   22.12.2006 0:46
мисс_граффити   Сорри, это у меня настройки компилятора. Тебе он, ...   22.12.2006 0:50
Светлана   Вопросы такие: 1) если у нас был файл 1 2 2 3 4 3...   22.12.2006 7:37
мисс_граффити   условно работает... но ооочень медленно. с кучей н...   22.12.2006 16:19
volvo   с кучей ненужных переводов из строки в число и обр...   22.12.2006 17:42
Светлана   Вот полный аналог твоей программы: Спасибо боль...   22.12.2006 21:35
Светлана   Вот полный аналог твоей программы: program povto...   22.12.2006 22:11
Светлана   program povtory; for j:=1 to i-1 do begin ...   22.12.2006 23:03
volvo   value - то значение, которое будет проверяться на ...   22.12.2006 21:49
volvo   :no1: Ты пропустила где-то один Begin... Проверяй ...   22.12.2006 22:20
Светлана   Хорошо! Сейчас проверю! Спасибо,я поняла с...   22.12.2006 22:32
мисс_граффити   Что-то ты не то и не оттуда скопировала. Возьми пр...   22.12.2006 23:29
volvo   Я присоединил файл в аттаче - ты опять в неправиль...   22.12.2006 23:29
Светлана   Я присоединил файл в аттаче - ты опять в неправил...   22.12.2006 23:33


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

 



- Текстовая версия 17.07.2025 16:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"