русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Теперь разберем код программы более подробно.


Дата добавления: 2015-01-08; просмотров: 1350; Нарушение авторских прав


Первые 4 строки в исходном коде c ключевым словом using подключают библиотеки классов, с методами и свойствами которых мы будем с Вами работать:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

Далее объявляется пространство имен (что-то вроде собственной территории нашего проекта), в котором будет выполняться наш проект:

 

namespace ConsoleApplication7

{

//затем объявляется класс Programm, в котором находится точка выхода в программу – метод Main.

class Program

{

static void Main(string[] args)

{

Далее идет код самого метода. Здесь прописываются инструкции нашей программы:

//объявление строковой переменной str для хранения имени пользователя.

string str;

//метод вывода текста в консоль (текст прописывается в фигурных скобках). Метод WriteLine() принадлежит классу Console, который в свою очередь находится в пространстве имен System. Теоретически нужно было бы написать System.Console.WriteLine(), но как мы помним, в первых 4-х строках мы произвели подключение пространства имен System, поэтому далее в коде указывать на него нет необходимости.

Console.WriteLine("Как тебя зовут?");

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

str = Console.ReadLine( );

//с пмощью мтода WriteLineвыводим на экран строку «Привет, имя_пользователя»

Console.WriteLine("Привет "+str);

//далее программа ожидает от пользователя нажатия на любую клавишу для заверешения своей работы. Для этого используется метод ReadKey().

Console.ReadKey( );

}

}

} //не забываем закрывать фигурные скобки

Рис. 5. Результат работы программы.

В следующих разделах будут более подробно рассмотрены основные возможности языка С#: синтаксис, типы данных, операторы ветвления программы, циклы, построение классов и создание приложений Windows Forms.
Синтаксис С#



Алфавит

Алфавит языка С# включает в себя следующие символы таблицы кодов ASCII:

· строчные и прописные буквы латинского алфавита;

· цифры от 0 до 9;

· символ «_»;

· набор специальных символов: " { }, 1 [ ] + — %/ \; ' : ? < > = ! & # ~ *-

· прочие символы.

 

Символы служат для построения лексем (проще говоря, слов). Существует пять видов лексем:

· идентификаторы;

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

· знаки (символы) операций;

· литералы;

· разделители.

Ниже приведена таблица № 1, в которой отражены ключевые слова языка C#, использовать которые в качестве идентификаторов не разрешается.

Таблица №1

Ключевые слова языка C#

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

Комментарии

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

Комментарии в С# могут быть двух видов:

1. Однострочный комментарий. Символ // означает начало комментария, который заканчивается в конце строки.

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


Типы данных в С#

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

Как уже говорилось в разделе «Основные понятии», в платформе .NET существует CTS – Common Type System - стандартная система типов, которая является общей для всех языков программирования платформы.

Все типы в С# .NET делятся на Типы значений и Ссылочные.

Тип значения (value type) - тип, содержащий реальные данные. Этот тип не может быть равен null. Типы значений хранятся в области, известной как Стек.

Пример типов значений:

int x = 10, long y = 100;

Ссылочный тип (reference type) - тип, содержащий ссылку на значение. Ссылочные типы хранятся в области, которая называется Управляемая куча. Управляемая куча - это область памяти, в которой хранятся объекты, создаваемые с помощью ключевого слова new. Фактически это оперативная память вашего компьютера. При переполнении кучи вызывается сборка мусора.

Пример ссылочного типа:

 

string str = “Привет, пользователь!”;

//создали переменную str ссылочного типа String, которая указывает на объект в памяти, содержащий строку «Привет, пользователь!»

 

Типы значений в свою очередь подразделяются следующим образом:

· целочисленные типы;

· типы с плавающей запятой;

· символы;

· логический тип;

· десятичный тип.

Ссылочные типы делятся на:

· объекты;

· строки.

 

Ниже представлена таблица №2 встроенных типов.

Таблица № 2

Встроенные типы данных языка С#

СТS Тип Имя в С# Описание
System. Object object Класс , базовый для всех типов (CTS)
System. String string Строка
System. SByte sbyte 8 -разрядный байт (со знаком)
System. Byte byte 8 -разрядный байт (без знака)
System. S16 short 16-разрядное число (со знаком)
System. UM16 ushort 16-разрядное число (без знака)
System. Int32 int 32-разрядное число (со знаком)
System. UInt32 uint 32-разрядное число (без знака)
System. Int64 long 64-разрядное число (со знаком)
System. UInt64 ulong 64-разрядное число (без знака)
System.Char char 16-разрядный символ (Unicode)
System. Single float 32-разрядное число с плавающей точкой, (стандарт IEEE)
System. Double double 64-разрядное число с плавающей точкой, (стандарт IEEE)
System. Boolean bool Булево значение (true/false)
System. Decimal decimal Данный 128 разрядный тип используется в основном, когда требуется крайне высокая точность (до 28 знака)

 

Преобразование типов

 

Преобразование объектов одного типа в другой может быть проведено явно или неявно. Неявные преобразования происходят автоматически, компилятор делает все за вас. Явные преобразования осуществляются, когда Вы «приводите» значение к другому типу с использованием операторов приведения.

Пример неявного преобразования типов:

 

short a = 100;

int b = a; // неявное преобразование.

 

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

 

Пример явного преобразования типов:

short a;

int b – 100;

a = (short) b; // явное преобразование произойдет успешно.

Переменные

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

 

Пример.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

int a = 5;

Console.WriteLine("Начальное значение переменной равно \t"+a);

Console.ReadKey();

a = 10;

Console.WriteLine("Теперь значение переменной равно\t"+a);

Console.ReadKey();

}

}

}

Рис. 6. Результат работы программы.

Константы

Константы – это объекты, значение которых не может быть изменено. Бывают случаи, когда есть необходимость сохранить значение переменной, чтобы в ходе выполнения программы его нельзя было изменить. Такими константами могут быть всем известное число ПИ или Гравитационная постоянная.

Константы могут быть следующих видов:

· литеральные константы;

· символические;

· перечисления.

 

x = 2;

 

Значение «2» - это литеральная константа. Значение 2 –это всегда 2. Мы не можем сделать так, чтобы число 2 представляло какое-либо другое значение.

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

 

const тип идентификатор = значение;

 

В виде кода это будет выглядеть так:

 

const double pi = 3.14;

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

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication3

{

class Program

{

static void Main(string[] args)

{

const double pi = 3.14;

const double g = 9.8;

Console.WriteLine("Число Пи равно\t"+pi);

Console.WriteLine("Гравитационная постоянная равна\t"+g);

Console.ReadKey();

}

}

}

Рис. 7. Результат работы программы.

Перечисления

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

 

Так будет выглядеть список констант, содержащий дни недели:

 

enum Week

{

const string pn = “Понедельник”;

const string vt = “Вторник”;

const string sr = “Среда”;

const string cht = “Четверг”;

const string pt = “Пятница”;

const string sb = “Суббота”;

const string vs = “Воскресение”;

}

 

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

 

Выражения

 

Выражение – некоторый код, определяющий значение. Например:

 

x = 10;

 

Оператор «=» устанавливает значение для переменной х равным 10. Также возможна следующая запись:

 

y = x = 10;

 

В данном случае переменной х присваивается значение 10, а затем оператор присваивания устанавливает вторую переменную y с тем же значением.

 

 

Инструкции

 

Инструкция – это некоторое законченное выражение в программном коде. Любая программа на языке С# состоит из последовательности определенных инструкций, после каждой из которых обязательно должен стоять символ « ; ».

Пример записи инструкций:

 

string str; // инструкция

a = 5; //инструкция

double у = х; //инструкция

 

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

 

{

string str; // инструкция

a = 5; //инструкция

double у = х; //инструкция

}

 

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

 

Разделители

 

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

 

х=1;

или

х = 1.

Из этого правила, как всегда бывает, есть исключение. Разделители в пределах строки (объекта типа string) будут обработаны как отдельные символы строки. То есть запись

 

Consol.WriteLine («Хочу быть ПРОГРАММИСТОМ !!!»);

 

будет обработана компилятором именно в таком виде, в котором она представлена выше в символах « », со всеми пробелами.


Ветвление программы

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

Безусловные переходы

Безусловный переход может быть осуществлен следующими способами:

· с помощью вызова функции;

· с помощью ключевых слов goto, break, continue, return или throw.

 

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication4

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("Запустили программу. Работает метод Main...");

Function();

Console.WriteLine("А тпереь опять работает метод Main.");

Console.ReadKey();

}

 

static void Function()

{

Console.WriteLine("Теперь моя очередь работать. Работает функция Function:)");

}

}

}

Рис. 8. Результат работы программы.

 

Результат работы программы:

В консоль выводится строка: «Запустили программу. Работает метод Main...»

Далее программа осуществляет переход к функции Function, определенной ниже и в консоль выводится строка: «Теперь моя очередь работать. Работает функция Function:)»

Затем программа возвращается к выполнению последней инструкции и в консоль выводится еще одна строка: «А теперь опять работает метод Main.»

 

Пример безусловного перехода с помощью ключевого слова goto.

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication5

{

class Program

{

static void Main(string[] args)

{

int a = 0;

Console.WriteLine("Выведем на экран последовательно числа от 0 до 10");

Label:

Console.WriteLine("a = "+a);

a = a + 1;

if (a<=10)

goto Label;

Console.ReadKey();

}

}

}

Рис. 9. Результат работы программы.

Результат работы программы.

В консоль выводится строка: «Выведем на экран последовательно числа от 0 до 10»

В консоль выводится строка: «а = 0»

Далее идет приращение переменной «а» на единицу: «а=а+1»

Проверяется условие: «Значение «а» меньше 10?»

Если меньше, то программа выполняет инструкцию goto Label и возвращается к метке Label.

Далее операция повторяется, пока «а» не достигла значения 10.

Когда значение «а» достигло 10, программа переходит к инструкции Сonsole.ReadKey(), которая ожидает от пользователя нажатия на любую клавишу для завершения работы программы.


Условные переходы

Условные переходы используются для ветвления программы относительно какого-либо условия, установленного разработчиком, либо полученного в ходе каких-либо расчетов. Данные переходы реализуются с помощью ключевых слов if, else, switch.

 

Оператор выбора (условный оператор if …else)

Оператор if относится к операторам ветвления программы. Суть его работы состоит в следующем: анализируется условие, указанное в круглых скобках оператора if. Если условие верно (его значение true), то программа переходит к выполнению инструкций в блоке if. Если условие не верно (значение false), программа переходит к альтернативному варианту инструкций, указанных в блоке оператора else. Структура оператора if имеет следующий вид:

if (условие)

{

инструкции

}

else

{

инструкции

}

При этом оператор if можно использовать без дополнения else. Также в блоке инструкций оператора if можно расположить еще один оператор if с каким-либо условием. Получиться вариант ветвления, в котором второй оператор if вложен в первый.

Рассмотрим программу, содержащую оператор условного перехода if…else.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Primer1

{

class Program

{

static void Main(string[] args)

{

string Name;

int temp;

 

Console.WriteLine("Привет! Как тебя зовут?");

Name = Console.ReadLine();

Console.WriteLine("Привет,\t"+Name+".\t\nКакая температура на улице?");

temp = Convert.ToInt32(Console.ReadLine());

 

//определяем условие для оператора условного перехода

if (temp >= 20)

{

Console.WriteLine("Сегодня хорошая погода. Сейчас бы погулять");

}

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

else

{

Console.WriteLine("Хм...А я думал сегодня теплее. Останусь-ка я дома:)");

}

Console.ReadKey ();

}

}

}

Рис. 10. Результат работы программы.

Результат работы программы будет выглядеть следующим образом:

В консоль выводится вопрос: «Привет! Как тебя зовут?»

Пользователь вводит свое имя: «Макс»

В консоль выводится следующий поврос: «Привет, Макс. Какая температура на улице?»

Пользователь вводит число, означающее температуру.

Далее сработает оператор условного перехода. Если температура больше 20 градусов, то выводится следующая строка:

«Сегодня хорошая погода. Сейчас бы погулять»

Если температура меньше 20 градусов, выводится следующая строка:

«Хм...А я думал сегодня теплее. Останусь-ка я дома:)»

 

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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ConsoleApplication6

{

class Program

{

static void Main(string[] args)

{

int a, b, s;

Console.WriteLine("Введите сторону «а» прямоугольника");

a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите сторону «b» прямоугольника");

b = Convert.ToInt32(Console.ReadLine());

 

if (a > 0 && b > 0)

{

s = a * b;

Console.WriteLine("Площадь прямоугольника равна\t" + s);

}

else

Console.WriteLine("Значения сторон должны быть больше 0");

 

Console.ReadKey();

}

}

}

Рис. 11. Результат работы программы.

Результат работы программы будет выглядеть следующим образом:

В консоль выводится строка: «Введите сторону «а» прямоугольника»

Пользователь вводит значение переменной «а»

В консоль выводится строка: «Введите сторону «b» прямоугольника»

Пользователь вводит значение переменной «b»

Далее проверяется условие: «a» и «b» больше нуля?

Если да, то производится расчет площади и в консоль выводится строка: «Площадь прямоугольника равна …»

Если значение «a» или «b» меньше нуля, в консоль выводится строка: «Значения сторон должны быть больше 0»

Программа ожидает от пользователя нажатия на любую клавишу для завершения работы.




<== предыдущая лекция | следующая лекция ==>
 | Оператор ветвления switch


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.364 сек.