Основы объектно-ориентированного программирования

Автор работы: Пользователь скрыл имя, 18 Сентября 2017 в 19:46, контрольная работа

Описание работы

В процессе развития вычислительной техники было создано множество языков и технологий программирования, практически несовместимых между собой. Конечно, при разработке программ, работающих автономно, можно обойтись одним языком, одной технологией программирования и не иметь никаких проблем с совместимостью, но приложения для Интернета требуют использования разных языков и разных технологий.
Разработчики из Microsoft поставили перед собой задачу кардинально решить эту проблему. В 2000г был представлен первый вариант новой технологии, получившей название Microsoft .NET (.NET — по-русски произносится «Дот-Нэт»).

Содержание работы

Преимущества и недостатки платформы Microsoft.NET.
Сравнение технологий .NET и Java…………………………………………3
Работа с одномерным числовым массивом ………………………………..8
Построение блок-схемы выполнения операций в рассматриваемой предметной области …………………………………………………….…..24

Файлы: 1 файл

проект.docx

— 593.54 Кб (Скачать файл)

 

2. Объявляем необходимые нам переменные с помощью int, объявляем строку, формируем для значений элементов, возвращаем строку с помощью return.

public partial class Form1 : Form

{

//данные класса

int[] Mассив; // массив с отложенной инициализацией

int N = 0;//количество чисел (размер массива)

int R = 0;//диапазон случайных чисел

int Rc = 0;

string strmas()//функция возвращает строку чисел

{

string s = " ";// пустая строка

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

s = s + Mассив[i] + " ";

return s;//возвращаем строку

}

 

3. Объявляем основной массив, вводим его размер (границы), выводим метод преобразования его из чисел в строку. Создаем защитный блок try, с помощью которого, происходит защита от недопустимых значений. При ошибке программа выводит сообщение

R = int.Parse(textBox2.Text);//верхнее значение

Rc= int.Parse(textBox3.Text);//нижнее значение

Button3.Enabled = true;

Button4.Enabled = true;

Button5.Enabled = true;

Button6.Enabled = true;

try//защищаем от неправильных значений(блок)

{

N = int.Parse(textBox1.Text);//получить размер массива

}

catch (Exception err)

{

MessageBox.Show("Ошибка ввода! \n" + err.Message, "Ошибка");

// вывод ошибки, если данная существует

return;

}

Mассив = new int[N];//инициализация массива размера

Random Rand = new Random(); //объявить объект-переменную Rand

 

for (int i = 0; i < N; i++)//цикл заполнения массива

{

try//защита от недопустимого диапазона

{

Mассив[i] = Rand.Next(R, Rc);// присвоить случайное число (0..R-1) элементу массива

}

catch (Exception err)

{

MessageBox.Show("Неверно указан диапазон, проверьте значения и повторите ввод.\n" + err.Message, " Ошибка ввода");

return;

}

richTextBox1.Clear();//очистка

richTextBox1.AppendText("Массив случайных элементов\n");

richTextBox1.AppendText(strmas());

}

}

С помощью кода создаем массив случайных элементов заданного количества элементов. Для защиты от недопустимых значений используем защитные блоки try…catch. Try пробует исполнить часть кода, если исполнить не получается, блок catch собирает данные об исключении и выводит сообщение об ошибке.

 

 

 

 

4. Код кнопки сортировать. Сортировка методом выбора (возрастание, убывание).

    • Вводим переменные типа int max, nmax

int max = 0, nmax = 0; //сортировка выбором

    • Используем условный оператор if для сортировки по возрастанию или убыванию, организуем  внешний цикл просмотров и внутренний цикл определения минимального (максимального) значения и присвоения ему нового порядкового номера в массиве. Вывод отсортированного массива.

if (radioButton1.Checked == true)

