848

Программирование математических задач с использованием классов и методов языка C#

Курсовая

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

Реализовать перевод чисел между десятичной, двоичной и восьмеричной системами счисления. Результаты машинного тестирования программы. Описание вычислительных методов. Ручной подсчёт отладочного варианта.

Русский

2013-01-06

960.5 KB

124 чел.

СОДЕРЖАНИЕ

НОРМАТИВНЫЕ ССЫЛКИ……………………………………………………..5

ВВЕДЕНИЕ…………………………………………………………………….….6

1 ЗАДАНИЕ №1…………………………………………………………………...7

  1.   Формулировка задачи…………………………………………..........7
    1.   Спецификация задачи…………………………………………..........7
    2.   Математическая постановка задачи……………………………...…7
    3.   Описание вычислительных методов……………………………......8
    4.   Схема алгоритма. Описание………………………………………..9
    5.   Текст программы……………………………………………………11
    6.   Ручной просчет отладочного варианта…………………………….13
    7.   Результаты машинного тестирования программы………………..13

2 ЗАДАНИЕ №2……...…………………………………………………………..15

2.1 Формулировка задачи……………………………………………….15

2.2 Спецификация задачи……………………………………………….15

2.3 Математическая постановка задачи………………………………..15

2.4 Описание вычислительных методов…………………………….....16

2.5 Схема алгоритма. Описание………………………………………...17

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

2.7 Ручной просчет отладочного варианта…………………………….19

2.8 Результаты машинного тестирования……………………………...20

ЗАКЛЮЧЕНИЕ………………………………………………………………….21

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ……………………………….22

ПРИЛОЖЕНИЕ А………………………………………………………………23

ПРИЛОЖЕНИЕ Б………………………………………………………………..26

ПРИЛОЖЕНИЕ В………………………………………………………………..32

 

 

НОРМАТИВНЫЕ ССЫЛКИ

В настоящей пояснительной записке используются ссылки на следующие нормативные документы:

ГОСТ 7.32-2001 «Отчет о научно-исследовательской работе. Структура и правила оформления».

ГОСТ 2.105-95 «Общие требования к текстовым документам»

ГОСТ Р 7.0.5-2008 «Библиографическая ссылка. Общие требования и правила составления»

ГОСТ 7.1-2003 «Библиографическая запись. Библиографическое описание. Общие требования и правила составления»

ГОСТ 7.80-2000. «Библиографическая запись. Заголовок. Общие требования и правила составления»

ГОСТ 19.701-80 – ЕСПД. Схемы алгоритмов, программ, данных и систем.


ВВЕДЕНИЕ

Класс является основой языка С#, так как все действия в любой программе на этом языке происходят внутри класса. Реализация механизма подпрограмм в C# возложена на функциональный член класса, который именуется методом и реализует вычисления или другие действия, выполняемые классом или экземпляром. Методы определяют поведение класса.

Данная курсовая работа направлена на подробное изучение классов и методов языка C#. С этой целью будет реализовано программирование математических задач. Также данная курсовая работа способствует закреплению полученных на занятиях навыков алгоритмизации и программирования задач на языке высокого уровня C#.
             
1 ЗАДАНИЕ №1

1.1 Формулировка задачи

Реализовать перевод чисел между десятичной, двоичной и восьмеричной системами счисления.

1.2 Спецификации задачи

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

  •  Число в десятичной, восьмеричной или двоичной системе счисления (Вводится с клавиатуры).

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

  •  Число, переведённое в выбранную пользователем систему счисления.

1.3 Математическая постановка задачи

В таблице 1 приведен ряд переменных, представляющих исходные данные и результаты работы программы. Этот ряд может быть дополнен на стадии разработки алгоритма.

Общее описание алгоритма.  Примем, что переводимое число будет вводиться вовремя работы программы после того, как будет указано основание(1) позиционной системы исчисления(2) этого числа.

Вводимое число заносится в строковую переменную s, так как это необходимо для упрощения работы программы. В зависимости от выбранного основания системы счисления переводимого числа s переменная q1 будет принимать значения: 2, 8 или 10. Также, в зависимости от выбранного основания системы счисления, в которую будет выполняться перевод s, изменяется переменная q2. Впоследствии s преобразуется в выбранную систему счисления исходя из значения q2.

Таблица 1 – Характеристика переменных

Имя перемен-ной

Смысл переменной

Назначение переменной

Ограничения

s

Переводимое число

Исходная

Целая, положительная

q1

Основание переводимого числа

Промежуточная

10, 8 или 2

q2

Основание числа в которое выполняется перевод

Промежуточная

10, 8 или 2

s

Переведённое число

Результат

1.4 Описание вычислительных методов

За основание системы можно принять любое натуральное число — два, три, четыре и т.д. Следовательно, возможно бесчисленное множество позиционных систем: двоичная, троичная, четверичная и т.д. Запись чисел в каждой из систем счисления с основанием q означает сокращенную запись выражения:

             (1)

где ai – цифры системы счисления;

n и m – число целых и дробных разрядов, соответственно.

Перевод чисел из одной позиционной системы счисления в другую производится по следующим правилам:

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

При переводе целого десятичного числа в систему с основанием q его необходимо последовательно делить на q до тех пор, пока не останется остаток, меньший или равный q–1. Число в системе с основанием q записывается как последовательность остатков от деления, записанных в обратном порядке, начиная с последнего.

б) Перевод числа из двоичной, восьмеричной, системы в десятичную:

При переводе числа из двоичной, восьмеричной системы в десятичную надо это число представить в виде суммы степеней основания его системы счисления (по формуле 1).

Примечание: Все эти правила обеспечат перевод чисел из одной системы счисления в другую. Но так как среде уже предусмотрен метод Convert, который обеспечивает явное преобразование переменных из одного типа в другой с переводом в указанную позиционную систему, мы воспользуемся этим методом. Применение данного метода в разы сократит код программы, что облегчит работу компилятора, иными словами программа станет менее «громоздкой». Также программа будет выполнена в Windows Forms, для удобства пользования ею.

1.5 Схема алгоритма. Описание

Метод From_To (код приведён в листинге 1) класса Translation  выполняет перевод числа из одной позиционной системы счисления в другую.

Программа состоит из шести условий. В первую очередь пользователь указывает систему счисления вводимого числа с помощью соответствующего переключателя (по умолчанию десятичная). Программой выполняется проверка первых трёх условий:

  •  Если выбрана десятичная система счисления q1 принимает значение 10;
  •  Если выбрана восьмеричная система, то q1 принимает значение 8;
  •  Если же выбрана двоичная система, то q1 соответственно принимает значение 2.

Затем вводится само число и теми же переключателями выбирается система счисления, в которую нужно перевести число. По нажатию кнопки «Перевести» аналогичным образом происходит проверка условий для переменной q2, а затем вызов метода From_To, которому передаются значения s, q1 и q2. Выводится результат.

В программе предусмотрена обработка исключений. Если пользователь ввёл не цифру, а например, букву цифру не соответствующую двоичной системы, программа выдаст ошибку. Блок проверки на ошибки содержится в методе From_To (смотри листинг 1).

Листинг 1 - Блок проверки на ошибки

class Translation

       {

           public string From_To(string x, int q1, int q2) // Метод обеспечивающий перевод из q1-ичной в q2-ичную систему исчисления (С.И.)

           {

               long l = 0;

               string s;

               try { l = Convert.ToInt64(x, q1); s = Convert.ToString(l, q2); }

               catch { s = "Ошибка!!!"; }

               return s;

           }

       }

Схема алгоритма приведена в приложении А.


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

Код программы приведён в листинге 2.

