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

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

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

 
 Ответить  Открыть новую тему 
> Error 100 в программе с файлами
18192123
сообщение 10.12.2006 20:57
Сообщение #1


Профи
****

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

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


мне нужно было написать программу, которая читает из типизированного файла целых чисел каждое число, вычисляет по нему тангенс и записывает полученное значение в другой типизированный файл

что я не делала, у меня после ввода значений появляется ошибка error 100

вот код

uses crt;
const
n = 5;
procedure save_file ( Filename : string );
var
f : file of integer;
x : integer;
i : byte;
begin
assign (f, filename);
rewrite (f);
for i := 1 to n do
begin
read (x);
write (f, x);
end;
close (f);
end;
procedure print_file( filename : string );
var
f : file of integer;
i : byte;
x : integer;
begin
assign (f, filename);
reset (f);
while not eof (f) do
begin
read (f, x);
writeln (x:4);
end;
close (f);
end;
procedure basis_part( fnin, fnout : string );
var
fin, fout : file of real;
x : real;
i : byte;
y : real;
begin
assign (fin, fnin);
assign (fout, fnout); reset ( fin);
rewrite (fout);
while not eof(fin) do
begin
read (fin, x );
y := sin (x) / cos (x);
write ( fout, y );

end;
close (fin);
close (fout);
end;

BEGIN
clrscr;
save_file ( 'file2.bin' );
print_file ( 'file2.bin' );
basis_part ('file2.bin', 'file2_out.bin');
writeln ( '========================');
print_file ('file2_out.bin');
readkey;
end.



ума не приложу, что не так.... объясните пожалуйста!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 10.12.2006 23:13
Сообщение #2


Профи
****

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

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


помогите разобраться, вообще не знаю как это исправить! но очень нужно к завтрашнему утру!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 10.12.2006 23:38
Сообщение #3


Гуру
*****

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

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


Поставь повсюду file of real. smile.gif
Нельзя сначала создавать file of integer, а потом его читать как file of real.


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 10.12.2006 23:59
Сообщение #4


Гуру
*****

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

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


Цитата
которая читает из типизированного файла целых чисел каждое число

Не увидел...
Сделай такие изменения:

procedure basis_part( fnin, fnout : string );
var fout : file of real;
fin: file of integer;{<---------}
x : integer;{<---------}
i : byte;
y : real;
begin
assign (fin, fnin);
assign (fout, fnout); reset ( fin);
rewrite (fout);
while not eof(fin) do
begin
read (fin, x );
y := sin (x) / cos (x);
write ( fout, y );

end;
close (fin);
close (fout);
end;

Не проверял, но ты должна понять принцип...

Сообщение отредактировано: Bokul - 11.12.2006 0:00


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 11.12.2006 21:48
Сообщение #5


Профи
****

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

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


вот окончательная версия:


program zach_9_5;
uses crt;
const
n = 5;
procedure save_file ( Filename : string );
var
f : file of integer;
x : integer;
i : byte;
begin
assign (f, filename);
rewrite (f);
for i := 1 to n do
begin
read (x);
write (f, x);
end;
close (f);
end;
procedure print_file( filename : string );
var
f : file of integer;
x : integer;
begin
assign (f, filename);
reset (f);
while not eof (f) do
begin
read (f, x);
writeln (x:4);
end;
close (f);
end;
procedure basis_part( fnin, fnout : string );
var
fin : file of integer; fout : file of real;
x : integer;
y : real;
begin
assign (fin, fnin);
assign (fout, fnout); reset ( fin);
rewrite (fout);
while not eof(fin) do
begin
read (fin, x );
y := sin (x) / cos (x);
write ( fout, y );

end;
close (fin);
close (fout);
end;

BEGIN
clrscr;
save_file ( 'file2.bin' );
print_file ( 'file2.bin' );
basis_part ('file2.bin', 'file2_out.bin');
writeln ( '========================');
print_file ('file2_out.bin');
readkey;
end.



ввожу 5 значений х , а получаю 15 значений у (причем громадных)

??????
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 11.12.2006 23:01
Сообщение #6


Профи
****

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

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


помогите, никак не справлюсь с этой задачкой! ну откуда там в выходном файле взяться 15 значениям???????????????????????????????????????77 wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 12.12.2006 0:29
Сообщение #7


Гуру
*****

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

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


Тот же тип ошибки wink.gif , а именно
save_file ( 'file2.bin' );save_file ( 'file2.bin' );
print_file ( 'file2.bin' );
basis_part ('file2.bin', 'file2_out.bin');
writeln ( '========================');
print_file ('file2_out.bin');{<--здесь}


У тебя print_file работает только с integer, а ты ему стравливаешь файл, информация в который, записана как real. Конечно же возникнут казусы. smile.gif
Выход: сделай отдельную процедуру для вывода инфы с file of real. smile.gif


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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