Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program uvp5;
- uses crt;
- type
- diap=record
- first:integer;
- second:integer;
- end;
- toy=record
- name:String[50];
- cost:real;
- age_rstrct:diap;
- end;
- var
- Rv:toy;
- fv,fv1:array[1..52] of toy;
- i,n,mode,end_arr: byte;
- procedure Frame (x1,y1,x2,y2,txt_col:Integer);
- const
- a=#186; b=#187;
- c=#188; d=#200;
- e=#201; f=#205;
- var
- i:Integer;
- begin
- window(1,1,80,25);
- textColor(txt_col);
- gotoXY(x1,y1);
- Write(e);
- for i:=x1+1 to x2-1 do
- Write(f);
- Write(b);
- for i:=y1+1 to y2-1 do
- begin
- gotoXY(x1,i);
- write(a);
- gotoXY(x2,i);
- Write(a);
- end;
- gotoXY(x1,y2);
- Write(d);
- for i:=x1+1 to x2-1 do
- Write(f);
- Write(c);
- window(x1+1,y1+1,x2-1,y2-1);
- textColor(txt_col);
- clrscr;
- end;
- procedure create;
- var i:integer;
- begin
- i:=1;
- while true do
- with Rv do
- begin
- clrscr;
- Write('Name (end of input ++)-->');
- Readln(name);
- if name='++' then break;
- Write('Cost -->'); ReadLn(cost);
- WriteLn('Age restrictions:');
- with age_rstrct do
- begin
- Write('From -->'); ReadLn(first);
- Write('To -->'); ReadLn(second);
- end;
- fv[i]:=rv;
- inc(i);
- end;
- end_arr:=i-1;
- end;
- procedure output;
- const
- a=#218; b=#196; c=#194; d=#191;
- e=#179;
- f=#195; g=#197; h=#180;
- m=#192; k=#193; l=#217;
- var
- i:integer;
- begin
- clrscr;
- WriteLn('Information about toys:');
- Write(a,b,b,b,b,b,b,b,b,b,b,b,b,b,b,c,b,b,b,b,b,b,b);
- writeln(b,b,c,b,b,b,b,b,b,b,b,b,b,c,b,b,b,b,b,b,b,b,d);
- WriteLn(e,' Name ',e,'Cost(BYN)',e,'From(year)',e,'To(year)',e);
- Write(f,b,b,b,b,b,b,b,b,b,b,b,b,b,b,g,b,b,b,b,b,b,b);
- writeln(b,b,g,b,b,b,b,b,b,b,b,b,b,g,b,b,b,b,b,b,b,b,h);
- i:=1;
- while i<=end_arr do
- with fv[i] do
- begin
- WriteLn(e,Name:14,e,cost:9:2,e,
- age_rstrct.first:10,e,age_rstrct.second:8,e);
- inc(i);
- end;
- Write(m,b,b,b,b,b,b,b,b,b,b,b,b,b,b,k,b,b,b,b,b,b,b);
- writeln(b,b,k,b,b,b,b,b,b,b,b,b,b,k,b,b,b,b,b,b,b,b,l);
- repeat until KeyPressed;
- end;
- procedure process;
- const
- a=#218; b=#196; c=#194; d=#191;
- e=#179;
- f=#195; g=#197; h=#180;
- m=#192; k=#193; l=#217;
- var
- i:integer;
- begin
- clrscr;
- WriteLn('List of toys with cost not exceeding 50 for children under 6 years :');
- Write(a,b,b,b,b,b,b,b,b,b,b,b,b,b,b,c,b,b,b,b,b,b,b);
- writeln(b,b,c,b,b,b,b,b,b,b,b,b,b,c,b,b,b,b,b,b,b,b,d);
- WriteLn(e,' Name ',e,'Cost(BYN)',e,'From(year)',e,'To(year)',e);
- Write(f,b,b,b,b,b,b,b,b,b,b,b,b,b,b,g,b,b,b,b,b,b,b);
- writeln(b,b,g,b,b,b,b,b,b,b,b,b,b,g,b,b,b,b,b,b,b,b,h);
- i:=1;
- while i<=end_arr do
- with fv[i] do
- begin
- if (cost<=50) and (age_rstrct.second<6) then
- WriteLn(e,Name:14,e,cost:9:2,e,
- age_rstrct.first:10,e,age_rstrct.second:8,e);
- inc(i);
- end;
- Write(m,b,b,b,b,b,b,b,b,b,b,b,b,b,b,k,b,b,b,b,b,b,b);
- writeln(b,b,k,b,b,b,b,b,b,b,b,b,b,k,b,b,b,b,b,b,b,b,l);
- repeat until KeyPressed;
- end;
- procedure add;
- var
- i:integer;
- begin
- i:=end_arr+1;
- while true do
- with rv do
- begin
- clrscr;
- Write('Name (end of input ++)-->');
- Readln(name);
- if name='++' then break;
- Write('Cost -->'); ReadLn(cost);
- WriteLn('Age restrictions:');
- with age_rstrct do
- begin
- Write('From -->'); ReadLn(first);
- Write('To -->'); ReadLn(second);
- end;
- Fv[i]:=Rv;
- inc(i);
- end;
- end_arr:=i-1;
- end;
- procedure replace_record;
- begin
- clrscr;
- Write('Enter number of replaceabe record n=');
- ReadLn(n);
- rv:=fv[n];
- with Rv do
- begin
- Write('Name: ',name,' -->'); ReadLn(name);
- Write('Cost: ',cost:9:2,' -->'); ReadLn(cost);
- Writeln('Age restrictions:');
- with age_rstrct do
- begin
- Write('From: ',first,' -->'); ReadLn(first);
- Write('To: ',second,' -->'); ReadLn(second);
- end;
- end;
- fv[n]:=rv;
- end;
- procedure replace_rec_field;
- var
- field_num:1..4;
- begin
- clrscr;
- Write('Enter number of replaceable record n=');
- ReadLn(n);
- rv:=fv[n];
- with Rv do
- begin
- Writeln('1 - Name:',name);
- Writeln('2 - Cost:',cost:9:2);
- WriteLn('Age restrictions:');
- with age_rstrct do
- begin
- Writeln('3 - From:',first);
- Writeln('4 - To:',second);
- end;
- Write('Enter num of replaceable field -->');
- ReadLn(field_num);
- case field_num of
- 1: begin
- Write('Name: ',name,' -->'); ReadLn(name);
- end;
- 2: begin
- Write('Cost: ',cost:9:2,' -->'); ReadLn(cost);
- end;
- 3: begin
- Write('From: ',age_rstrct.first,' -->'); ReadLn(age_rstrct.first);
- end;
- 4: begin
- Write('To: ',age_rstrct.second,' -->'); ReadLn(age_rstrct.second);
- end
- end;
- end;
- fv[n]:=rv;
- end;
- procedure delete_record;
- var
- i,j:integer;
- begin
- clrscr;
- Write('Enter number of removable record n=');
- ReadLn(n);
- j:=1;
- i:=1;
- while i<=high(fv) do
- begin
- rv:=fv[i];
- if i<>n then
- begin
- fv1[j]:=fv[i];
- inc(j);
- end;
- i:=i+1;
- end;
- fv:=fv1;
- dec(end_arr);
- end;
- Begin
- clrscr;
- while true do
- begin
- window(1,1,80,27);
- frame(1,1,30,12,14);
- WriteLn('Menu:');
- WriteLn('1 - Input array');
- WriteLn('2 - Output array');
- WriteLn('3 - Process array');
- WriteLn('4 - Expand array');
- WriteLn('5 - Change record');
- WriteLn('6 - Change record''s field');
- WriteLn('7 - Delete record');
- WriteLn('8 - Exit');
- Write('Choose mode->'); ReadLn(mode);
- window (1,1,80,27);
- case mode of
- 1: begin
- Frame(35,1,70,10,14); create;
- end;
- 2: begin
- Frame(1,14,70,24,14);
- WriteLn('Original array'); output;
- end;
- 3: begin
- Frame(1,14,70,24,14);
- WriteLn('Array''s processing'); process;
- end;
- 4: begin
- Frame(35,1,70,10,14); add;
- end;
- 5: begin
- Frame(35,1,70,10,14); replace_record;
- end;
- 6: begin
- Frame(35,1,70,10,14); replace_rec_field;
- end;
- 7: begin
- Frame(35,1,70,10,14); delete_record;
- end;
- 8: Exit
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement