Разработка программы на языке Паскаль

Автор: Пользователь скрыл имя, 16 Декабря 2010 в 22:47, курсовая работа

Описание работы

Язык программирования Pascal создан в 1973 году швейцарским ученым Николасом Виртом и был назван в честь выдающегося французского физика, математика и философа Блеза Паскаля (1623-1662), который являлся автором первой в мире вычислительной (суммирующей) машины (1641). Язык первоначально создавался для целей обучения программированию вообще. По словам автора языка «… разработка языка Паскаль базировалась на двух принципиальных концепциях. Первая состояла в том, чтобы изобрести язык, приспособленный к обучению программированию как систематической дисциплине, базирующейся на некоторых фундаментальных положениях, ясно и естественно отраженных в языке. Вторая предполагала разработку конкретных представлений этого языка, которые были бы надежны и эффективны на современных ЭВМ.»1

Содержание

Введение


1.Описание программы pascal


2.Структура программы pascal


3.Функциональное назначение pascal


4.Задание для выполнения курсового проекта


5.Текст программы


6.Вход и выход из программы


Используемая литература

Работа содержит 1 файл

иГОРЬ.docx

— 34.77 Кб (Скачать)

   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[j]+1;mzx[3]:=mzx[2];mzx[4]:=mzx[2];mzx[5]:=mzx[1];

   mzx[6]:=drX[j]-1;mzx[7]:=mzx[6];mzx[8]:=mzx[6];

   mzy[1]:=drY[j]-1;mzy[2]:=mzy[1];mzy[8]:=mzy[1];mzy[3]:=drY[j];mzy[7]:=mzy[3];

   mzy[4]:=drY[j]+1;mzy[5]:=mzy[4];mzy[6]:=mzy[4];

   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)*radiuses[1];

   colors[1]:=0;colors[2]:=7;colors[3]:=3;colors[4]:=10;colors[5]:=5;

   colors[6]:=14;colors[7]:=12;colors[8]:=9;colors[9]:=2;colors[10]:=6;

   dr:=detect;

   InitGraph(dr, mode, 'C:\');

   SetFillStyle(1,15);

   Bar(0,0,getmaxX,getmaxY);

   mX:=getmaxX;mY:=getmaxY;

   mX:=Round(mX/2);mY:=Round(mY/2);

   zX:=mX+radiuses[10]+50;zY:=mY+radiuses[10]+50;

   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.txt');

   Append(resultats);

   writeln(resultats,'');

   write(resultats,(playername+' '));

   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,playername);

   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),(length(il)-np));

   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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  1. Вход и  выход из программы
 

Вход: 

   - Входной первое, что приходит в программу. Он может быть с клавиатуры, мыши, файлов на диске, сканер, джойстик и т.д.  

Выход: 

   Для записи данных на экран, есть также два заявления, одно из которых вы уже видели в  программировании уступка последней  главе's:

Write (Argument_List);

WriteLn (Argument_List);  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Используемая  литература 
 

  1. Абрамов В.Г., Трифонов Н.П. Введение в язык Паскаль. – М. :Наука, 1988.-320 с.
  2. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. – М.: Наука, 1987. – 112 с.
  3. Бутомо И.Д., Самочадин А.В., Усанова Д.В. Программирование на алгоритмическом языке Паскаль. – Л.: Издательство Ленинградского университета, 1985. – 216 с.
  4. Грэхем Р. Практический курс языка Паскаль. – М.: Радио и связь. 1986 – 200 с.
  5. Йенсен К., Вирт Н. Руководство для пользователя и описание языка. – М., 1982. 151 с.
  6. Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.: Наука, 1989. – 160 с.

Информация о работе Разработка программы на языке Паскаль