{

for (int i = 0; i < N; i++)    // внешний цикл               

{

max = Массив[i];

nmax = i;

for (int j = i + 1; j < N; j++) // внутренний цикл

{

if (Массив[j] < max)   // сортировка по возрастанию элементов

{

max = Массив[j];  //меняем местами элемент

nmax = j;       //замена номера элемента

}

}

Массив[nmax] = Массив[i];

Массив[i] = max;                   

}

richTextBox1.AppendText("\n\nСортировка методом выбора по возрастанию\n");

richTextBox1.AppendText(strmas());

}

else  

{

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

{

max = Массив[i];

nmax = i;

for (int j = i + 1; j < N; j++)

{

if (Массив[j] > max)

{

max = Массив[j];

nmax = j;

}

}

Массив[nmax] = Массив[i];

Массив[i] = max;

}

richTextBox1.AppendText("\n\nСортировка методом выбора по убыванию\n");

richTextBox1.AppendText(strmas());

 

Сортировка методом выбора происходит в двух циклах. Первый – просмотр массива, во внутреннем цикле программа определяет максимум (минимум) на каждом участке и заменяет его с нужным элементом. Выбираем сначала кнопку «по возрастанию», выводим массив, затем кнопку «по убыванию», выводим массив.

 

 

Создаем блок-схему алгоритмов для метода сортировки «Выбор». Цикл наших действий: Возможно несколько вариантов завершения программы, если выполняется условие (и оно верно), то программа продолжает цикл, если же нет, то выводится строка и программа завершается. В ромбиках мы проверяем условие и идём по стрелочке либо «да» или «нет». Если да, то выводится результат данной операции или происходит присвоение значения.

 

 

 

 

 

 

 

 

 

 

 

 

 

5. Код кнопки Shell (сортировка пузырьковым методом).

Используем условный оператор if для сортировки по возрастанию или убыванию. Вводим временную переменную temp типа int для замены, организуем внешний цикл просмотров и внутренний цикл сравнения и присвоения значения. Выводим новый массив.

if (radioButton1.Checked == true)

{

richTextBox1.AppendText("\n\nCортировка пузырьковым методом по возрастанию\n");

int temp;//временная переменная для замены

for (int i = 0; i < N; i++) // массив

{

for (int j = N - 1; j > i; j--)//смотрим два соседних элемента

{

if (Mассив[j] < Mассив[j - 1])//сравнение для сортировки по возрастанию

{

temp = Mассив[j];//если условие подходит, производим замену

Mассив[j] = Mассив[j - 1];

Mассив[j - 1] = temp;

}

}

}

richTextBox1.AppendText(strmas());

        }

        else

        {

        richTextBox1.AppendText("\n\nCортировка пузырьковым методом по убыванию\n");

         int temp;

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

         {

         for (int j = N - 1; j > i; j--)

         {

         if (Массив[j] > Массив[j - 1])

         {

         temp = Массив[j];

         Массив[j] = Массив[j - 1];

         Массив[j - 1] = temp;

         }

         }

         }

 richTextBox1.AppendText(strmas());

Пузырьковый метод основывается на сравнении двух соседних элементов, если один элемент больше (меньше) другого, то происходит  замена их друг другом.

 

 

 

Создаем блок-схему алгоритмов для метода сортировки «Shell». Цикл наших действий: Возможно несколько вариантов завершения программы, если выполняется условие (и оно верно), то программа продолжает цикл, если же нет, то выводится строка и программа завершается. В ромбиках мы проверяем условие и идём по стрелочке либо «да» или «нет». Если да, то выводится результат данной операции или происходит присвоение значения. Temp (временная переменная).

 

 

 

 

 

 

 

 

 

 

6. Пишем код на кнопку «Стандартное отклонение». Выводим формулы расчетов. Сначала обнуляем сумму, затем считаем общую сумму элементов массива. Используем тип double для точности вычислений, создаем переменную sum и z данного типа, используем цикл for для подсчета суммы.

double sum = 0;

double z = 0;

richTextBox1.AppendText("\n\nСтандартное октлонение \n");

for (int i = 0; i < N; i++)//считаем сумму элементов массива

{

sum += Mассив[i];

        }

double m = sum / N;

for (int i = 0; i < N; i++)//формула расчета

{

z = z + (Mассив[i] - m) * (Mассив[i] - m);

}

double std = Math.Sqrt(z / (N - 1));//стандартное отклонение

string s1 = std + " ";

richTextBox1.AppendText(s1);//вывод текста

Стандартное отклонение считаем по формуле:

  1. Код кнопки открыть.

Объявляем входной поток f1, инициализируем размер массива, создаем цикл с условием завершения и присваиваем массиву элементы из файла.

//объявляемвходнойпоток f1

StreamReader f1 = new StreamReader("datai.txt");

Mассив = new int[100];//инициализация массива для открытия из файла

int i = 0;

while (!f1.EndOfStream)//цикл с условием завершения - завершение входного потока данных

{

Mассив[i] = Convert.ToInt32(f1.ReadLine());//присвоение массиву элементов из файла

i++;//следующая строка

}

f1.Close();//закрытие потока

N = i;//меняем количество элементов на количество строк

textBox1.Text = Convert.ToString(N);

richTextBox1.Clear();//чистим

richTextBox1.AppendText("Массив из файла\n");

richTextBox1.AppendText(strmas());

Для открытия из файла мы используем класс Streamreader. Создаем переменную этого класса – входной поток. И циклом while считываем каждую строку текстового документа в папке bin/debug, затем выводим на экран.

 

 

 

  1. Код кнопки закрыть.

Close();

  1. Кнопка сохранить

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

        SaveFileDialog saveFileDialog1 = new SaveFileDialog();

        saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";

        saveFileDialog1.FilterIndex = 2;

       saveFileDialog1.RestoreDirectory = true;

if (saveFileDialog1.ShowDialog() == DialogResult.OK)//запуск savefiledialog

{

richTextBox1.SaveFile(saveFileDialog1.FileName,             RichTextBoxStreamType.PlainText); //копируем содержимое richtextbox

Text = saveFileDialog1.FileName;

 

Сохраняется массив с помощью элемента savefiledialog. Выводится окно, пользователь выбирает место сохранения файла, текст из richtextbox копируется в текстовый документ и сохраняется.

  1. Кнопка  с домашним заданием.

Задание: Поменять местами элементы с четными и нечетными индексами.

Вводим временную переменную tmp типа int для обмена значениями.

 

{

int tmp; //tmp - переменная для обмена значениями двух элементов

// решение

for (int i = 1; i < N; i += 2)

{ // обмен значениями элементов

           tmp = Массив[i];

           Массив[i] =Массив[i - 1];

           Массив[i - 1] = tmp;

           }

// вывод результата 

          richTextBox1.AppendText("\n\nПоменять местами элементы с четными и нечетными индексами\n");

          richTextBox1.AppendText(strmas());

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок схема алгоритма решения задачи

 

 

 

 

 

 

 

 

  1. Построение блок-схемы выполнения операций в рассматриваемой предметной области.

 

Направления комплексного экономического анализа

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

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

1. На продукцию есть  спрос, цена устраивает потребителей, в связи с чем надо изучить  возможности предприятия по производству  заданного объема и определить  ту ассортиментную политику, которая  необходима потребителю.

2. Продукция не пользуется  спросом и поэтому необходимо  определить "слабые" места в  деятельности предприятия.

Решение поставленных вопросов возможно при изучении дальнейших блоков схемы.

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

Интенсивность применения производственных ресурсов (блок 3) проявляется в трех измерениях: в объеме и качестве произведенной и реализованной продукции (блок 6); в величине затрат на производство (блок 4); в величине авансированного капитала (блок 5).

Информация о работе Основы объектно-ориентированного программирования