Рефераты
 

Компьютерное моделирование технологических процессов

p align="left">Сборка мусора в .NET работает путем как можно более частого инспектирования памяти компьютера и удаления из нее всего, что уже не требуется. Здесь не существует никаких заранее определенных временных рамок; этот процесс может запускаться с частотой несколько тысяч раз в секунду или один раз в несколько секунд, но вы можете быть уверены, что рано нлн поздно это случиться.

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

Связывание

Существует еще одни момент, который необходимо учитывать в вышеприведенном процессе. Код на С#, который компилируется иа MSIL на шаге 2, совсем не обязательно должен находиться в одном файле. Имеется возможность разнести код приложения по нескольким исходным файлам, которые затем будут скомпилированы в единый модуль. Этот процесс известен под названием "связывание" н является чрезвычайно полезным. Причина такого положения дел заключается в том, что работать с несколькими не очень большими файлами намного легче, чем с одним огромным. Можно выделить логически связанный код в отдельный файл, работа иад которым будет вестись совершенно независимо и о котором можно забыть после того, как произойдет компиляция. Такой подход существенно упрощает выявление конкретных сегментов кода, когда они оказываются нужными, а заодно позволяет командам разработчиков разделить бремя программирования на отдельные куски, которые затем можно выверять без риска повредить правильно работающие сегменты и те части кода, иад которыми трудятся другие программисты.

Что такое С#

Как отмечалось выше, С# -- один нз языков программирования, который может использоваться для создания приложений, выполняемых в среде .NET CLR. Этот язык -- результат эволюции языков С и C#, созданный компанией Microsoft специально для использования на платформе .NET, Являясь новейшей разработкой, С# конструировался очень тщательно, с учетом наилучших возможностей других языков, предназначенных для решения специфических проблем.

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

Иногда код на С# оказывается более объемным, чем на C#. Это следствие того, что в С# (в отличие от С+ + ) осуществляется контроль безопасности использования типов. С точки зрения непрофессионала это означает, что если некоторые данные отнесены к определенному типу, то впоследствии они не могут самостоятельно преобразовываться в другие типы, Поэтому, существуют строгие правила, которым необходимо следовать при выполнении преобразования из одного типа в другой. Это часто приводит к необходимости писать на С# больший объем кода, чем на C#. Однако взамен мы получаем то преимущество, что программа становится более надежной и ее отладка упрощается, поскольку .NET постоянно следит за тем, к какому типу относится данная переменная в каждый конкретный момент времени, К примеру, в С# мы не можем дать задание: "Возьми 4 банта памяти из этих данных и 10 байтов нз других данных и рассматривай эту область памяти как X", но это не обязательно является недостатком.

С# является всего лишь одним из языков, позволяющих работать в .NET, но на взгляд автора он безусловно лучший. Его главное преимущество заключается в том, что С# -- единственный язык, разработанный для .NET Framework "с нуля", н он может использоваться в качестве основного языка для различных версий .NET, которые предназначаются для переноса на другие операционные системы. Для того чтобы некоторые языки -- вроде VB.NET -- в максимальной степени соответствовали своим предшественникам и прн этом могли работать с CLR, приходится отказываться от поддержки отдельных возможностей библиотеки программ .NET. Напротив, С# позволяет использовать любые возможности, предоставляемые библиотекой программ .NET Framework,

Какие типы приложений могут создаваться на С#

Как уже говорилось, .NET Framework не налагает никаких ограничений на возможные типы создаваемых приложений. С# использует эту систему и также не имеет никаких ограничений, касающихся типов приложений. Тем не менее давайте рассмотрим некоторые наиболее часто встречающиеся типы приложений:

Приложения Windows. Это приложения вроде Microsoft Office, имеющие знакомый "Windows-подобный" вид и представление. Создавать такие приложения достаточно просто с помощью модуля .NET Framework, который называется Windows Forms и представляет собой библиотеку управляющих элементов (кнопок, панелей инструментов, меню и т. п.); эта библиотека может использоваться для создания пользовательского интерфейса (user interface, UI) Windows.

