Смекни!
smekni.com

Программа для проверки работы операторов (стр. 2 из 2)

- процедура Break – процедура осуществляет досрочный выход из циклов For, While или Repeat;

- процедура Close(varf) – закрывает открытый до этого логический файл. Вызов процедуры необходим при завершении работы с файлом;


Функция CHOISE.

Определяет ключом для выхода из некоторых циклов и основной программы символ ‘Y’, обозначая его true. Используется в основной программе.

Функция PieSlice

Прорисует форму диаграммы ее цвет.

Функция initgraph

Подключает графический файл.

7. ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

Вставьте дискету в дисковод. Выберите файл KYRSAK.EXE. после открытия файла программа вам предложит вести путь к проверяемой программе с расширением.PAS. При введении правильного пути и нажатие ENTERпрограмма сразу же отобразит круговую диаграмму, показывающую чистоту работы операторов.


ВЫВОД

При выполнении курсовой работы я создала программу, что позволяет наглядно, благодаря диаграмме, наглядно увидеть с какой чистотой работают операторы в программах написанных на языке Паскаль.

Я изучила такие разделы как: операторы языка Паскаль (составной и пустой операторы, условный оператор, операторы повторений, оператор выбора, операторы метки и перехода), массивы, графика в Паскале, а также два раздела математики (диаграммы, проценты и их использование).

Также я рассмотрела в своей работе такие языки как: С++, С. С#. Я поняла, что этих языках также могла написать эту программу но из-за не достатка знаний я написала на Паскале.


СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. А. Епанешников, В. Епанешников Программирование в среде TurboPascal 7.0-М.: Диалог-МИФИ, 1993.

2. А.Б. Ставровский Турбо Паскаль 7.0. Учебник. – К.: Издательская группа BHV, 2000.

3. Конспект лекцій з дисципліни „Теорія алгоритмів та обчислювальних процесів” Частина 2.- Херсон, ХНТУ, 2005.

4. Конспект лекцій з дисципліни „Теорія алгоритмів та обчислювальних процесів” Частина 3. -Херсон, ХНТУ, 2005.

5. Методические указания про проведения лабораторных работ с основ программирования и алгоритмических яз. Часть 1. -Нога Л.В., Сидорук М.В. Херсон, 2003.

6. Методические указания про проведения лабораторных работ с основ программирования и алгоритмических яз. Часть 2.- Нога Л.В., Сидорук М.В. Херсон, 2003.

7. Фаронов В.В. TurboPascal 7.0. Начальный курс. - М.: Колидж, 1997.

8. С#. Сборник рецептов. – П. Агуров, Петербург, 2007.

9. Языки программирования / С++. - Бьерн Страуструп.


ПРИЛОЖЕНИЕ

{$N+}

program cursova;

uses graph;

type op=record

key:string[20];

count:integer;

end;

const n=8;

var

mas:array[1..n] of op;

procedure drawgraphic;

var d,e,r,j,all: integer;

startangle,nextangle,temp,x,y:extended;

xcord,ycord:word;

s,s2:string;

begin

all:=0;

for j:=1 to n do all:=all+mas[j].count;

d:= detect;

initgraph(d,r,'d:\bp\bgi\');

e:=graphresult;

if e<> grok then

writeln ( grapherrormsg (e))

else

begin

startangle:=0;

rectangle((getmaxx div 3)*2,20,getmaxx-20,getmaxy -20);

rectangle((getmaxx div 3)*2-4,16,getmaxx-16,getmaxy -16);

xcord:=(getmaxx div 3)*2+5;

ycord:=50+textheight('25%');

str(all,s2);

s2:='Vsego elementov '+s2;

outTextXy(xcord+30,ycord,s2);

for j:=1 to n do

begin

if mas[j].count<=0 then continue;

nextangle:=startangle+360/(all/mas[j].count);

setfillstyle(j,j);

pieslice(getmaxx div 3 +5, getmaxy div 2 + 4,trunc(startangle),trunc(nextangle),100);

temp:=startangle+(nextangle-startangle)/2;

str(mas[j].count/(all/100):0:0,s);s:=s+'%';

x:=cos(temp*0.017453292519)*60;

y:=sin(temp*0.017453292519)*60;

settextjustify(lefttext,toptext);

ycord:=ycord+textheight(s)*3;

outTextXy(trunc(x+getmaxx div 3+5),trunc(getmaxy div 2+4-y),s);

bar(xcord,ycord,xcord+textheight(s)*2,ycord+textheight(s)*2);

rectangle(xcord,ycord,xcord+textheight(s)*2,ycord+textheight(s)*2);

str(mas[j].count,s2);

s2:=mas[j].key+' '+s2;

outTextXy(xcord+textheight(s)*2+5,ycord+textheight(s),s2);

startangle:=nextangle;

end;

end;

outTextXy(20,getmaxy-20,'Dla vixoda najmite ENTER');

end;

var filename:string;

file1:file of char;

var i:integer;

var tstr:string;

var tc,popen:char;

function upstring(a:string):string;

var i,j:byte;

t:string;

begin

t:='';

i:=length(a);

for j:=1 to i do

:=t+upcase(a[j]);

upstring:=t;

end;

begin

for i:=1 to n do mas[i].count:=0;

mas[1].key:='BEGIN';

mas[2].key:='END';

mas[3].key:='IF';

mas[4].key:='FOR';

mas[5].key:='WHILE';

mas[6].key:='REPEAT';

mas[7].key:='CASE';

mas[8].key:='GOTO';

writeln ('4astota kly4evih slov':35);

{$I-}

repeat

writeln('wedi pyt k faily');

readln(filename);

tstr:=upstring(copy(filename,length(filename)-3,4));

if tstr<>'.PAS' then

begin

writeln('Must bve a pascal *.pas file!!!.Please continue');

continue;

end;

assign (file1,filename);

reset(file1);

until ioresult=0;

{$I+}

tstr:='';

popen:=' ';

tc:=' ';

while not eof(file1)do

begin

if tc='''' then begin{iwem konets const stroki}

tc:=' ';

while (tc<>'''')and(not eof(file1))do

read(file1,tc);

tc:=' ';

end;

(*if tc='(' then

begin

{iwem konets komenta}

if(not eof(file1))then read(file1,tc);

if tc='*' then

begin

while (tc<>')')and(not eof(file1))do

begin

read(file1,tc);

if tc='*' then

begin if(not eof(file1))then read(file1,tc) end

else if tc=')' then tc:=' ';

end

end else

{tc:=' ';}

end;*)

if tc='{' then begin{iwem konets komenta}

tc:=' ';

while (tc<>'}')and(not eof(file1))do

read(file1,tc);

tc:=' ';

end;

if tc in [' ',';',#0..#32,'(',')','}','{','.'] then

begin

if tstr<>''then

for i:=1 to n do

if mas[i].key=tstr then

begin

inc(mas[i].count);

break;

end;

tstr:='';

end

else tstr:=tstr+upcase(tc);

if(not eof(file1))then read(file1,tc);

end;

if tstr<>''then

for i:=1 to n do

if mas[i].key=tstr then

begin

inc(mas[i].count);

break;

end;

close(file1);

drawgraphic;

readln;

end.