48772

Система моделирующая движение молекул идеального газа в замкнутом пространстве

Курсовая

Информатика, кибернетика и программирование

Моделирование движения молекул газа. Выполнить моделирование поведения молекул в прямоугольном сосуде, разделенном подвижной вертикальной перегородкой с отверстием.

Русский

2013-12-15

111 KB

16 чел.

Аннотация.

           Объём курсовой работы составляет шестнадцать страниц страниц.  В этой работе содержится семь рисунков представляющих главным образом диаграмм и схемы алгоритмов, и три таблицы. Целью данной курсовой работы является построить систему моделирующую движение молекул идеального газа в замкнутом пространстве.  Также в курсовую работу входит два приложения: в первом находится текст основной программы, а во втором текстпрограммы-драйвера для тестирования процедуры столкновения со стенкой  и листинг тестирования.  Оценка результатов выполнения даётся в заключении к данной курсовой работе.  

ЗАДАНИЕ (вариант 21).

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

1. Системный анализ.

Выпишем  факты:

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

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

Стенка: в прямоугольном сосуде; молекулы отражаются от стенок без потери энергии.

Перегородка: разделенном  подвижной вертикальной перегородкой с отверстием; можно изменять величину отверстия в перегородке; можно перемещать перегородку в, горизонтальном направлении.

Молекула: молекулы отражаются от стенок без потери энергии; молекулы отражаются  друг от друга без потери энергии.

  1.  Стенка(Wall)
  •  Атрибуты:

длина (length)

         угол(anglе)

  1.  Перегородка(Barrier)
  •  Атрибуты:

        Величина отверстия(delta)

  •  Действия:

        изменить размер отверстия(hole_scale)

        двигать перегородку(move)

  1.  Молекула(Ball)
  •  Атрибуты:

         координаты центра(centreX,centreY)

         угол(angl)

         радиус(radius)

  •  Действия:

         двигать шар(move)

         установить значение угла движения(set_angl)

         установить значение радиуса(set_radius)

         установить значение координаты Х(set_centreX)

         установить значение координаты Y(set_centreY)

  •  Сообщения др объектам:

         ударить шар в другой шар(hit)

         ударить шар в стенку(hit_on_wall)

         ударить шар в перегородку(hit_on_barr)

к данному словарю предметной области следует сделать некоторые уточнения: 1) величина отверстия delta имеет начальное значение 40 и при изменении изменяется пошагово причём шаг равен 5;      2)в реальном мире скорость молекулы зависит от её кинетической энергии, но в задаче оговорено, что при столкновениях энергия молекулы не изменяется, а значит и скорость остаётся постоянной поэтому примем скорость молекулы velo=6; 3)абстракция сущности молекулы angl отвечает и за угол движения и за направление движения. 

 

                                                                         Ball

     

    1..n   1..n

                                                     1     

                 1

                                             

                               Wall                                                               Barrier  

Рисунок1.   Диаграмма классов на стадии анализа

            TheWall:Wall

          

              PassivBall:Ball        

                                       hit(PassivBall)                                       

ActivBall:Ball

hit_on_barrier()

     TheBarrier:Barrier      

Рисунок2.Диаграмма объектов на стадии анализа

Функции системы:

  1.  Управление моделированием осуществляется при помощи команд вводимых с клавиатуры: кнопка «вправо» – перемещение подвижной перегородки вправо, кнопка «влево» - перемещение подвижной перегородки влево, кнопки «серый плюс» и «серый минус» (на дополнительной клавиатуре) – соответственно увеличение и уменьшение размеров отверстия в перегородке.  Перед началом моделирование задаётся количество моделируемых молекул , также путём ввода с клавиатуры.  Выход из программы происходит при нажатии клавиши ESC
  2.  Отображение на экране компьютера перемещения молекул, результатов их столкновений со стенками, перегородкой и между собой

Эксплуатационные требования:

  •  технические средства – IBM PC  486DX2(66МГц)
  •  операционная система – MS DOS
  •  процесс моделирования управляется одним оператором.

2.  проектирование.

Идентификация содержания классов.

Класс Wall.  Реализует понятие “стенка сосуда”, объекты этого класса ограничивают рабочее поле на котором происходит моделирование. Стенки различаются длиной и углом (вертикальные и горизонтальные) оперируя с этими параметрами моделируем «сосуд».

