Подставляя численное значение молярной газовой постоянной, получаем




 

Cm = 25 Дж / (моль * К). (5)

 

Это равенство выполняется с довольно хорошим приближением для многих веществ при комнатной температуре. Для более низких температур наблюдаются отклонения от него (рис. 1). Вблизи абсолютного нуля молярная теплоемкость всех тел пропорционально Т3, и только при достаточно высокой, характерной для каждого вещества температуре начинает выполняться равенство (5).

Строгая теория теплоемкости твердых тел создана Эйнштейном и Дебаем. Она учитывает, что колебания частиц в кристаллической решетке не являются независимыми и что энергия колебательного движения квантована.

Описание установки.

ПРИБОРЫи ПРИНАДЛЕЖНОСТИ: исследуемые тела, калориметр, автотрансформатор с вольтметром, амперметр, мост постоянного тока.

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

Калориметр представляет собой латунный корпус 2 с коническим отверстием 3, куда вставляются испытуемые тела 9, изготовленные из исследуемых материалов и представляющие собой конические цилиндры, притертые к отверстию в корпусе. В корпусе калориметра уложены нагревательная спираль 4 и спираль термометра сопротивления 5.

Снаружи корпус калориметра теплоизолирован слоями асбеста 6 и пенопласта 7 и закрыт алюминиевым кожухом 8. После помещения в калориметр испытуемого тела он закрывается крышкой 10. Винт 1 предназначен для выталкивания испытуемых тел из калориметра по окончании опыта. Для этой же цели можно использовать и специальный крючок, зацепив им тело за предназначенную для этого петлю 9’.

 

Рис. 2.

 

Электрическая схема калориметра представлена на рис. 3.

Нагревание обмотки 4 производится от сети переменного тока 2. Напряжение нагревателя регулируется лабораторным автотрансформатором. Измерения амперметром 3 и вольтметром 1. Термометр сопротивления 5 включен в мост постоянного тока 6. Методика измерения сопротивления с помощью моста постоянного тока дана в приложении.

 

Рис 3.

 

Если нагрет на ∆Т градусов калориметр с помещенным в него исследуемым телом, то энергия электрического тока пойдет на нагревание исследуемого тела и калориметра

 

IUt1 = mkck ∆Т + mTcT ∆Т+d. (6)

 

Здесь I и U – ток и напряжение на нагревателе, t1 - время нагревания, mk и mT - массы калориметра и нагреваемого тела, ck и сT – удельные теплоемкости калориметра и нагреваемого тела, d - потери тепла.

Для того чтобы вычислить и исключить из уравнения (6) тепло, идущее на нагрев калориметра, и потери тепла в окружающее пространство, можно нагреть пустой калориметр на те же ∆Т градусов. Потери тепла в обоих случаях будут одинаковыми, так как они зависят только от разности температур ∆Т но этот процесс потребует меньшего времени нагревания t2:

 

IUt2 = mkck∆Т + d. (7)

 
 

Из равенства (6) и (7) следует
где ∆Т = t1 - t2. Величину можно определить по графикам зависимости ∆Т от t для пустого калориметра и калориметра с исследуемым телом (рис. 73). Температура нагрева измеряется в данной установке при помощи термометра сопротивления, т. е. металлической проволоки.

 

 


t 2 t1

Рис. 4

 

Сопротивление металла изменяется температурой по закону

 

R = R0 (1 + at)?, (9)

 


где R0 – сопротивление при температуре t, a - температурный коэффициент сопротивления, t который в узком диапазоне температуру можно считать постоянным.

Измерив температуру воздуха в комнате tn по ртутному термометру и сопротивление RB измерительной обмотки при помощи моста постоянного тока, можно из формулы (9) рассчитать R0:

 
 

 

где a - температурный коэффициент сопротивления меди.

Приведенная формула (9) позволяет также по известному сопротивлению R0 обмотки термометра сопротивления и измеренному приращению сопротивления DR = R – RB подсчитать DT:

 

DT = Dt = DR / (aR0) (11).

 


3.2 Блок – схема программы

 

 


Блок-схема подпрограммы opis()

 

 


Блок-схема подпрограммы teoria()

 

Блок схема подпрограммы Telo()

 

 

3.3 Листинг программа

 

#include <graphics.h>

#include <stdlib.h>

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <ctype.h>

#include "steps.h"

int main(void)

{

int gdriver = DETECT, gmode, errorcode,i;

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode!= grOk)

{ printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch(); exit(1); }

menu:

cleardevice();

setbkcolor(BLACK);

settextjustify(LEFT_TEXT, LEFT_TEXT);

settextstyle(DEFAULT_FONT, HORIZ_DIR, 1);

setfillstyle(SOLID_FILL,15);

setcolor(WHITE);

rectangle(0,0,getmaxx(),getmaxy());

setcolor(RED);

outtextxy(20,64,"-, + - перемещение, Enter - Выбор");

settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);

settextjustify(0, 1);

setcolor(BLUE);

outtextxy(10,12,"");

outtextxy(180,30,"*** M E Н Ю ***");

outtextxy(10,45,"‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑");

setcolor(RED);

outtextxy(30,100,"1.Теория и выполнение работы");

outtextxy(30,150,"2.Описание установок");

outtextxy(30,200,"3.Практика");

outtextxy(30,250,"4.Выход");

int y=80,y1=120;

char x;

setcolor(14);

rectangle(15,y,620,y1);

m1:

x=getch();

switch (toascii(x))

{

case 43: if (y==230)

{

setcolor(BLACK);

rectangle(15,y,620,y1);

y=80; y1=120;

setcolor(14);

rectangle(15,y,620,y1);

goto m1;

}

setcolor(BLACK);

rectangle(15,y,620,y1);

y=y+50;

y1=y1+50;

setcolor(14);

rectangle(15,y,620,y1);

goto m1;

case 45: if (y==80)

{

setcolor(BLACK);

rectangle(15,y,620,y1);

y=230;

y1=270;

setcolor(14);

rectangle(15,y,620,y1);

goto m1;

}

setcolor(BLACK);

rectangle(15,y,620,y1);

y=y-50;

y1=y1-50;

setcolor(14);

rectangle(15,y,620,y1);

goto m1;

case 13: for (i=0;i<1;i++)

{

setcolor(BLUE);

rectangle(15,y,620,y1);

sound(100);

delay(100);

setcolor(14);

rectangle(15,y,620,y1);

sound(200);

delay(100);

}

nosound();

switch(y)

{ case 80: teoria();

goto menu;

case 130: opis();

goto menu;

case 180: telo();

goto menu;

case 230: goto door;

}

goto m1;

default:

goto m1;

}

door:

closegraph();

return 0;

}

Файл Steps.h

void step1()

{

setcolor(15);

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

}

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г.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-12-18 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: