Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Арифметические и логические операции




Маран М.М.

Программирование на языке C#. Методическое  пособие по курсу «Программирование на языках высокого уровня». – М.: Издательство МГТУ «СТАНКИН», 2007. – 94 с.

 

Учебное пособие содержит описание языка программирования C#, рассмотрены основные конструкции, методики процедурного и объектно-ориентированного программирования. Во второй части пособия приведены основные сведения о работе в среде Microsoft Visual Studio 2005 и описано создание одно- и многооконных интерфейсов пользователя.

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

 

 

© М.М.Маран, 2007

© Московский государственный технологический университет

«СТАНКИН», 2007


Оглавление

Введение.. 6

1 . Базовые элементы языка C#. 7

1.1. Структура программы.. 7

1.2. Типы данных. 8

1.3. Арифметические и логические операции. 10

1.4. Условный оператор и оператор выбора. 11

1.5. Ввод/вывод в консольном режиме. 12

1.6. Комментарии. 14

1.7. Массивы.. 14

1.8. Операторы цикла. 16

1.9. Работа со ступенчатыми массивами. 18

Контрольные вопросы... 19

2. Работа с функциями.. 20

2.1. Общие принципы.. 20

2.2. Процедурное программирование в C#. 21

Контрольные вопросы... 24

3. Объектно-ориентированное программирование на C# 25

3.1. Общие принципы.. 25

3.2. Объявление и работа с классами. 25

3.3. Перегрузка операторов. 28

3.4. Индексаторы.. 31

3.5. Свойства. 34

3.6. Использование класса в качестве типа данных. 36

3.7. Работа со структурами. 39

3.8. Наследование. 41

3.9. Ссылки на объекты.. 43

3.10. Конструктор копирования. 44

3.11. Виртуальные методы.. 46

3.12. Абстрактные методы и классы.. 48

3.13. Интерфейсы.. 49

3.14. Делегаты и события. 51

3.15. Исключительные ситуации. 58

Контрольные вопросы... 61

4. Среда Microsoft Visual Studio 2005. 61

4.1. Простейший пример. 61

4.2. Средства управления работой программы.. 62

4.3. Создание меню.. 63

4.4. Ввод/вывод массивов. 64

4.4.1. Ввод/вывод и обработка одномерного массива-строки. 65

4.4.2. Ввод/вывод и обработка одномерного массива-столбца. 66

4.4.3. Ввод/вывод и обработка двумерного массива. 67

4.4.4. Форматированный ввод/вывод двумерного массива. 68

4.5. Создание многооконных приложений. 71

4.5.1. Создание SDI –приложения. 72

4.5.2. Создание MDI –приложения. 75

Контрольные вопросы... 80

5. Объектно-ориентированное программирование в Microsoft Visual Studio 2005. 81

5.1. Дополнение класса формы средствами решения прикладной задачи 81

5.2. Создание отдельных классов. 84

5.3. Передача в классы указателей на формы.. 87

5.4. Создание форм в классах пользователя. 89

Контрольные вопросы... 91

Заключение.. 91

Библиографический список.. 92

 


 



Введение

 

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

В языке С# (созданном компанией Microsoft для поддержки среды .NET Framework) проверенные временем средства усовершенствованы с помощью самых современных технологий. С# предоставляет очень удобный и эффективный способ написания программ для современной среды вычислительной обработки данных, которая включает операционную систему Windows, Internet, компоненты и пр.

Компьютерные языки существуют не в вакууме. Они связаны друг с другом, причем на каждый новый язык в той или иной форме влияют его предшественники. В процессе такого "перекрестного опыления" средства из одного языка адаптируются другим, удачная новинка интегрируется в существующий контекст, а отжившая конструкция отбрасывается за ненадобностью. Примерно так и происходит эволюция компьютерных языков и развитие искусства программирования. Не избежал подобной участи и С#. Языку С# "досталось" богатое наследство. Он — прямой потомок двух самых успешных языков программирования (С и C++) и знающие язык Pascal, точнее его версию, реализованную на Delphi, наверняка узнают многие конструкции.

С# — это новый язык, разработанный Эндерсом Хейлсбергом в корпорации Microsoft в качестве основной среды разработки для .Net Framework и всех будущих продуктов Microsoft. C# берет свое начало в других языках, в основном, в C++, Java, Delphi, Modula-2 и Smalltalk. Про Хейлсберга следует сказать, что он был главным архитектором Turbo Pascal и Borland Delphi, и его огромный опыт способствовал весьма тщательной проработке нового языка. С одной стороны, для С# в еще большей степени, чем для упомянутых выше языков, характерна внутренняя объектная ориентация; с другой стороны, в нем реализована новая концепция упрощения объектов, что существенно облегчает освоение мира объектно-ориентированного программирования.

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

1 . Базовые элементы языка C#

Структура программы

Все приведенные в данном пособии примеры разработаны в среде Microsoft Studio 2005. Данная среда, как и другие среды визуально программирования, позволяет работать как в консольном, так и в режиме диалоговых окон. В первой части учебного пособия для изучения именно языка C# мы будем использовать консольный режим, во второй части рассмотрим разработку диалоговых окон. Для создания новой программы в консольном режиме после запуска Studio 2005 необходимо:

- Выбрать по очереди File – New – Project;

- Выбрать язык реализации Visual C#, тип проекта Windows, Console Application;

- Определить местонахождение нового проекта (Location) и дать ему имя (Name), в нашем случае ConsApp.

В ответ увидите следующую картину:

using System; //подключение стандартных библиотек

using System.Collections.Generic;

using System.Text;

 

namespace ConsApp

{

// здесь должны находиться созданные пользователем классы

class Program

{

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

   static void Main(string[] args)

   {

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

   Console.WriteLine("Привет из Москвы”);

       Console.ReadLine();

}

}

}

Программа начинается с области имен (ее имя мы определили при создании проекта), которая содержит созданный автоматически класс (Program), а составе этого класса – главная функция (Main). Наш пример содержит простейшую программу – традиционное приветствие. Заодно она показывает вывод символьных строк. Строка Console.ReadLine(); необходима как и в других консольных приложениях для задержки экрана пользователя после завершения программы. Как видите, ввод/вывод очень похож на Pascal. При отсутствии классов и функций пользователя весь текст программы находится в главной функции.

Типы данных

 

В  C# имеются следующие типы данных   

 

Тип данных Размер Диапазон значений

Целочисленные типы данных

sbyte 1 байт, со знаком -128 … 127
byte 1байт, без знака 0 … 255
char 2 байта, символ Unicode 0000 … FFFF
short 2 байта, со знаком -32768 … 32767
ushort 2 байта, без знака 0 … 65535
int 4 байта, со знаком -2 147 483 646 … 2 147 483 647
uint 4 байта, без знака 0 … 4 294 967 295
long 8 байтов, со знаком -9 223 372 036 854 775 808 … 9 223 372 036 854 775 807
ulong 8 байтов, без знака 0 … 18 446 744 073 709 551 615
decimal 28, 29 десятичных знаков ±10e-28 … ±7.9e+28

Данные с плавающей точкой

float 7 десятичных знаков 1.5e-45 … 3.4e38
double 15-16 десятичных знаков 5.0e-324 … 1.7e308

Логические данные

bool   true … false

Символьные данные

string   Строка любых символов

 

В C#, как и в С++ большие и маленькие буквы разные, как в именах переменных, так и при написании служебных слов.

 

Объявление данных и присвоение начальных значений.

       int i, k;

       float x, y;

       decimal d1;

       short n;

       string s1;

       char c1;

       bool b1;

       i = 3;

         n=9;

       x = -6.7f; //или x = -456.43F;