Класс Barrier.  На первый взгляд кажется логичным наследовать этот класс от Wall, но из-за специфического поведения объектов этого класса наследование становится не удобным.  Атрибутами в этом классе являются координаты центра перегородки, и в они же являются центром отверстия, что делает удобной работу с составным объектом этого класса.

Класс Ball.   Основной класс, описывающий вид и поведение молекулы.  В этой работе молекулы представляются в виде окружностей постоянного радиуса( отсюда Ball) что требует введения атрибутов centreX и centreY – как координат центра окружности, и radius – радиуса молекулы.   Атрибут angl изменяется при столкновении молекулы с чем-либо и задаёт направление движения.

Идентификация связей между классами и объектами.

Класс Barrier. Объекты данного класса взаимодействуют с объектами класса Ball., при этом они передают им свои параметры, соответственно вводим функции getcx(), getcy(), getdelta()  возвращающие координаты центра перегородки и радиус отверстия.

Класс Ball. Имеет общедоступный метод изменения любого поля – set(), который используется при инициализации.

     1            1

                   Wall         1        1.N                     Ball  1..N 1      Barrier

Рисунок 3. Диаграмма классов на этапе проектирования

                 TheWall:Wall

     PassivBall:Ball

                                                                          P  

       Hit_on_wall()                 Hit(PassivBall)

                                                               getcx(),      getcy(),     getdelta()

          TheBarrier:Barrie

  ActiveBall:Ball

Рисунок 4. Диаграмма объектов на стадии проектирования

ActiveBall:Ball                  TheBarrier:Barrier                PassivBall:Ball

                      getcx()

                      getcy()

                     getdelta()

                   

                                                                               Hit(PassivBall)

Рисунок 5. Диаграмм взаимодействия на стадии проектирования

Диаграмма модулей в данной курсовой работе смысла не имеет т.к. все классы и функции находятся в одном одуле .

3.  Программирование.

Программирование производится на языке С++.  Основу для программирования составляют диаграммы и спецификации этапа проектирования.

Ниже представлены программные реализации классов полученных на этапе проектирования:

Класс «Стенка»

class Wall

{

 protected:

int length; // длина стенки

int angle; // угол стенки ( 0 или 90);

int x,y;

 public:

Wall(int l, int a)

  {length = l; angle = a;}

void show(int ix,int iy); // нарисовать стенку

 };

       

 Класс «Перегородка»

class Barrier

 {

protected:

 int cx;  // координаты центра

   int cy; //

 int delta; // радиус отверстия в перегородке

public:

 Barrier(int icx, int icy, int d){delta = d;cx=icx;cy=icy;}

 void hide( int ix,int iy); //скрыть перегородку

 void show( int ix,int iy);//нарисовать перегородку

 int hole_scale(int dy); // изменение радиуса отверстия в перегородке

  void move(int dx); // переместить перегородку

 int getcx(){return cx;}

 int getcy(){return cy;}

 int getdelta(){return delta;}

};

Класс «Молекула»

class Ball

 {

protected:

 int centreX;//координаты центра

 int centreY;

 int radius;//радиус молекулы

 double angl;//угол определяющий направление движения молекулы

public:

 Ball() {;}

 void show();

 void hide();

 int move(); //переместить молекулу

 int hit(Ball b2);//столкновение с др молекулой

 int hit_on_wall();//столкновение со стенкой

 void hit_on_barr(int x,int y,int d); // столкновение с перегородкой

void set(int bool,int value) //функция инициализирующая поля класса (в зависимости от значения bool)

{

if(bool==1) radius = value;

if(bool==2) centreX = value;

if(bool==3) centreY = value;

if(bool==4) angl =1.0*value;

}

 };

4.  Тестирование.

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

Спецификация метода int Ball::hit_on_wall()

Имя -   hit_on_wall()

Назначение – изменить угол движения молекулы

Входные параметры -  centtreX, centreY – координаты центрамолекулы  

                                       аngl – угол движения молекулы.

Выходные параметры - centtreX, centreY – координаты центрамолекулы  

                                       аngl – угол движения молекулы.

Особые ситуации – нет

Вызываемые модули – нет.

 

Ситуации:

  1.  молекула ударяется в верхнюю стенку -  угол отрицателен     
  2.  молекула ударяется в левую стенку -  угол отрицателен       
  3.  молекула ударяется в правую стенку -  угол отрицателен          
  4.  молекула ударяется в нижнюю стенку -  угол положителен          
  5.  молекула ударяется в правую стенку -  угол положителен          
  6.  молекула ударяется в левую стенку -  угол положителен          

