Смекни!
smekni.com

Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x (стр. 15 из 24)

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Брусенцов Н.П., Маслов С.П., Х.Рамиль Альварес Микрокомпьютерная система обучения "Наставник". М.: Наука , 1990. 223 с.

2. Демушкин А7С7, КирилловА.И., Сливин Н.А., Чубров Е.В., Кривошеев А.О., Фомин С.С. Компьютерные обучающие программы // Информатика и образование, 1995. N 3.

3. Казаков В.Г., Дорошквин А.А., Задорожный П.М., Князев Б.А. Лекционная мультимедиа аудитория // Информатика и образование, 1995. N4.

4. Фаронов В.В. турбо паскаль: в 3 т. М.: Учебно-инженерный центр "МВТУ-ФЕСТО ДИДАКТИК", 1992.Т.1: Основы турбо Паскаля. 286 с.

5. Епанешников A.M., Епанешников В.А. Программирование в среде TURBO-PASCAL 7.O.M.: "ДИАЛОГ-МИФИ", 1995. 282 С.

6. Петров В.И. Графические средства алгоритмического языка TURBO-PASCAL : Методические указания к выполнению лабораторных работ N 1,2 / ЛИАП.СПб., 1992. 33 с.

7. Петров В.И. Графические средства алгоритмического языка TURBO-PASCAL : Методические указания к выполнению лабораторных работ N 3,4,5 / ЛИАП.СПб., 1992. 43 с.

8. Технико-экономическое обоснование исследовательских и инженерных решений в дипломных проектах и работах: учебное пособие / под редакцией Минько Э.В., Покровского А.В. /Свердловск Уральский университет, 1990. 144 с.

9. Евдокимов В.И. Охрана труда и окружающей среды: Методические указания по дипломному проектированию / ЛИАП.Л., 1989. 34 с.

10. Евдокимов В.И., Козаченко В.И., Нейман Л.А., Румянцев В.В. Охрана труда в приборо- и радиоаппаратостроении: Учебное пособие / СПГУАП. СПб., 1993. 81 с.

ПРИЛОЖЕИЕ 1

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

program GRAPHIC; {главная программа "Графика"}

uses Crt, Graph, Dos, Strings, MYBOOK, RAZDEL1, RAZDEL2, RAZDEL3,

RAZDEL4 , RAZDEL5 , RAZDEL6 , RAZDEL7 ;

Type Dlina=string[6Q];

var Gd,Gm: integer;

Regime: byte;

NOMER3 , NOMER4 , NOMER5 , NOMER6 , NOMER7 : integer ;

Ball3 :array[l. .2} of integer; {переменные вывода результатов} ball4 :array[l. .2] of integer; { работы по разделам}

ball5 :array[l. .2] of Integer;

ball6 :array[l. .2] of integer; ball7:array[l. .2] of integer; Itog :array[l, .2] of integer; {переменная накопления

результатовработы за сеанс}

tog:array[l. .2] of integer; {переменная вывода результатов

работы за сеанс}

К:аггау[1. .2] of integer; {переменная контролирующая число

обращений к процедурам рабочихмодулей }

Dh: Char; {переменная для принятия символа с клавиатуры}

procedure Windol; {введение }

Type Ann=record

PPl:char;

РР2:array [0. .69] of char;

end;

var FF:file of Ann;

A: Ann;

St :string[68];

label 1;

begin

Assign (FF, 'VEDEN. pas' ); {связь с файлом текста введения}

{SI-}

Reset(FF);

{SI + }

