Автор: Пользователь скрыл имя, 16 Декабря 2010 в 22:47, курсовая работа
Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.»1
Введение
1.Описание программы pascal
2.Структура программы pascal
3.Функциональное назначение pascal
4.Задание для выполнения курсового проекта
5.Текст программы
6.Вход и выход из программы
Используемая литература
drY:array [1..5] of integer;
drOst:integer;
i:integer;
c:integer;
zX, zY:integer;
r:integer;
playername:string;
resultats:text;
ln:integer;
pl:dm;
values:dmi;
np:integer;
k:integer;
il:string;
strn:string;
procedure PaintField();
var j:integer;
begin
SetFillStyle(1,15);
Bar(0,0,getmaxX,getmaxY);
for j:=10 downto 1 do begin
SetFillStyle(1,colors[j]);
Fillellipse(mX, mY, radiuses[j], radiuses[j]);
end;
SetFillStyle(1,4);
Fillellipse(zX, zY, 10, 10);
SetFillStyle(1,13);
for j:=1 to 5 do
if (drX[j]<>0) then
Fillellipse(drX[j], drY[j],3,3);
end;
function Res(X,Y:integer):integer;
var j:integer;
dx, dy:integer;
v1, v2:integer;
begin
Res:=0;
dx:=abs(X-mX);
dy:=abs(Y-mY);
dx:=dx*dx;
dy:=dy*dy;
for j:=1 to 10 do
begin
v1:=radiuses[j]*radiuses[j]
if ((dx+dy)<=v1) then begin
Res:=11-j;
break;
end;
end;
end;
procedure Fire();
var mzx: array [1..8] of integer;
mzy: array [1..8] of integer;
iserror:boolean;
otX, otY:integer;
j,k:integer;
begin
otX:=random(40)-20;
otY:=random(40)-20;
zX:=zX+otX;
zY:=zY+otY;
iserror:=false;
if drOst<>5 then
begin
for j:=1 to (5-drOst) do begin
mzx[1]:=drX[j];mzx[2]:=drX[
mzx[6]:=drX[j]-1;mzx[7]:=
mzy[1]:=drY[j]-1;mzy[2]:=
mzy[4]:=drY[j]+1;mzy[5]:=
for k:=1 to 8 do
if ((mzx[k]=zX) And (mzy[k]=zY)) then iserror:=false;
end;
if iserror=false then r:=r+Res(zX,zY) else begin
zX:=0;
zY:=0;
end;
end
else
begin
r:=Res(zX,zY);
end;
drX[6-drOst]:=zX;
drY[6-drOst]:=zY;
drOst:=drOst-1;
zX:=mX+radiuses[10]+50;
zY:=mY+radiuses[10]+50;
end;
begin
randomize;
for i:=1 to 5 do begin
drX[i]:=0;
drY[i]:=0;
end;
writeln('Добро пожаловать в игру ДАРТС!');
writeln('Вам дается 5 дротиков для броска .');
writeln('Для направления дротика используются следующие клавиши:');
writeln('W - вверх');
writeln('S - вниз');
writeln('A - влево');
writeln('S - вправо');
writeln('Клавиша E – кидать дротик. ');
writeln('Клавиша Q - выход.');
writeln('Нажмите G для начала игры .');
stop:=false;
while (stop=false) do begin
sym:=readKey;
if (sym='g') then stop:=true
else writeln(Клавиша нажата неверно!');
end;
radiuses[1]:=10;
radiuses[2]:=15;
for i:=3 to 10 do
radiuses[i]:=(i-1)*
colors[1]:=0;colors[2]:=7;
colors[6]:=14;colors[7]:=
dr:=detect;
InitGraph(dr, mode, 'C:\');
SetFillStyle(1,15);
Bar(0,0,getmaxX,getmaxY);
mX:=getmaxX;mY:=getmaxY;
mX:=Round(mX/2);mY:=Round(
zX:=mX+radiuses[10]+50;zY:=
PaintField;
stop:=false;
drOst:=5;
while (stop=false) do begin
if KeyPressed then begin
sym:=readKey;
if sym='q' then stop:=true;
if sym='w' then zY:=zY-1;
if sym='s' then zY:=zY+1;
if sym='a' then zX:=zX-1;
if sym='d' then zX:=zX+1;
if sym='e' then Fire;
PaintField;
end;
delay(0);
if (drOst=0) then stop:=true;
end;
CloseGraph;
writeln('Ваш результат:');
writeln(r);
writeln('Введите ваше имя:');
readln(playername);
ChDir('C:\');
Assign(resultats,'results.
Append(resultats);
writeln(resultats,'');
write(resultats,(
write(resultats, r);
Close(resultats);
writeln(' Нажмите L для загрузки таблицы результатов.');
stop:=false;
while (stop=false) do begin
sym:=readKey;
if (sym='l') then stop:=true
else writeln('Клавиша нажата неверно!');
end;
Reset(resultats);
ln:=0;
np:=0;
while (EOLn(resultats)=false) do
begin
readln(resultats,
ln:=ln+1;
end;
Close(resultats);
SetLength(pl,ln);
SetLength(values,ln);
Reset(resultats);
for i:=1 to ln do begin
readln(resultats,pl[i-1]);
end;
Close(resultats);
for i:=0 to (ln-1) do
begin
il:=pl[i];
for k:=1 to (length(il)) do begin
if (il[k]=' ') then begin
np:=k;
break;
end;
end;
strn:=Copy(il,(np+1),(
Val(strn,values[i],r);
end;
for i:=0 to (ln-1) do
for k:=(ln-1) downto (i+1) do
if (values[k-1]<values[k]) then begin
playername:=pl[k-1];
pl[k-1]:=pl[k];
pl[k]:=playername;
r:=values[k-1];
values[k-1]:=values[k];
values[k]:=r;
end;
for i:=0 to (ln-1) do writeln(pl[i]);
writeln('Нажмите Q для выхода из игры.');
stop:=false;
while (stop=false) do begin
sym:=readKey;
if (sym='q') then stop:=true
else writeln('Клавиша нажата неверно!');
end;
end.
Вход:
- Входной
первое, что приходит в программу. Он может
быть с клавиатуры, мыши, файлов на диске,
сканер, джойстик и т.д.
Выход:
Для записи данных на экран, есть также два заявления, одно из которых вы уже видели в программировании уступка последней главе's:
Write (Argument_List);
WriteLn (Argument_List);
Используемая
литература