Читайте также: |
|
Обоснование языка программирования.
Я выбрал Turbo Packal так как у него достаточно простой синтаксис, достаточно низкие аппаратные и системные требования, а также потому что он применим для решения достаточно многих задач по программированию.
Текст программы
program bazza;
uses crt;
type baza=record
fam:string[15];
pol:char;
god:string;
zarp:string;
end;
label cnova_god,cnova_zarp;
var f:text;
punkt:byte;
bd:baza;
code,v,m:integer;
begin
assign(f,'abc1.txt');
{$I-} reset(f); {$I+}
if ioresult<>0 then
begin
writeln('Fayla net, sozdat ego');
rewrite(f);
end;
while true do
begin
clrscr;
writeln(' MENU ');
writeln('1:Vvod');
writeln('2:Prosmotr');
writeln('3:Poisk');
writeln('4:Exit');
readln(punkt);
case punkt of
1:begin
rewrite(f);
repeat
begin
write('Vvedite familia I.O. ');
readln(bd.fam);
write('Vvedite pol(m/w) ');
readln(bd.pol);
cnova_god:write('Vvedite god postyplenia na raboty ');
readln(bd.god);
val(bd.god,v,code);
if (code<>0) or (v<1900) or (v>2015) then
begin
textcolor(14);
writeln('Neverno vvedena data ',bd.god);
textcolor(7);
goto cnova_god;
end;
cnova_zarp:write('Vvedite zarplaty ');
readln(bd.zarp);
val(bd.zarp,v,code);
if code<>0 then
begin
textcolor(14);
writeln('Neverno vvedina zarplata ',bd.zarp);
textcolor(7);
goto cnova_zarp;
end;
writeln(f,'|',bd.fam,'|', bd.pol,'|', bd.god,'|', bd.zarp);
writeln('Prodolgit?Da-1,Net-0');
readln(m);
end;
until m=0;
close(f);
end;
begin
writeln('-----------------------------------------------------');
writeln('|Familya I.O.|Pol|God raboty|Zarplata|');
writeln('-----------------------------------------------------');
write('|', bd.fam:15,'|');
write(bd.pol:3, '|');
write(bd.god:10,'|');
writeln(bd.zarp:9,'|');
writeln('-----------------------------------------------------');
readln;
end;
writeln('Poisk');
Exit;
else
writeln('Net takogo punkta');
end;
end;
readln;
end.
Задание №2
Разработать приложение для движения эллипса по эллиптическому контуру.
Обоснование языка программирования.
Я выбрал Turbo Packal так как у него достаточно простой синтаксис, достаточно низкие аппаратные и системные требования, а также потому что он применим для решения достаточно многих задач по программированию.
Текст программы
Uses Crt, Graph;
Const
Radius = 40;
Var
KEY:CHAR;
grDriver: Integer;
grMode: Integer;
Size: Word;
P: Pointer;
x,y,err,r,i,j,s:integer;
procedure zap(x,y,s:integer);
begin
getImage(x-r,y-r,x+r,y+r,P^);
end;
procedure vost(x,y,s:integer);
begin
PutImage(x-r, y-r, P^, CopyPut);
end;
procedure ellips(x,y,r:integer);
begin
setFillStyle(SolidFill,Blue);
circle(x,y,r);
FloodFill(x,y,1);
end;
begin
repeat
write('Введите радиус: ');
readln(r);
{$I+}
err:=IoResult;
if (err<>0) or (r<=0) or (r>200) then WriteLn('Ошибка');
Until ((err=0) and (r>0) and (r<=200));
randomize;
grDriver:= Detect;
InitGraph(grDriver, grMode,' '
If GraphResult <> grOk then Halt;
ClearDevice;
For j:=0 to 16 do begin
For i:=0 to 16 do begin
setcolor(1);
bar(I*40,J*30,40+I*40,j*30+30);
setfillstyle(1,random(16));
end;
end;
x:=240;y:=320;
Size:=ImageSize(0,0,2*radius,2*radius);
GetMem(P, Size);
s:=0;
zap(x,y,s);
repeat
Key:=readkey;
vost(x,y,s);
if ord(key)=0 then begin key:=readkey;
if ord(key)=80 then begin
if y<480-r then begin
y:=y+5;
s:=3;
end;
end;
if ord(key)=72 then begin
if y>r then begin
y:=y-5;
s:=1;
end;
end;
if ord(key)=75 then begin
if x>r+5 then begin
x:=x-5;
s:=4;
end;
end;
if ord(key)=77 then begin
if x<635-r then begin
x:=x+5;
s:=2;
end;
end;
end;
zap(x,y,s);
ellips(x,y,r);
Until ord(key)=27;
FreeMem(P, Size);
readln;
CloseGraph;
end.
Дата добавления: 2015-11-30; просмотров: 30 | Нарушение авторских прав