kopilkaurokov.ru - сайт для учителей

Создайте Ваш сайт учителя Видеоуроки Олимпиады Подготовка к ЕГЭ

Методические указания по выполнению практических работ по дисциплине "Разработка, внедрение и адаптация программного обеспечения отраслевой направленности"

Нажмите, чтобы узнать подробности

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

Просмотр содержимого документа
«Методические указания по выполнению практических работ по дисциплине "Разработка, внедрение и адаптация программного обеспечения отраслевой направленности"»





Язык C#







Методические указания

По проведению самостоятельных работ

по дисциплинам





























Москва-2018

ОДОБРЕНА

Методическим объединением

Информационная и вычислительная

техника


Разработана на основе Федерального

Государственного образовательного

стандарта среднего

профессионального образования по специальности 09.02.07 Информационные системы и программирование Утв. Приказом Минобрнауки России

09.12.2016__ №_1547__

Зарегистрированного

в Минюст России

26.12.2016_ №__44936




Разработали:

преподаватель ГАПОУ ПК № 8 им. И.Ф. Павлова Абдурашидова С.А.

преподаватель ГАПОУ ПК № 8 им. И.Ф. Павлова Мирзахалилов Б.Б.



Содержание

Наименование

Страница




























Введение

C# прочно вошел в мир IT, заняв нишу быстрой и удобной разработки различных приложений и сервисов. Так уж сложилось, что самой приемлемой средой для разработки приложений на C# считается IDE от Майкрософт – MS Visual Studio.Net или же урезанная от всех излишеств студии MS Visual C# Express.

Также в качестве альтернативной среды для разработки приложений на C# зачастую используют Sharp Developer.

Sharp Develop — свободная среда разработки для C#, Visual Basic, F#, C++. Обычно используется как альтернатива VisualStudio .NET. Существует также форк на Mono/GTK+ — MonoDevelop.

Данная среда разработки предоставляет интегрированный отладчик, который использует собственные библиотеки и взаимодействует с исполняющей средой .NET через COM Interop.

Скачать последнюю версию, а также исходники среды и многие полезные инструменты типа контроля версий можно по адресу http://www.icsharpcode.net/OpenSource/SD/Download/. 

Визуально среда очень похожа на свой аналог от Майкрософт: 

Рис.1 Окно обзора на SharpDeveloper.

Если вы программировали раньше на VC #, то программировать на Sharp Developer будет очень легко. Все, что поддерживает VC# имеется и в Sharp Developer. На Рис.1 показана пятая версия программы, которая поддерживает русский язык. Следует отметить, что более ранние версии русский язык не поддерживали. Однако, начиная с четвертой версии, которая использует NetFramework 4 и C# 4, он включен в поставку.

Быстродействие среды очень высокое. Sharp Developer практически умеет делать все то, что и Microsoft Visual Studio.Net. Подобно Visual Studio, Sharp Developer умеет создавать приложения на всех языках, поддерживающих дотнет. Чтобы ощутить всю прелесть среды разработки, нужно самостоятельно ее опробовать. Особенно актуально использовать среду Sharp Developer в учреждениях, где используется устаревший парк компьютеров, не позволяющий использовать более актуальные, но при этом более ресурсоемкие программы.

Сделаем это на основе лабораторного практикума.

В данном методическом указании приводятся краткие теоретические данные о языке программирования C#. Описана среда разработки. Также даны задачи с их последующим решением, которые содержат основные алгоритмические приемы программирования. Для закрепления приведены задания для самостоятельного решения.

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

В добрый путь…



Глава 1. Обзор среды и языка C# 1.1 Среда разработки SharpDevelop



В настоящем методическом указании рассмотрена 5-я версия SharpDevelop. Запускаем SharpDevelop и при загрузке видим такую картинку:



Появляется главное окно SharpDevelop 5.0. 



Интерфейс очень близок к Visual Studio.

Для создания проекта выполняем команду(Файл-Создать-Решение):

Данное окно практически ничем не отличается от окна VisualStudio, в правом верхнем углу можно выбрать версию фреймворка, слева доступны возможные проекты. Выбираемпроект C#-Windows-приложения, в правой части можно выбирать шаблоны (в данном методическом указании мы рассмотрим 2 вида приложений: консольное и Windows-приложение).

Задаем имя проекта (решения) желательно на английском языке во избежание конфликтных ситуаций. Оно будет иметь по умолчанию расширение .sln (от solution)

После загрузки SharpDevelop на экране отображается Интегрированная среда разработки (англ. Integrated Development Environment, IDE), которая состоит из нескольких окон. Их положением и размерами можно управлять(в том числе с помощью пунктов меню Вид и Окно).







Интегрированная среда разработки SharpDevelop содержит окна:

  1. Строка меню

Меню содержит команды, используемые при работе. Кроме стандартных меню Файл, Правка, Вид, …, Справка здесь расположены меню, обеспечивающие доступ к функциям программирования, например, Проект, Отладка, Формат и др.

  1. Панель инструментов

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

  1. Форма – окно будущего приложения (присутствует, если мы создаем Windows-приложение, при выборе консольного приложения на экране вместо него будет окно программного кода (6))

  2. Панель инструментов (для WindowsForms)

Панель обеспечивает проектировщика набором инструментов, необходимых во время разработки для размещения элементов управления на форме

  1. Окно свойств

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

  1. Окно обозревателя решений

Следующий элемент конструктора, о котором стоит знать — окно обозревателя решений. Все проекты SharpDevelop (и Visual Studio) поддерживают это окно, но оно особенно удобно при создании приложений Windows Forms для быстрого изменения имени файла и соответствующего класса для любого окна и просмотра файла, который содержит сопровождаемый конструктором код .

  1. Окно кода программы



