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

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

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

> Не могу найти ошибку, Записи в файле
Zundell
сообщение 22.01.2007 0:13
Сообщение #1


Пионер
**

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

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


I. Удалить из внешнего файла все записи, удовлетворяющие условию, заданному в варианте, и распечатать информацию, оставшуюся в файле.
II. Добавить N записей в конец внешнего файла

я так понял,что добавить необходимо в первоначальный вариант введенных данных,а не в тот файл,где находятся записи подходящие нашему условию.
Условие такого:удалить тех у кого отличные оценки и в аттестате и при вступительных экзаменах,а добавить например 2-х человек,а затем распечатать тех,кто сдал вступительные экзамены на 4 и 5(я так понял из все вообще введенных студентов,т.е изначальные+добавленные)!Заранее всем огромное спасибо! yes2.gif

вот мой код:
uses crt;
type abit=record
fio:string[20];
godrow:integer;
godokon:integer;
at_mat:integer;
at_rus:integer;
at_fiz:integer;
Obwaga:char;
ab_mat:integer;
ab_rus:integer;
ab_fiz:integer;
end;
var
f,f1:file of abit;
s,r1,r:abit;
ch:char;
i,k,n,m:integer;
key1,key2:boolean;

procedure Vvod;
begin
with s do
begin
writeln;
writeln('______');
writeln('Vvedite dannue o ',i,'-m abiture:');
writeln('_______');
writeln('vvedite FIO:');
readln(Fio);
writeln('Vvedite God rowd:');
readln(godrow);
writeln('Vvedite god okonch wkolu:');
readln(godokon);
writeln;
writeln('Vvedite ozenki attestata:');
writeln('matematika:');
readln(at_mat);
writeln('Russkij:');
readln(at_rus);
writeln('fizika');
readln(at_fiz);
writeln;
key1:=false;
writeln('Nuwna obwaga:[y/n]');
readln(obwaga);
if (obwaga in ['Y','y','N','n']) then key1:=true;
writeln;
writeln('Vvedite ozenki vstupit ekzov:');
writeln('matematika');
readln(ab_mat);
writeln('Russkij');
readln(ab_rus);
writeln('fizika');
readln(ab_fiz);
write(f1,r);
end;
end;

procedure udal;
var
i,j:integer;
begin
reset(f1);
for i:=1 to filesize(f1) do
with r do begin
if (at_mat<>5) and (at_rus<>5) and (at_fiz<>5) and (ab_mat<>5) and (ab_rus<>5)
and (ab_fiz<>5) then
write(f,s);
end;
end;


procedure Vivod;
begin
reset(f);
while not eof(f) do
begin
read(f,s);
with s do begin
writeln('|',fio,'|',godrow,'|',godokon,'|',at_mat,'|',at_rus,'|',at_fiz,'|',ab_mat,'|',ab_rus,'|',ab_fiz,'|',obwaga,'|');
end;
end;
close(f);
end;

Procedure sortirovka;
var
i,j,n:integer;
f:text;
begin
reset(f1);
n:=filesize(f1)-1;
for i:=0 to n do begin
for j:=0 to n-1 do begin
seek(f1,j);
read(f1,r);
read(f1,r1);
with s do begin
if r.at_fiz>r1.at_fiz then
begin
seek(f1,j);
write(f1,r1);
write(f1,r);
end;
end;
end;
end;
close(f1)
end;

procedure dobav;
var
j,i,k:integer;
c:char;
l:boolean;
begin
reset(f1);
writeln('Dobavit tovar?,Esli da,to nawmite Y,esli net to lubuju knopko');
readln©;
i:=0;
while c='y' do
begin
i:=i+1;
with r1 do
begin
writeln('vvedite FIO:');
readln(Fio);
writeln('Vvedite God rowd:');
readln(godrow);
writeln('Vvedite god okonch wkolu:');
readln(godokon);
writeln;
writeln('Vvedite ozenki attestata:');
writeln('matematika:');
readln(at_mat);
writeln('Russkij:');
readln(at_rus);
writeln('fizika');
readln(at_fiz);
writeln;
key1:=false;
writeln('Nuwna obwaga:[y/n]');
readln(obwaga);
if (obwaga in ['Y','y','N','n']) then key1:=true;
writeln;
writeln('Vvedite ozenki vstupit ekzov:');
writeln('matematika');
readln(ab_mat);
writeln('Russkij');
readln(ab_rus);
writeln('fizika');
readln(ab_fiz);

end;
k:=0;
reset(f1);
l:=false;
while (not eof(f1)) do
begin
read(f1,r);
k:=k+1;
if r.at_fiz=r1.at_fiz then
begin
seek(f1,k-1);
for j:=(k-1) to filesize(f)-2 do
begin
seek(f1,j+1);
read(f1,r);
seek(f1,j);
write(f1,r);
end;
seek(f1,filesize(f1)-1);
truncate(f1);
write(f1,r1);
l:=true;
end;
end;
if l=false then
begin
seek(f1,filesize(f1));
write(f1,r1);
end;
writeln('Dobavit tovar?Ecli da,to nawmite Y,esli net to lubuju knopku');
readln©;
end;
clrscr;
close(f1);
end;

procedure Vivod2;
begin
reset(f1);
while not eof(f1) do
begin
read(f1,r);
with r do begin
writeln('|',fio,'|',godrow,'|',godokon,'|',at_mat,'|',at_rus,'|',at_fiz,'|',ab_mat,'|',ab_rus,'|',ab_fiz,'|',obwaga,'|');
end;
end;
close(f1);
end;





begin
clrscr;
assign(f1,'zad8.dat');
rewrite(f1);
writeln('Programmu vupolnyal student 1-ogo kursa Zimin Egor');
writeln('_____________________________________________________');
writeln(' ');
writeln('vvedite kol tovarov-');
readln(n);
for i:=1 to n do
begin
vvod;
end;
close(f1);
assign(f,'zad8.dat');
rewrite(f);
udal;
vivod;
dobav;
vivod2;
readln;
end.








 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 22.01.2007 18:01
Сообщение #2


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

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

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


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


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

Сообщений в этой теме
Zundell   Не могу найти ошибку   22.01.2007 0:13
мисс_граффити   а ты пытаешься удалять что-то совсем не то: wit...   22.01.2007 0:25
volvo   В чем глубинный смысл вот этой процедуры: procedur...   22.01.2007 0:26
мисс_граффити   только заметила. как думаешь, что после assign(f,...   22.01.2007 0:27
Zundell   To Volvo, я хотел так сделать...сначала я вводил и...   22.01.2007 0:35
мисс_граффити   ну, в общем, разбирайся с условием, которое я тебе...   22.01.2007 1:23
Zundell   Можно вопрос?Вот например я ввел нное колличество ...   22.01.2007 16:35
мисс_граффити   Останется, конечно. Представь: ты взял учебник и н...   22.01.2007 18:01
Zundell   А можно подругому удалить удовлетворяющее условие?...   22.01.2007 18:16
мисс_граффити   Можно. Например, если порядок не критичен, можно н...   22.01.2007 18:38
Zundell   Панятна,ааа нет...но ведь мне еще нужно ко ВСЕМ за...   22.01.2007 18:54
мисс_граффити   :blink: Я так понимаю, удаляем лишнее, а потом ...   22.01.2007 18:59
Zundell   нет..нада вывести файл с удаленным лишним!а до...   22.01.2007 19:35
мисс_граффити   ну тогда так: все, что не надо удалять, пишешь в н...   22.01.2007 21:20
Zundell   панятна..спасибо!Щя все сделаю   22.01.2007 21:36


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

 



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