Web-приложения. Эти приложения представляют собой web-страницы, которые могут просматриваться любым web-браузером. В состав .NET Framework входит мощная система динамического создания содержимого web-страниц, позволяющая идентифицировать пользователя, обеспечивать безопасность и пр. Эта система называется Active Server Pages.NET (ASP.NET -- активные серверные страницы .NET); для создания приложений ASP.NET можно применять Web Forms языка С#,

Web-службы. Это новый замечательный способ создания гибких распределенных приложений. С помощью web-служб можно обмениваться по Интернету практически любыми данными с использованием единого простого синтаксиса независимо от того, какой язык программирования применялся при создании web-службы и на какой системы она размещена.

Приложениям всех перечисленных типов может потребоваться доступ к базам данных, что осуществляется с помощью раздела ,NET Framework, называемого Active Data Objects.NET (ADO.NET -- активные объекты с данными .NET). Также можно использовать и многие другие ресурсы, например, инструменты для создания сетевых компонентов, графического вывода, выполнения сложных математических вычислений и т. д.

С# в этой книге

Второй и третий разделы данной книги посвящены синтаксису и использованию С#, при этом онн практически обходят вниманием -NET Framework. Это совершенно необходимо, поскольку без твердых навыков программирования на С# невозможно использовать .NET Framework. Фактически мы начнем с самых азов, а рассмотрение наиболее сложной темы -- объектно-ориентированного программирования (ООП, Object Oriented Programming) -- отложим до того момента, когда будут изучены основы. Материал будет излагаться начиная с самых простых принципов, исходя нз предположения, что у читателя отсутствуют какие-либо знания по программированию.

После этого мы окажемся готовы к созданию приложений тех типов, которые перечислены выше. В четвертом разделе настоящей книги будет описано программирование с использованием Windows Forms; в пятом разделе рассматриваются другие связанные с .NET темы (например доступ к базам данных); в шестом разделе вы познакомитесь с созданием web-приложений и web-служб. В заключение будут даны более сложные практические примеры, где будет применена информация из предшествующих разделов.

Пишите программы на C# в простом и четком стиле.

Теперь, когда мы выяснили, что из себя представляет С# и каким образом он вписывается в .NET Framework, настало время заняться грязной работой и написать конкретную программу. На протяжении всей книги мы будем использовать Visual Studio.NET (VS), поэтому первое, что необходимо сделать,-- это получить некоторое представление о данной среде разработки. VS является очень большим и очень сложным продуктом, способным навести ужас на тех, кто встречается с ним впервые; однако использовать его для создания несложных приложений на удивление просто. Когда в данной главе мы начнем с ним работать, вы увидите, что немного "поиграть" с программами на С# можно и не обладая большими знаниями. В дальнейшем вам встретятся более сложные операции, которые может выполнять VS, однако на данный момент все, что нам потребуется,-- это базовые знания о его возможностях.

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

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

Вторым будет приложение Windows Forms. Его внешний вид и работа с ним окажутся очень знакомыми для пользователей Windows, а усилий на его создание потребуется {что удивительно) не так уж много. При этом синтаксис необходимого кода окажется более сложным, хотя во многих случаях нам не придется беспокоиться о деталях.

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

При первой загрузке VS на монитор выводится множество окоп, большинство нз которых пусты, а также ряд пунктов меню и иконок, которыми нам предстоит пользоваться, но не волнуйтесь заранее: очень скоро они станут более попятными,

Рис. 2. Visual Studio 2008 (выпущена 19 ноября 2007 г, с 28 октября 2008 г впервые доступна версия на русском языке)

Основное окно, в котором при запуске VS появляется "начальная страница", в дальнейшем будет содержать весь наш код. Оно поделено на части так, чтобы можно было легко перемещаться между файлами, щелкая мышью по имени соответствующего файла. У этого окна имеются и другие функции: в нем могут выводиться графические пользовательские интерфейсы, разрабатываемые для наших проектов, файлы с обычным текстом, HTML, а также различные встроенные в VS инструменты. Все эти функции будут описываться по ходу изложения материала.

