Уроки по C#. Роман Свистунов

=====================================
Здравствуйте! Я для начала скажу, что это обучающая страница. Для программирования на C# нам понадобится компилятор. Я рекомендую Microsoft Visual Studio. В частности по этой ссылке http://www.visualstudio.com/ru-ru/products/visual-stu.. можно найти Visual Studio 2013 Express. Подбирайте под себя, хотя мне нравится Express 2013 для Windows Desktop. Наверняка у кого то уже стоит Visual Studio, тогда новый устанавливать не обязательно. То что ещё нужен компьютер, клавиатура и мышка желательно надеюсь можно не говорить. : — )
Почему именно C#?

Многие задают этот вопрос. C# — один из самых современных языков программирования. На нём затрачивая минимальное время можно писать полезные программы. Возможности работы с файлами открывают новые возможности вплоть до создания новой системы программирования. А в общем C# — простой и многофункциональный язык программирования.

А теперь давайте перейдём к программированию.

Для начала запускаем Visual Studio. Далее мы с вами создадим консольное приложение. Это самое простое приложение, в смысле, что оно поддерживает только текст, никакой графики. И так. Следуем по инструкции:
Файл (File) —> Создать проект (grete project) —> Консольное приложение (Console Application) Вводим внизу имя и жмём ОК. Должен был появиться код типа:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}

Мы не будем сейчас разбирать его, это станет ясно позже. Важно лишь что появившийся код это уже готовая программа. Только она ничего не делает.
Однако существует своего рода традиция программирования писать «Hello, World» — программу, выводящую на экран фразу «Hello, World».
Мы же с вами отступать от традиций не будем и напишем такую программу. Для этого будем использовать команду Console.WriteLine(SomeString), где SomeString — некоторая строка. Строка задаётся в двойных кавычках «…». Здесь надо сказать что в C# после каждой команды ставится точка с запятой «;». Добавляем команду и получаем код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(«Hello, World»);
}
}
}

Чтобы запустить программу нажимаем наверху кнопку «Запустить» («Run»). Как видим, программа работает, но сразу закрывается, что не даёт увидеть результата. Тогда добавим ожидание нажатия любой клавиши командой Console.ReadKey(). Важно сказать, что C# чувствителен к регистру, то есть «привет» и «ПРИВЕТ» это совсем не одно и тоже. Код должен получатся таким:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(«Hello, World»);
Console.ReadKey();
}
}
}

Такая программа работает корректно. На этом всё. Сами можете попробовать сделать программы, выводящие на экран какие либо слова и тексты.

Теперь мы рассмотрим,
как хранить данные в C#.
————————
В C# имеются переменные. Переменная — именованная область памяти. В переменную данные можно записывать и считывать. Данные, записанные в переменной называются значением переменной.
C# — язык жёсткой типизации. Это значит, что в нём каждая переменная имеет конкретный тип данных. Ниже приведены встроенные типы данных C#.

sbyte: числа от -128 до 127
byte: от 0 до 255
bool: true или false
short: от -32768 до 32767
ushort: от 0 до 65535
int: от -2147483648 до 2147483647
uint: от 0 до 4294967295
long: от -9223372036854775808 до 9223372036854775807
ulong: от 0 до 18446744073709551615
float: Число с плавающей запятой. Область значений не указываю (Самому не известна). Точность 7 разрядов.
double: Число с плавающей запятой. Область значений не указываю (Самому не известна). Точность 16 разрядов.

для того, чтобы использовать переменную, нужно её сначала объявить. Тут скажу, что после символов // идёт комментарий до конца строки. Многострочный комментарий объявляется /* комментарий */:

int a; //объявляем переменную а типа int
a = 5; //записываем в переменную а значение 5
int b, c; //можно объявлять сразу несколько переменных через запятую
bool d; //создаём переменную типа bool
d = true; //записываем в переменную d значение истина
float e = 6.4f; //для записи числа с плавающей точкой типа float нужно после числа добавлять
//суффикс f

При использовании переменной, которой не присвоено значение компилятор выдаст ошибку «Use of unassigned local variable [имя_переменной]»:

int a;
Console.WriteLine(a); // ошибка.

Имя переменной должно отображать суть её значения. Не стоит называть переменные ни о чём не говорящими именами a, b, c, используйте английские слова: высота — height, возраст — age.

НИКОГДА не используйте русские буквы в именах переменных.

Преобразование типов данных.
—————————-
Переменные одного типа могут быть преобразованы к другому типу. Преобразование бывает явным и неявным. Неявное преобразование выполняет компилятор. Пример неявного преобразования:

int a = 35000;
short b = 10;
a = b; //Неявное преобразование возможно, так как int большего размера, чем short.
b = a; //Ошибка. Нельзя неявно преобразовывать типы большего размера в меньшего.

Для явного преобразования непосредственно перед именем переменной в скобках указывается тип, к которому её необходимо преобразовать:

int a = 35000;
short b = 10;
b = (short)a; // На этот раз ошибки не будет. Максимальный размер типа short 32767, из за этого будет потеря данных.

Константы

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

const int month = 12; // Объявляем константу, с фиксированным количеством месяцев.
month = 13; // Ошибка компиляции. Константа неизменяема.

Константы на самом деле бывают двух типов: простые и литералы:

Console.WriteLine(45); //45 всегда есть 45, это константа, а точнее числовой литерал.
Console.WriteLine(«Good»); //А здесь строка «Good» будет являться строчным литералом.

Ключевое слово var