Эффекты:

  1.  при ударе о стенку угол меняет знак и становится отрицательным
  2.  при ударе о стенку угол меняет знак и становится положительным
  3.  при ударе о стенку угол не меняет знак

Примечание: 1)во всех случаях значение угла по модулю изменяется

                        2) ни какие две ситуации не могут существовать одновременно

         1

         2                                   b

         3         V

                                c

         4

         5       V

                                            a                 

         6

Рисунок 6.Функциональная диаграмма

 Таблица1. Таблица решений  

Тесты

Ситуац

1

2

3

4

5

6

1

I

S

S

S

S

S

2

S

I

S

S

S

S

3

S

S

I

S

S

S

4

S

S

S

I

S

S

5

S

S

S

S

I

S

6

S

S

S

S

S

I

Эффект

A

A

A

A

P

A

A

B

P

A

A

A

A

A

C

A

P

P

A

P

P

S- состояния нет

I- состояние есть

A- эффекта нет

P- эффект есть

Исходя из данной таблицы видно, что в принципе достаточно трёх тестов.

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

Входные данные

Выходные данные

Ожидаемый выход

1

Angl = 60.000000

Angl = -60.000000

Angl = -60.000000

2

Angl = -60.000000

Angl = 60.000000

Angl =60.000000

3

Angl =60.000000

Angl = 120.000000

Angl = 120.00000

Таблица2. Таблица тестов

Теперь изобразим приближенный алгоритм функции

                  

           вход

          А

     angl= 180.0-(angl)

     Б  

   angl= 0.0-(angl)

                                                                                                                        выход

Рисунок7. Блок-схема метода hit_on_wall().

    

А = (25 >= centreX) или (centreX >= 600)

Б = (15 >= centreY) или (centreY >= 450)

Таблица3. Матрица ветвей            

Тесты

1

2

3

А

Да

Х

Х

Нет

Х

Б

Да

Х

Нет

Х

Х

При возникновении ситуации А – Нет, а  Б- Да, будет получена ситуация сначала  как в тесте №1, а затем как в тесте №2

Предусмотренные тесты охватывают все ситуации. Циклы в тестируемом методе отсутствуют, поэтому нет необходимости составлять соответствующие тесты. Программа драйвер и результаты её выполнения находятся в приложении 2.

Заключение.

В заключении хотелось бы отметить, что данная программная система является только учебной моделью.   Несомненно ей не хватает более удобного и гибкого интерфейса с пользователем, возможности сохранять результаты моделирования в любой момент времен и возможно более красочного оформления.  Также перед применением этой системы в реальных условиях нужно подвергнуть более тщательной математической обработке некоторые методы, например метод реализующий столкновение двух молекул.  

Список литературы.

  1.  Методические указания к курсовой работе по дисциплине технология программирования. Составители: И.Р. Дубов, В.А. Барков, А.Г. Долинин.  Владимир:1999г
  2.  Лекции по дисциплине технология программирования  (преподаватель И.Р. Дубов)         Желонкина Н.В.

Приложение 1.

#include<graphics.h>

#include<dos.h>

#include<bios.h>

#include<math.h>

#include<iostream.h>

#include<stdlib.h>

#include<conio.h>

#define Pi  0.01745 // константа для перевода градусов в радианы

#define color BLACK // основной цвет

#define velo 6 // скорость молекулы

//*************************Класс «Стенка»************************

class Wall

{

 protected:

int length;

int angle;

int x,y;

 public:

Wall(int l, int a)

  {length = l; angle = a;}

void show(int ix,int iy); // нарисовать стенку

 };

void Wall::show( int ix,int iy)

 {

setcolor(15);

if( angle == 0)  // в зависимости от значения угла рисовать горизонтальную или вертикальную стенку

             bar(ix-5,iy-5,ix+length,iy);

else bar(ix-15,iy-5,ix,iy+length);

setcolor(color);

 }

//*************************Класс «Перегородка»**********************

class Barrier

 {

protected:

 int cx;  // координаты центра

   int cy; //

 int delta; // радиус отверстия в перегородке

public:

 Barrier(int icx, int icy, int d){delta = d;cx=icx;cy=icy;}

 void hide( int ix,int iy); //скрыть перегородку

 void show( int ix,int iy);//нарисовать перегородку

 int hole_scale(int dy); // изменение радиуса отверстия в перегородке

  void move(int dx); // переместить перегородку

 int getcx(){return cx;}

 int getcy(){return cy;}

 int getdelta(){return delta;}

};

