45
ЗАЯВКА на размещение информации в образовательном портале КЭУ Структура/Кафедра «Прикладная информатика» Автор(ы). Касмалиев Турсунбек Кемелович Название материала(работы): «Методические указание и лабораторные работы по высокоуровневому языку программирование С# Вид (тип) материала: «Методические указание» Для специальности: «Прикладная информатика» Профиль/ специализация: «Прикладная информатика в экономике» Для размещения в базе данных портала: Краткое название материала: «Высокоуровневому языку программирование С#» Аннотация материала в объеме 2-3 абзаца Методические указание и лабораторные работы по высокоуровневому языку программирование С# предназначены для использования студентами специальности «Прикладная информатика», как руководства к решению задач по программированию. Подписи: Автор(ы): Касмалиев Турсунбек Кемелович Первое издание Переиздание Руководитель структуры/Завкафедрой : ____________________________ Дата :01.03.2013 _________________ Визы : ______________________

A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

ЗАЯВКА

на размещение информации в образовательном портале КЭУ

Структура/Кафедра «Прикладная информатика»

Автор(ы). Касмалиев Турсунбек Кемелович

Название материала(работы): «Методические указание и лабораторные

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

Вид (тип) материала: «Методические указание»

Для специальности: «Прикладная информатика»

Профиль/ специализация: «Прикладная информатика в экономике»

Для размещения в базе данных портала:

Краткое название материала: «Высокоуровневому языку

программирование С#»

Аннотация материала в объеме 2-3 абзаца

Методические указание и лабораторные работы по

высокоуровневому языку программирование С# предназначены

для использования студентами специальности «Прикладная

информатика», как руководства к решению задач по

программированию.

Подписи:

Автор(ы): Касмалиев Турсунбек Кемелович

Первое издание Переиздание

Руководитель структуры/Завкафедрой :

____________________________

Дата :01.03.2013 _________________

Визы : ______________________

Page 2: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

2

КЫРГЫЗСКИЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Прикладная информатика»

Касмалиев Т. К.

Методические указания к лабораторным работам по

программированию на высокоуровневом языке

программирования СИ ШАРП (C#)

БИШКЕК -2011

Page 3: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

3

УДК 681.3

ББК 32.973

Касмалиев Т. К.

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

высокоуровневом языке программирования Си Шарп (C#) – Бишкек, 2011

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

высокоуровневом языке программирования Си Шарп (C#) , предназначены для

использования студентами специальности «Прикладная информатика», как

руководство к решению задач по программированию .

Рецензенты: кандидат физико-математических наук, проф. Токтакунов Т.Т.

ISBN

© Кыргызский экономический университет

Page 4: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

4

СОДЕРЖАНИЕ

Предисловие……………………………………………………………………………….. 4

Основные понятия языка программирования C#.............................................................. 5

Состав языка Типы данных Переменные и операции………………………………….. 5

Алфавит и лексемы. Идентификаторы………………………………………………….. 5

Знаки операций и разделители. Литералы……………………………………………… 6

Комментарии. Типы данных…………………………………………………………….. 7

Переменные и операции…………………………………………………………………... 9

Именованные константы. Операции и выражения. Стандартные функции………….. 10

Операторы C#. Выражения, блоки и пустые операторы……………………………….. 11

Операторы ветвления. Условный оператор if…………………………………………… 11

Оператор выбора switch. Операторы цикла и передачи управления…………………. 12

Цикл с предусловием while. Цикл с постусловием do. Цикл с параметром for……… 13

Цикл перебора foreach…………………………………………………………………….. 14

Операторы передачи управления. Оператор goto……………………………………….. 15

Оператор break. Оператор return…………………………………………………………. 15

Базовые конструкции структурного программирования……………………………….. 16

Массивы……………………………………………………………………………………. 17

Одномерные массивы. Прямоугольные массивы……………………………………….

Оператор foreach…………………………………………………………………………...

18

18

Лабораторные работы……………………………………………………………………..

Тема 1. Программирование линейных алгоритмов……………………………………..

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

20

20

20

Тема 2. Программирование разветвляющихся алгоритмов

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

24

24

Тема 3. Программирование циклических алгоритмов…………………………………..

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

28

28

Тема 4. Программирование с использованием массивов……………………………….

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

33

33

Литература ………………………………………………………………………………… 37

Page 5: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

5

Предисловие

Задача данного методического указания— кратко, доступно и строго изложить

основы С#, одного из самых перспективных современных языков программирования.

Содержит описание версии С# 2.0 (2005) и предназначена для студентов, изучающих

язык С#.

В книге рассматриваются четыре тем :линейное программирование,

программирование разветвляющих процессов, программирование циклических

процессов, программирование с использованием массивов.

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

структуры данных, используемые при написании программ.

В программировании разветвляющих процессов, циклических процессов и

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

циклов и их применение при создании программ.

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

контрольные задания по вариантам.

Язык С# как средство обучения программированию обладает рядом

несомненных

достоинств. Он хорошо организован, строг, большинство его конструкций

логичны и удобны. .

Развитые средства диагностики и редактирования кода делают процесс

программирования приятным и эффективным.

Мощная библиотека классов платформы .NET берет на себя массу рутинных

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

строительные

блоки. Все это позволяет расценивать С# как перспективную замену языков

Паскаль, BASIC и С + + при обучении программированию. Немаловажно, что С#

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

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

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

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

востребованными специалистами-профессионалами.

Page 6: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

6

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

Состав языка Типы данных Переменные и операции

Алфавит и лексемы

Все тексты на языке пишутся с помощью его алфавита.

Алфавит C# включает:

буквы (латинские и национальных алфавитов) и символ подчеркивания (_),

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

цифры;

специальные символы, например +, *, { и &;

пробельные символы (пробел и символы табуляции);

символы перевода строки.

Из символов составляются более крупные строительные блоки: лексемы,

директивы препроцессора и комментарии.

Лексема (token) — это минимальная единица языка, имеющая самостоятельный

смысл. Существуют следующие виды лексем:

имена (идентификаторы);

ключевые слова;

знаки операций;

разделители;

литералы (константы).

Комментарии предназначены для записи пояснений к программе и

формирования документации.

Выражение задает правило вычисления некоторого значения.

Оператор задает законченное описание некоторого действия, данных или

элемента программы. Например:

int a; — оператор описания целочисленной переменной a.

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

Имена, или идентификаторы, служат для того чтобы обращаться к

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

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

буквы различаются, например, sysop, SySoP и SYSOP — три разных имени.

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

но не цифра. Длина идентификатора не ограничена. Пробелы внутри имен не

допускаются.

Page 7: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

7

В идентификаторах C# разрешается использовать, помимо латинских букв,

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

требуется обращаться: переменным, типам, константам, методам, меткам и т. д.

Идентификатор создается на этапе объявления переменной (метода, типа и т. п.),

после этого его можно использовать в последующих операторах программы. При

выборе идентификатора необходимо следить, чтобы он не совпадал с ключевыми

словами.

Знаки операций и разделители

Знак операции — это один или более символов, определяющих действие над

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

выражении a += b знак += является знаком операции, а a и b — операндами. Символы,

составляющие знак операций, могут быть как специальными, например, &&, | и <, так

и буквенными, такими как as или new.

Операции делятся на унарные, бинарные и тернарную по количеству

участвующих в них операндов. Один и тот же знак может интерпретироваться по-

разному в зависимости от контекста.

Разделители используются для разделения или, наоборот, группирования

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

знаки операций и разделители, использующиеся в C#:

{ } [ ] ( ) . , : ; + - * / % & | ^ ! ~ =

< > ? ++ -- && || << >> == != <= >= += -= *= /= %=

&= |= ^= <<= >>= ->

Литералы

Литералами, или константами, называют неизменяемые величины. В C# есть

логические, целые, вещественные, символьные и строковые константы, а также

константа null. Компилятор, выделив константу в качестве лексемы, относит ее к

одному из типов данных по ее внешнему виду.

Логических литералов всего два. Они широко используются в качестве

признаков наличия или отсутствия чего-либо.

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

шестнадцатеричной системе счисления, а вещественные — только в десятичной

системе, но в двух формах: с фиксированной точкой и с порядком. Вещественная

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

записывается слева от знака экспоненты (E или e), порядок — справа от знака.

Page 8: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

8

Значение константы определяется как произведение мантиссы и возведенного в

указанную в порядке степень числа 10 (например, 1.3e2 = 1,3 102 = 130). Пробелы

внутри константы не допускаются.

Если требуется сформировать отрицательную целую или вещественную

константу, то перед ней ставится знак унарной операции изменения знака (–),

например, –218.

Символьная константа представляет собой любой символ в кодировке Unicode.

Символьные константы записываются в одной из четырех форм:

«обычный» символ, имеющий графическое представление (кроме апострофа и

символа перевода строки) — 'A', 'ю', '*';

управляющая последовательность — '\0', '\n';

символ в виде шестнадцатеричного кода — '\xF', '\x74';

символ в виде escape-последовательности Unicode — '\uA81B'.

Управляющей последовательностью, или простой escape-

последовательностью, называют определенный символ, предваряемый обратной

косой чертой. Управляющая последовательность интерпретируется как одиночный

символ и используется для представления:

кодов, не имеющих графического изображения (например, \n — переход в

начало следующей строки);

символов, имеющих специальное значение в строковых и символьных

литералах, например, апострофа ( ' ).

Комментарии

Комментарии предназначены для записи пояснений к программе и

формирования документации. Компилятор комментарии игнорирует. Внутри

комментария можно использовать любые символы. В C# есть два вида комментариев:

однострочные и многострочные.

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

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

между символами-скобками /* и */ и может занимать часть строки, целую строку или

несколько строк. Комментарии не вкладываются друг в друга.

Типы данных

Тип данных однозначно определяет:

внутреннее представление данных, а следовательно и множество их

возможных значений;

Page 9: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

9

допустимые действия над данными (операции и функции).

Каждое выражение в программе имеет определенный тип. Компилятор

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

действий.

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

на две области: стек (stack) и динамическая область, или хип (heap). Стек

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

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

программы с помощью специальных команд. Основным местом для хранения данных

в C# является хип.

Классификация типов

Типы делятся на встроенные (стандартные) и определяемые программистом

Встроенные типы

Встроенные типы не требуют предварительного определения. Для каждого типа

существует ключевое слово, которое используется при описании переменных,

констант и т. д. Встроенные типы C# приведены в таблице. Они однозначно

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

имен System

Таблица 2.1.

Встроенные типы C#

Название

Клю

чевое слово

Т

ип .NET Диапазон значений Описание

Ра

змер,

битов

Логический тип bool B

oolean true, false

Целые типы sbyte S

Byte От –128 до 127 Со знаком 8

byte B

yte От 0 до 255 Без знака 8

short I

nt16 От –32768 до 32767 Со знаком 16

ushor

t

U

Int16 От 0 до 65535 Без знака 16

int I

nt32 От –2 109 до 2 109 Со знаком 32

uint U

Int32 От 0 до 4 109 Без знака 32

long I

nt64 От –9 1018 до 9 1018 Со знаком 64

ulong U

Int64 От 0 до 18 1018 Без знака 64

Символьный тип char C

har От U+0000 до U+ffff

Unicode-

символ 16

Вещественные float S От 1.5 10-45 до 7 цифр 32

Page 10: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

10

ingle 3.4 1038

doubl

e

D

ouble

От 5.010-324 до

1.7 10308 15–16 цифр 64

Финансовый тип deci

mal

D

ecimal

От 1.0 10-28 до

7.9 1028 28–29 цифр

12

8

Строковый тип string S

tring

Длина ограничена

объемом доступной памяти

Строка из

Unicode-символов

Тип object objec

t

O

bject

Можно хранить все,

что угодно

Всеобщий

предок

Целые типы, а также символьный, вещественные и финансовый типы

объединены под названием арифметических типов.

Переменные и операции

Переменная — это именованная область памяти, предназначенная для хранения

данных определенного типа. Во время выполнения программы значение переменной

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

явным образом. При описании для каждой переменной задаются ее имя и тип.

Пример описания целой переменной с именем a и вещественной переменной x:

int a; float x;

Имя переменной служит для обращения к области памяти, в которой хранится

значение переменной. Имя дает программист. Тип переменной выбирается, исходя из

диапазона и требуемой точности представления данных. При объявлении можно

присвоить переменной некоторое начальное значение, то есть инициализировать ее,

например:

int a, b = 1;

float x = 0.1, y = 0.1f;

Программа на C# состоит из классов, внутри которых описывают методы и

данные. Переменные, описанные непосредственно внутри класса, называются полями

класса. Им автоматически присваивается так называемое «значение по

умолчанию» — как правило, это 0 соответствующего типа. Переменные, описанные

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

возлагается на программиста.

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

можно использовать переменную, начинается в точке ее описания и длится до конца

блока, внутри которого она описана. Блок — это код, заключенный в фигурные

Page 11: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

11

скобки. Основное назначение блока — группировка операторов. В C# любая

переменная описана внутри какого-либо блока: класса, метода или блока внутри

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

действия распространяется на вложенные в метод блоки.

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

Именованные константы, или просто константы -это величины не

изменяющие значения Они применяются для того, чтобы вместо значений констант

можно было использовать в программе их имена. например:

const int b = 1, a = 100;

const int x = b * a + 25;

Операции и выражения

Выражение — это правило вычисления значения. В выражении участвуют

операнды, объединенные знаками операций. Операндами простейшего выражения

могут быть константы, переменные и вызовы функций.

Например, a + 2 — это выражение, в котором + является знаком операции, а a и

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

символов, не допускаются. Операции в выражении выполняются в определенном

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

характеризуется значением и типом.

Линейной называется программа, все операторы которой выполняются

последовательно в том порядке, в котором они записаны.

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

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...

Page 12: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

12

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

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

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

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

Page 13: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

13

Операторы C#.

Выражения, блоки и пустые операторы

Любое выражение, завершающееся точкой с запятой, рассматривается как

оператор, выполнение которого заключается в вычислении выражения. Частным

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

оператор требуется, а по смыслу — нет). Примеры:

i++; // выполняется операция инкремента

a *= b + c; // выполняется умножение с присваиванием

fun( i, k ); // выполняется вызов функции

while( true ); // цикл из пустого оператора (бесконечный)

Блок, или составной оператор, — это последовательность описаний и

операторов, заключенная в фигурные скобки. Блок воспринимается компилятором как

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

оператора, а алгоритм — нескольких. Блок может содержать один оператор или быть

пустым.

Операторы ветвления

Условный оператор if

Условный оператор if используется для разветвления процесса вычислений на

два направления.

Формат оператора:

if ( логическое_выражение ) оператор_1; [ else оператор_2; ]

Сначала вычисляется логическое выражение. Если оно имеет значение true,

выполняется первый оператор, иначе — второй. После этого управление передается

на оператор, следующий за условным. Ветвь else может отсутствовать.

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

if ( a < 0 ) b = 1; // 1

if ( a < b && ( a > d || a == 0 ) ) b++; else { b *= a; a = 0; } // 2

if ( a < b ) if ( a < c ) m = a; else m = c;

else if ( b < c ) m = b; else m = c; // 3

if ( b > a ) max = b; else max = a; // 4

Page 14: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

14

Оператор выбора switch

Оператор switch (переключатель) предназначен для разветвления процесса

вычислений на несколько направлений.

Формат оператора:

switch ( выражение ){

case константное_выражение_1: [ список_операторов_1 ]

case константное_выражение_2: [ список_операторов_2 ]

...

case константное_выражение_n: [ список_операторов_n ]

[ default: операторы ]

}

Выполнение оператора начинается с вычисления выражения. Тип

выражения чаще всего целочисленный (включая char) или строковый. Затем

управление передается первому оператору из списка, помеченному константным

выражением, значение которого совпало с вычисленным. Если совпадения не

произошло, выполняются операторы, расположенные после слова default, а при

его отсутствии управление передается следующему за switch оператору.

Каждая ветвь переключателя должна заканчиваться явным оператором

перехода, а именно одним из операторов break, goto или return:

оператор break выполняет выход из самого внутреннего из объемлющих его

операторов switch, for, while и do;

оператор goto выполняет переход на указанную после него метку, обычно это

метка case одной из нижележащих ветвей оператора switch;

оператор return выполняет выход из функции, в теле которой он записан.

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

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

Блок, ради выполнения которого и организуется цикл, называется телом цикла.

Остальные операторы служат для управления процессом повторения вычислений: это

начальные установки, проверка условия продолжения цикла и модификация

параметра цикла . Один проход цикла называется итерацией.

Начальные установки служат для того, чтобы до входа в цикл задать значения

переменных, которые в нем используются.

Проверка условия продолжения цикла выполняется на каждой итерации либо до

тела цикла (тогда говорят о цикле с предусловием), либо после тела цикла (цикл с

постусловием).

Page 15: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

15

Параметром цикла называется переменная, которая используется при проверке

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

причем, как правило, на одну и ту же величину. Если параметр цикла целочисленный,

он называется счетчиком цикла.

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

принудительное завершение как текущей итерации, так и цикла в целом. Для этого

служат операторы break, continue, return и goto. Передавать управление извне внутрь

цикла запрещается.

Цикл с предусловием while

Формат оператора:

while ( выражение ) оператор

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

выражения истинно, то выполняется простой или составной оператор. Эти действия

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

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

оператор.

Выражение вычисляется перед каждой итерацией цикла. Если при первой

проверке выражение ложно , цикл не выполнится ни разу.

Цикл с постусловием do

Цикл с постусловием имеет вид:

do оператор while выражение;

Сначала выполняется простой или составной оператор, образующий тело

цикла, а затем вычисляется выражение (оно должно иметь тип bool). Если выражение

истинно, тело цикла выполняется еще раз, и проверка повторяется. Цикл завершается,

когда выражение станет равным false или в теле цикла будет выполнен какой-либо

оператор передачи управления.

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

хотя бы один раз.

Цикл с параметром for

Цикл с параметром имеет следующий формат:

for ( инициализация; выражение; модификации ) оператор;

Page 16: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

16

Инициализация служит для объявления величин, используемых в цикле, и

присвоения им начальных значений. В этой части можно записать несколько

операторов, разделенных запятой, например:

for ( int i = 0, j = 20; ...

int k, m;

for ( k = 1, m = 0; ...

Областью действия переменных, объявленных в части инициализации цикла,

является цикл. Инициализация выполняется один раз в начале исполнения цикла.

Выражение типа bool определяет условие выполнения цикла: если его результат

равен true, цикл выполняется.

Модификации выполняются после каждой итерации цикла и служат обычно для

изменения параметров цикла. В части модификаций можно записать несколько

операторов через запятую, например:

for ( int i = 0, j = 20; i < 5 && j > 10; i++, j-- )

Простой или составной оператор представляет собой тело цикла. Любая из

частей оператора for может быть опущена (но точки с запятой надо оставить на своих

местах!).

Любой цикл while может быть приведен к эквивалентному ему циклу for и

наоборот. Например, два следующих цикла эквивалентны:

Цикл for:

for ( b1; b2; b3 ) оператор;

Цикл while:

b1;

while ( b2 )

{

оператор;

b3

}

Цикл перебора foreach

Цикл foreach используется для просмотра всех объектов из некоторой группы

данных, например, массива, списка или другого контейнера. Он будет рассмотрен в

разделе «Оператор foreach».

Page 17: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

17

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

В С# есть пять операторов, изменяющих естественный порядок выполнения

вычислений:

оператор безусловного перехода goto;

оператор выхода из цикла break;

оператор перехода к следующей итерации цикла continue;

оператор возврата из функции return;

оператор генерации исключения throw.

Эти операторы могут передать управление в пределах блока, в котором они

использованы, и за его пределы. Передавать управление внутрь другого блока

запрещается.

Оператор goto

Оператор безусловного перехода goto используется в одной из трех форм:

goto метка;

goto case константное_выражение;

goto default;

В теле той же функции должна присутствовать ровно одна конструкция вида:

метка: оператор;

Оператор gotoметка передает управление на помеченный оператор. Метка —

это обычный идентификатор, областью видимости которого является функция, в теле

которой он задан. Метка должна находиться в той же области видимости, что и

оператор перехода.

Вторая и третья формы оператора goto используются в теле оператора выбора

switch. Оператор goto case константное_выражение передает управление на

соответствующую константному выражению ветвь, а оператор goto default — на ветвь

default.

Оператор break

Оператор break используется внутри операторов цикла или выбора для перехода

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

находится оператор break.

Page 18: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

18

Оператор return

Оператор возврата из функции return завершает выполнение функции и передает

управление в точку ее вызова. Синтаксис оператора:

return [ выражение ];

Тип выражения должен иметь неявное преобразование к типу функции. Если

тип возвращаемого функцией значения описан как void, выражение должно

отсутствовать.

Базовые конструкции структурного программирования

Главное требование, которому должна удовлетворять программа, — работать в

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

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

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

Иными словами, современные критерии качества программы — это, прежде

всего, надежность, а также возможность точно планировать производство

программы и ее сопровождение. Для достижения этих целей программа должна иметь

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

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

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

применять объектно-ориентированное программирование.

Структурное программирование — это технология создания программ,

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

уменьшить количество ошибок, а также облегчить возможность модификации

программы.

В C# идеи структурного программирования используются на самом низком

уровне — при написании методов объектов. Доказано, что любой алгоритм можно

реализовать только из трех структур, называемых базовыми конструкциями

структурного программирования: это следование, ветвление и цикл.

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

выполнение двух или более операторов (простых или составных). Ветвление задает

выполнение либо одного, либо другого оператора в зависимости от выполнения

какого-либо условия. Цикл реализует многократное выполнение оператора.

Особенностью базовых конструкций является то, что любая из них имеет только

один вход и один выход, поэтому конструкции могут вкладываться друг в друга

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

ветвлений, каждое из которых включает вложенные циклы.

Page 19: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

19

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

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

вносить в нее изменения. В большинстве языков высокого уровня существует

несколько реализаций базовых конструкций; в С# им соответствует четыре вида

циклов и два вида ветвлений.

Массивы

Массив — это ограниченная совокупность однотипных величин. Элементы

массива имеют одно и то же имя, а различаются по порядковому номеру (индексу).

Массив в С# относится к ссылочным типам данных, то есть располагается в

динамической области памяти, поэтому создание массива начинается с выделения

памяти под его элементы. Элементами массива могут быть величины как значимых,

так и ссылочных типов (в том числе массивы). Массив значимых типов хранит

значения, массив ссылочных типов — ссылки на элементы. Всем элементам при

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

null для ссылочных.

Количество элементов в массиве (размерность) не является частью его типа,

оно задается при выделении памяти и не может быть изменено впоследствии.

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

вычисления этого выражения должен быть неотрицательным, а его тип должен иметь

неявное преобразование к int, uint, long или ulong.

Элементы массива нумеруются с нуля, поэтому максимальный номер элемента

всегда на единицу меньше размерности. Для обращения к элементу массива после

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

w[4] z[i]

С элементом массива можно делать все, что допустимо для переменных того же

типа. Если при работе с массивом значение индекса выходит за границы массива,

генерируется исключение IndexOutOfRangeException.

Массивы одного типа можно присваивать друг другу. При этом происходит

присваивание ссылок, а не элементов, как и для любого другого объекта ссылочного

типа, например:

int[] a = new int[10];

int[] b = a; // b и a указывают на один и тот же массив

Page 20: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

20

Все массивы в C# имеют общий базовый класс Array, определенный в

пространстве имен System. В нем есть несколько полезных методов, упрощающих

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

Мы рассмотрим эти методы немного позже в разделе «Класс System.Array».

В C# существуют три разновидности массивов: одномерные, прямоугольные и

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

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

Одномерные массивы

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

описания массива:

тип[] имя;

тип[] имя = new тип [ размерность ];

тип[] имя = { список_инициализаторов };

тип[] имя = new тип [] { список_инициализаторов };

тип[] имя = new тип [ размерность ] { список_инициализаторов };

Примеры описаний (один пример на каждый вариант описания):

int[] a; // 1 элементов нет

int[] b = new int[4]; // 2 элементы равны 0

int[] c = { 61, 2, 5, -9 }; // 3 new подразумевается

int[] d = new int[] { 61, 2, 5, -9 }; // 4 размерность вычисляется

int[] e = new int[4] { 61, 2, 5, -9 }; // 5 избыточное описание

Здесь описано пять массивов. Отличие первого оператора от остальных состоит

в том, что в нем фактически описана только ссылка на массив, а память под элементы

массива не выделена.

В каждом из остальных массивов по четыре элемента целого типа. Как видно из

операторов 3–5, массив при описании можно инициализировать. Если при этом не

задана размерность (оператор 3), количество элементов вычисляется по количеству

инициализирующих значений. Для полей объектов и локальных переменных можно

опускать операцию new, она будет выполнена по умолчанию (оператор 2). Если

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

константой (оператор 4).

Прямоугольные массивы

Прямоугольный массив имеет более одного измерения. Чаще всего в программах

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

Page 21: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

21

тип[,] имя;

тип[,] имя = new тип [ разм_1, разм_2 ];

тип[,] имя = { список_инициализаторов };

тип[,] имя = new тип [,] { список_инициализаторов };

тип[,] имя = new тип [ разм_1, разм_2 ] { список_инициализаторов };

Примеры описаний (один пример на каждый вариант описания):

int[,] a; // 1 элементов нет

int[,] b = new int[2, 3]; // 2 элементы равны 0

int[,] c = {{1, 2, 3}, {4, 5, 6}}; // 3 new подразумевается

int[,] c = new int[,] {{1, 2, 3}, {4, 5, 6}}; // 4 размерность вычисляется

int[,] d = new int[2,3] {{1, 2, 3}, {4, 5, 6}};// 5 избыточное описание

К элементу двумерного массива обращаются, указывая номера строки и столбца,

на пересечении которых он расположен, например:

a[1, 4] b[i, j] b[j, i]

Оператор foreach

Оператор foreach применяется для перебора элементов в специальным образом

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

Синтаксис оператора:

foreach ( тип имя in выражение ) тело_цикла

Имя задает локальную по отношению к циклу переменную, которая будет по

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

всего применяется имя массива или другой группы данных). В простом или составном

операторе, представляющем собой тело цикла, выполняются действия с переменной

цикла. Тип переменной должен соответствовать типу элемента массива.

Например, пусть задан массив:

int[] a = { 24, 50, 18, 3, 16, -7, 9, -1 };

Вывод этого массива на экран с помощью оператора foreach выглядит

следующим образом:

foreach ( int x in a ) Console.WriteLine( x );

Page 22: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

22

Этот оператор выполняется так: на каждом проходе цикла очередной элемент

массива присваивается переменной х и с ней производятся действия, записанные в

теле цикла.

Page 23: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

23

ЛАБОРАТОРНЫЕ РАБОТЫ

Тема 1. Программирование линейных алгоритмов

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

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

переменных

x=3 y2/ (4 z-2t

2) при заданных значениях параметров:

Label1- надпись ввода t

Label2– надпись ввода y

Label3– надпись ввода z

Label4– надпись результат

TextBox1- поле ввода t

TextBox2- поле ввода y

TextBox3– поле ввода z

listBox1 – вывод результата;

button1– кнопка вычислить.

button2– кнопка закрыть

Код для кнопки «вычислить»

private void button1_Click(object sender, EventArgs e)

{

double t, y, z, x;

t = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox2.Text);

z = Convert.ToDouble(textBox3.Text);

x =3*y*y/(4*z-2*t*t);

listBox1.Items.Add(" При t=" + t);

listBox1.Items.Add(" y=" + y);

listBox1.Items.Add(" z=" +z);

listBox1.Items.Add("x= "+x);

}

Код для кнопки «закрыть»

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Page 24: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

24

Контрольные задания

Создать приложение для вычисления значения функции трех переменных t,y,z:

1. x=2y+3*t- z

2. x=3 y2/ (4 z-2t

2) .

3. x=4y2

/( 4y - 2t3)

4. x=4 y3-z / t

5. x=6 t2- (z+1)/ y

2

6. x=(8z2+1)/( y +t

2)

7. x=6 t-3 z2/(y+1)

8. x=8z / (t+2)2-y

2

9. x=6 t- z3/(y

4+1)

10. x=8z / (t

3+2)

5-y

2

Задание 2: Создать приложение для вычисления арифметического выражения

222 sincos)( zxeyxtgu zy .при заданных значений x, y, z

Label1- надпись ввода x

Label2– надпись ввода y

Label3– надпись ввода z

TextBox1- поле ввода x

TextBox2- поле ввода y

TextBox3– поле ввода z

listBox1 – вывод результата;

button1– кнопка вычислить.

button2– кнопка закрыть

Page 25: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

25

Код кнопки «вычислить»

private void button1_Click(object sender, EventArgs e)

{

double x, y, z, u;

x = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox2.Text);

z = Convert.ToDouble(textBox3.Text);

u=Math.Pow((Math.Sin(x)/Math.Cos(x)),2)-Math.Exp(x- y)*

*Math.Sqrt(Math.Sin(x * x) + Math.Cos(z * z));

listBox1.Items.Add(" При x=" + x);

listBox1.Items.Add(" y=" + y);

listBox1.Items.Add(" z=" + z);

listBox1.Items.Add("u= " + u);

}

Код кнопки «закрыть»

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Page 26: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

26

Контрольные задания

1) z/x

2

2

e)bxxsin(

)a/2ln(ay

при a = 1,678; b = 19,792; x = 3,67; z = 2.

2) a/yxsin)bcosa(d 222

при a = 5,234; b = 2,94; y = -18,32; x = 65°.

3) )1acos(

)yxsin(e)ba/x(S 1a/x

при a = 2,961; b = 1,96; x = 11,271; y = 6,718.

4) xsin

xalnmeay bx

при a = 1,297; b = 0,5054; x = 2,1212; m = 3.

5) y2e

baxzcosS

axb

22

при a = 1,1111; b = 2,2222; x = 3,45; y = 1,234; z = 14,8.

6) qlnxsinyb

xcosaZ

2

при a = 1; b = 2; q = 3; x = 137°; y = 1,158.

7) )tt/zsin(z

eaxy

x/b

при a = 1,957; b = 9; t = 6; x = 8,33; z = 5,777.

8) a/xx22/b/xcosey bx

при a = 1,79; b = 2; x = 27.

9) bapxcos

exx2y

x1x

при a = 1,234; b = 0,4321; p = 2; x = 0,378.

10) ye

yxlna

by

bxZ

x2

при a = 19,78; b = 1; x = 3,413; y = 1,789.

11) xcos

dbc5

p3masin

1y

3 2

при a = 173,5°; b = 0,8; c = 5,0839; d = -3,39; m = 4; p = -2; x = 1.

Page 27: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

27

12) 2pt

22

22

exsinpt

pytS

при x = 119°; y = 2,345; t = 3,788; p = 0,198.

13) zlnxcos5

m

im

ab3y

при a = 1,645; b = 0,069; I = 2; m = 4; x = 18°; z = 3.

14) 4

bcos

ac5,22,1axsin

7

nmlny

при a = 4; b = 34°; c = 1,097; m = 11; n = -3; x = 1.

15) zcosxsinab24k

1iy

3

при a = 1,835; b = 3; I = 3; k = 7; x = 0,2; z = 20°.

16) ba

yxyxbaZ

222

при a = -1,791; b = 2,796; x = 0,798; y = 1,678.

17) 3 2x2klnnkx2msiny

при k = 17; m = 6; n = 3; x = 1,726.

18) yx22 eyxlnbyxaU

при a = -6,918; b = 3,961; x = 1,892; y = 0,3671.

19) bx2

bx

cosazbx

eay

при a = 1,297; b = 0,5054; x = 2,1212; z = 0,5.

20) yxba

yxebcosZ

22ax2

при a = 5,65; b = 1,472; x = 1,87; y = 4,17.

Page 28: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

28

Тема 2. Программирование разветвляющихся алгоритмов

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

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

,1

,

xyelse

yxef

yx

.при заданных

значений x, y, z

Label1: -заголовок

программы

Label2: - надпись ввод x

Label3: - надпись ввод y

Label4: - надпись ввод z

Label5: -надпись результат

TextBox1 -поле ввода x

TextBox2-поле ввода y

TextBox3-поле ввода z