Выше основного окна располагаются панели инструментов и меню VS. Здесь могут находиться панели инструментов с са'мыми разнообразными функциональными возможностями: сохранение и загрузка файлов, создание и запуск проектов, отладка управляющих элементов и т. д. Повторим еще раз, что все эти возможности будут обсуждаться по мере возникновения необходимости в них.

Ниже приводится краткое описание основных возможностей VS, пользоваться которыми приходится наиболее часто:

? Панель Server Explorer и панель Toolbox (инструменты) появляются при движении по ним указателя мыши, открывая различные дополнительные возможности, например, доступ к установкам сервера и службам, а также к элементам построения пользовательских интерфейсов для оконных приложений.

В окне Solution Explorer выводится информация о решении, загруженном в настоящий момент. "Решение" в терминологии Visual Studio обозначает один или несколько проектов вместе с их настройками. Здесь мы можем увидеть различные представления проектов, участвующих в решении: например, из каких файлов они состоят и что в этих файлах содержится.

Окно Properties (свойства) позволяет получить более детальное представление о содержимом проекта; в нем предусмотрена возможность дополнительной настройки отдельных элементов. К примеру* здесь можно изменить внешний вид кнопки приложения Windows.

Окно Task List/Output (список заданий/вывод) содержит информацию, относящуюся к компиляции проектов, а также задачи, которые требуют завершения (они представлены наподобие списка заданий в Microsoft Outlook). Эти задачи могут вводиться вручную, а могут генерироваться VS автоматически.

Может показаться, что-объем новой информации слишком велик, однако не беспокойтесь: пройдет немного времени, и вы привыкнете к Visual Studio. Итак, давайте приступим к созданию самого первого опытного проекта, который предполагает использование многих элементов VS из числа описанных выше.

MONO

Он предоставлял разработчику практически все те возможности, которые доступны Microsoft Visual Studio .NET.

Как построен курс учебника

Схема 1. Структура выполнения работ

Часть 2 Среда программирования на C#

Обычно системы программирования на C# состоят из нескольких частей: среда программирования, язык, стандартная библиотека С и различные библиотеки классов. Рассмотрим типичную среду разработки программ на C#, показанную на рис. 1.1.

Как правило, для того, чтобы выполнить программу на C#, надо пройти шесть этапов (рис. 1.1): редактирование, предварительную (препроцессорную) обработку, компиляцию, компоновку, загрузку и выполнение. Мы остановимся на системе C#, ориентированной на UNIX. Если вы не пользуетесь системой UNIX, обратитесь к справочникам для вашей системы или спросите вашего инструктора, как приспособить эти задачи к вашей операционной среде.

Первый этап представляет собой редактирование файла. Он выполняется с помощью редактора программ. Программист набирает с помощью этого редактора свою программу на C# и, если это необходимо, вносит в нее исправления.

Программа запоминается на вспомогательном запоминающем устройстве, например, на диске. Имена файлов программ на C# часто оканчиваются расширением .С (заметим, что С -- прописная буква; некоторые операционные среды C# требуют других расширений, таких как .срр или .схх; для получения более детальной информации смотрите документацию по вашей операционной среде C#). В системе UNIX широко используются два редактора -- vi и emacs. Некоторые пакеты C#, такие как Borland C# и Microsoft C/C++, имеют встроенные редакторы, которые органично объединены с операционной средой программирования. Мы предполагаем, что читатель знает, как редактировать программу.

На следующем этапе программист дает команду компилировать программу. Компилятор переводит программу в машинный код (называемый также объектным кодом). В системе C# перед началом этапа трансляции выполняется программа предварительной обработки. Эта программа в C# подчиняется специальным командам, называемым директивами препроцессора, которые указывают, что в программе перед ее компиляцией нужно выполнить определенные преобразования. Обычно эти преобразования состоят во включении других текстовых файлов в файл, подлежащий компиляции, и выполнении различных текстовых замен. Наиболее общие директивы препро- цессора обсуждаются в начальных главах; детальное обсуждение всех особенностей препроцессорной обработки дано в приложениях. Препроцессорная обработка инициируется компилятором перед тем, как программа преобразовывается в машинный код.

Следующий этап называется компоновка. Программы на C# обычно содержат ссылки на функции, определенные где-либо вне самой программы, например, в стандартных библиотеках или в личных библиотеках групп программистов, работающих над данным проектом. Объектный код, созданный компилятором, обычно содержит «дыры» из-за этих отсутствующих частей. Компоновщик связывает объектный код с кодами отсутствующих функций, чтобы создать исполняемый загрузочный модуль (без пропущенных частей). В типичной, основанной на UNIX, системе команда компиляции и компоновки программы на C# обозначается как СС. Чтобы скомпилировать и скомпоновать программу по имени welcom.C, наберите по приглашению UNIX

СС welcom.C и нажмите клавишу return (возврат каретки). Если программа скомпилирова-лась и скомпоновалась правильно, будет создан файл a.out. Это и есть исполняемый загрузочный модуль нашей программы welcome.С. Следующий этап называется загрузка. Перед выполнением программа должна быть размещена в памяти. Это делается с помощью загрузчика, который забирает исполняемый загрузочный модуль с диска и перемещает его в память.

Затем компьютер под управлением своего ЦПУ выполняет поочередно в каждый момент времени по одной команде программы. Чтобы загрузить и выполнить программу в системе UNIX, мы набираем по приглашению UNIX команду a.out и нажимаем клавишу return.

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

СХЕМА Введение в программирование на C#

Язык C# облегчает структурированный и упорядоченный подход к проектированию компьютерных программ. Теперь мы познакомимся с программированием на C# и представим несколько примеров, иллюстрирующих многие важные свойства C#. Каждый пример посвящен одному оператору. В главе 2 мы детально рассмотрим структурное программирование на C#. Затем мы используем структурный подход при изложении материала главы 5. Начиная с шестой главы, мы изучим объектно-ориентированное программирование на C#. Из-за особой важности объектно-ориентированного программирования в этой книге каждая из первых пяти глав заканчивается разделом, озаглавленным «Размышления об объектах». Эти специальные разделы знакомят с основными идеями объектного подхода.

Простая программа: печать строки текста

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

Код программы:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

//Первая компьютерная модель выводящая текст

Console.WriteLine("Привет технолог, это первая компьютерная модель на С#");

}

}

}

Результат выполнения:

Привет технолог, это первая компьютерная модель на С# Для продолжения нажмите любую клавишу…

Код. 2.1. Первая компьютерная модель программы выводящая текст

При набирания кода, в окне Error List / Список ошибок рис. 2.1. помогает исправлять ошибки в коде, поскольку в нем выводятся сообщения о том, что необходимо сделать для успешной компиляции проекта. Если два раза щелкнуть мышью на ошибке, указанной в данном окне, то курсор переместится на ту позицию в строке исходного кода, где ошибка содержится (если файл с исходным текстом не был открыт ранее, он откроется в этот момент); это позволяет быстро исправлять промахи. В местах, где обнаружены ошибки, также можно увидеть волнистые линии красного цвета, благодаря чему можно быстро просматривать исходный код для выявления ошибок.

Рис. 2.1 Окно Error List / Список ошибок

Обратите внимание на то, что местонахождение ошибки указывается в виде номера строки. В текстовом редакторе VS номера строк по умолчанию не выводятся, однако такой режим вполне достоин того, чтобы в него перейти. Для этого потребуется установить соответствующий флажок в диалоговом окне Options / Опции (Параметры), в которое можно перейти через пункт меню Tools / Сервис | Options / Опции (Параметры) рис. 2.2.

Рис. 2.2 Окно параметров для вывода номера строк

Итоги: В данной главе вы познакомились с некоторыми инструментами, которые будут использоваться в остальной части книги. Мы в общих чертах -- рассмотрели среду разработки Visual Studio.NET и использовали ее для создания двух типов приложений. Более простое из них консольное приложение; его вполне достаточно для решения большинства наших задач, и оно позволяет нам сосредоточиться на основах программирования на С#. Оконные приложения несколько сложнее, однако визуально они оказываются более впечатляющими н наглядными для пользователей, знакомых с оконной средой (т. е. почти для всех). Теперь, когда вы научились создавать простые приложения, можно перейти к настоящему изучению С#. Следующая глава посвящена основам синтаксиса С# и структуре программ на С#, которые необходимо освоить, прежде чем переходить к более сложным объектно-ориентированным методам. А изучив их, мы сможем перейти к вопросу об использовании С# для получения доступа к тем большим возможностям, которые предоставляет .NET Framework. Базовый синтаксис

2.1 Структура кода в моделирование

Код на С# представляет собой последовательность операторов, каждый из которых оканчивается точкой с запятой. С# -- язык, обладающий блочной структурой; другими словами, каждый оператор является частью некоторого блока кода. Эти блоки, для обозначения начала и конца которых используются фигурные скобки { и }, могут содержать произвольное количество операторов или не содержать их вовсе. Обратите внимание, что фигурные скобки не сопровождаются точками с запятой. Итак, простой блок программы на С# может иметь следующий вид:

{

Строка кода 1, оператор 1;

Строка кода х, оператор y;

}

В этом простом примере кода использованы отступы, чтобы сделать запись на С# более наглядной.

Блоки могут быть вложены друг в друга (т. е. блоки могут содержать в себе другие блоки), и в таком случае величина отступа у вложенных блоков должна быть больше:

{

Строка кода 1, оператор 1;

{

Строка кода 2, оператор 2;

Строка кода 3, оператор 3;

}

Строка кода 4, оператор 4;

}

В коде на С# необходимо использовать комментарии. Для того чтобы обозначить комментарии по первому способу, используют сочетания символов /* в начале комментария, и */ в конце комментария. Другой подход к оформлению комментария состоит в использовании в качестве его начала символов //.

/* Длинный комментарии */

// Короткие комментарии

Переменные

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

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

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

Объявления переменных:

{

тип переменной, её имя;

}

В табл. 2.1 приводятся некоторые имена типов и указывается, какому типу в библиотеке .NET Framework они соответствуют.

Таблица 2.1 Имена некоторых типов переменных

Тип

Тип .NET Framework

Допустимые значения

sbусе

System.SByte

Целое в диапазоне от -128 до 127

byte

System.Byte

Целое в диапазоне от 0 до 255

short

System.Int16

Целое в диапазоне от -32 768 до 32 767

uahort

System.UInt16

Целое в диапазоне от 0 до 65 535

int

System.Int32

Целое в диапазоне от -2 147 483 648 до 2 147 483 647

uint

System.UInt32

Целое в диапазоне от 0 до 4 294 967 295

Буква "u", встречающаяся перед некоторыми из имен, является сокращением от слова "unsigned" ("без знака"). Это говорит о том, что в переменных соответствующего типа не могут храниться отрицательные значения.

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

Таблица 2.2 Имена некоторых типов переменных с плавающей запятой

Тип

Тип .NET Framework

Допустимые значения

float

System.Single

от 1,5х10-45 до 3,4х1038

double

System.Double

от 5,0х10-324 до 1,7х10308

Кроме численных типов, существует еще простые типы переменных табл. 2.3.

Таблица 2.2 Имена простых типов переменных

Тип

Тип .NET Framework

Допустимые значения

string

System.String

Последовательность символов

bool

System.Boolean

Логическое значение (Boolean), которое может принимать значения true (истина) или false (ложь)

Логический тип bool -- один из наиболее часто используемых в С# типов переменной; аналогичные типы часто встречаются в кодах на других языках программирования. Использование переменной, которая может принимать только два значения -- либо true, либо false,-- создает очень важную возможность ветвления логики приложения. В качестве простого примера представьте себе, какое огромное количество вопросов допускают d качестве ответа true или false ("да" или "нет"). Сравнение значений переменных и проверка допустимости введенной информации как раз представляют собой примеры программного использования логических переменных (эти примеры вскоре станут предметом нашего изучения). Пример использования переменных:

Имена переменные. В качестве имени переменной можно использовать произвольную последовательность символов.

Основные правила при именовании переменных следующие:

· Первый символ в имени переменной должен быть либо буквой, либо символом подчеркивания _;

· Последующими символами могут быть буквы, символ подчеркивания или цифры.

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

Следующие имена переменных являются правильными:

myRawGOST

GOST1

_waste

Не правильные имена переменных:

usernamespace

56Raw

I' go-All-Over

Пример использование имент переменных:

Код программы:

static void Main(string[] args)

{

int myNumber;

string myRaw;

MyNumber = 320;

MyRaw = "Количество горбуши на складе";

Console.WriteLine("{0} {1} кг.", MyRaw, MyNumber);

}

Результат выполнения:

Количество горбуши на складе 320 кг.

Для продолжения нажмите любую клавишу…

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

Объявление переменных осуществляет следующий код:

int MyNumber;

string MyRaw;

Следующие присваиваем им значения:

MyNumber = 320;

MyRaw = "Количество горбуши на складе;

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

Console.WriteLine("{0} {1} кг.", MyRaw, MyNumber);

Это простой метод вывода текста на консоль, которым приводился в первом примере, но на этот раз выводим переменные. Строка, которую выводим - "{0} {1} кг.", - в примере, приведенном выше, значение {0} принадлежит переменной MyRaw, а значение {1} соответсвенно MyNumber. Этим методом пользуются для вывода на консоль.

Практическая часть

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

Перечень практических работ

1. Моделирование процесса приема сырья

2. Моделирование продуктового расчета

3. Совершенствование существующих программ (tex, исследователь, и др.)

4. Моделирование технологических режимов

5. Моделирование качество готового сырья

6. Моделирование (рыбо- мясо- молоко- перерабатывающего) производства

Цель практических работ

Научится применять компьютерное моделирование на практике своего направления

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

Практическая работа 1

Цель работы - изучить нормативную документацию и создать модель приема сырья и вывода его качественных показателей.

Задачи

- изучить нормативную документацию согласна выбранного варианта

- использую операторы из первой главы спроектировать модель приема сырья

Варианты работы

Вариант

Наименование сырья

Способ обработки

1

Горбуша

сырец, мороженая, охлажденная

2

Минтай

тоже

3

Треска

тоже

4

Навага

тоже

5

Камбала

тоже

6

Креветка

живая, охлажденная

7

Еж морской

тоже

Пример выполнения работы

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

Рис. р.1.1 Создание нового проекта

2. В окне создания проекта выберите консольное приложение и задайте ему имя например «Project1» рис. p.1.2.

Рис. р.1.2. Выбор шаблона и задание имя проекта

3.Нажмите на кнопку ОК.

4. После того как проект будет инициализирован добавляете в файл свои строки. Ниже приведен пример модели приема сырья карася и сазана мороженого код. p.1.1.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Rabota1

{

class Program

{

static void Main(string[] args)

{

* программа модели приема сырья */

Console.WriteLine("Программа для моделирования приема сырья \n");

Console.WriteLine("Прием сырья:");

Console.WriteLine("1. Крась мороженый (ГОСТ 1168-86)");

Console.WriteLine("2. Сазан мороженый (ГОСТ 1168-86)");

Console.Write("Выбирите принятую рыбу на производство, 1 или 2: ");

int var = Convert.ToInt16(Console.ReadLine());

if (var == 1)

{

//код программы карась

Console.WriteLine("Выбрано сырье карась мороженый");

half:

Console.WriteLine("----------------------------------------");

Console.WriteLine("1. Инвормацию о нормативном докумете");

Console.WriteLine("2. Принять сырье");

Console.Write("Выберите пункт: ");

int var1 = Convert.ToInt16(Console.ReadLine());

if (var1 == 1)

else

{

int indic1, indic2, indic3, indic4; //объявим переменные

int indic11, indic12, indic13, indic14;

Console.Write("Поверхность рыбы чистая, естественной окраски? 0-НЕТ 1-ДА ");

indic1 = Convert.ToInt16(Console.ReadLine());

if (indic1 == 1)

{

Console.Write("Поверхность потускневшая? 0-НЕТ 1-ДА");

indic11 = Convert.ToInt16(Console.ReadLine());

if (indic11 == 1)

{

Console.WriteLine("Сырье второго сорта");

}

else

{

}

}

else

{

Console.WriteLine("Разделка 2 см? 0-НЕТ 1-ДА");

Console.WriteLine("Консистенция плотная? 0-НЕТ 1-ДА");

Console.WriteLine("Консистенция ослабевшая? 0-НЕТ 1-ДА");

Console.WriteLine("Запах свойственный свежей рыбе? 0-НЕТ 1-ДА");

Console.WriteLine("Кисловатый запах в жабрах? 0-НЕТ 1-ДА");

}

}

// ввывод данных о сырье

Console.WriteLine("Сырье первого сорта");

Console.WriteLine("Сырье второго сорта");

Console.WriteLine("Сырье на кормовую муку");

}

else

{

//код тот же что и у карася

}

}

}

}