Листинг 2 – Код программы к заданию 1

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

   public partial class Form1 : Form

   {

       public int q1 = 0; // Основание переводимого числа

       public int q2 = 0; // Основание числа в которое выполняется перевод

       string s = "";     // Результат

       class Translation

       {

           public string From_To(string x, int q1, int q2) // Метод обеспечивающий перевод из q1-ичной в q2-ичную систему счисления (С.C.)

           {

               long l = 0;

               string s;

               try { l = Convert.ToInt64(x, q1); s = Convert.ToString(l, q2); } // Сгенерировано исключение

               catch { s = "Ошибка!!!"; }

               return s;

           }

       }

       public Form1()

       {

           InitializeComponent();

           radioButton1.Checked = true; // После запуска формы выбрана 10-тичная С.C.

       }

       private void button1_Click(object sender, EventArgs e) // Кнопка "Закрыть"

       {

           Close(); // Закрытие программы

       }

       private void button2_Click(object sender, EventArgs e) // Кнопка "Очистить"

       {

           textBox1.Clear(); // Очистка textBox1

       }

       private void textBox1_TextChanged(object sender, EventArgs e)

       {

           s = textBox1.Text;

           // ВЫБОР С.C. ВВЕДЁННОГО ЧИСЛА

           if (radioButton1.Checked == true) // Десятичная

           {

               q1 = 10;

           }

           if (radioButton2.Checked == true) // Восьмиричная

           {

               q1 = 8;

           }

           if (radioButton3.Checked == true) // Двоичная

           {

               q1 = 2;

           }

       }

       private void button3_Click(object sender, EventArgs e) // Кнопка "Перевести"

       {

           Translation x = new Translation(); // Создание копии класса Translation

           // ВЫБОР С.С. числа в которую будет переведенно исходное

           if (radioButton1.Checked == true) // в десятичную

           {

               q2 = 10;

           }

           if (radioButton2.Checked == true) // в восьмиричную

           {

               q2 = 8;     

           }

           if (radioButton3.Checked == true) // в двоичную

           {

               q2 = 2;  

           }

           textBox1.Text = x.From_To(s, q1, q2); // Перевод числа с помощью метода From_To класса Translation с непосредственным выводом результата в textBox1

       }

       private void radioButton1_CheckedChanged(object sender, EventArgs e)

       {

       }

       private void Form1_Load(object sender, EventArgs e)

       {

       }

   }

}


1.7 Ручной подсчёт отладочного варианта

Воспользовавшись правилами перевода приведенными в пункте «математической постановке задачи» выполним руной подсчёт:

Переведём число 75 из десятичной системы в двоичную, восьмеричную.

                    в двоичную:          в восьмеричную:      

75   

1

2

75

8

37

2

3

9

8

1

18

2

1

1

0

9

2

1

4

2

0

2

2

0

1

Ответ: 7510 = 1 001 0112 = 1138 

Выполним обратный перевод числа по формуле 1(Сверху указаны разряды):

6

5

4

3

2

1

0

1

0

0

1

0

1

12 = 1*26+1*25+1*24+1*23+1*22+1*21+1*20 = 7510

2

1

0

1

1

38

= 1*82+1*81+3*80 = 7510

1.8 Результат машинного тестирования программы

Ввод данных представлен на рисунке 1. Вывод числа переведённого в двоичную и восьмеричную систему счисления представлен на рисунке 2 и рисунке 3 соответственно. Результат машинного тестирования совпадает с ручным подсчётом.

Рисунок 1 – Ввод числа

Рисунок 2 – Перевод числа в двоичную систему

Рисунок 3 – Перевод числа в восьмеричную систему


2 ЗАДАНИЕ №2

2.1 Формулировка задачи

Дана матрица размера n*n. Развернуть ее на 90°, 180°, 270°. Сосчитать сумму элементов главной диагонали всех матриц и найти их определители.