ListBox1-поле вывода результата

Button1: -кнопка вычислить

Button3: -кнопка закрыть

Код кнопки «вычислить»

private void button1_Click(object sender, EventArgs e)

{ double x, y, z, f;

x = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox2.Text);

z = Convert.ToDouble(textBox3.Text);

if (x >y)

f =Math.Exp(x-y) ;

else

f = y-x+1;

listBox1.Items.Add(" При x=" + x);

listBox1.Items.Add(" y=" + y);

listBox1.Items.Add(" z=" + z);

listBox1.Items.Add(" f= " + f);

}

Код кнопки «Закрыть»

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Page 29: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

29

Контрольные задания

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

a,b,x,z

,tpxcosaxcos

,9

xsin

4

xsinxsin

,zb

x4

y

2

2

при a = 5,82; b = 0,8; p = 0,485; z = 2; t = 1; x0 = -1,5; ∆x = 0,2; n = 25.

2)

,a

1xlg

,xasinbx

a,5,1x2x

y2

2

при a = 1,979; b = 1; x0 = -1,7; xk = 3,5; ∆x = 0,3778.

3)

,xsine

,cbxax

,bax

y

x

32

2

при a = 16,273; b = 1,73; c = -11; x0 = -2; xk = 3,25; ∆x = 0,25.

4)

,xbaax

,xsin1xalna

,b

)zxln(

a

xsin

y

22

22

при a = 1,25; b = 2,5; z = 1; x0 = 1; xk = 3,8; ∆x = 0,25.

если X < 0

если 0 ≤ X < 2

если X ≥ 2

еcли -2 ≤ x ≤ 1

если 1 < x < 2

если x ≥ 2

если X < 1

если 0 ≤ X < 1

если X ≥ 1

если -1,5 ≤ X ≤ 1,5

если 1,5 < X < 2,5

если X ≥ 2,5

Page 30: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

30

5)

,x2cosxcos2

,xycosxp

,bxcosaxsin

y 2

при a = 10,128; b = 1,2; p = 4,831; y = 8,3733; x0 = -0,88; xk = 2,222; ∆x = 0,125.

6)

,gxsinpxcos2,0b

,ee

ee

,bxsinax1

yxx

xx

2

при a = 0,2; b = 37,68; p = 10,79; g = 2,8237; x0 = 0,1; xk = 2,5; ∆x = 0,1333.

7)

,ek

,bx

,xa

xa

y

ax

3 2

при a = 0,325; b = 1; x0 = -2,75; xk = 2,5; ∆x = 0,333; k = 2.

8)

,faxcos

,axsinqr

,xf

x

y

2

2

при a = 3,3333; b = 0,765; r = 2,22; f = 1; q = 6,33; x0 = -1; xk = 3,5; ∆x = 0,25.

9)

,

,

,2

kxa

x

m

ax

xa

y

если -1 ≤ X < 0

если 0 ≤ X < 1,5

если X ≥ 1,5

если 0 ≤ X ≤ 0,9

если 0,9 < X ≤ 1,8

если X > 1,8

если -3 ≤ X < -0,5

если –0,5 ≤ X ≤ 1,5

если 1,5 < X ≤ 2,5

если -1 ≤ x < 1

если 1 ≤ x ≤ 2,5

если x > 2,5

если -1,5 ≤ X < 0

если 0 ≤ X < 2

если 2 ≤ X ≤ 3

Page 31: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

31

при a = 1,05; m = 3; k = 2; x0 = -1,25; xk = 3; x = 0,25.

10)

,apxlg

,xasinpx

a

,bx3x

y2

6,2

при a = 1,979; b = 1,5; p = 1; x0 = 0,1; xk = 3,5; ∆x = 0,3778.

11)

,cfx

xsina

,c

zax

,b

xalne

t

3 22

2

4 2

x

при a = 16,8; b = 3,787; c = 0,51; z = 1; f = 3,26; x0 = 0,25; xk = 5; ∆x = 0,25.

12)

,ee

,xlnxln

,xsinbpax

Z

axbx

3

3 24

при a = 0,75; b = 2,666; p = 2; x0 = -1; xk = 3,2; ∆x = 0,3456.

13)

,axcosbxsin

,t

xs

p

xsxs

,cbxax

Z

32

при a = 19,6; b = 1,71; c = 2,68; s = 1; p = 2; t = 3; x0 = 1,5; xk = 8,3; ∆x = 0,789.

если x < 1

если 1 ≤ x ≤ 2,2

если x > 2,2

если x < 1

если 1 ≤ x ≤ 2,2