7

6







1.2 Составные компоненты языка программирования С#

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

Для перевода программы на язык низкого уровня, понятный исполнителю-компьютеру, существуют специальные программы-переводчики - компиляторы. Результатом работы компилятора (иными словами, результатом процесса компиляции) является исполняемый код, который записывается в файл с расширением .exe.

Любой алгоритм должен обладать следующими свойствами:

  • массовостью (алгоритм должен уметь решать не одну конкретную задачу, а целый класс однотипных задач);

  • результативностью (алгоритм должен выдавать результат своей работы);

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

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

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

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

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

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

СОСТАВ ЯЗЫКА. Обычный разговорный язык состоит из четырех основных элементов: символов, слов, словосочетаний и предложений. Алгоритмический язык содержит подобные элементы, только слова называют элементарными конструкциями, словосочетания-выражениями, предложения-операторами. Символы, элементарные конструкции, выражения и операторы составляют иерархическую структуру, поскольку элементарные конструкции образуются из последовательности символов, выражения - это последовательность элементарных конструкций и символов, а оператор-последовательность выражений, элементарных конструкций и символов.

ОПИСАНИЕ ЯЗЫКА есть описание четырех названных элементов. Описание символов заключается в перечислении допустимых символов языка. Под описанием элементарных конструкций понимают правила их образования. Описание выражений - это правила образования любых выражений, имеющих смысл в данном языке. Описание операторов состоит из рассмотрения всех типов операторов, допустимых в языке. Описание каждого элемента языка задается его СИНТАКСИСОМ и СЕМАНТИКОЙ. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения.

СИМВОЛЫ языка - это основные неделимые знаки, в терминах которых пишутся все тексты на языке.

ЭЛЕМЕНТАРНЫЕ КОНСТРУКЦИИ - это минимальные единицы языка, имеющие самостоятельный смысл. Они образуются из основных символов языка.

ВЫРАЖЕНИЕ в алгоритмическом языке состоит из элементарных конструкций и символов, оно задает правило вычисления некоторого значения.

ОПЕРАТОР задает полное описание некоторого действия, которое необходимо выполнить. Для описания сложного действия может потребоваться группа операторов. В этом случае операторы объединяются в СОСТАВНОЙ ОПЕРАТОР или БЛОК.

Действия, заданные операторами, выполняются над ДАННЫМИ. Предложения алгоритмического языка, в которых даются сведения о типах данных, называются ОПИСАНИЯМИ или неисполняемыми операторами. Объединенная единым алгоритмом совокупность описаний и операторов образует ПРОГРАММУ на алгоритмическом языке.





1.3 Типы данных. Описание переменных. Константы именованные и неименованные

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

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

1.3.1 Базовые типы

К базовым типам относятся:

тип целых чисел

  • int -2147483648 до 2147483647

  • Int16 -32768..32768

  • Int32 -2млрд..2млрд

  • Int64 -9223372036854775808 до 9223372036854775807

  • Byte 0..255

тип действительных (вещественных) чисел (то есть - с дробной частью).

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

-25.000452

0.24

4.854E-12

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

double от ±5,0 × 10−324до ±1,7 × 10308

double x = 3.7D;

double m = 8.2;

floatот ±1,5 × 10−45до ±3,4 × 1038 float x = 3.5F;

символьный тип - Char

Ключевое слово char используется для объявления символа Юникода в диапазоне, указанном в следующей таблице. Символы Юникода — это 10-разрядные символы, которые используются для представления большинства известных письменных языков мира.содержит внутри себя всего один символ например 'w' или '#'

Константы типа char могут быть записаны в виде символьных литералов, шестнадцатеричной escape-последовательности или представления Юникода. Кроме того, можно привести коды целых символов. Все следующие операторы объявляют переменную char и инициализируют ее символом X:

char c1 = 'Z'; // Буквенный символ

char c2 = '\x0058'; // Шестнадцатеричный код символа

строковый тип - string по умолчанию до 2Гбайт например " iit "

Тип данных string — это последовательность, содержащая ни одного или любое число знаков Юникода. В платформе.NET Framework string является псевдонимом для String.

string a = "hello";

string b = "h";

  • логический тип - bool (Может принимать два значения Истинно-true Ложно-false)

bool f = true;

Физически типы данных отличаются друг от друга количеством ячеек памяти (байтов), отводимых для хранения соответствующей переменной. Логическое же отличие проявляется в интерпретации хранящейся информации. Например, переменные типа Char и типа Byte занимают в памяти по одному байту. Однако в первом случае содержимое ячейки памяти интерпретируется как целое беззнаковое число, а во втором - как код (ASCII) символа.

1.3.2. Константы

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

Константа хранит значение, присваиваемое по завершении компиляции программы, и никогда после этого не изменяется. Константы объявляются c помощью ключевого слова const; их использование способствует повышению удобочитаемости кода. В языке существует два вида констант:

  • неименованные константы (цифры и числа, символы и строки, множества);

  • именованные константы;

1.3.3. Неименованные константы

Неименованные константы не имеют имен, и потому их не нужно описывать. Тип неименованной константы определяется автоматически, по умолчанию:

  • любая последовательность цифр (возможно, предваряемая знаком "-" или "+" или разбиваемая одной точкой) воспринимается компилятором как неименованная константа - число (целое или вещественное);

  • любая последовательность символов, заключенная в апострофы, воспринимается как неименованная константа - строка;

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

Кроме того, существуют две специальные константы true и false, относящиеся к логическому типу данных. Примерами использования неименованных констант могут послужить следующие операторы:

a = -10;

b = 12.075 + х;

c = 'z';

d = "abc" + string44;

1.3.4. Именованные константы

