drawpoly(5,a10);
int a11[8]={404,361, 382,345, 509,183, 531,199};
drawpoly(4,a11);
setfillstyle(9,7);
floodfill(383,345,15);
setfillstyle(2,9);
floodfill(396,372,15);
}
void step2()
{
setcolor(15);
int a11[10]={395,370, 405,375, 480,165, 470,160,395,370};
drawpoly(5,a11);
int a10[8]={400,355, 375,345, 440,165, 465,175};
drawpoly(4,a10);
setfillstyle(9,7);
floodfill(383,345,15);
setfillstyle(2,9);
floodfill(396,369,15);
}
void step3()
{
setcolor(15);
setfillstyle(9,7);
rectangle(366,355,395,165);
floodfill(370,340,15);
setfillstyle(2,9);
rectangle(395,148,405,372);
floodfill(396,150,15);
}
void step11()
{
setcolor(GREEN);
setfillstyle(SOLID_FILL,GREEN);
int a10[10]={395,372, 403,378, 548,194, 540,188, 395,372};
fillpoly(5,a10);
int a11[8]={404,361, 382,345, 509,183, 531,199};
fillpoly(4,a11);
}
void step22()
{
setcolor(GREEN);
setfillstyle(SOLID_FILL,GREEN);
int a11[10]={395,370, 405,375, 480,165, 470,160,395,370};
fillpoly(5,a11);
int a10[8]={400,355, 375,345, 440,165, 465,175};
fillpoly(4,a10);
}
void step33()
{
setcolor(GREEN);
setfillstyle(SOLID_FILL,GREEN);
bar3d(366,355,395,165,0,0);
bar3d(395,148,405,372,0,0);
}
void voice()
{ sound(25);
delay(4);
nosound(); }
void teoria()
{
int x,i;
cleardevice();
FILE *file1;
char s, s1=' ';
if ((file1=fopen("tr.txt","r"))==NULL)
{ perror("Не могу открыть файл! \n");
exit(1); }
while (!kbhit())
{ s=fgetc(file1);
if (s==EOF) break;
if (s=='\n' && s1=='\n') delay(1500);
printf("%c", s);
voice(); delay(10); s1=s; }
fclose(file1);
getch();
}
void telo(void)
{
int i,j,I,U,M,t,T;
setbkcolor(GREEN);
cleardevice();
settextjustify(LEFT_TEXT, LEFT_TEXT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
setcolor(15); setfillstyle(SOLID_FILL,15);
printf(" ВХОДНЫЕ ДАННЫЕ");
printf("\n Сила тока(1-3): ");
scanf("%d",&I);
printf(" Напряжение(110-220): ");
scanf("%d",&U);
printf(" Масса(100-300): ");
scanf("%d",&M);
printf(" Время нагревания(1-3): ");
scanf("%d",&t);
printf(" Начальная температура(15-25): ");
scanf("%d",&T);
//VINT
bar3d(85,254,185,266,0,0); bar3d(67,237,85,283,0,0);
int a1[10]={376,215, 185,239, 185,281, 376,305, 376,215};
fillpoly(5,a1);
//kryuchok
arc(381,260,270,180,5);
arc(381,260,270,180,4);
//Blok
int a2[14]={95,140, 395,140, 395,148, 103,148, 103,245, 95,245, 95,140};
drawpoly(7,a2);
int a3[12]={365,148, 365,172, 127,172, 127,250, 103,250, 103,245};
drawpoly(6,a3);
line(365,172,365,180);
line(365,180,127,180);
int a4[14]={95,380, 395,380, 395,372, 103,372, 103,275, 95,275, 95,380};
drawpoly(7,a4);
int a5[12]={365,372, 365,348, 127,348, 127,270, 103,270, 103,275};
drawpoly(6,a5);
line(365,348,365,340); line(365,340,127,340);
setfillstyle(5,9);
floodfill(97,142,15); floodfill(100,372,15);
setfillstyle(9,7);
floodfill(105,162,15); floodfill(125,300,15);
setfillstyle(4,3);
floodfill(355,178,15); floodfill(360,342,15);
//Vnut blok
int a6[12]={348,188, 348,215, 157,239, 157,254, 127,254, 127,250};
drawpoly(6,a6);
int a7[12]={348,332, 348,305, 157,281, 157,266, 127,266, 127,270};
drawpoly(6,a7);
int a8[68]={127,188, 140,188, 140,195, 153,195, 153,188, 166,188, 166,203, 179,203, 179,188, 192,188, 192,195, 205,195, 205,188, 218,188, 218,203, 231,203, 231,188, 244,188, 244,195, 257,195, 257,188, 270,188, 270,203, 283,203, 283,188, 296,188, 296,195, 309,195, 309,188, 322,188, 322,203, 335,203, 335,188, 348,188};
drawpoly(34,a8);
setfillstyle(6,8);
floodfill(130,190,15);
int a9[68]={127,332, 140,332, 140,317, 153,317, 153,332, 166,332, 166,325, 179,325, 179,332, 192,332, 192,317, 205,317, 205,332, 218,332, 218,325, 231,325, 231,332, 244,332, 244,317, 257,317, 257,332, 270,332, 270,325, 283,325, 283,332, 296,332, 296,317, 309,317, 309,332, 322,332, 322,325, 335,325, 335,332, 348,332};
drawpoly(34,a9);
setfillstyle(6,8);
floodfill(130,330,15);
//spiral
setcolor(BLUE);
for(i=146,j=173;i<=310;i=i+52,j=j+52)
{ circle(i,191,3);
circle(j,329,3); }
for(i=172,j=146;i<=340;i=i+52,j=j+52)
{ circle(i,199,3);
circle(j,321,3);}
//krishka
step1();
//move
int k;
for(k=0;k<19;)
{
setcolor(GREEN);
setfillstyle(SOLID_FILL,15);
bar3d(85-k,254,185-k,266,0,0); bar3d(67-k,237,85-k,283,0,0);
a1[0]=376-k; a1[2]=185-k; a1[4]=185-k; a1[6]=376-k; a1[8]=376-k;
fillpoly(5,a1);
arc(381-k,260,270-k,180,5); arc(381-k,260,270-k,180,4);
k++;
setcolor(15);
bar3d(85-k,254,185-k,266,0,0); bar3d(67-k,237,85-k,283,0,0);
arc(381-k,260,270-k,180,5); arc(381-k,260,270-k,180,4);
a1[0]=376-k; a1[2]=185-k; a1[4]=185-k; a1[6]=376-k; a1[8]=376-k;
fillpoly(5,a1);
delay(100);
}
delay(1000);
step11();
step2();
delay(1000);
step22();
step3();
delay(2000);
setcolor(YELLOW);
for(i=146,j=173;i<=310;i=i+52,j=j+52)
{ circle(i,191,3);
circle(j,329,3); }
for(i=172,j=146;i<=340;i=i+52,j=j+52)
{ circle(i,199,3);
circle(j,321,3);}
delay(2000);
setcolor(RED);
for(i=146,j=173;i<=310;i=i+52,j=j+52)
{ circle(i,191,3);
circle(j,329,3); }
for(i=172,j=146;i<=340;i=i+52,j=j+52)
{ circle(i,199,3);
circle(j,321,3);}
delay(2000);
setcolor(LIGHTRED);
for(i=146,j=173;i<=310;i=i+52,j=j+52)
{ circle(i,191,3);
circle(j,329,3); }
for(i=172,j=146;i<=340;i=i+52,j=j+52)
{ circle(i,199,3);
circle(j,321,3);}
delay(2000);
step33();
step2();
delay(1000);
step22();
step1();
for(k=25;k>0;)
{
setcolor(GREEN);
setfillstyle(SOLID_FILL,15);
bar3d(85-k,254,185-k,266,0,0); bar3d(67-k,237,85-k,283,0,0);
a1[0]=376-k; a1[2]=185-k; a1[4]=185-k; a1[6]=376-k; a1[8]=376-k;
fillpoly(5,a1);
arc(381-k,260,270-k,180,5); arc(381-k,260,270-k,180,4);
k--;
setcolor(15);
bar3d(85-k,254,185-k,266,0,0); bar3d(67-k,237,85-k,283,0,0);
arc(381-k,260,270-k,180,5); arc(381-k,260,270-k,180,4);
a1[0]=376-k; a1[2]=185-k; a1[4]=185-k; a1[6]=376-k; a1[8]=376-k;
fillpoly(5,a1);
delay(100);
}
for(i=1;i<25;i++) printf("\n");
printf(" ВЫХОДНЫЕ ДАННЫЕ");
printf("\n Сила тока: %d",I);
printf("\n Напряжение: %d",U);
printf("\n Масса: %d",M);
printf("\n Время нагревания: %d min",t);
printf("\n Начальная температура: %d C",T);
printf("\n Конечная температура: %d C",T+t*9);
printf("\n Удельная теплоемкость: %d",((T+t*9)-T)*2);
getch();
}
void opis(void)
{
int i,j,I,U,M,t,T;
setcolor(15); setfillstyle(SOLID_FILL,15);
cleardevice();
settextjustify(LEFT_TEXT, LEFT_TEXT);
settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);
setbkcolor(GREEN);
//VINT
rectangle(85,254,185,266);
rectangle(67,237,85,283);
int a1[10]={376,215, 185,239, 185,281, 376,305, 376,215};
drawpoly(5,a1);
line(70,250,50,250);
outtextxy(10,250,"Винт");
//kryuchok
arc(381,260,270,180,5);
arc(381,260,270,180,4);
line(381,260,420,160);
outtextxy(420,160,"Кручок");
//Blok
int a2[14]={95,140, 395,140, 395,148, 103,148, 103,245, 95,245, 95,140};
drawpoly(7,a2);
int a3[12]={365,148, 365,172, 127,172, 127,250, 103,250, 103,245};
drawpoly(6,a3);
line(365,172,365,180);
line(365,180,127,180);
int a4[14]={95,380, 395,380, 395,372, 103,372, 103,275, 95,275, 95,380};
drawpoly(7,a4);
int a5[12]={365,372, 365,348, 127,348, 127,270, 103,270, 103,275};
drawpoly(6,a5);
line(365,348,365,340);
line(365,340,127,340);
setfillstyle(5,9);
floodfill(97,142,15);
floodfill(100,372,15);
setfillstyle(9,7);
floodfill(105,162,15);
floodfill(125,300,15);
setfillstyle(4,3);
floodfill(355,178,15);
floodfill(360,342,15);
line(300,100,300,145);
outtextxy(300,100,"Кожух");
line(280,120,280,155);
outtextxy(280,120,"Пенопласта");
line(250,80,250,175);
outtextxy(250,80,"Асбест");
//Vnut blok
int a6[12]={348,188, 348,215, 157,239, 157,254, 127,254, 127,250};
drawpoly(6,a6);
int a7[12]={348,332, 348,305, 157,281, 157,266, 127,266, 127,270};
drawpoly(6,a7);
int a8[68]={127,188, 140,188, 140,195, 153,195, 153,188, 166,188, 166,203, 179,203, 179,188, 192,188, 192,195, 205,195, 205,188, 218,188, 218,203, 231,203, 231,188, 244,188, 244,195, 257,195, 257,188, 270,188, 270,203, 283,203, 283,188, 296,188, 296,195, 309,195, 309,188, 322,188, 322,203, 335,203, 335,188, 348,188};
drawpoly(34,a8);
setfillstyle(6,8);
floodfill(130,190,15);
int a9[68]={127,332, 140,332, 140,317, 153,317, 153,332, 166,332, 166,325, 179,325, 179,332, 192,332, 192,317, 205,317, 205,332, 218,332, 218,325, 231,325, 231,332, 244,332, 244,317, 257,317, 257,332, 270,332, 270,325, 283,325, 283,332, 296,332, 296,317, 309,317, 309,332, 322,332, 322,325, 335,325, 335,332, 348,332};
drawpoly(34,a9);
setfillstyle(6,8);
floodfill(130,330,15);
//spiral
setcolor(4);
for(i=146,j=173;i<=310;i=i+52,j=j+52)
{ circle(i,191,3);
circle(j,329,3); }
// setcolor(4);
for(i=172,j=146;i<=340;i=i+52,j=j+52)
{ circle(i,199,3);
circle(j,321,3);}
setcolor(15);
line(146,192,146,100);
outtextxy(146,100,"Спираль");
line(136,200,136,80);
outtextxy(136,80,"Корпус");
line(170,250,170,450);
outtextxy(170,450,"Отверстье");
line(370,250,370,450);
outtextxy(370,450,"Испытуемое тело");
//krishka
int a10[10]={395,372, 403,378, 548,194, 540,188, 395,372};
drawpoly(5,a10);
int a11[8]={404,361, 382,345, 509,183, 531,199};
drawpoly(4,a11);
setfillstyle(9,7);
floodfill(383,345,15);
setfillstyle(2,9);
floodfill(396,372,15);
line(470,250,470,400);
outtextxy(470,400,"Крышка");
getch(); getch();
}
3.4 Описание работы программы
Рис. 1. Главное меню программы.
На первом рисунке показано меню программы. С помощью клавиш “-” и “+” пользователь может передвигаться по пунктам меню и с помощью клавиши “Enter” выбрать необходимый пункт. При этом управление передается соответствующей подпрограмме которая выполняет функции соответствующие выбранному меню.
Рис. 2. Вид раздела “Теория и выполнение работы”
После выбора первого раздела меню “Теория и выполнение работы”, управление передается соответствующей подпрограмме которая показывает внешний вид установки. Результат работы показан на рис.2.
Рис. 3. Вид окна ввода параметров опыта.
При выборе пункта меню “Практика” управление передается подпрограмме выполняющей эмуляцию работы установки. Сначала с пользователем осуществляется диалог, в ходе которого он вводит параметры предстоящего опыта, см. рис.3.
Рис. 4. Визуализация опыта.
После ввода пользователем параметров опыта, эти данные передаются подпрограмме визуализирующей процесс протекания опыта. Результат работы подпрограммы представлен на рис.4.
Рис. 5. Визуализация процесса протекания опыта.
Первый шаг визуализации это закрытие крышки калориметра, что показывается ни рис.5.
Рис. 6. Визуализация подачи напряжения на катушку.
Следующим шагом протекания опыта является подача тока на катушку и нагревания следствии этого спирали которая нагревает заготовку.
Рис. 7. Визуализация окончания опыта- открытие крышки калориметра.
Следующим шагом опыта является выключение подачи тока к спирали вследствие чего спираль перестает нагревать болванку и затем открывается крышка калориметра для извлечения болванки из него (см.рис.7.).
Рис. 8. Извлечение болванки из калориметра.
Завершение опыта – извлечение болванки из калориметра и выдача результата опыта (см. Рис. 8.).
Рис. 9. Результат выбора пункта «Теория».
В результате выбора пункта меню «Теория» пользователю выводится текстовая информация описывающая установку и сам опыт как показано на рис.9.
Заключение
Достижение вычислительной техники за последнее время позволяют внедрять ее в те сферы жизнедеятельности человека, где ранее это было невозможно. Так острой проблемой отечественных школ является острая нехватка физических лабораторий и приборов. При этом, практически во всех школах республики имеются современные компьютерные классы, что позволяют решить проблемы отсутствия лабораторий и приборов путем создания виртуальных анимационных лабораторий.
Создавая анимационно - обучающие программы ученикам представляется возможность всесторонне изучить процессы и влияние, получать практические навыки по физике. Эксплуатация программного комплекса показала большой педагогический эффект, что доказывает актуальность данной тематики.
Список используемой литературы
1. Ливенцев Н.М. Практикум по физике для медицинских вузов. Москва 1972г.
2. М.М. Архангельский. Курс физики. Механика. Москва. 1975г.
3. А.К. Кикоин. Молекулярная физика. Наука. 1976г.
4. А.Ф. Шевченко, Е.А. Безденежных. Физика. 1978г.
5. А.Н. Ремизов. Медицинская и биологическая физика.1987г.
6. М.А. Эссаулова и др. Руководство к лабораторным работам.
7. А.Н. Ремизов. Сборник задач по медицинской и биологической физике. 1987г.
8. О.Ф. Владимиров, Д.М. Ращупкин и др. Биофизика.
9. А.Н. Матвеев. Молекулярная физика. Высшая школа. Москва. 1981г.
10. А.Ф. Шевченко, Е.А. Безденежных. Физика.1978г.
11. Д.В. Сивухин. Общий курс физики. Том 2. Термодинамика и молекулярная физика. Наука. 1975г.
12. Г.С. Ландсберга. Элементарный учебник физики. Том 1. Москва. 1973г.
Размещено на .ru
Страницы: 1, 2, 3, 4, 5, 6, 7, 8