если ` x > 2,2

если -1 ≤ x ≤ 2

если 2 < x ≤ 3

если x > 3

если X ≤ 2

если 2 < X < 4

если X ≥ 4

Page 32: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

32

14)

,ba

x

,xe

,abx

y

3 22

ax

4 4

при a = 0,91; b =1,8; x0 = 0,333; xk = 4,1; ∆x = 0,321.

15)

,xa

x

,f

x

t

xxp

,exbln

S

22

2

32

x

при a = 17,78; b = 2,71; p = 1; t = 2; f = 3; x0 = 0,15; xk = 2,8; ∆x = 0,275.

16)

,bx

ax

,mxcos

,xacosxs

as

Z

2

21,2

2

2

4,1

при a = 1,679; b = 6,2; s = 1; m = 4; x0 = 0,25; xk = 2,84; ∆x = 0,15.

17)

,px

xbsina

,ebxcos23a

,t

x

r

xxz

q

2,2

px4

32

если x < 1

если 1 ≤ x < 2,8

если x ≥ 2,8

если 0 ≤ x < 3

если 3 ≤ x < 6

если x ≥ 6

если x ≤ 1

если 1 < x < 2,2

если x ≥ 2,2

если 0,5 ≤ x ≤ 1,5

если 1,5 < x ≤ 2,6

если x > 2,6

Page 33: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

33

при a = 1,856; b = 1,6655; p = 0,17; z = 1; r = 2; t = 3; x0 = 0,69; ∆x = 0,15; n = 18.

18)

,xsinb

a

ba

x

,eee

,spxx

t

8,12

xxx

5,21

3

при a = 5,43; b= 1,75; p = 4; s = 7; x0 = 0,11; xk = 4,25; ∆x = 0,27.

19)

,bxcos1xln

xsin

,axcoscbx

,bxax

cx

S 2

2

5 2

при a = 2,367; b = 7,65; c = 12,8; x0 = -1,88; xk = 4,22; ∆x = 0,35.

20)

,xsinax

,xsinxb

xcoszx

,eabxcos

xsina

y

28,4

x3 2

при a = 1,71; b = 2; z = 1; x0 = 0,2; ∆x = 0,111; n = 21.

если 0,1 ≤ x ≤ 1,5

если 1,5 < x ≤ 2,5

если x > 2,5

если -2 ≤ x ≤ 0

если 0 ≤ x ≤ 3,5

если x > 3,5

если x ≤ 0,8

если 0,8 < x < 1,5

если x ≥ 1,5

Page 34: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

34

Задание 4. Создать приложение при вводе с клавиатуры число (1—4) .

Выводится слово стол, чашка, тарелка

кружка соответственно.

Label1: -заголовок программы

Label2: - надпись ввод числа(от 1 до

4)

Label3: - надпись результат

TextBox1 -поле ввода числа

ListBox1-поле вывода результата

Button1: -кнопка вычислить

Button3: -кнопка закрыть

Код для кнопки «ответить»

private void button1_Click(object sender, EventArgs e)

{

Int32 n; String k;

n = Convert.ToInt32(textBox1.Text);

switch (n)

{

case 1: k = "стол"; listBox1.Items.Add(k); break;

case 2: k = "чашка"; listBox1.Items.Add(k); break;

case 3: k = "тарелка"; listBox1.Items.Add(k); break;

case 4: k = "кружка"; listBox1.Items.Add(k); break;

//default: res = double.NaN; ok = false; break;

}

}

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

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Page 35: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

35

Контрольные задания

1. С клавиатуры вводится число в диапазоне 1..6. Вывести название соответствующего

месяца.

2. Ввести с клавиатуры число от 1 до 5. Вывести его словесную расшифровку, то есть 1

– один, 2 – два и т.д.

3. Вводится с клавиатуры номер буквы в алфавите (от 1 до 8). Вывести эту букву.

4. Вводится с клавиатуры буква (от а до е). Вывести номер этой буквы в алфавите.

5. Вводится с клавиатуры возраст ребенка 5, 6, 7, 8. Вывести имя ребенка –

соответственно Оля, Миша, Сережа, Костя

6. Вводится с клавиатуры число от 7 до 12. Вывести название соответствующего месяца.

7. Вводится с клавиатуры стоимость 2500, 5000 или 500. первая буква. Вывести –

соответственно названия предмета – стол, кровать, табурет.

8. С клавиатуры вводится число (1-5). Вывести на экран Лето, Зима, Осень, Весна,

Межсезонье соответственно

9. Вводится с клавиатуры один из чисел (1-4) . Вывести соответственно слово – стой,

жди, иди, беги.

10. Вводится с клавиатуры число от 1 до 6. Вывести название соответствующего месяца.

Page 36: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

36

Тема 3. Программирование циклических алгоритмов

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

Задание 5. Создать приложение табулирования функции одной переменной с

постоянно изменяющимся аргументом.

byaxysin

typxZ

2

при a = 1,234; b = 0, 755; p = 2,679; t = 8,5; x = 1, 76;

y0 = 0, 5432; ∆y = 1,25; n = 11.

Label1- надпись a

Label2- надпись b

Label3- надпись p

Label4- надпись t

Label5- надпись x

Label6- надпись n

TextBox1- поле ввода a

TextBox 2- поле ввода b

TextBox 3- поле ввода p

TextBox 4- поле ввода t

TextBox 5- поле ввода x

TextBox 6- поле ввода n

ListBox1- поле вывода результата

Button1- кнопка вычислить

Button3- кнопка закрыть

Код для кнопки «вычислить»

private void button1_Click(object sender, EventArgs e)

{

Double a, b, p, t, x, y, z; Int32 n;

a = Convert.ToDouble(textBox1.Text);

b = Convert.ToDouble(textBox2.Text);

p = Convert.ToDouble(textBox3.Text);

t = Convert.ToDouble(textBox4.Text);

x = Convert.ToDouble(textBox5.Text);

n=Convert.ToInt32(textBox6.Text);

y = 0.5432;

while ( y<=n )

Page 37: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

37

{

z=(p*x-

t*y)/(Math.Sin(y)*Math.Sin(y)+Math.Sqrt(a*x+b*y));

listBox1.Items.Add("y= "+y+" z="+z);

y +=1.25;

}

}

Код для кнопки «закрыть»

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Контрольные задания

1. axx22bxcosey bx

при a = 1,79; b = 2; x0 = 0,271; xk = 3,83; ∆x = 0,444.

2. xbaf

eeZ

4,12

axbx

при a = 0,89; b = 1,21; f = 1,7; x0 = 1,1; xk = 3,8; ∆x = 0,22.

3. axsine

cbxaxy

x

32

при a = 1,627; b = 17,289; c = 1,33; x0 = -1; xk = 4,2; ∆x = 0,675.

4. xpsinb

a

za

xf

32

при a = 0,91; b = 1,8; p = 2; z = 2; x0 = 2,8; xk = 4,8; ∆x = 0,333.

5. xacoseyxUyx22

при a = 1,67; y = 2,772; x0 = 0,678; ∆x = 0,41; n = 9.

6. atxlg

bsxxp

6,2

при a = 2; t = 3,333; b = 1,45; s = 2,222; x0 = 1,8; xk = 4,57; ∆x = 0,2778.

7. sb

ax

sp

sln

xsin2

tsy

при a = 11,877; b = 2,1; p = 1; s = 2; t = 3; x0 = 1,88; ∆x = 0,4567; n = 11.

8. ax

3

3

exflg

abxy

при a = 0,333; b = 1,789; f = 1; x0 = 1,1; ∆x = 0,28; n = 11.

Page 38: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

38

9. 32 ybaxsinp

y

bxcos

b

aS

при a = 1,678; b = 2,777; p = 1; y = 1,5555; x0 = 0,82; ∆x = 1; n = 12.

10. ax

yb

xa

e

xsinkxcost

при a = 1,791; b = 2,679; y = 1,6666; k = 1; x0 = 2,189; ∆x = 0,1111; n = 10.

11. xbplnp

axpzy

2

3

при a = 1,23; b = 8,888; p = 12,345; z = 1,2345; x0 = 1,96; ∆x = 0,456; n = 9.

12. xsinbpaxZ 24

при a = 0,75; b = 2,666; p = 2; x0 = -1; xk = 2; ∆x = 0,25.

13. xbaxaxlnbx

ay 22

22

при a = 0,5; b = 1,347; x0 = 1; ∆x = 1,1; n = 10.

14. ax

3 4

exxfln

abxR

при a = 0,333; b = 1,789; f = 1; x0 = 1,1; ∆x = 0,28; n = 11.

15. xcos

1bcs

asin

tfyZ

3 2

при a = 73,50; b = 0,812; f = 3; c = 5,6839; s = -3,3; y = 4; t = 1,9;

x0 = 1,23; xk = 5,75; ∆x = 0,75

Page 39: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

39

Задание 6. Создать приложение для нахождения суммы ряда

используя

оператор цикла с параметром for

Label1-заголовок

Label2-ввод n

TextBox1- поле ввода n

Label3-ввод x

TextBox 2-поле ввода x

Button1- кнопка вычислить

Button2-кнопка закрыть

Label4- надпись результат

ListBox 1-поле вывода результата

Код кнопки вычислить

private void button1_Click(object sender, EventArgs e)

{

Int32 i, n; Double x, s;

s = 0;

n = Convert.ToInt32(textBox1.Text);

x = Convert.ToDouble(textBox2.Text);

for (i = 0; i <= n; i++) s += (Math.Pow(x, 2 * i)) /

(Math.Pow(2, i));

{

}

listBox1.Items.Add("cумма = " + s);

}

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

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

n

kk

kx

0

2

2

Page 40: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

40

Контрольные задания

Найти сумму ряда используя оператор цикла с параметром For

1.

8.

2. ;

1

123

n

k kx

9. ;

1

132

n

k kx

3.

10. ;

1

3n

k

k

k

kx

4.

11.

5. ;

1

123

N

k kx

12. ;

1

132

N

k kx

6. ;

1)2/3(

2N

k k

x

13. ;

1

12

N

k kx

7.

;1

3

N

k k

x

14. ;

113

N

k xkk

x

Page 41: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

41

Тема 4. Программирование с использованием массивов

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

Задание 7. Составить программу создания одномерного массива и нахождения

суммы всех элементов, максимального, минимального элемента созданного

массива.

Label1- надпись ввод n

Label2-надпись массив

Label3-надпись сумма

элементов

TextBox1- поле ввода

размерности n

ListBox 1-поле вывода

массива результата

ListBox 2-поле вывода

результата

Button1- кнопка вычислить

Button2-кнопка закрыть

Label4- надпись результат

Код кнопки выполнить

Int32 n, sum;

sum = 0;

n = Convert.ToInt32(textBox1.Text);

const int initRnd = 77;

Random realRnd = new Random();

Random repeatRnd = new Random(initRnd);

// Случайный массив байтов

byte[] bar = new byte[n];

repeatRnd.NextBytes(bar);

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

{

listBox1.Items.Add(bar[i]);

}

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

{

sum += bar[i];

}

Page 42: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

42

listBox2.Items.Add("Сумма элементов = " + sum);

int max = bar[0];

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

if (bar[i] > max) max = bar[i];

listBox2.Items.Add("Максимальный элемент = " + max);

int min = bar[0];

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

if (bar[i] <min) min = bar[i];

listBox2.Items.Add("Минимальный элемент = " + min);

}

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

private void button2_Click(object sender, EventArgs e)

{

Application.Exit();

}

Контрольные задания.

1. Найти сумму всех элементов одномерного массива целых чисел

кратных числам 4,5,8.

2. Найти сумму элементов одномерного массива кратных числам

2,3,4.заданному числу.

3. Найти сумму номера чѐтных и нечетных элементов одномерного

массива

4. Найти сумму положительных и отрицательных элементов одномерного

массива.

5. Найти количество элементов кратных 3, 4, 5.

6. Найти количество элементов кратных 2 , 4, 6.

7. Найти количество положительных и отрицательных элементов

одномерного массива

Page 43: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

43

Задание 8. Составить программу создания двумерного массива, подсчета

суммы элементов и нахождения максимального и минимального элементов.

Label-заголовок программы

Labe2- надпись ввод m

Label3- надпись ввод n

Label4-надпись массив

Labe5-надпись результаты

TextBox1- поле ввода размерности m

TextBox2- поле ввода размерности n

ListBox 1-поле вывода массива

результата

ListBox 2-поле вывода результата

Button1- кнопка вычислить

Button2-кнопка закрыть

Код кнопки Выполнить

int m, n, sum; string s;

//Создание двумерного массива размером m,n

m = Convert.ToInt32(textBox1.Text);

n = Convert.ToInt32(textBox2.Text);

int[,] Arr = new int[m, n]; //объявление двумерный

массива, размером m на n

Random rnd = new Random(); //объявление переменной

rnd типа random для генерации случайных чисел

for (int i = 0; i < Arr.GetLength(0); i++)

{

for (int j = 0; j < Arr.GetLength(1); j++)

{

Arr[i, j] = rnd.Next(-500, 500);

}

}

for (int i = 0; i < Arr.GetLength(0); i++)

{

for (int j = 0; j < Arr.GetLength(1); j++)

{

listBox1.Items.Add (Arr[i, j] + " " );

}

listBox1.Items.Add (" ");

}

//вычисление суммы элементов, максимальный элемент,

минимальный элемент

Page 44: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

44

sum = 0;

for (int i = 0; i < Arr.GetLength(0); i++)

{

for (int j = 0; j < Arr.GetLength(1); j++)

{

sum += Arr[i, j];

}

}

listBox2.Items.Add("Сумма элементов = " + sum);

int max = Arr [0,0];

for (int i = 0; i < Arr.GetLength(0); i++)

{

for (int j = 0; j < Arr.GetLength(1); j++)

if (Arr [i, j] > max) max = Arr [i, j];

}

listBox2.Items.Add("Максимальный элемент = " + max);

int min = Arr [0,0];

for (int i = 0; i < Arr.GetLength(0); i++)

for (int j = 0; j < Arr.GetLength(1); j++)

{

if (Arr [i,j] < min) min = Arr [i,j];

}

listBox2.Items.Add("Минимальный элемент = " + min);

Код кнопки Закрыть

{

Application.Exit();

}

Контрольные задания

1. Найти минимальный элемент массива A(m*n)

2. Найти максимальный элемент массива A(m*n)

3. Найти количество элементов массива A(m*n), которые больше нуля.

4. Найти количество элементов массива, A(m*n) которые меньше нуля.

5. Найти количество элементов массива, A(m*n) которые равны нулю.

6. Найти количество элементов матрицы, A(m*n) которые кратны 2

7. Найти количество элементов массива, A(m*n) которые кратны 5

8. Найти сумму элементов массива A(m*n) кратных заданному числу.

9. Найти количество положительных и отрицательных элементов в

массиве A(m*n).

10. Вывести номера чѐтных элементов. массива A(m*n)

Page 45: A :Я < D : труктура/афедра « Iрикладная информатика»keu.page.kg/documents/materials/206.pdf · констант и т. д

45

Литература

1. Visual C#. NET Step by Step, Microsoft Press, 2003.

2. Вилле К. Представляем Си Шарп. ДМК Пресс, 2001. ISBN 5-94074-039-1

3. Петцольд Ч. Программирование для Microsoft Windows на C#. «Русская редакция»,

2002. ISBN 5-7502-0210-0

4. Платт Д.С. Знакомство с Microsoft .NET. «Русская редакция», 2001. ISBN 5-7502-

0186-4

5. Рихтер Дж. Программирование на платформе Microsoft .NET Framework. «Русская

редакция», 2002.

6. Робинсон У. C# без лишних слов. ДМК Пресс, 2002. ISBN 5-94074-177-0

7. Шилдт Г. С#, учебный курс. Питер, 2003.

8. Troelsen A. C# and the .NET platform (2nd ed.).- APress, 2003, 1200 p.p.