void Barrier :: hide(int ix,int iy)

 {

setcolor(color);

line(ix,iy,ix,cy-delta);

line(ix,cy+delta,ix,460);

setcolor(15);

 }

void Barrier :: show(int ix,int iy)

 {

setcolor(15);

line(ix,iy,ix,cy-delta);

line(ix,cy+delta,ix,460);

setcolor(color);

 }

int Barrier::hole_scale(int dy)

 {

 delta=delta+dy;

 setcolor(color);

 line(cx,cy-delta,cx,cy+delta);

 setcolor(15);

 show(cx,10);

 }

void Barrier::move(int dx)

 { hide(cx,10);

   cx=cx+dx;

   show(cx,10);

 }

//************************************Класс «Молекула»*********************************

class Ball

 {

protected:

 int centreX;//координаты центра

 int centreY;

 int radius;//радиус молекулы

 double angl;//угол определяющий направление движения молекулы

public:

 Ball() {;}

 void show();

 void hide();

 int move();

 int hit(Ball b2);//столкновение с др молекулой

 int hit_on_wall();//столкновение со стенкой

 void hit_on_barr(int x,int y,int d); // столкновение с перегородкой

void set(int bool,int value) //функция инициализирующая поля класса (в зависимости от значения bool)

{

if(bool==1) radius = value;

if(bool==2) centreX = value;

if(bool==3) centreY = value;

if(bool==4) angl =1.0*value;

}

 };

void setnewfill(int fst,int col){setfillstyle(fst,col); setcolor(col);}

/****************Show()*******************/

void Ball::show()

 {fillellipse(centreX,centreY,radius,radius);}

/****************Hide()*******************/

void Ball::hide()

 {setnewfill(0,0);show();setnewfill(1,15);}

/****************Move()*****************/

int Ball::move()

 {

hide();

centreX = centreX + velo*1.0*cos(angl*Pi);//перемещение по оси Х

centreY = centreY + velo*1.0*sin(angl*Pi); //перемещение по оси Y

  if(hit_on_wall()==1) // если есть удар о стенку – отскочить (изменяется угол движения)

                    {centreX = centreX + velo*1.0*cos(angl*Pi);

        centreY = centreY + velo*1.0*sin(angl*Pi);}

show();

 }

/**************Hit()********************/

int Ball::hit(Ball b2)

{

if((abs(centreX-b2.centreX))<2.5*radius)              // если расстояние между центрами молекул по обеим осям

   if  ((abs(centreY-b2.centreY))<2.5*radius)        // меньше диаметра – изменить угол движения

       { if ((b2.angl==180)||(b2.angl==0))b2.angl=-angl;

 if((angl==180)||(angl==0))angl = -b2.angl;

 b2.angl=(angl+b2.angl)+b2.angl;

 angl=b2.angl+angl+angl;

      }//конец двойного условия

}

/******************Hit_On_Wall()******************/

int Ball::hit_on_wall()

{

// столкновение с вертикальными стенками

if ((25 >= centreX) || (centreX >= 600))

{

angl= 180.0-(angl); return 1;

}

// столкновение с горизонтальными стенками

if ((15 >= centreY)||(centreY >= 450))

{

 angl = 0.0-angl;return 1;

}

return 0;

}

/*******************Hit_On_Barr()*************/

void Ball::hit_on_barr(int x,int y,int d)

{

if((centreY-radius<(y-d))||(centreY+radius>(y+d))) //попадает ли молекула в отверстие

 if (abs(x-centreX)<=velo+radius) angl= 180.0-angl; // если не попадает, но находится у перегородки – отскочить  

}

/******************************Головная программа****************************************/

/***************************************************************************************/

int main()

{   int n;

cout<<"‚ўҐ¤ЁвҐ зЁб«® ¬®«ҐЄг: ";

cin>>n;

cout<<"ЏаҐ¦¤Ґ 祬 ­ з вм а Ў®вг б Їа®Ја ¬¬®© Їа®звЁвҐ нв®!!!! "<<endl;

cout<<"1) —в®Ўл Ё§¬Ґ­Ёвм Ї®«®¦Ґ­ЁҐ ЇҐаҐЈ®а®¤ЄЁ,ЁбЇ®«м§г©вҐ Є­®ЇЄЁ "" <= ""Ё"" => """<<endl;

cout<<"2) —в®Ўл Ё§¬Ґ­Ёвм ўҐ«ЁзЁ­г®вўҐабвЁп ў ЇҐаҐЈ®а®¤ЄҐ ЁбЇ®«м§г©вҐ "" + ""Ё"" - ""­             ¤®Ї®«­ЁвҐ«м­®© Є« ўЁ вгॠ"<<endl;

cout<<"3) „«п ўл室  Ё§ Їа®Ја ¬¬л ЁбЇ®«м§г©вҐ Є­®ЇЄг Esc  ";

delay(10000);

int gdriver=DETECT,gmode;

Ball B[255];  // статический массив молекул

for (int j=0; j<=n ; j++) // цикл инициализации свойств молекул – объектов

{

B[j].set(1,2); // установка радиуса

B[j].set(2,50+15*j); //

B[j].set(3,50+19*j);//

B[j].set(4,30+15*j);//установка угла

}

Wall W1(600,0);     //

Wall W2(450,90);  //

Wall W3(600,0);   //Инициализируем стенки

Wall W4(450,90);//

Barrier Barr(300,220,40); // и перегородку

initgraph(&gdriver,&gmode,"c:\\bc45\\bgi");

//основной цикл, выполнять пока не нажато ESC

while(bioskey(0) != 283)

{

for(int i=0;i<=n+1 && ! kbhit();i++)

{

if(i>n)i=0;

B[i].move();

for(int k=0;k<=n;k++)

{

if(k==i) k++;

B[i].hit(B[k]);

}

B[i].hit_on_barr(Barr.getcx(),Barr.getcy(),Barr.getdelta());

W1.show(20,10);

W2.show(20,10);

W3.show(20,460);

W4.show(620,10);

Barr.show(Barr.getcx(),10);

}

switch (bioskey(0))

{

 case 18989: Barr.hole_scale(-5);break;

 case 20011: Barr.hole_scale(5);break;

 case 19200: Barr.move(-5);break;

 case 19712: Barr.move(5);break;

 default: break;

}

}

closegraph();

}// ************************Конец головной программы*******************

Приложение 2.

#include<stdio.h>

#include<math.h>

#include<iostream.h>

#include<stdlib.h>

#include<conio.h>

#define Pi  0.01745

#define color BLACK

#define velo 6

class Wall

{

 protected:

int length;

int angle;

int x,y;

 public:

Wall(int l, int a)

  {length = l; angle = a;}

void show(int ix,int iy);

  };

void Wall::show( int ix,int iy)

 {

setcolor(15);

if( angle == 0) bar(ix-5,iy-5,ix+length,iy);

else bar(ix-15,iy-5,ix,iy+length);

setcolor(color);

 }

class Ball

 {

protected:

 int centreX;

 int centreY;

 int radius;

 double angl;

public:

 Ball() {;}

 void show();

 void hide();

 int move();

 int hit(Ball b2);

 int hit_on_wall();

 void hit_on_barr(int x,int y,int d);

 double getangle(){return angl;}

 void set(int bool,int value)

{

if(bool==1) radius = value;

if(bool==2) centreX = value;

if(bool==3) centreY = value;

if(bool==4) angl =1.0*value;

}

 };

void setnewfill(int fst,int col){setfillstyle(fst,col); setcolor(col);}

void Ball::show()

 {fillellipse(centreX,centreY,radius,radius);}

void Ball::hide()

 {setnewfill(0,0);show();setnewfill(1,15);}

int Ball::move()

 {

hide();

centreX = centreX + velo*1.0*cos(angl*Pi);

centreY = centreY + velo*1.0*sin(angl*Pi);

if(hit_on_wall()==1){centreX = centreX + velo*1.0*cos(angl*Pi);

centreY = centreY + velo*1.0*sin(angl*Pi);}

show();

 }

int Ball::hit_on_wall()

{

if ((27 >= centreX) || (centreX >= 598))

{

 angl= 180.0-(angl); return 1;

}

if ((15 >= centreY)||(centreY >= 450))

{

 angl = 0.0-angl;return 1;

}

return 0;

}

int main()

{

FILE *stream;

stream = fopen("c:\\losf\\test.dat", "w+");

int gdriver=DETECT,gmode;

Ball B;

B.set(1,2);

B.set(2,50);

B.set(3,50);

B.set(4,60);

Wall W1(600,0);

Wall W2(450,90);

Wall W3(600,0);

Wall W4(450,90);

initgraph(&gdriver,&gmode,"c:\\bc45\\bgi");

for(int i=0; ! kbhit();i++)

{

B.move();

//if (B.hit_on_wall()){

fprintf(stream, "%f \n ", B.getangle());

fprintf(stream, " \n "); //}

delay(10);

W1.show(20,10);

W2.show(20,10);

W3.show(20,460);

W4.show(620,10);

}

fclose(stream);

closegraph();

}

Листинг тестирования

60.000000

-60.000000

60.000000

120.000000

Оглавление.

Аннотация.................................................................................................2

Задание......................................................................................................3

  1.  Системный анализ...............................................................................3
  2.  Проектирование...................................................................................5
  3.  Программирование..............................................................................6
  4.  Тестирование.......................................................................................8

Заключение...............................................................................................10

Список литературы..................................................................................10

Приложения

  1.  Приложение1........................................................................................11
  2.  Приложение2........................................................................................14

16


 

А также другие работы, которые могут Вас заинтересовать

68876. ОРГАНІЗАЦІЯ ОСНОВНОГО ВИРОБНИЦТВА 127.5 KB
  Поняття і класифікація виробничих процесів Успішність діяльності будьякого підприємства залежить від ряду умов серед яких особливе місце належить організації виробництва. Під організацією виробництва розуміють сукупність методів раціонального поєднання процесів праці та матеріальних елементів...
68877. ПІДПРИЄМСТВО В СТРУКТУРІ НАЦІОНАЛЬНОЇ ЕКОНОМІКИ 100.5 KB
  Зміна організаційної структури правового поля призвела до введення в дію постановою ВР №424-IV від 16.01.2003р. Господарського кодексу, в якім зазначено, що підприємство – самостійний суб’єкт господарювання, створений компетентними органами державної влади або місцевого господарювання...
68878. ПРАВЛІННЯ ТА ПЛАНУВАННЯ ДІЯЛЬНОСТІ ПІДПРИЄМСТВА 91.5 KB
  Структура органів управління підприємством. Поняття принципи і методи управління промисловим виробництвом. Процес виробництва матеріальних благ вимагає двох видів праці: перший праця для створення матеріальних благ другий робота з координації першої праці тобто управління.
68879. ПЕРСОНАЛ ПІДПРИЄМСТВА ТА ПРОДУКТИВНІСТЬ ПРАЦІ 106 KB
  Якими б досконалими не були засоби виробництва, знаряддя праці, їх ефективне використання завжди залежатиме від головної виробничої сили – тих, хто працює. Кадри – це основний (штатний) склад працівників. Усі, хто працює, залежно від ступеня їх участі у виробничій діяльності...
68880. ОСНОВНІ ФОНДИ І ВИРОБНИЧІ ПОТУЖНОСТІ ПІДПРИЄМСТВА 142 KB
  Амортизація основних фондів підприємства. Поняття класифікація і структура основних виробничих фондів. Залежно від характеру участі основних фондів у процесі виробництва розрізняють основні виробничі та невиробничі фонди.
68881. ОБОРОТНІ ФОНДИ ТА ОБОРОТНІ ЗАСОБИ ПІДПРИЄМСТВА 98 KB
  Оборотність оборотних засобів підприємства показники оборотності. Нормування оборотних засобів підприємства. Показники використання оборотних засобів підприємства та шляхи їх покращення.
68882. ФІНАНСОВІ ТА НЕМАТЕРІАЛЬНІ РЕСУРСИ ПІДПРИЄМСТВА 79.5 KB
  Поняття та класифікація фінансових ресурсів підприємства Фінансові ресурси це грошові кошти що є у розпорядженні держави підприємств господарських організацій і закладів які використовують для покриття витрат і утворення різних фондів та резервів. Одним із шляхів вирішення цієї проблеми крім збільшення...
68883. ІНВЕСТИЦІЙНА ДІЯЛЬНІСТЬ ПІДПРИЄМСТВА 62 KB
  Інвестиції у відтворення основних фондів і на приріст матеріально-виробничих запасів здійснюються у формі капітальних вкладень. У довідковій літературі поняття інвестиції трактують як довготермінове вкладення державного чи приватного капіталу в будьяке підприємство.