2.2 Спецификации задачи

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

  •  Порядок квадратной матрицы n.

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

  •  Исходная матрица A;
  •  Матрица A, развёрнутая на 90°, 180° и 270°;
  •  Суммы главных диагоналей исходной, развёрнутой на 90°, 180° и 270° матриц sum1, sum2, sum3, sum4 соответственно;
  •  Определители всех матриц det1, det2, det3 и det4.

2.3 Математическая постановка задачи

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

Общее описание алгоритма. Пользователь вводит с клавиатуры порядок матрицы n. Затем массив A (матрица) размером nxn заполняется случайным образом. Суммы главных диагоналей исходной, развёрнутой на 90°, 180° и 270° матриц заносятся в переменные sum1, sum2, sum3, sum4 соответственно. Вычисленные определители всех матриц аналогично заносятся в переменные det1, det2, det3 и det4. Каждая переменная содержащая значение определителя или суммы элементов главной диагонали зависит только от соответствующего ей массива (матрицы).

Таблица 2 – Характеристика переменных

Имя

Смысл переменной

Назначение

Ограничения

n

Размер кв. матрицы

Исходная

Целый тип данных

A

Исходный массив

Исходная/Результат

sum1

Сумма эл. главной диагонали исходной матрицы

Результат

sum2

Сумма эл. главной диагонали матрицы  развёрнутой на 90°

Результат

sum3

Сумма элементов главной диагонали матрицы развёрнутой на 180°

Результат

sum4

Сумма эл. главной диагонали матрицы развёрнутой на 270°

Результат

det1

Определитель исходной матрицы

Результат

det2

Определитель матрицы  развёрнутой на 90°

Результат

det3

Определитель матрицы  развёрнутой на 180°

Результат

det4

Определитель матрицы  развёрнутой на 270°

Результат

x

Объект класса Random

Промежуточная

i

Счётчик цикла

Промежуточная

j

Счётчик цикла

Промежуточная

2.4 Описание вычислительных методов

Квадратной матрицей называется матрица, у которой число строк равно числу столбцов. Квадратная матрица A имеет вид:

                               (2)

Сумма элементов главной диагонали матрицы - это сумма элементов, у которых номер (индекс) строки равен номеру столбца:

Для квадратной матрицы может быть введено понятие детерминанта,     или определителя. Детерминант матрицы A обозначают  Детерминантом матрицы A порядка   называют  число:

  1.                                                                      (4)
  2.                   (5)
  3.  Для  можно воспользоваться методом Гаусса

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

      (6)

2.5 Схема алгоритма. Описание

В первую очередь пользователь вводит порядок матрицы n. Затем при помощи метода Next объекта x - экземпляра класса Random массив A заполняется случайным образом во вложенном цикле.

Далее над каждой матрицы производятся следующие действия:

Матрица при помощи метода PrintArray выводится на экран.

Затем по формуле (3) вычисляется сумма элементов главной диагонали. Это осуществляет метод SumDiag.

Далее вычисляется определитель матрицы при помощи метода Det. Его работа заключается в следующем: при помощи вложенного цикла for создаётся копия передаваемого методу массива. Создание копии необходимо для того, чтобы не изменить исходный массив пи реализации метода Гаусса. Далее идёт проверка условия. Если , то программа переходит ко вложенному оператору if: если , то нахождение определителя выполняется по формуле (4), если нет, то программа переходит к следующему оператору if, в котором: если , то нахождение определителя выполняется по формуле (5). Если же , то нахождение определителя выполняется с помощью метода Гаусса.

Производится поворот матрицы на 90° с помощью метода Rotation. Поворот реализован очень просто, а именно: Задаётся массив B с тем же количеством элементов, что и у исходного A. Массив B заполняется вложенным циклом for элементами массива A по следующему правилу: индекс строки элемента массива B равен индексу столбца элемента массива A, а индекс столбца элемента B равен переменной m, изначально m = n – 1 (индекс последнего столбца), которая уменьшается на 1 с каждой итерацией внешнего цикла.