Код. p.1.1. Модель приема сырья карася и сазана мороженого

Для наглядности моделирования приема сырья приведен алгоритм построения программы рис.p.1.3.

Рис. р.1.3 Алгоритм компьютерной модели приема сырья

Компьютерное моделирование

Цель работы: рассчитать воспроизводимость опыта

Термины

Машинный язык -- это «природный язык» определенного компьютера.

Язык ассемблера - аббревиатуры, напоминающие английский язык

Компиляторы - программы трансляции, которые преобразуют программы на языках высокого уровня в машинные коды, называются

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

C# -- разработан Бьерном Строустропом в начале 80-х годов в Bell Laboratories. Это гибридный язык, он предоставляет возможность программировать и в стиле структурного программирования, и в объектно-ориентированном стиле, и в обоих стилях сразу

Литеральная строка - содержит информацию, без изменения выводимую в отчет.

Язык Smalltalk - разработанный в Центре Исследований Palo Alto компании Xerox. Это чистый объектно-ориентированный язык.

Microsoft Visual Studio (по-русски обычно произносится [майкрософт вимзуал стумдио]) -- линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств.

C# (произносится си-шарп) -- язык программирования, сочетающий объектно-ориентированные и аспектно-ориентированные концепции. Разработан в 1998--2001 годах группой инженеров под руководством Андерсa Хейлсбергa в компании Microsoft как основной язык разработки приложений для платформы Microsoft .NET. Компилятор с C# входит в стандартную установку самой .NET, поэтому программы на нём можно создавать и компилировать даже без инструментальных средств вроде Visual Studio.

Linux (полное название GNU/Linux, произносится «гну слэш лимнукс») общее название UNIX-подобных операционных систем на основе одноимённого ядра и собранных для него библиотек и системных программ, разработанных в рамках проекта GNU. Краткое название Linux распространено потому, что первой, наиболее популярной и единственной системной библиотекой, использовавшейся в системах на базе ядра Linux, была GNU C Library (glibc).

Microsoft Windows (произносится /?w?ndo?z/) -- семейство проприетарных операционных систем компании Майкрософт (Microsoft).

Microsoft .NET Framework -- программная технология, предназначенная для создания как обычных программ, так и веб-приложений (в качестве платформы для разработок впервые предложена корпорацией Microsoft).

Стьюдент - это псевдоним английского математика и химика Госсета

Приложение2

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace проверка_воспроизводимости

class Program

