01.06.2008, 13:49
общий
это ответ
Здравствуйте, Dextrous!
Я написал вторую задачу. Поиск осуществляется по марке и по цвету, но если нужно именно с "Жигули" и "зеленого цвета" то уберите это:
write(‘vvedite marky avto:‘);
readln(marka);
write(‘vvedite color avto:‘);
readln(col);
и напишите так:
If (avto.mark="Жигули") and (avto.color="зеленый") then..
В первой задаче нужно лишь изменить описание записи вначале:
type Tstudent2=record
name:string[20];
mark:string[10];
color:string[30];
end; и нужно обращатся не Avto.color или avto.mark,
а просто color, mark.
Удачи!!!
Приложение:
uses crt;type Tstudent2=recordname:string[20];avto:recordmark:string[10];color:string[30];end;end;var name_file:string;ch:char;procedure input(var name_file:string);var f:file of Tstudent2;x:Tstudent2; i,n:integer;beginclrscr;write(‘vvedite imya filya‘);readln(Name_file);Assign(f,name_file);rewrite(f);writeln(‘kol-vo zapisei‘);readln(n);if n>0 thenbeginFor i:=1 to n dobeginwith X dobeginwriteln(‘vvedite dannie ‘,i,‘-go avtolife‘);write(‘vvedite FIO:‘);readln(name);write(‘vvedite mark:‘);readln(avto.mark);write(‘vvedite color:‘);readln(avto.color);end;write(f,X)end;writeln(‘sozdan file iz ‘,n,‘zapisei‘);endelse writeln(‘file pystoi‘);Close(f);readkey;end;Procedure Open(var name_file:string);varf:file of Tstudent2;beginclrscr;writeln(‘vvedite imya file:‘);readln(name_file);Assign(f,name_file);{$I-}reset(f);{$I+}If IOResult<>0 thenbeginwriteln(‘net file with name‘,name_file);name_file:=‘‘;endelse beginwriteln(‘file‘,name_file,‘open‘);Close(f);end;readkey;end;Procedure Add_Record(var Name_file:string);varf:file of Tstudent2;X:Tstudent2;beginclrscr;assign(f,name_file);{$I-}reset(f);{$I+}If IOResult<>0 thenwriteln(‘net file with this name‘,name_file) elsebeginSeek(f,Filesize(f));with X dobeginWriteln(‘vvedite dannie‘,FileSize(f)+1,‘-go avtolybitela‘);write(‘vvedite Fio‘);readln(name);write(‘vvedite mark‘);readln(avto.mark);write(‘vvedite color‘);readln(avto.color);end;write(f,X);writeln(‘zapis dobavlena‘);close(f);end;readkey;end;Procedure View(Name_file:string);Varf:file of Tstudent2;X:Tstudent2;beginclrscr;Assign(f,Name_file);{$I-}reset(f);{$I+}If IOResult<>0 then writeln(‘net file with this name‘,name_file) elsebeginwriteln(‘soderzhimoe file:‘,name_file);writeln(‘soderzhimoe file:‘,name_file);writeln(‘| FIO | mark | color |‘);writeln(‘_______________________________‘);while not Eof(f) dobeginread(f,X);with X dowriteln(name:10,avto.mark:10,avto.color:10);end;close(f);end;readkey;end;Procedure del(name_file:string);varf,temp:file of Tstudent2;x:Tstudent2;k,i:integer;beginclrscr;Assign(f,name_file);{$I-}reset(f);{$I+}If IOResult<>0 then writeln(‘net file with this name‘,name_file) elsebeginwriteln(‘FILE‘,name_file,‘imeet‘,Filesize(f),‘zapisei‘);write(‘vvedite nomer zapisi dlya delete #=‘);readln(k);if (k<1) or (k>Filesize(f)) then Writeln(‘net zapisi c #=‘,k) elsebeginAssign(temp,‘1.tmp‘);Rewrite(temp);For i:=1 to filesize(f) dobeginread(f,X);if i<>k then write(temp,X);end;close(f); Close(temp);Erase(f);ReName(temp,Name_file);Writeln(‘zapis deleted‘);end;end;Readkey;end;Procedure Search(Name_file:string);varf:file of Tstudent2; f1:file of Tstudent2;X:tstudent2;Marka:string[10];Col:string[30];poisk:boolean;beginclrscr;Assign(f,name_file);Assign(f1,‘Rez.dat‘); rewrite(f1);{$I-}reset(f);{$I+}If IOResult<>0 then writeln(‘net feli with this name‘,name_file) elsebeginwrite(‘vvedite marky avto:‘);readln(marka);write(‘vvedite color avto:‘);readln(col);writeln(‘| FIO | mark | color |‘);writeln(‘_______________________________‘);Poisk:=false;while not Eof(f) dobeginread(f,X);with X doIf (avto.mark=marka) and (avto.color=col) thenbeginwriteln(name:10,avto.mark:10,avto.color:10);Poisk:=true;end;end;Close(f);if not Poisk then writeln(‘net takoi marki i color‘,marka,col);end; write(f1,x);Readkey; Close(f1);end;beginName_file:=‘‘;repeatclrscr;Writeln(‘1-creat file‘);Writeln(‘2-open file‘);Writeln(‘3-view dannie‘);Writeln(‘4-dobavit dannie‘);Writeln(‘5-delete dannie‘);Writeln(‘6-Search dannie‘);Writeln(‘7-end‘);Writeln;Write(‘viberete pynkt menu‘);Readln(ch);Case ch of‘1‘:Input(name_file);‘2‘:Open(name_file);‘3‘: if name_file <> ‘‘ then View(name_file) elsebeginWriteln(‘net name of file(viberite 1 or 2)‘);readkey;end;‘4‘:if name_file <> ‘‘ then Add_record(name_file) elsebeginWriteln(‘net name of file(viberite 1 or 2)‘);readkey;end;‘5‘:if name_file <> ‘‘ then Del(name_file) elsebeginWriteln(‘net name of file(viberite 1 or 2)‘);readkey;end;‘6‘:if name_file <> ‘‘ then Search(name_file) elsebeginWriteln(‘net name of file(viberite 1 or 2)‘);Readkey;end;end;until Ch = ‘7‘;end.