Именованные константы, как следует из их названия, должны иметь имя. Стало быть, эти имена необходимо сообщить компилятору, то есть описать в специальном разделе const.

Если не указывать тип константы, то по ее внешнему виду компилятор сам определит, к какому (базовому) типу ее отнести. Любую уже описанную константу можно использовать при объявлении других констант, переменных и типов данных. Вот несколько примеров описания нетипизированных именованных констант:

constintspeedLimit = 55;

constdoublepi = 3.14159265358979323846264338327950;

1.3.5. Переменные

В C# переменные объявляются с определенным типом данных и надписью. Если ранее вам приходилось работать со слабо типизированными языками, например JScript, вы привыкли использовать один тип "var" для всех переменных, то в C# необходимо указать тип переменной: int, float, byte, short или другой из более чем 20 различных типов данных. Тип указывает, помимо всего прочего, точный объем памяти, который следует выделить для хранения значения при выполнении приложения. Пример:

int i;

int answer = 42;

string greeting = "Hello, World!";

doublebigNumber = 1e100;

Console.WriteLine("{0} {1} {2}", answer, greeting, bigNumber);

1.3.6. Идентификаторы

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

  • идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;

  • идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);

  • идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания ("_"), регистр букв имеет значение;

  • идентификатор не может начинаться с цифры.

//допустимые имена

x , s5 , Ax6 , D_f , _Fm5 , xM_5 , _128

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

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

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

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

Приведем список наиболее часто встречающихся зарезервированных слов:

abstract event new struct as explicit null switch base extern object this bool false operator throw break finally out true byte fixed override try case float paramstypeof catch for private uint char foreach protected ulong checked goto public unchecked class if readonly unsafe const implicit ref ushort continue in return using decimal intsbyte virtual default interface sealed volatile delegate internal short void do is sizeof while double lock stackalloc else long static enum namespace string

1.4. Основная структура программы

Для консольного приложения автоматически создается структура:

using System;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

//здесь писать текст программы

}

}

}

Имя программы выбирается программистом самостоятельно в соответствии с правилами построения идентификаторов и совпадает с именем файла на диске.

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

1.4.1. Комментарии

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

// Двойная косая черта до конца строки


/* многострочный

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

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



/* многострочный

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

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

Оператор присваивания

Самым простым действием над переменной является занесение в нее величины соответствующего типа. Иногда говорят об этом, как о присвоении переменной конкретного значения. Такая команда (оператор) в общем виде выглядит следующим образом:

= ;

Тип переменной и тип выражения должны быть совместимы. Выражение, указанное справа от знака "=", должно приводить к значению того же типа, какого и сама переменная, или типа, совместимого с переменной относительно команды присваивания. Например, переменной типа double можно присвоить значение типа Int или byte (впрочем, наоборот делать нельзя). Выражение будет сначала вычислено, затем, его результат будет положен в ячейки памяти, отведенные для переменной.

Выражение - это конструкция, возвращающая значение. Например

A = X; // переменная

B =15; // целая константа

D = Math.Sin(X); // вызов функции

E = X * Y; // произведение X на Y

F = Z / (1 - Z); // отношение Z к (1 - Z)

G =(X == 1.5); // логическое выражение

H = ! J; // отрицание логической переменной

Также можно делать множественное присваивание (во все переменные заносится самое правое значение):

a = b = c = d = 18;

1.5. Операторы ввода-вывода

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

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

1.5.1. Операторы ввода

Для того чтобы получить данные, вводимые пользователем вручную (то есть с консоли), применяются команды

=Console.ReadLine();

Для того чтобы преобразовать к нужному типу данных используем объект Convert

= Convert.ToInt32();

= Convert.ToDouble();


= Convert.ToBoolean();

= Convert.ToByte();


= Convert.ToChar();

= Convert.ToInt64();

Пример

Int32 x; Double y; string s;

s = Console.ReadLine();

x = Convert.ToInt32(s);


//без промежуточной строковой переменной

y = Convert.ToDouble(Console.ReadLine());

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

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

Console.ReadKey();

1.5.2. Операторы вывода

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

Примером неплохого приглашения служит, скажем, такая строчка: Введите два вещественных числа (0.1

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

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

Для того чтобы вывести на экран какое-либо сообщение, воспользуйтесь процедурой Console.Write или Console.WriteLine

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

Console.WriteLine(s);// переменная

Console.WriteLine(55.3);// константа

Console.WriteLine(y*3+7);// выражение


Console.Write(z);// переменная

Console.Write(-5.3);// константа

Console.Write(i*3+7/j);// выражение

Чтобы при выводе данных они не склеивались, нужно позаботиться о пробелах между выводимыми переменными, также можно выводить списком несколько переменных:

Console.WriteLine("Это число А={0} далее B={1} и, наконец их сумма {2}", a, b, a + b);

Для форматирования числовых результатов можно использовать метод String.Format или метод Console.Write, вызывающий метод String.Format. Формат задается с помощью строк формата. Спецификация формата следующая: {N,M:Axx}, где N указывает позицию элемента в списке выводимых переменных (нумерация начинается с 0); M - задаёт ширину области, в которую будет помещено форматированное значение, если M отсутствует или отрицательно, значение будет выровнено влево, в противном случае - вправо; Axx - является необязательной строкой форматирующих кодов, которые используются для управениея форматированием чисел, даты и времени, денежных знаков и т.д.

В следующей таблице приведены поддерживаемые строки стандартных форматов. Строка формата принимает следующую форму: Axx, где A — описатель формата, а xx — описатель точности. Описатель формата управляет типом форматирования, применяемым к числовому значению, а описатель точности управляет количеством значащих цифр или десятичных знаков форматированного результата.

  • C или c Валюта

Console.Write("{0:C}", 2.5); Console.Write("{0:C}", -2.5); // $2.50 ($2.50)

  • D или d Десятичный формат

Console.Write("{0:D5}", 25); // 00025

  • E или e Инженерный формат

Console.Write("{0:E}", 250000); //2.500000E+005

  • F или f Формат с фиксированной запятой

Console.Write("{0:F2}", 25); Console.Write("{0:F0}", 25); // 25.00 25

  • G или g Общий формат

Console.Write("{0:G}", 2.5); // 2.5

  • N или n Числовой формат

Console.Write("{0:N}", 2500000); //2,500,000.00

  • X или x Шестнадцатеричный формат

Console.Write("{0:X}", 250); Console.Write("{0:X}", 0xffff); // FA FFFF



Пример

Int32 x; Double y; string s;

Console.Write("Введите X=");

s = Console.ReadLine();

x = Convert.ToInt32(s);

Console.Write("Введите Y=");

s = Console.ReadLine();

y = Convert.ToDouble(s);

Console.WriteLine("Произведение X*Y= {0,9:g}" ,x*y);

Console.ReadKey();



Пример простейшей программы

string s1;

Console.Write("Введите ваше имя ");

s1 = Console.ReadLine();

Console.WriteLine("Мы рады вас приветствовать, {0:g}, в нашей программе",s1);

Console.ReadKey();

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

Введите ваше имя Джон

Мы рады вас приветствовать, Джон, в нашей программе

1.6. Арифметические операторы

Для каждого типа данных определены действия, применимые к его значениям. Итак, поговорим теперь об операциях - стандартных действиях, разрешенных для переменных того или иного базового типа данных.

1.6.1. Бинарные

Оператор Операция Тип операндов Тип рез. Пример

+ сложение целый, вещ.целый, вещ. A =X + Y;

- вычитание целый, вещ.целый, вещ. A =Result-1;

* произведение целый, вещ.целый, вещ. A =P * I;

Оператор деления (/) делит первый операнд на второй. Все числовые типы имеют предопределенные операторы деления.

При делении двух целых чисел результат всегда является целочисленным. Например, результат деления 5 на 2 — 2. Чтобы получить частное в виде рационального числа или дроби, присвойте делителю или делимому тип float или double. Чтобы явно присвоить тип, можно поместить десятичный разделитель после числа, как показано в следующем примере.

Пример 1:

Console.WriteLine(5 / 2);

Console.WriteLine(5D / 2);

Console.WriteLine(5 / 2.1);

Console.WriteLine(5.1 / 2);

Console.WriteLine(-5 / 2);


/* напечатается

2

2.5

2.38095238095238

2.55

-2 */

