- процедура 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.