       double z;

       z = 5.76; //или z = 5.34D; z = -76.45d;

       d1 = 123.43m; // или d1 = 154.65M;

       s1 = "ABCDEF";

             c1 = '?';

             b1=true;

             Обратим внимание на то обстоятельство, что константа -6.7 имеет тип double и присвоение x = -6.7; является ошибкой! Также было бы ошибкой присвоение d1 = 123.43; Приведенные примеры показывают и обозначения констант float, double, decimal. Данные типа decimal можно рассматривать как аналог распространенного в системах управления базами данных типа данных Currency (денежный): вычисления с ними выполняются с большой точностью и без округления (если это возможно).

                  Явное и неявное преобразование данных.

Общее правило: неявно можно выполнять все преобразования, которые не приведут к потере информации. Поэтому данные типов bool, double, decimal не могут быть неявно преобразованы ни в какие типы данных. float  может быть преобразован в double; int может быть преобразован в long, float, double, decimal; long может быть преобразован в float, double, decimal.

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

(новый_тип_данных) переменная

Примеры (объявление данных - см. выше).

x=(float)56.3; // константа типа double

           // преобразуется в float                                                    

d1 = (decimal)25.6; // константа типа double

                  // преобразуется в decimal                                            

i = (int)8.6; //результат i=8

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

x=(float)56.6e+300; несмотря на то, что преобразовываемое значение не входит в диапазон допустимых значений данных типа float. Результаты таких преобразований в общем случае не определены. Однако, присвоения short n=123456789; и n=( short)123456789; являются синтаксическими ошибками.  

В C# всем переменным до их использования в выражениях должны быть присвоены значения, в том числе нули и пустые строки. Использование в выражениях неинициализированных переменных считается ошибкой!

Очевидна рекомендация: без необходимости не предпринимайте подозрительных экспериментов с типами данных; если нет на то особых причин, можно рекомендовать ограничиться данными типа int, double, bool, string.

 

Арифметические и логические операции

 

Арифметические операции обозначают привычными знаками +, -, *, /, %. При работе с целыми числами операция / дает частное, а операция % остаток от деления. Последняя операция допустима толькодля целых. Для деления двух целых необходимо менять тип хотя бы одного из них. Например,

i = 14;

k = 4;

x = (float)i / k;

Имеются операции i++ i-- ++i --i. При i = 14 в результате выполнения операции k=(++i)+4; переменные получат следующие значения i=15 и k=19; а после операции k=(i++)+4 i=15 и k=18.

Разрешена и запись x+=z; которая эквивалентна записи x=x+z; вместо + можно использовать и знаки других операций.

Операции сдвиг налево (направо) могут применяться только к целым числам. При i = 1478; результатами операций сдвига будут:

    k = i >> 3; //k=184

i = i << 3; //i=11824

    Над целыми могут выполняться и побитовые операции & - поразрядное умножение, | - поразрядное сложение, ^ - поразрядное исключающее или. Пусть имеется объявление int i, j, m; и переменные имеют следующие значения i=1634; k=7654; Тогда m=i&k; дает результат 1634; m=i|k; результат 8166 и  m=i^k; результат 7044.

Над переменными логического типа могут выполняться операции &, |, ^ (исключающее ИЛИ), ! (отрицание). Переменной типа bool может быть присвоен результат сравнения: 

b1= i>k; b1=!(i>k);

    К  арифметическим данным могут применяться математические функции, которые содержатся в библиотеке Math. Например, четвертый корень может быть найден следующим образом:

    x=4598.3f;

z = Math.Pow(x, 0.25);

а натуральный логарифм через

z = Math.Log(x);

Какие именно функции имеются в библиотеке Math узнать предельно легко: после набора имени библиотеки и точки на экране появится подсказка. Не забудьте только, что значения большинства математических функций имеют тип double и названия функций пишут с большой буквы.

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 381.

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