{

static void Main(string[] args)

{

*Пример эксперимента выхода вареной рыбы y(%), зависячая от

двух факторов: тепературы и времени запекания*/

int temp1=60, temp2=70, temp3=80, temp4=90;

int time1=15, time2=18, time3=10, time4=12;

double make1 = 95.5, make2 = 96.8;

double make3 = 98.8, make4 = 96.1;

double make5 = 75.4, make6 = 76.1;

double make7 = 65.5, make8 = 74.1;

double yi1 = (make1 + make2) / 2;

double yi2 = (make3 + make4) / 2;

double yi3 = (make5 + make6) / 2;

double yi4 = (make7 + make8) / 2;

double s1 = System.Math.Round((1 / 2 - 1) * System.Math.Pow((make1 - yi1), 2) * System.Math.Pow((make2 - yi1), 2), 2);

double s2 = System.Math.Round((1 / 2 - 1) * System.Math.Pow((make3 - yi2), 2) * System.Math.Pow((make4 - yi2), 2), 2);

double s3 = System.Math.Round((1 / 2 - 1) * System.Math.Pow((make5 - yi3), 2) * System.Math.Pow((make6 - yi3), 2), 2);

double s4 = System.Math.Round((1 / 2 - 1) * System.Math.Pow((make7 - yi4), 2) * System.Math.Pow((make8 - yi4), 2), 2);

double s1b = s1 - s1 - s1;

double s2b = s2 - s2 - s2;

double s3b = s3 - s3 - s3;

double s4b = s4 - s4 - s4;

таблица для вывода результатов

Console.WriteLine("-------------------------------------------------------");

Console.WriteLine("| Номер | Условия | Результаты | _ | |");

Console.WriteLine("| серии | опытов | измерений | уi,% | Si^2 |");

Console.WriteLine("| опытов|------|------ |------|------| | |");

Console.WriteLine("| | Темп | Время | 1 | 2 | | |");

Console.WriteLine("-------------------------------------------------------");

Console.WriteLine("| 1 | {0} | {1} | {2} | {3} | {4} | {5} |", +

temp1, time1, make1, make2, yi1, s1b);

Console.WriteLine("| 2 | {0} | {1} | {2} | {3} | {4} | {5} |", +

temp2, time2, make3, make4, yi2, s2b);

Console.WriteLine("| 3 | {0} | {1} | {2} | {3} | {4} | {5} |", +

temp3, time3, make5, make6, yi3, s3b);

Console.WriteLine("| 4 | {0} | {1} | {2} | {3} | {4} | {5} |", +

temp4, time4, make7, make8, yi4, s4b);

Console.WriteLine("-------------------------------------------------------");

double MaxS1 = System.Math.Max(s1b, s2b);

double MaxS2 = System.Math.Max(s3b, s4b);

double MaxS0 = System.Math.Max(MaxS1, MaxS2);

double Gp = System.Math.Round(MaxS0 / (s1b + s2b + s3b + s4b),3);

if (Gp <= 0.907)

{

Console.WriteLine("Эксперимент воспроизводим {0}<0.907",Gp);

}

else

{

Console.WriteLine("Эксперимент не воспроизводим {0}>0.907", Gp);

}

}

}

Литература

· Эндрю Троелсен Язык программирования C# 2005 (Си Шарп) и платформа .NET 2.0 = Pro C# 2005 and the .NET 2.0 Platform. -- 3-е изд. -- М.: «Вильямс», 2007. -- С. 1168. -- ISBN 1-59059-419-3

· Кристиан Нейгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер C# 2008 и платформа .NET 3.5 для профессионалов = Professional C# 2008. -- М.: «Диалектика», 2008. -- ISBN 978-5-8459-1458-3

· Робинсон С., Корнес О. и др. C# для профессионалов//М., Лори, 2005 - С.123. ISBN 1-86100-499-0

· Гордон Хогенсон C++/CLI: язык Visual C++ для среды .NET = C++/CLI Primer. -- М.: «Вильямс», 2007. -- С. 464. -- ISBN 1-59059-705-2

· http://ru.wikipedia.org/wiki/Ubuntu - Ubuntu Linux

· http://ru.wikipedia.org/wiki/Windows_7 - Microsoft Windows 7

· http://ru.wikipedia.org/wiki/Microsoft_Windows - Microsoft Windows

· http://ru.wikipedia.org/wiki/.NET_Framework - .NET Framework

· http://customize.ru/ themes_stylexp4.html - Скриншоты Windows Vista

· http://www.linux.org.ru/view-news.jsp?year=1999&month=11&section=3 - Архив скриншотов Linux 1999 ноябрь

Страницы: 1, 2, 3, 4


© 2010 BANKS OF РЕФЕРАТ