Примечание: поворот на 180° и 270° реализуется двойным и тройным вызовом метода Rotation, так как 180°=2*90° и 270°=3*90°, т.е. достаточно развернуть исходную матрицу два и три раза соответственно.

В программе предусмотрена обработка исключений. Если пользователь ввёл не цифру, а, например, букву, при задании порядка матрицы, то программа сообщит об ошибке:

Листинг 3 – Блок проверки на ошибки

catch (System.FormatException)                                        // Первый блок catch  

           {

               Console.WriteLine("Вы ввели недопустимый знак(возможно букву)");

               return;

           }

Схема алгоритма приведена в приложении Б.

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

Т.к. текст программы занимает достаточно большой объём, он приведен в приложении В ( листинг 4).

2.7 Ручной подсчёт отладочного варианта

Пусть порядок матрицы , исходная матрица , тогда сумма диагоналей: .

Найдём определитель матрицы A методом Гаусса:

  1.  Преобразуем матрицу к верхнетреугольному виду

  1.  Вычислим определитель, сложив элементы главной диагонали  1*(-15)*5,07 = 76

Аналогично и для остальных матриц. Нам достаточно подсчёта значений для исходной матрицы.


2.8 Результат машинного тестирования программы

Результат работы данной программы представлен на рисунке 4. Он совпадает с ручным расчётом задачи.

Рисунок 4 – Результат тестирования программы


ЗАКЛЮЧЕНИЕ

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

В результате  были созданы две работоспособных программы по решению математических задач. Первая выполняет перевод чисел между десятичной, восьмеричной и двоичной системами счисления. Вторая выполняет поворот квадратной матрицы на 90°, 180° и 270°, находит сумму элементов главной диагонали каждой матрицы, а также их определители.


СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1.  Павловская Т.А. C#. Программирование на языке высокого уровня: учебник для вузов. – СПб.: Питер, 2007. – 432 с.
  2.  Шилдт Г. C# 4.0: полное руководство. Пер. с англ. – М.: Вильямс, 2011.
  3.  Письменный Д. Т. Конспект лекций по высшей математике. Полный курс. — М.: Айрис-пресс, 2006. — 608 с.


ПРИЛОЖЕНИЕ А

Блок-схема к заданию №1

Метод textBox1_TextChanged (выбор с.c. введённого числа)

 


Метод From_To


ПРИЛОЖЕНИЕ Б

Блок-схема к заданию №2

 


Метод SumDiag

 

Метод Rotation

 


Метод PrintArray

 


Метод Det

j

 


ПРИЛОЖЕНИЕ В