Начиная с версии C# 3.0 в языке появилось новое ключевое слово var (от variable — переменная). С его помощью вам не понадобиться определять тип переменной. Это сделает за вас компилятор. Но банальности компьютера не обойдёшь — всё равно, тип определился сразу и потом его изменить уже нельзя. Пример:

var number = 5; // Переменной автоматически присваивается тип int
number = «SomeText»; // Ошибка, тип int — не строка

Типы данных.
————-
Все типы данных, рассмотреные выше являлись структурными. Ещё существуют ссылочные типы. Базовыми типами ссылочных типов являются object и string.
Object является базовым типом для всех остальных типов данных. String используется для хранения строк. Пример:

string text = «Hello, world!»; // Создание переменной типа string
Console.WriteLine(text); // Использование такой переменной. Выводит на экран «Hello, world!»

Структурные типы хранятся в стеке.

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

Ссылочные данные имеют ссылку в стеке, но хранятся в куче.

Куча — область памяти, выделенная программе для хранения данных. Доступ к куче медленнее, чем к стеку.

Ввод данных

Команда консоли Console.ReadLine() считывает введённую пользователем строку:

string a;
a = Console.ReadLine(); // Данные, введённые с клавиатуры сохраняются в переменную
Console.WriteLine(a); //Выводит введённые с клавиатуры данные.

Теперь мы поговорим об
арифметических и логических операциях,
————————————-
которые являются обязательными в программах (точнее они очень важны и без них НЕЛЬЗЯ написать сложную и полезную программу.)

Все основные операции делятся на 2 типа: унарные и бинарные. Унарные — это те, в которых участвует один операнд, в бинарных операндов 2. (Операнд — какое либо значение, используемое для операторов. Например в записи 2+5 числа 2 и 5 являются операндами) Арифметические операторы:

оператор +: бинарный, оператор сложения
оператор -: бинарный, оператор вычитания
оператор *: бинарный, оператор умножения
оператор /: бинарный, оператор деления
оператор %: бинарный остаток от деления (9%5 = 4, так как 9/5 = 1(ост.4))

Оператор деление имеет важную особенность — при делении целых чисел результат будет целым числом, то есть 9/5=1. Чтобы ответ был в формате float, то есть точным надо добавлять суффикс f: 9/5f = 1.8.

В программировании чтобы повысить приоритет операции также используются скобки: 2+2*2=6, (2+2)*2=8.

Если использовать оператор + для строк, то произойдёт конкатенация. Конкатенация — объединение нескольких объектов (в том числе строк) в один.

Унарные арифметические операторы

Унарных арифметических операторов в C# только два: инкрементация «++» и дискрементация «—«. Инкрементация это увеличение на 1 то есть а++ = а+1, дискрементация это уменьшение на 1.
++++++++++++++++++++++++++++++++++++++++++++++++++++

Возможно у вас возникал вопрос: «Зачем мне вообще эти консольные приложения?»

На него несомненно есть ответ. Во первых зачем тратить время на разработку сложного приложения, если вам нужно, что-бы пользователь вам ответил «да» или «нет». Вы укажете формат и всё нормально. Они поддерживают те-же функции, что и сложные игры, но отсутствует графика. Но её можно заменить и написать примитивную игру уже в консоли (в качестве примера можете скачать по ссылке http://rusfolder.com/42959665 с файлобменника крестики-нолики). Консоль идеально подходит для обучения.

В целом консольные приложения полезны. Главное научиться их использовать!
+++++++++++++++++++++++++++++++++++++++++++++++++++

Поговорим о логических операторах в C#.
—————————————-

Все эти операторы определяют истинность некоторого условия, то есть возвращают true или false в зависимости от условия.

Оператор «НЕ»
Унарный оператор, обозначающийся «!» и возвращающий обратное. А именно:
!true // false
!false // true

Оператор равенства
Бинарный оператор, обозначающийся «==». Проверяет равенство значений. Имеет важные особенности при работе с ссылочными типами данных:
string a = «Hello, world»; // Объявляем переменную ссылочного типа
string b = a, c = a; // Присваиваем её значения ещё в две переменные
string d = b, e = c; //Присваиваем из новых переменных ещё в две
d == e; //false, ссылаются на разные объекты

Оператор !=
Бинарный оператор, обратный оператору сравнения, или оператор «неравно»

Оператор «ИЛИ»
Бинарный оператор, обозначаемый ||, Возвращает ложь, если оба операнда ложны, иначе истину

Оператор «И»
Бинарный оператор, обозначаемый &&, возвращает истину, если оба операнда истинны, иначе ложь

Операторы сравнения
Название обо всём говорит, их список(кроме равно и не равно, о которых сказано выше):

> больше
< меньше >= больше или равно
<= меньше или равно

Задание
Это первое задание, которое вам даётся. здесь задача будет следующая:
с клавиатуры вводится число, нажимается Enter и вводится ещё одно число. Числа — длины катетов прямоугольного треугольника. После этого выдаётся два числа. Первое — длина гипотенузы треугольника, второе — его площадь. Используйте теорему Пифагора. В помощь понадобится функция Convert.ToInt32([какая-то_строка,_преобразуемая к числу]).
Высылаем свои коды с первым словом на отдельной строке «Треугольники» (Чтобы было понятно, что это именно к этому заданию). Ищем лучшего. Этот победитель своеобразного конкурса будет объявлен (Можно будет делать репосты и т.д. ил проста для результата). Оценивается количество кода и вообще работоспособность программы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

методические материалы по информатике