IF lOResulto 0 then Writeln ('Heтфайла VEDEN1);

ClearDevice;

OKNO; {процедура оформления экрана}

For N:=0 to 31 do {цикл вывода текста введения }

begin

Read(FF,A);

St:=StrPas(A.PP2);

case A.PP1 of {проверка наличия иллюстрации и их вывод}

‘ ‘: OutTextXY( 20 , 10*N+10 , St ) ;

‘0‘ : GoTo 1 ;

end;

end;

1:readkey;

Close(FF);

end;

procedure Cursor(Flag:boolean); {Если Flag=True, то курсор видим;}

{ если Flag=False,TO невидим}

const sizeCursor:word=0;

var Red:registers;

begin

with Red do

begin

if Flag then

begin

CX:=SizeCursor; {Восстановим старый размер курсора}

end

else

begin

BH:=0; {0-я страница дисплея}

АН:=03; {функция чтения размера и позиции курсора}

Intr($10,Red);

SizeCursor:=CX;{сохраняем размер курсора}

СН:=$20; {делаем курсор невидимым}

end;

АН:=01; {функция установки размера курсора}

Intr($10,Red);

end;

end;

procedure SVETFON(C,F:byte); {установка цвета и фона}

begin

TextColor(C);

TextBackground(F)

end;

procedure VERTIKALNOE_MENU(Kl,K2,Kp:byte;SS1,SS2,SS3,SS4,SS5,SS6,

SS7,SS8,SS9:dlina;Var Result:byte);

{процедура создания окна меню}

Label Met;

Const Kr=9;

Var M:array[l..Kr] of string[60];

I,T:byte;

Ch:char;

Fl:boolean;

begin

Cursor(False);

Fl:=True;

M[1]:=SS1;M[2]:=SS2;M[3]:=SS3;M[4]:=SS4;M[5]:=SS5;M[6]:=SS6;

M[7]:=SS7;M[8]:=SS8;M[9]:=SS9;

T:=Length(M[I]);

for I:=2 to Kp do

if Length(M{I])>T then T:=Length(M[I]);

for l:=l to Kp do

begin

if 1=1 then SVETFON(1,13)

else SVETFON(13,1);

GoToXY(Kl,K2+i);

write(M[I]);

end;

SVETFON(13,1);

I:=l;

while Fl=True do begin

Ch:=ReadKey;

if Ch=#13 then Fl:=False;

if(Ch=#0) and KeyPressed then

begin

Ch:=ReadKey;

case Ch of

#80: begin

GoToXY(Kl,K2+i);

SVETFON(13,1);

write(M[I]);

if i=(Kp+l) then

begin

I:=l;

SVETFON(3,l);

GoToXY(Kl,K2+l);

SVETFON(1, 13);

write(M[I]);

SVETFON(13,1);

goto Met;

end;

GoToXY(Kl,K2+I);

SVETFON(1,13);

write(M[I]);

SVETFON(13,1);

end;

#72: begin

if 1=1 then goto Met;

GoToXY(Kl,K2+I);

SVETFON(1371);

write(M[I]);

i:=I-1;

GoToXY(Kl,K2+I);

SVETFON(1,13);

write(M[I])

end

end;

Met:

end ;

end;

Result :=I;

SVETFON(13,1);

Cursor(True) ;

end;

begin {Начало основной программы}

GraphRegim;

SetBKColor(l);

SetTextStyle(0,0,5);

SetColor(12);

OutTextXY(40,50, 'Т Р А Ф И К А');

SetTextStyle(0,0,1);

SetColor(15);

OutTextXY(100,225,'Программа для обучения работе в графическом

режиме’);

OutTextXY(170,245,'Разработал Черноткач Р. И.');

OutTextXY(232,285,'СПГУАП');

OutTextXY{240,305,'2002’);

readkey;

SetTextStyle(0,0,l);

Windo1;

CloseGraph;

NOMER3:=0; {переменные, контролирующие доступ к разделам}

NOMER4:=0; {{ не более двух раз) за сеанс}

NOMER5:=0;

NOMER6:=0;

NOMER7:=0;

К[1]:=0;

К[2]:=0;

while True do begin

TextBackground(3);

ClrScr;

Cursor(False);

GoToXY(15,5);

TextColor(l);

write('Какой раздел Вы хотели бы изучить?');

GoToXY(10,10);

VERTIKALNOE_MENU(10,10,9,

' Программирование графических режимов

' Управление курсором и полем рисования

' Формирование прямоллинейньгх монохромных изображений

' Управление цветим и стилем изображений

' Программирование цветных криволинейных изображений

' Формирование графических текстов

' Программирование озвученных динамических сцен

' Результаты Вашей работы

' Конец работы

Regime);

case Regime of

1:RAZDEL10;

2:RAZDEL20;

3:begin

NOMER3:=NOMER3+1;

If NOMER3<3 then

begin

RAZDEL30;

ball3[NOMER3]:=REZ3;

Itog[nomer3]:=Itog[nomer3]+ball3[nomer3];

K[nomer3]:=K[nomer3]+l;

end

end;

4: begin

NOMER4:=NOMER4+1;

If NOMER4<3 then

begin

RAZDEL40;

ball4[nomer4]:=rez4;

Itog[nomer4]:=Itog[nomer4]+ball4[nomer4];

K[nomer4]:=K[nomer4]+l;

end

end;

5:begin

NOMER5:=NOMER5+1;

If NOMER5<3 then

begin

RAZDEL50;

Ьа115[погаег5]:=rez5;

Itog[nomer5]:=Itog[nomer5]+ball5[nomer5];

K[nomer5]:=K[nomer5]+1;

end;

end;

6:begin

NOMER6:=NOMER6+1;

If NOMER6<3 then

begin

RAZDEL60;

ball6[nomer6]:=rez6; Itog[nomer6]:=Itog[nomer6]+ball6[nomer6]; K[nomer6]:=K[nomer6]+l;

end;

end

7:begin

NOMER7:=NOMER7+1;

IF NOMER7<3 then

begin

RAZDEL70;

ball7[nomer7]:=rez7;

Itog[nomer7]:=Itog[nomer7]+ball7[nomer7];

end;

end;

8:begin {вывод результатов работы}

If K[l]<>0 then

tog[l3:=Round(Itog[l]/K[1);

If K[2]<>0 then

tog[2]:=Round(Itog[2]/K[2]);

TextBackground(1);

ClrScr;

TextColor(12);

writeln;

Write('РЕЗУЛЬТАТЫ ВАШЕЙ РАБОТЫ’);

writeln;

writeln('l попытка 2 попытка':80);

writeln;

wtiteln('ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ

ИЗОБРАЖЕНИЙ');

writeln;

writeln(' УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЙ1);

writeln;

writeln('ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ

ИЗОБРАЖЕНИЙ');

writeln;

writeln(' ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ');

writeln;

writeln(' ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН');

writeln;

writeln;

writeln(' ОЦЕНКА РАБОТЫ ЗА СЕАНС');

GotoXY(64,6); writeln(ball3[1]);

GoToXY(75,6); writeln(ball3[2]);

GoToXY(64,8); writeln(ball4[l]);

GoToXY(75,8); writeln(ball4[2]);

GoToXY(64,10); writeln(ball5[l]);

GoToXY(75,10); writeln(ball5[2]);

GoToXY(64,12); writeln(ball6[l]);

GoToXY(75,12); writeln(bal16[2]);

GoToXY(64,14); writeln(bal17[l]);

GoToXY(75,14); writeln(ball7[23)

GoToXY(64,18); writeln(tog[l]);

GoToXY(75,18); writeln(tog[2]);

readkey;

end;

9:begin

GraphRegim;

OKNO;

SetTextStyle{0,0,4);

SetColor(4);

OutTextXY(150,80,'Bыхотите');

OutTextXY(60,120,'закончить работу')

OutTextXY(100,160,'спрограммой?');

OutTextXY(230,280,'Y/N');

Dh:=ReadKey;

If (Dh='y') or (Dh='н') then

begin

Cursor(True);

ClrScr;

Halt

end

else

CloseGraph;

end;

end;

end;

CloseGraph;

end.

{$A+, B-, D+, E+, F-, G-, I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}

{$M 16384,0,655360}

Unit RAZDEL1;

interface

uses Crt, Graph, Dos, Strings, MYBOOK;

type An=record

P1:Char;

P2:array[0..69] of Char;

end;

var Fl:file of An ;

A: An;

Gd,Gm,Y,N:integer;

St:string[68];

procedure RAZDEL10; {Обеспечение работы с разделом "Программиро вание графических режимов"}

implementation

procedure RAZDEL10;

Label 1;

begin

GraphRegim;

Assign(Fl,'RAZTEX1.pas');

{SI-}

Reset (Fl);

{SI+}

If lOResult <>0 then Writeln ('Нет файла RAZTEX1.pas');

Repeat;

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do

begin

Read(Fl,A); St:=StrPas(A.P2);

case A.P1 of

'':OutTextXY(20,Y*N+10,St);

'*':begin

SetColor{4);

OutTextXY(20,Y*N+10,St);

SetColor(l);

end;

'0':GoTo 1;

end;

end;

1: readkey;

until A.P1='O';

Close(Fl);

CloseGraph;

end;

begin

end.

{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}

{$M 16384,0,655360}

Unit RAZDEL2;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An=record

P1:Char;

P2:array[0..69] of Char;

end;

var F2:file of An ;

A: An;

Gd,Gm,X,Y,N:integer;

St:string[68];

procedure RAZDEL20; {Обеспечение работы с разделом "Управление

курсором и полем рисования"}

implementation

procedure RAZDEL20;

Label 1;

begin

GraphRegim;

Assign(F2,'RAZTEX2.pas');

{SI-}

Reset(F2);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX2.pas');

repeat

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do

begin

Read(F2,A);

St:=StrPas(A.P2);

case A.P1 of

' ':OutTextXY(20,Y*N+10,St);

'*':begin

SetColor(4);

OutTextXY(20,Y*N+10,St);

SetColor(1);

end;

'0':GoTo 1;

end;

end;

1: readkey;

until A.P1='0';

Close(F2);

CloseGraph;

end;

begin

end.

Unit RAZDEL3;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An=record {Теоретическая часть }

P1:Char; {переменная поля флагов: конец файла, номер

иллюстрации, строка, выделяемая цветом}

P2:array[0..69] of Char; {переменная поля текста}

end;

type Ant=record {Текст вопросов}

P1:Char; {переменная поля флагов: конец файла, конец

вопроса, номер иллюстрации}

P2:array[0..1] of Char; {переменная номера вопроса}

P3:array[0..69] of Char; {переменная поля текста}

end;

type Antr=record { Справки }

P1:Char; {переменная поля флагов: конец файла, конец вопроса,

номер иллюстрации}

P2:array[0..1] of Char; {переменная поля номера вопроса}

P3:array[0..0] of Char; {переменная поля флагов: номера

справки, конца справки}

P4:array[0..69] of Char; {переменная поля текста}

P5:array[0..2] of Char; {переменная поля оценки}

end;

var F3:file of An ; {переменные теоретической части}

A: An;

St:string[68];

Y,N:integer;

var F32:file of Ant; { переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

var F33:file of Antr; {переменные справок}

Atr:Antr;

R2:string[2];

R3:string[1];

Stt:string[68];

R4:string[2];

Z2,Z3,Z4:integer;

CH: Char; {переменная для принятия символа с клавиатуры}