1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Записи, Динамика, Текстовые и Типизированые файлы, простая база
Вечер добрый Вон я что написал! и за что получал целый день по голове! что необходимо сделать 1 пойск по дате (оказываеться) ! как вам мой выриант? мне пока не нравиться... 2 сделать ввод в процедуре пойска (раньше было в меню) 3. разделитьь на 2 пункта УДАЛИТЬ и ПОЙСК (ну это не проблема) на что прошу обратить внимание на процедуру пойска и удаления! что-то я там репитов дофига наставил (в один момент даже запутался) ну и просто ошибочки посмотрите! ПРЕПОДАВАТЕЛЬ ОЧЕНЬ СТРОГО относиться к правильности и грамотности прог.!
"(Показать/Скрыть)
procedure Search(n:integer; Stud: PtrClass; Data: Data_r; var F_kol: integer; var F_mas: mas; var opis:PtrClass); var i:integer; Y_,Y,M_,M,D_,D:word; begin WriteLn('Enter date');
InPutDate(Date); readln; ClrScr; F_kol:=0; Y_:=Data.Year; M_:=Data.Month; D_:=Data.Day; new(Opis); for i:=1 to n do with stud^[i] do with data do begin Y:=Data.Year; M:=Data.Month; D:=Data.Day; if ((Y_>Y) or ((Y_=Y) and (M_>M)) or ((Y_=Y) and (M_=M) and (D_>=D))) then begin F_kol:=F_kol+1; F_mas[F_kol]:=i; Opis^[F_kol]:=Stud^[i]; end; end; end;
procedure Delete(var n:integer;var Stud: PtrClass; D_kol: integer; D_mas: mas; Opis: PtrClass; OutPut:outclass); var b,j,i,c:integer; An:char; begin
ClrScr; repeat OutPut(D_kol,Opis); writeln('Do you want to delete some students?'); readln(An); if (An<>'n') and (An<>'y') then begin writeln('Answer Yes or No!'); writeln('Try again. Press Enter...'); readln; end; until (An='n') or (An='y'); if An='n' then exit;
repeat clrscr; OutPut(D_kol,Opis); writeln('Tape the number to delete: '); readln(b); if (b>D_kol) or (b<1) then begin writeln('Error in number!!'); writeln('Try again.Press Enter...'); readln; end; until (b<=D_kol) and (b>=1);
repeat clrscr; OutPut(b,Opis); writeln('Are you shure? (y/n)'); readln(An); until (An='y') or (An='n'); for i:=1 to D_kol do begin if i=b then begin n:=n-1; D_kol:=D_kol-1; for c:=D_mas[i] to n do Stud^[c]:=Stud^[c+1]; for i:=b to D_kol do begin Opis^[i]:=Opis^[i+1]; D_mas[i]:=D_mas[i+1]-1; end; end; end; clrscr; writeln ('Element is erased!'); readln; end;