Листинг 4 – код программы к заданию 2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

   class Program

   {

       class Matrix

       {

           public void Rotation(float[,] A) // Поворот на 90 градусов

           {

               int n = A.GetLength(0); // Получение длинны строк

               float[,] B = new float[n, n]; // Вспомогательный массив

               int m = n; // Вспомогательная переменная

               /*ПОВОРОТ, ПРИСВОЕНИЕМ ЭЛЕМЕНТОВ A ЭЛЕМЕНТАМ B ПО ОПР. ЗАКОНОМЕРНОСТИ*/

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

               {

                   m = m - 1;

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

                   {

                       B[j, m] = A[i, j];

                   }

               }

               /*ПРИСВОЕНИЕ КАЖДОМУ ЭЛ. А СООТВЕТСТВУЮЩЕГО ЭЛ. В*/

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

               {

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

                   {

                       A[i, j] = B[i, j];

                   }

               }

           }

           public float SumDiag(float[,] A) // Сумма эл. главной диагонали

           {

               float sum = 0;

               int n = A.GetLength(0);

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

               {

                   sum += A[i, i];

               }

               return sum;

           }

           public float Det(float[,] A)

           {

               float result = 1;

               int n = A.GetLength(0); // Порядок матрицы. Он равен и числу столбцов, и числу строк; мы приравняем его к числу строк

               float[,] B = new float[n, n];

               for (int i = 0; i < n; i++) // Создаём копию исходной матрицы, чтобы она осталась не изменной

               {

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

                   {

                       B[i, j] = A[i, j];

                   }

               }

               if (n <= 2)

               {

                   if (n == 1) { result = B[0, 0]; }

                   else { result = B[0, 0] * B[1, 1] - B[0, 1] * B[1, 0]; }

               }

               else

               {

                   /* МЕТОД ГАУССА */

                   for (int k = 1; k < n; k++) // Приводим матрицу к треугольному виду

                   {

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

                       {

                           float C = B[i, k - 1] / B[k - 1, k - 1];

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

                           {

                               B[i, j] -= C * B[k - 1, j];

                           }

                       }

                   }

                   for (int i = 0; i < n; i++) // Вычисляем произведение элементов на главной диагонали

                   {

                       result *= B[i, i];

                   }

               }

               return result;

           }

           public void PrintArray(string Header, float[,] A) // Вывод матрицы

           {

               int n = A.GetLength(0); // Получение длины строки(порядка аматрицы)

               Console.WriteLine("\n" + Header + "\n ");

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

               {

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

                   {

                       Console.Write(" " + A[i, j] + "\t");

                   }

                   Console.WriteLine("\n");

               }

           }

       }

       static void Main(string[] args)

       {

           Random x = new Random(); // Создаём объект х - копия класса Random

           Matrix m = new Matrix(); // Создаём объект х - копия класса Matrix

           Console.Write("Введите порядок матрицы: ");

           int n = 1;

           try 

           {

               

               n = Convert.ToInt32(Console.ReadLine()); // Вводим порядок матрицы

               float[,] A = new float[n, n];

               for (int i = 0; i < n; i++) // Заполнение матрицы случайным образом

               {

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

                   {

                       A[i, j] = x.Next(-5, 5);

                   }

               }

               /*ИСХОДНАЯ МАТРИЦА*/

               float sum1 = m.SumDiag(A);

               float det1 = m.Det(A);

               m.PrintArray("Исходная матрица", A);

               Console.WriteLine("Сумма элементов главной диагонали: " + sum1);

               Console.WriteLine("Определитель: det A = " + det1);

               m.Rotation(A);

               /*ПОВЁРНУТАЯ НА 90*/

               float sum2 = m.SumDiag(A);

               float det2 = m.Det(A);

               m.PrintArray("На 90", A);

               Console.WriteLine("Сумма элементов главной диагонали: " + sum2);

               Console.WriteLine("Определитель: det A = " + det2);

               m.Rotation(A);

               /*ПОВЁРНУТАЯ НА 180*/

               float sum3 = m.SumDiag(A);

               float det3 = m.Det(A);

               m.PrintArray("На 180", A);

               Console.WriteLine("Сумма элементов главной диагонали: " + sum3);

               Console.WriteLine("Определитель: det A = " + det3);

               m.Rotation(A);

               /*ПОВЁРНУТАЯ НА 270*/

               float sum4 = m.SumDiag(A);

               float det4 = m.Det(A);

               m.PrintArray("На 270", A);

               Console.WriteLine("Сумма элементов главной диагонали: " + sum4);

               Console.WriteLine("Определитель: det A = " + det4);

           }

           catch (System.FormatException)                                        // Первый блок catch  

           {

               Console.WriteLine("Вы ввели недопустимый знак(возможно букву)");

               return;

           }

           catch (System.IndexOutOfRangeException)                               // Второй блок catch

           {

               Console.WriteLine("Количество строк или столбцов матрицы больше 2000!!!");

               return;

           }

       }

   }

}

(1) Основание позиционной системы счисления — это количество различных знаков или символов, используемых для изображения цифр в данной системе.