Оператор % - остаток от целочисленного деления, например A=Y % 6; 
Пример 2:

Console.WriteLine(24 % 6);

Console.WriteLine(24 % 7);

Console.WriteLine(7 % 7);

Console.WriteLine(8 % 12);


/*напечатается

0

3

0

8 */


1.6.2. Унарные

Оператор Операция Тип операндов Тип рез. Пример

+ (унарный) знак плюс целый, вещ.целый, вещ. A =+7;

- (унарный) знак минус целый, вещ.целый, вещ. A =-X;

Оператор увеличения (++) увеличивает свой операнд на 1. Оператор увеличения может находиться как до, так и после операнда:

Первой формой является префиксная операция увеличения. Результатом этой операции является значение операнда после его увеличения. Второй формой является постфиксная операция увеличения. Результатом этой операции является значение операнда до его увеличения. Числовые типы и типы перечисления имеют предопределенные операторы увеличения. Типы, определенные пользователем, могут вызвать перегрузку оператора ++. Операции с целыми типами обычно разрешены в перечислениях.

double x;

x = 1.5;

Console.WriteLine(++x); // напечатается 2.5

x = 1.5;

Console.WriteLine(x++); // напечатается 1.5

Console.WriteLine(x); // напечатается 2.5

Оператор уменьшения (--) уменьшает свой операнд на 1. Оператор уменьшения может находиться как до, так и после операнда: и --variable и variable--. Первой формой является префиксная операция уменьшения. Результатом этой операции является значение операнда после его уменьшения. Второй формой является постфиксная операция уменьшения. Результатом этой операции является значение операнда до его уменьшения.

1.6.3. Комбинированные операторы присваивания

Также имеется возможность комбинировать оператор присваивания с арифметическими операторами для образования составных операторов присваивания:

+=

-=

*=

/=

%=

Пример:

i += 7 * j; // Эквивалентно i = i + 7 * j;

m /= 3 + k; // Эквивалентно m = m / (3 + k);



1.7. Логические операторы

Логические операции (&&, ||, !, ^) применимы только к значениям типа bool. Их результатом также служат величины типа bool.

Оператор Операция Пример

! лог.отрицание F=! C;

&& лог.умножение F=D && T;

|| лог.сложение F=A || B;

^ исключающее или F=A ^ B;



Таблица истинности


О п е р а ц и и

Операнды || && ^

true,true true true false

true,false true false true

false,true true false true

false,false false falsefalse


!

truefalse

falsetrue

Наряду с&& и || можно использовать & и | соответственно. Отличие & от && состоит в том, что & может выполнять побитовую операцию И для целых чисел, но также работает и с логическим типом, например 5 & 3 = 1 .

Отличие | от || состоит в том, что | может выполнять побитовую операцию ИЛИ для целых чисел, но также работает и с логическим типом.

1.8. Операторы отношения

Операции отношения (==, !=, , =) применимы ко всем базовым типам. Их результатами также являются значения типа bool.

Оператор Операция Тип операндов Тип рез. Пример

== равно простой bool F= C == 7;

!= не равно простой bool F= X != Y;

больше простой bool F= L 0;

= больше или равно простой bool F= I = 1;

Пример: Попадает ли Х в интервал от 0 до 1 или в интервал от 3 до 5

z = x 0 && x 3 && x

1.9. Уровни значимости операторов

Если выражения содержат операторы различных категорий, они вычисляются по следующим правилам:

Если в выражении расставлены скобки, то вычисления производятся в порядке, известном всем еще с начальной школы: чем меньше глубина вложенности скобок, тем позже вычисляется заключенная в них операция. Если же скобок нет, то сначала вычисляются значения операций с более высоким приоритетом, затем - с менее высоким. Несколько подряд идущих операций одного приоритета вычисляются в последовательности "слева направо".

  • x++, x--

  • унарные + и - , !, ++x, --x

  • /, *, %

  • +, -

  • , =

  • ==, !=

  • ^

  • &&

  • ||

= , *= , /= , %= , += , -=

1.10. Стандартные функции

  • Math.Abs(x) Модуль числа

  • Math.Exp(x) Вычисляется е в степени х

  • Math.Floor(x) Возвращает наибольшее целое число, которое меньше или равно указанному числу.

  • Math.Log(x) Натуральный логарифм числа х

  • Math.Log10(x) Десятичный логарифм числа х.

  • Math.Pow(B,E) Возводит B в любую степень

  • Math.Round(x) Округляет значение до ближайшего целого или указанного количества десятичных знаков

  • Math.Truncate(x) Вычисляет целую часть числа

  • Math.Ceiling(x) Возвращает наименьшее целое число, которое больше или равно заданному числу.

  • Math.PI Число 3,1415...

  • Math.E Число 2,7128...

  • Math.Sin(x) Math.Cos(x) Синус, косинус в радианах

  • Math.Atan(x) Арктангенс в радианах

  • Math.Sqrt(x) Квадратный корень числа Х.





Пример: Реализовать в виде оператора следующее выражение:

  • r =((a+b)*Math.Sin(Math.Pow(x,2))+a*b)/

  • Math.Sqrt(Math.Pow(Math.Cos(x+Math.PI/2),2)-b)

1.11. Составной оператор

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

{

; //Разделителем является точка с запятой

;

......

;

}

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

1.12. Условные обозначения на блок-схемах

Начало/Окончание

Процесс

Ввод-вывод данных

Условие

Предопределённый процесс (подпрограмма)

Переход на другую страницу

Узел





Глава 2. Лабораторный практикум

Лабораторная работа №1

Тема: Методы ввода и вывода данных в консольном приложении

Задание: Выполните сложение 2-х чисел

Листинг 1

usingSystem;
namespacesaraconsole
{
    class Program
    {
        public static void Main (string[] args)
        {
            string con;
            Console.WriteLine ("Введите 1 число: ");
            con=Console.ReadLine ();
            double a = Convert.ToDouble (con);
            Console.Write  ("Введите 2 число: ");
            con=Console.ReadLine ();
            double b = Convert.ToDouble (con);
            double c=a+b;
            Console .WriteLine ("Результат сложения двух чисел = " +c);
            Console.WriteLine("Выполнил гений.");
            Console.ReadLine(); // Ожидание нажатия клавиши для завершения работы приложения
        }
    }
}



Листинг 2

using System;
namespace saraconsole
{
    class Program
    {
        public static void Main (string[] args)
        {
            string con;
            Console.WriteLine ("Введите 1 число: ");
            con=Console.ReadLine ();
            double a = double .Parse  (con);
            Console.Write  ("Введите 2 число: ");
            con=Console.ReadLine ();
            double b = double .Parse  (con);
            double c=a+b;
            Console .WriteLine ("Результа тсложения двух чисел = " +c);
            Console.WriteLine("Выполнил гений.");
            Console.ReadLine();
        }
    }
}

Результат:

Лабораторная работа №2

Тема: Разработка простогоWindows-приложения

Задание: Работа с элементами управления

Листинг 3



using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace SHarp2
{
    ///summary
    /// Description of MainForm.
    ////summary
    public partial class MainForm : Form
    {
        public MainForm()
        {
            
            InitializeComponent();
          }
        void Button1Click(object sender, EventArgs e)
        {
            textBox1.Text ="Привет, Вселенная!";
            label1 .BorderStyle = BorderStyle .Fixed3D;
            label1 .FlatStyle = FlatStyle.Flat;
             label1 .Text = "это я тебе его шлю!!!";
        }
        voidButton2Click(object sender, EventArgs e)
        {
    textBox1.Text ="";
            label1 .BorderStyle = BorderStyle .None;
            label1 .FlatStyle = FlatStyle.Standard;
            label1 .Text = "";
        }
    }
}

Лабораторная работа №3

Задача: вычислить площадь треугольника по формуле Герона S=(p(p-a)(p-b)(p-c))1/2 , где a,b,c- длины сторон треугольника, p=(a+b+c)/2- полупериметр.

Листинг4

using System;
namespace primer1
{
    classProgram
    {
        public static void Main(string[] args)
        {
            Double a,b,c,p,sq; string s;
    Console.Write ("Введите A=");
    s = Console.ReadLine();
    a = Convert.ToDouble(s);

    Console.Write ("Введите B=");
    s = Console.ReadLine ();
    b = Convert.ToDouble (s);

    Console.Write ("Введите C=");
    s = Console.ReadLine ();
    c = Convert.ToDouble (s);

    p=a+b+c; p=p/2;
    sq=Math.Sqrt (p*(p-a)*(p-b)*(p-c));
    Console.WriteLine("Площадь треугольника S= {0,9:g}", sq);
    Console.ReadKey ();
        }
    }
}

