Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Пишем первую программу на Си-шарп↑ Стр 1 из 4Следующая ⇒ Содержание книги
Поиск на нашем сайте
Урок 1 Пишем первую программу на Си-шарп В программирование есть такая традиция – изучение любого языка начинается с написание программы, которая выводит на экран сообщение «Hello, World!». Мы не будем отступать от традиций. Запускаем Microsoft Visual C# 2013 Express -> Меню -> Файл -> Новый проект -> В списке выбираем Console Application (Консольное приложение) -> называем проект и жмем ОК. В итоге будет создан проект с одним файлом с расширением *.cs в котором мы и будем писать нашу программу. В этом файле уже есть несколько шаблонных строк кода.
using System; namespace HelloWorld
using System; namespace HelloWorld
На этом первый урок окончен, вперед ко второму! PS. Подписывайтесь на обновления блога в форме ниже, и будьте в курсе всех обновлений!
Урок 2 Переменные,типы данных, константы в Си-шарп Переменная – это именованная область памяти. В переменную можно записывать данные и считывать. Данные, записанные в переменной, называются значением переменной. Си-шарп – язык жесткой типизации. Каждая переменная должна быть определенного типа данных. Ниже, в таблице наведены встроенные типы данных языка Си-шарп:
*Здесь нет ошибки. Оперативная память - массив байтов, где каждый байт имеет уникальный адрес. Для bool достаточно одного бита: 0 - false, 1 - true, но минимальная адресуемая сущность - байт, поэтому ненулевой байт считается за истину, нулевой - ложью. Для того, чтобы использовать переменную, ее сначала нужно объявить:
static void Main(string[] args)
static void Main(string[] args)
Имя переменной должно отображать суть данных, которые она отображает. Не стоит называть переменные ни о чем не говорящими именами типа a, b, c. Используйте английские слова. Высота – height, возраст – age и т. д. НИКОГДА не используйте кириллические символы в именах переменных. Преобразование встроенных типов данных Переменные одного типа можно преобразовывать в переменные другого типа. Преобразование бывает явным и неявным. Неявное преобразование выполняет компилятор. Пример неявного преобразования:
static void Main(string[] args)
Пример явного преобразования:
static void Main(string[] args)
Константа – это переменная, значение которой нельзя изменить. Константы используются для гарантирования того, что данные в этой переменной не изменятся.
static void Main(string[] args)
static void Main(string[] args)
static void Main(string[] args)
static void Main(string[] args)
Ключевое слово var Начиная с версии C# 3.0 в язык было добавлено ключевое слово var, которое позволяет создавать переменные без явного указания типа данных. Тип данных такой переменной определяет компилятор по контексту инициализации.
static void Main(string[] args)
static void Main(string[] args)
static void Main(string[] args)
Ключевое слово var имеет ограничения по его использованию - var не может быть в качестве: - поля класса Нововведение var является достаточно противоречивым среди разработчиков на C#, некоторые используют его где только возможно, другие его избегают (код становится плохо читаемым). Ссылочные типы Все типы данных, о которых мы говорили выше, являются структурными. Также существуют ссылочные типы. Из базовых типов к ссылочным относятся object и string. Пример использования типа string.
static void Main(string[] args)
Стек — это структура данных, которая сохраняет элементы по принципу «последним пришёл — первым вышел». Примером из жизни служит стопка тарелок. Скорость работы со стеком гораздо выше, чем с оперативной памятью, следовательно, использование стека повышает скорость работы программы. Ссылочные типы хранятся в куче. Куча — это область динамической памяти, которая выделяется приложению для хранения данных (например объектов). Доступ к данным в куче осуществляется медленнее, чем к стеку. Переменные ссылочных типов хранят ссылки на данные. К ссылочным типам относятся классы, интерфейсы, делегаты и массивы. Больше об этом читайте в уроке Ссылочные типы и типы значений в Си-шарп. Домашнее задание Создайте новый проект или откройте предыдущий, объявите несколько переменных различных типов, примените явное и неявное преобразование. Создайте константную переменную, попробуйте изменить ее значение.
Урок 3 Урок 4 Оператор «if-else» Данный оператор имеет следующую структуру:
if ([условное выражение])
Часть else не является обязательной и может отсутствовать. Пример использования оператора «if-else» в программе, которая проверяет вводимое число на чётность:
static void Main(string[] args)
Если после if или else необходимо выполнить лишь одну команду, фигурные скобки можно опускать: if ([условное выражение]) Оператор if может иметь несколько условий: if ([логическое выражение1]) Пример программы, которая определяет, какое из двух введенных чисел больше:
static void Main(string[] args) Console.ReadKey();
Пример программы которая дает совет, что делать, в зависимости от температуры на дворе:
static void Main(string[] args)
В некоторых случаях удобно использовать условный оператор «switch» вместо «if-else». Он имеет следующую структуру: switch (выражение) Выражение сравнивается последовательно со значениями. Если выражение равно значению – выполняется соответственный блок кода и при достижении ключевого слова break оператор switch заканчивает работу. Если выражение не будет соответствовать ни одному значению, тогда выполнится блок после default. Пример программы с использованием switch, которая выводит на экран название дня недели соответственно вводимому порядковому номер дня:
static void Main(string[] args)
Этот оператор используется для сокращения объема кода. Им можно заменять простые по сложности операторы if-else. Тернарный оператор имеет такую структуру: логическое выражение? выражение1: выражение2 Сначала вычисляется логическое выражение. Если оно истинно, то вычисляется выражение1, в противном случае - вычисляется выражение2. Пример использования тернарного оператора «?:» в той же программе для проверки числа на чётность:
static void Main(string[] args)
static void Main(string[] args)
1) С клавиатуры вводятся два числа – количество забитых голов хозяевами и гостями в футбольном матче. Вывести на экран результат игры – победили хозяева/гости/ничья. 2) Напишите программу, которая будет проверять число на кратность 3-м и 7-ми (это числа 21, 42, 63…). Вывести на экран соответствующее сообщение. Урок 5 Одномерные массивы Одномерный массив по-другому еще называется вектором, и для доступа к его элементам используется только один индекс. Выглядит вектор примерно так: В Си-шарп объявление массива имеет такую структуру: тип[] имя_массива = new тип[размер массива]; Пример:
int[] array = new int[5]; // создаем массив целых чисел
string[] seasons = {"зима","весна","лето","осень"}; //корректно
static void Main(string[] args)
Многомерные массивы Одним из случаев многомерного массива служит двумерный массив (матрица). В матрице для доступа к элементам необходимо использовать два индекса. Количеством индексов, используемых для доступа к элементам массива называется размерность массива.
int[,] numbers1 = new int[2, 2]; // объявление двумерного массива
Многомерные массивы используются гораздо реже одномерных. Приведу немного бредовый пример данных, которые можно было бы представить в качестве двумерного массива: Есть матрица 7*4. Строки, которых семь, будут соответствовать дням недели, а 4 столбца - времени дня (00:00, 06:00, 12:00, 18:00). В качестве данных будет температура воздуха. Значение температуры с координатами 2,3 будет соответствовать температуре в среду в 18:00. На практике, конечно, такие данные представлялись бы в другом виде, но для примера подойдет. Ступенчатые (jagged) массивы в Си-шарп Ступенчатый (jagged) массив – это массив массивов. В нем длина каждого массива может быть разной. Примерно это выглядит так: Пример объявления ступенчатого массива:
static void Main(string[] args)
array [0][1] = 5;
Все массивы являются объектами и у них есть некоторые свойства.
static void Main(string[] args)
Класс List служит для работы со списками, о чем и говорит его название. Это такой «навороченный» массив. Главное отличие от простого массива в том, что он динамический – вы можете вставлять и удалять элементы в любое время, в то время как в простом массиве размер указывается при создании и сделать его больше или меньше нельзя.
static void Main(string[] args)
Для добавления элементов в список в нем реализовано несколько методов:
static void Main(string[] args)
Домашнее задание Работать с массивами без использования циклов в большинстве случаев нет смысла. О циклах мы поговорим в следующем уроке. А так, пока можете создать разные типы массивов, записать что-то, вывести на экран некоторые элементы массива, попробуйте получить доступ до элемента вне рамок массива. Создайте список, попробуйте добавить элемент в конец списка, вставить элемент по индексу и так далее.
Урок 6 Цикл for Этот цикл используется тогда, когда наперед известно, сколько повторений нужно сделать. Он имеет следующую структуру:
for (инициализация счетчика; условие продолжения; итерация)
Пример программы, которая выводит на экран числа 0, 1, 2, 3, 4:
Пример программы, которая находит и выводит на экран сумму элементов массива:
static void Main(string[] args)
for (int i = 5; i > 0; i--) //выполнится 5 раз
for (int i = 0; i <= 50; i+=2) //выполнится 26 раз
Слово while переводится, как «пока», что хорошо его характеризует. Он продолжает выполнятся до тех пор, пока «истинно» некоторое условие. Он имеет такую структуру:
while (условие продолжения)
Пример той же программы, которая выводит на экран числа 0, 1, 2, 3, 4:
int i = 0;
while (true)
Этот тот же цикл while, только здесь сначала выполняется блок кода, а уже потом идет проверка условия. Это гарантирует хотя бы один проход цикла.
do
Пример программы, которая не завершит работу, пока с клавиатуры не введут число 5:
static void Main(string[] args)
Оператор break Из любого цикла можно досрочно выйти, используя оператор break. Использовать данный оператор есть смысл после удовлетворения некоторого условия, иначе цикл завершится на первой итерации. Пример программы, которая проверяет, есть ли в массиве число кратное 13-ти. Найдя такое число, нет смысла дальше проверять остальные элементы массива, и здесь мы используем оператор break:
static void Main(string[] args)
Данный оператор позволяет перейти к следующей итерации, не завершив до конца текущую. Пример программы, которая находит сумму нечетных элементов массива:
static void Main(string[] args)
Домашнее задание Задача 1. Вывести на экран 20 элементов последовательности 1, 4, 7, 10, 13… Урок 7 Урок 8 Пример функции, которая не возвращает значение Напишем простую функцию, которая будет заменять в массиве строк указанное имя на другое. Данная функция будет принимать три аргумента: массив строк, имя, которое необходимо заменить и новое имя. Так как функция не будет возвращать значение, указываем тип void перед именем функции.
public static void ReplaceName(string[] names, string name, string newName)
Функция написана, и теперь используем ее:
class Program
Напишем функцию, которая будет находить максимальное число в массиве. Аргумент у этой функции будет один – массив целых чисел. Тип возвращаемого значения – целое число int.
public static int GetMax(int[] array)
Оператор return должен быть обязательно в функции, которая возвращает значение. Используем нашу функцию:
class Program
Когда встречается этот оператор, происходит выход из функции и код ниже (если он есть) выполняться не будет (например, в функцию передан такой аргумент, при котором нет смысла выполнять функцию). Он похож на оператор break, который используется для выхода из циклов. Этот оператор также можно использовать и в функциях, которые не возвращают значение. Оператор return допустимо использовать несколько раз в функции, но этого делать не рекомендуется. Домашнее задание Задача 1. Напишите функцию, которая будет менять в массиве целых чисел все элементы, которые равны указанному значению (аргумент) на противоположное значение по знаку. Например, все элементы массива которые равны 5, будут меняться на -5. Задача 2. Напишите функцию, которая будет находить минимальное число из трех. Задача 3. Напишите функцию, которая будет возвращать указанный элемент ряда Фибоначчи. Ряд Фибоначчи – это ряд, в котором каждый следующий элемент равен сумме двух предыдущих. 1 1 2 3 5 8 13 21… Функция принимает порядковый номер элемента, и возвращает соответствующий элемент. Урок 9 Спецсимволы Символ "\" является служебным, поэтому, чтобы использовать символ обратного слэша необходимо указывать его дважды "\\". Символ табуляции – "\t" Урок 10 Несколько блоков catch Одному блоку try может соответствовать несколько блоков catch:
try
Блок finally Оператор try-catch также может содержать блок finally. Особенность блока finally в том, что код внутри этого блока выполнится в любом случае, в независимости от того, было ли исключение или нет.
try
Обычно, он используется для освобождения ресурсов. Классическим примером использования блока finally является закрытие файла. Зачем блок finally? Очень часто можно услышать вопрос, для чего нужен этот блок? Ведь, кажется, можно освободить ресурсы просто после оператора try-catch, без использования finally. А ответ очень прост. Finally гарантирует выполнение кода, несмотря ни на что. Даже если в блоках try или catch будет происходить выход из метода с помощью оператора return – finally выполнится. Операторы try-catch также могут быть вложенными. Внутри блока try либо catch может быть еще один try-catch. Обработка исключений, в первую очередь, нам понадобится при работе с файлами. Работе с файлами будет посвящен следующий урок. Домашнее задание Есть массив целых чисел размером 10. С клавиатуры вводится два числа - порядковые номера элементов массива, которые необходимо суммировать. Например, если ввели 3 и 5 - суммируются 3-й и 5-й элементы. Нужно предусмотреть случаи, когда были введены не числа, и когда одно из чисел, или оба больше размера массива.
Урок 11 Чтение из файла Для чтения данных из потока нам понадобится класс StreamReader. В нем реализовано множество методов для удобного считывания данных. Ниже приведена программа, которая выводит содержимое файла на экран:
static void Main(string[] args)
Свойство EndOfStream указывает, находится ли текущая позиция в потоке в конце потока (достигнут ли конец файла). Возвращает true или false. Запись в файл Для записи данных в поток используется класс StreamWriter. Пример записи в файл:
static void Main(string[] args)
Нужно всегда помнить, что после работы с потоком, его нужно закрыть (освободить ресурсы), использовав метод Close(). Кодировка, в которой будут считываться/записываться данные указывается при создании StreamReader/StreamWriter:
static void Main(string[] args)
static void Main(string[] args)
С помощью статического метода CreateDirectory() класса Directory:
static void Main(string[] args)
Для удаления папок используется метод Delete():
static void Main(string[] args)
static void Main(string[] args)
Домашнее задание Задача 1. Создайте файл numbers.txt и запишите в него натуральные числа от 1 до 500 через запятую. Задача 2. Дан массив строк: "red", "green", "black", "white", "blue". Запишите в файл элементы массива построчно (каждый элемент в новой строке). Задача 3. Возьмите любой текстовый файл, и найдите в нем размер самой длинной строки.
Урок 12 Все так запутано Конечно, для тех, кто совсем не знаком с ООП, все это может показаться сложным, и сразу понять, что к чему, будет сложно. Но с дальнейшими уроками подход ООП для вас будет проясняться, и станет понятно, что всё очень логично. Урок 1 Пишем первую программу на Си-шарп В программирование есть такая традиция – изучение любого языка начинается с написание программы, которая выводит на экран сообщение «Hello, World!». Мы не будем отступать от традиций. Запускаем Microsoft Visual C# 2013 Express -> Меню -> Файл -> Новый проект -> В списке выбираем Console Application (Консольное приложение) -> называем проект и жмем ОК. В итоге будет создан проект с одним файлом с расширением *.cs в котором мы и будем писать нашу программу. В этом файле уже есть несколько шаблонных строк кода.
using System; namespace HelloWorld
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 2571; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.140.198.3 (0.01 с.) |