(2) Система счисления — это способ записи чисел с помощью заданного набора специальных знаков (цифр).


 

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

30962. Гигиена воды 166 KB
  От химического и бактериального состава воды в значительной мере зависят здоровье человека и санитарные условия его жизни. Неоспоримо огромное физиологическое и гигиеническое значение воды для жизнедеятельности человеческого организма. Однако вода может играть и отрицательную роль так как во первых служит одним из путей передачи возбудителей инфекционных болезней во вторых солевой состав воды может быть причиной возникновения ряда неинфекционных заболеваний в третьих органолептические свойства воды неприятный вкус запах и т.
30963. Государственные и муниципальные унитарные предприятия 234 KB
  Руководство унитарным предприятием (его администрация) наделено необходимыми полномочиями по организации его работы, обеспечению трудовой и государственной дисциплины. Оно реализует от имени предприятия, действующего в качестве юридического лица, его гражданскую и административную правосубъектность.
30964. Гражданское право. Понятие и предмет гражданского права 692.5 KB
  Гражданское право – это отрасль частного права регулирующая имущественные и связанные с ними личные неимущественные отношения основанные на равенстве автономии воли и имущественной самостоятельности их участников. Гражданское право представляет собой базовую отрасль частного права основанную на принципах частного права некоторые из которых сложились еще во времена римского частного права. Среди них: равенство участников правоотношений неприкосновенность права собственности свобода договора автономия воли участников ...
30965. Бизнес план ИП «Восточные Сладости» 261 KB
  Обычно анализируются оба показателя, характеризующие успешность экономической деятельности предприятия, так как по отдельности они не могут дать полной и всеобъемлющей оценки деятельности предприятия. Например, на предприятии может быть такая ситуация, когда достигнут значительный экономический эффект
30966. Внедрение нового продукта на рынок периодических изданий города Екатеринбурга 753.5 KB
  В 1й главе рассмотрены методические рекомендации по разработке бизнесплана проекта. В 3й главе представлен сам бизнесплан внедрения нового продукта на рынок периодических изданий г. СОДЕРЖАНИЕ ВВЕДЕНИЕ 6 1 Теоретические основы процесса бизнеспланирования 9 1.1 Бизнесплан.
30967. УПРАВЛЕНИЯ ЧЕЛОВЕЧЕСКИМИ РЕСУРСАМИ ОАО «СО–ЦДУ ЕЭС» 168.5 KB
  2 Проблемы обеспечения надежности профессиональной деятельности и сохранения здоровья персонала 8 2.3 Обеспечение полной профессиональной адаптации – ведущая проблема надёжности деятельности и сохранения здоровья персонала 9 2.4 Психофизиологическое сопровождение подготовки и переподготовки персонала 9 2.5 Аттестация персонала 9 2.
30969. Закрытое акционерное общество «ПОЛИСОРБ» г.Челябинск 645 KB
  Создаваемое Предприятие должно обеспечить выпуск нового лекарственного препарата – сорбента широкого спектра действия для удовлетворения потребностей всех групп населения в эффективной профилактике и лечении отравлений, аллергии, кишечных инфекций, кожных заболеваний, дисбактериоза, интоксикации различного происхождения
30970. ЗАО «Консорциум – Транспортно-модульные системы» 809 KB
  Рисунок 1 Комплекс по переработке бобов сои 8 Рисунок 2 Производство текстурированного соевого белка 26 Рисунок 3 График окупаемости NPV 73 Рисунок 4 Анализ чувствительности проекта 75 Перечень информационных и расчетных таблиц Таблица 1 Уровень среднедушевого потребления основных продуктов питания в России 16 Таблица 2 Динамика среднедушевого потребления белков за счет основных продуктов питания в РФ 17 Таблица 3 Выход основных продуктов переработки сырых соевых бобов 23 Таблица 4 Состав соевой муки 23 Таблица 5 Содержание в...