Задание №1:



  • Все входные и выходные данные в заданиях этой группы являются вещественными числами.

  • Не требуется выполнять проверку введённых пользователем данных.

1. Даны катеты прямоугольного треугольника a и b. Найти его гипотенузу c и периметр P.

2. Даны два круга с общим центром и радиусами R1 и R2 (R1 R2). Найти площади этих кругов S1 и S2, а также площадь S3 кольца, внешний радиус которого равен R1, а внутренний радиус равен R2.

3. Дана длина L окружности. Найти ее радиус R и площадь S круга, ограниченного этой окружностью.

4. Даны три точки A, B, C на числовой оси. Точка C расположена между точками A и B. Найти произведение длин отрезков AC и BC.

5. Даны координаты двух противоположных вершин прямоугольника: (x1, y1), (x2, y2). Стороны прямоугольника параллельны осям координат. Найти периметр и площадь данного прямоугольника.

6. Даны координаты трех вершин треугольника: (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь, используя формулу для расстояния между двумя точками на плоскости. Для нахождения площади треугольника со сторонами a, b, c использовать формулу Герона:S =(p·(p – a)·(p – b)·(p – c))1/2, где p = (a + b + c)/2 — полупериметр.

7. Дано значение температуры T в градусах Фаренгейта. Определить значение этой же температуры в градусах Цельсия. Температура по Цельсию TC и температура по Фаренгейту TF связаны следующим соотношением:TC = (TF – 32)·5/9. Градус Фаренгейта

8. Известно, что X кг шоколадных конфет стоит A рублей, а Y кг ирисок стоит B рублей. Определить, сколько стоит 1 кг шоколадных конфет, 1 кг ирисок, а также во сколько раз шоколадные конфеты дороже ирисок.

9. Скорость лодки в стоячей воде V км/ч, скорость течения реки U км/ч (U

10. Скорость первого автомобиля V1 км/ч, второго — V2 км/ч, расстояние между ними S км. Определить расстояние между ними через T часов, если автомобили первоначально движутся навстречу друг другу.



Задание №2:

Задачи на целочисленные операции 

  • Все входные и выходные данные в заданиях этой группы являются целыми числами.

  • Все числа, для которых указано количество цифр (двузначное число, трехзначное число и т. д.), считаются положительными.

  • Не требуется выполнять проверку введённых пользователем данных.

1. Даны целые положительные числа A и B (A B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию деления нацело, найти количество отрезков B, размещенных на отрезке AB.

2. Дано трехзначное число. Найти сумму и произведение его цифр.

3. Дано трехзначное число. Вывести число, полученное при прочтении исходного числа справа налево.

4. Дано трехзначное число. В нем зачеркнули первую слева цифру и приписали ее справа. Вывести полученное число.

5. Дано трехзначное число. В нем зачеркнули первую справа цифру и приписали ее слева. Вывести полученное число.

6. Дано трехзначное число. Вывести число, полученное при перестановке цифр сотен и десятков исходного числа (например, 123 перейдет в 213).

7. Дано целое число, большее 999. Используя только целочисленные операции, найти цифру, соответствующую разряду сотен в записи этого числа.

8. Дни недели пронумерованы следующим образом: 1 — понедельник, 2 — вторник, …, 6 — суббота, 7 — воскресенье. Дано целое число K, лежащее в диапазоне 1–365, и целое число N, лежащее в диапазоне 1–7. Определить номер дня недели для K-го дня года, если известно, что в этом году 1 января было днем недели с номером N.

9. Даны целые положительные числа A, B, C. На прямоугольнике размера A * B размещено максимально возможное количество квадратов со стороной C (без наложений). Найти количество квадратов, размещенных на прямоугольнике, а также площадь незанятой части прямоугольника.

10. Дан номер некоторого года (целое положительное число). Определить соответствующий ему номер столетия, учитывая, что, к примеру, началом 20 столетия был 1901 год.

Лабораторная работа №4

Разветвляющиеся алгоритмы

Синтаксис условного оператора:

If (логическое выражение)

P1;

Else

P2


Задача.Торговый агент получает процент от суммы совершенной сделки. Если объем сделки до 3000, то 5%; если объем от 3000 до 10000, то 10%; если выше 10000, то 20%. Рассчитать сумму вознаграждения.


Интерфейс программы:



Листинг 5

namespace saif1
{
    /// summary
    /// Description of MainForm.
    /// /summary
    public partial class MainForm : Form
    {
        public MainForm()
        {
            
            InitializeComponent();
            
                    }
        
        void Button1Click (object sender, EventArgs e)
        {
            double z=Convert.ToDouble  (textBox1 .Text);
            double Prem;
            if (z3000)
            { Prem =z*.05;
            }
                    else 
                    if (z10000)
                {Prem =z*0.1;
                }
                else
                {
                    Prem =z*0.2;
                }
                textBox2 .Text =Prem .ToString ("f")+"  руб.";
            }
        
        
        void Button2Click(object sender, EventArgs e)
        {
            Application .Exit ();
        }
        }
    }


Задания для самостоятельного выполнения:

  1. Напишите программу, определяющую четность или нечетность введенного с клавиатуры целого числа.

  2. Напишите программу, находящую максимум из 3-х чисел, введенных с клавиатуры

  3. Напишите программу нахождения корней квадратного уравнения при условии, что если дискриминант больше или равно 0, оно имеет корни, в обратном случае – уравнение корней не имеет.

  4. Ввести номер года (положительное целое число). Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный – 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 ( например, годы 300, 1300, 1900 не являются високосными, а 1200 и 2000 – являются)



Лабораторная работа №5

Тема: Циклические алгоритмы

Операторы цикла for, while

Задача 1: Создайте консольное приложение для нахождения суммы целых чисел от 1 до 10.

Листинг 6

using System;

namespace sarforcons
{
    class Program
    {
        public static void Main(string[] args)
        {
            int i;
            int s=0;
            for (i=1;i10;i++)
                s=s+i;
            Console .WriteLine ("Суммачиселот 1 до 10 = "+s);
                        
            Console.Write("Нажмитеналюбуюклавишу...");
            Console.ReadKey(true);
        }
    }
}

(Результат выведет число 55. Модифицируйте программу, чтобы программа запрашивала число повторов, например, от 1 до числа n (n – целое положительное число).

Задача 2: Создайте консольное приложение для вывода таблицы умножения (используются вложенные циклы)

Листинг 7

using System;

namespace sarfor2
{
    class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine ("Введитецелоечислоот 1 до 10");
            int n=Convert .ToInt32 (Console .ReadLine ());
            for (int i=1; i            {
                for (int j=1; j10;j++)
                    Console .WriteLine (i+" * "+j+" = "+i*j);
                    Console .WriteLine ();
            }
            
            Console.Write("Нажмитедляпродолжениялюбуюклавишу. . . ");
            Console.ReadKey(true);
        }
    }
}

Результат:



Задача 3. Вычислите значения y, соответствующие каждому значению x (xn≤x≤xk, шаг изменения x равен dx) по формуле

Вычислите сумму положительных значений y, произведение ненулевых значений y, количество отрицательных значений Y.

Результаты выведите на элемент управления ListBox

Листинг8

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace sarawhile
{
    /// summary
    /// Description of MainForm.
    /// /summary
    public partial class MainForm : Form
    {
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
            
           }
        
        void Button1Click(object sender, EventArgs e)
        {
            double xn=Convert .ToDouble (textBox1 .Text);
            double xk=Convert .ToDouble (textBox2 .Text);
            double dx=Convert .ToDouble (textBox3 .Text);
            double p=1;
            double s=0;
            double k=0;
            double x=xn;
            listBox1 .Items .Clear ();
            listBox1 .Items .Add (" x "+"         y ");
            listBox1 .Items .Add (" ");
            while (x            {
                double y= Math .Exp (Math.Sin (x))*Math .Cos (x);
                listBox1 .Items .Add (" "+x.ToString ()+"    "+y.ToString ());
                if (y=0)
                    s=s+y;
                else
                    k=k+1;
                if (y!=0)
                    p=p*y;
                x=x+dx;
                
            }
            textBox4 .Text =s.ToString ();
            textBox5 .Text =p.ToString ();
            textBox6 .Text =k.ToString ();
        }
    }
}


Задача 4.Разработайте интерфейс и программный код на С # для решения следующей задачи: Последовательно вводятся 6 чисел (последний элемент последовательности равен 5). Определите, каких среди них больше: положительных или отрицательных?

Листинг9

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace safor11
{
    /// summary
    /// Description of MainForm.
    /// /summary
    public partial class MainForm : Form
    {
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
            
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
        }
        
        void MainFormLoad(object sender, EventArgs e)
        {
            int pol=0;
            int otr=0;
            double chis=0;
            string  astr;
            while (chis !=5)
            {
                astr = Microsoft .VisualBasic .Interaction.InputBox ("Введитечисло:","Окновводаданных","",-1,-1);
                chis =Convert .ToDouble (astr);
                if (chis0)
                    pol=pol+1;
                else 
                    otr=otr+1;
            
            }
            if (polotr)
                MessageBox .Show ("Положительныхчиселбольше","Заголовококна",MessageBoxButtons .OK ,MessageBoxIcon .Information );
                    else
                MessageBox .Show ("Отрицательныхчиселбольше","Заголовококна",MessageBoxButtons .OK ,MessageBoxIcon .Information );
                    Application.Exit ();
        }
    }
}


Задание №5

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



  1. Вводится последовательность из N чисел.

Найдите:

  • Сколько в ней чисел, равных числу 100 и количество отрицательных чисел;

  • Количество положительных чисел;

  • Среднее арифметическое чисел.



Лабораторная работа №6

Тема: Работа с одномерными массивами в C#


Задача 1. В одномерном массиве заданных чисел найдите сумму элементов массива. Ввод элементов осуществите вручную.


Листинг10


using System;
namespace mascons1
{
    classProgram
    {
        public static void Main (string[] args)
        {
            int [] a;
            a=newint [10];
            int sum=0;
            string [] con;
            con =newstring [10];
            for (int i=0;i9;i++)
            {
                Console .WriteLine ("Введите элемент массива: ");
                con [i]=Console .ReadLine ();
                a[i]=Convert .ToInt16 (con [i]);
                sum +=a[i];
            }
                Console .WriteLine ("Сумма элементов массива = "+sum );
                Console.Write("Нажмите на любую клавишу . . . ");
                Console.ReadLine ();
        }
    }
}

Задача2. Видоизмененный пример, в котором элементы массива заранее известны в списке инициализаторов.

Листинг11

using System;
namespace mascons1
{
    class Program
    {
        public static void Main(string[] args)
        {
            int [] a;
            a=new int[10]{1,2,3,4,5,6,7,8,9,15};
            int sum=0;
            
            Console .WriteLine ("Исходный массив: ");
            for (int i=0;i9;I ++)
                Console .WriteLine ("\t"+a[i]);
                Console .WriteLine ();
                for (int i=0;i9;i++)
                sum=sum +a[i];
               Console .WriteLine ("Сумма элементов массива = "+sum );
                Console .WriteLine ();
                Console.Write("Нажмите на любую клавишу . . . ");
                Console.ReadLine ();
        }
    }
}

Задача 3. Код решения предыдущей задачи, написанной как Windows-приложение.

Листинг12

Using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace maswinap1
{
        public partial class MainForm :Form
    {
        public MainForm()
        {
                    InitializeComponent();
                    }
        void MainFormLoad (object sender, EventArgs e)
        {
            int [] a;
            a=new int[10];
            int sum=0;
            string [] b;
            b =new string[10];
            for (int i=0;i9;i++)
            {
                b [i]=Microsoft .VisualBasic .Interaction .InputBox ("Введите число","Окно ввода","",-1,-1);
                a[i]=Convert .ToInt16 (b [i]);
                sum +=a[i];
            }
            MessageBox .Show ("Сумма элементов массива = "+sum.ToString ("N"),"Заголовок окна",MessageBoxButtons .OK ,MessageBoxIcon .Information );
            Application .Exit ();
        }
    }
}



Задача 4. В одномерном массиве заданных чисел найдите сумму элементов массива. Ввод элементов массива осуществляется оператором Random. Вывод элемента массива на элемент управления TextBox


Листинг13

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace labmas2win
{

    public partial class MainForm : Form
    {
        public MainForm()
        {   

         InitializeComponent();

          }
        
        void Button1Click(object sender, EventArgs e)
        {
            Random a=new Random ();
            byte []b =new byte [10];
            double sum=0;
            textBox1 .Clear ();
            textBox2 .Clear ();
            for (int i=0;i9;i++)
            {
                a.NextBytes (b);
                textBox1 .Text =textBox1 .Text + System .String .Format ("{0}",b[i])+"\t";
                textBox2 .Text =textBox2 .Text + System .String .Format ("{0:f2}",b[i])+"\t";
                sum=sum+b[i];
            }
            MessageBox .Show ("Сумма элементов массива = "+sum.ToString ("n"),"Заголовококна", MessageBoxButtons .OK , MessageBoxIcon .Information );
        }
    }
}





Задача 5. В одномерном массиве заданных чисел найдите сумму элементов массива. Ввод элементов массива осуществляется оператором Random. Вывод элемента массива на элемент управления ListBox


Листинг14

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace saramaswin3
{
    
    public partial class MainForm : Form
    {
        public MainForm()
        {
            InitializeComponent();

        }
        
        void Button1Click (object sender, EventArgs e)
        {
            Random a=new Random ();
            byte []b =new byte [10];
            double sum=0;
            listBox1 .Items .Clear ();
            for (int i=0;i9;i++)
            {
                a.NextBytes (b);
                listBox1 .Items.Add (b[i]);
                sum=sum+b[i];
                label1 .Text ="Сумма элементов массива = "+sum.ToString ("n");
            }            
        }
    }
}




Задание 6: Найдите максимальный элемент массива B [10]. Значения массива формировать автоматически с помощью Random вдиапазоне (-20,20).


Листинг15


using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;

namespace massivsum
{
    ///summary
    /// Description of MainForm.
    ////summary
    public partial class MainForm :Form
    {
        public MainForm()
        {        

}
        void MainFormLoad (object sender, EventArgs e)
        {        

}
        void Button1Click (object sender, EventArgs e)
        {
            Random a= newRandom ();
            int[] b= newint [10];
            int sum=0;
            textBox1 .Clear ();
            for (int i=0; i9;i++)
            {
                b[i]=a.Next (-20,20);
                textBox1 .AppendText (b[i]+"\t");

            }
            intmax=b[0];
            for (int i=1; i9;i++)
            {
                if (b[i]max)
                max=b[i];
            }        

MessageBox .Show ("Максимальное число массива = "+ max.ToString ("d"), "Заголовок окна", MessageBoxButtons .OK ,MessageBoxIcon .Information );
        }
    }
}





































































































































































































































































































































































































ЛИТЕРАТУРА



Есипов А.С., Паньгина Н.Н., Громада М.И. Информатика. Сборник задач и решений для общеобразовательных учебных заведений. СПб.: Наука и техника, 2001. 368 с.



Окулов С.М. Программирование в алгоритмах. М.: Бином. Лаборатория знаний, 2004. 341 с.



Юркин А.Г. Задачник по программированию. СПб.: Питер, 2002. 192 с.

Эндрю Троелсен. Язык программирования C# 5.0 и платформа

.NET 4.5. М.: Вильямс. 2013 г. 1312 с.



Албахари, Дж. С# 3.0. Справочник: Пер. с англ./ Дж. Албахари, Б. Албахари. – 3-е изд. – Спб.: БХВ-Петербург, 2009. – 944 с.: ил.



Биллиг В. Основы программирования на C# // Интуит



[2013].

Дата

обновления:

22.11.2005.

URL: http://www.intuit.ru/studies/courses/2247/18/info

(дата обращения:

27.06.2013).







Павлоская Т. Программирование на языке высокого уровня C#



//

Интуит

[2013].

Дата

обновления:

15.09.2010.

URL: http://www.intuit.ru/studies/courses/2247/18/info (дата

обращения:

27.06.2013).











Вихтенко Э. М. Геометрические задачи в олимпиадах по программированию. Изд-во МИФ-2 №2. 2005 г.



Липский В. Комбинаторика для программистов. – М.: Мир,

1988. –200 с.




Получите в подарок сайт учителя

Предмет: Прочее

Категория: Уроки

Целевая аудитория: Прочее.
Урок соответствует ФГОС

Автор: Мирзахалилов Батыржан Борибаевич

Дата: 14.10.2018

Номер свидетельства: 480665

ПОЛУЧИТЕ СВИДЕТЕЛЬСТВО МГНОВЕННО

Добавить свою работу

* Свидетельство о публикации выдается БЕСПЛАТНО, СРАЗУ же после добавления Вами Вашей работы на сайт

Удобный поиск материалов для учителей

Ваш личный кабинет
Проверка свидетельства