Программирование
Основы языка, переменные, логика, циклы
Схема работы .Net и C#
Что такое язык программирования? Это язык, который понимает компьютер. (ваш Капитан Очевидность ) Но на самом деле компьютер понимает только нули и единицы. Так что любой современный язык программирования на самом деле промежуточен - после того как вы напишете программу, он переводится на настоящий язык компьютера - компилируется. Таким образом сначала мы пишем программу на языке программирования в обычном текстовом файле, потом компиллируем в двоичный язык компьютера.
С# в этом плане еще сложней - сначала ваша программа на C# переводится в специальный промежуточный язык - байт-код , после чего уже этот промежуточный язык переводится в двоичный код. Промежуточный язык рассчитан на специальный набор промежуточных программ, которые надо установить на компьютер перед запуском программы на C# - . Net Framework .
Таким образом мы:
1. Пишем код на языке C# в обычный текстовый файл
2. Компилируем программу в байт-код с помощью компилятора C# (1 и 2 можно делать без Visual Studio, например набрать исходный текст в Блокноте и скомпилировать через командную строку)
3. Запускаем полученную программу на компьютере, где уже установлен .Net Framework соответствующей версии), который переводит программу в двоичный код и собственно запускает, давая доступ к компьютеру. (соответственно на компьютере без Net Framework программа не запустится вообще).
Одноместные операции
- изменение знака операнда;
+ ненужная операция;
++ увеличение на единицу значения операнда. Две формы:
префиксная форма обозначает увеличение значения операнда на единицу до его использования.
постфиксная форма обозначает увеличение значения операнда на единицу после его использования.
-- уменьшение на единицу значения операнда.
Также имеет префиксную и постфиксную формы записи.
Одноместные операции
- изменение знака операнда;
+ ненужная операция;
++ увеличение на единицу значения операнда. Две формы:
префиксная форма обозначает увеличение значения операнда на единицу до его использования. Например, пусть целая переменная i равна 3, тогда выражение ++i означает, что переменная i примет значение 4 и это значение будет использовано в вычислениях;
постфиксная форма обозначает увеличение значения операнда на единицу после его использования, т.е. i++ означает увеличение переменной i на единицу после вычисления выражения, в котором встретилась такая конструкция;
Двуместные операции
Обозна-чение
Назначение арифметических операций
+
-
Сложение операндов;
*
Вычитание операндов;
/
Умножение операндов;
Деление операндов. Результат деления целочисленных операндов усекается до целого (дробная часть отбрасывается)
Получение остатка от деления целочисленных операндов. Для положительных операндов остаток неотрицательный, например 11%3 равно 2. Если операнды отрицательные, то знак остатка зависит от варианта компилятора (обычно равен знаку делимого).
%
Старшинство операций:
- Умножение и деление в порядке перечисления слева направо;
- Сложение и вычитание в порядке перечисления слева направо;
- Изменение порядка с помощью круглых скобок ( ) .
Программа «Привет мир»
1. Пойдем в меню File-New Project (Файл - Новый проект) или сразу кликнем на Create New Project
2. Выберем шаблон Console Application (Консольное приложение)
3. Выберем каталог на диске, где будет расположен наш проект
4. Добавим две строчки в текст программы
4. Нажмем F5 (можно выбрать в меню Debug - Start Debugging ) и увидим черное окошко с нашим Привет мир, которое закроется после нажатия Enter.
В самом простом случае (это про нас) компьютер последовательно выполняет команды программиста - одну за другой:
System.Console.WriteLine("Привет мир!"); - выводит в консоль (то самое черное окно) строку "Привет мир""
System.Console.ReadLine(); - читает строку, которую мы вводим (ввод завершается нажатием Enter) и переходит к следующей команде.
Так как следующей команды нет, программа завершает работу и закрывает окно.
Простые переменные. Типы данных
- int , целое число от -2,147,483,648 до 2,147,483,647 - string , строка - double , число с дробной частью и переменным количеством знаков после запятой, например 1.38 принимает значения от -1,79769313486232 в 308 степени до 1,79769313486232 в 308 степени. Проще говоря очень большие.
Переменную можно рассматривать как ящик или сумку для данных. Однажды сделав такой ящик мы можем класть в него разные вещи. Само собой на нижнем уровне абсолютно все данные хранятся в виде нулей и единиц, но языки высокого уровня скрывают от нас ненужные сложности. Под каждый тип данных - строку, число, картинку - нужен ящик соответствующего типа, вы ведь не будете складывать деньги, спички, бензин и котят в одну и ту же коробку. Так что у каждой переменной есть тип, который надо указать при ее создании. Тип одновременно описывает и размер переменной - сколько данных в нее можно сложить.
Простые переменные. Типы данных
- decimal , число с дробной частью и повышенной точностью рассчетов, специально для финансовых операций - в миллионных и более мелких долях float могут накапливаться мелкие ошибки
Простые переменные. Типы данных
- bool - специальный тип для передачи данных об истинности или ложности, принимает только два значения - true или false. В старых языках вместо него использовали int с значениями 1 и 0, но это было менее наглядно и приводило к ошибкам.
Преобразование типов
- автоматическое преобразование типов. Осуществляется только при переходе от младшего типа к старшему. Перечисление типов в порядке их «повышения»: char , short, int, long int, float, double, long double .
- явное преобразование типов
double d;
int i,k;
d= (double) i/ (double) k;
Пример
Здесь мы объявляем две переменные-строки, оставляем их пока пустыми, объявляем набор переменных с данными о людях, склеиваем из них одну большую строку и заносим в первую переменную-строку, заносим в тот же самый набор переменных другие данные, склеиваем все вместе и заносим в другую строку и только после этого выводим две финальные строки на экран.
Стоит обратить внимание на склеивание нескольких строк в одну с помощью +
Арифметические операции
Почему произошло столь странное недоразумение с дробным числом во второй раз? Все дело в том, что внутри одной строки мы выполнили сразу несколько операций. А в каком порядке они выполняются? В порядке приоритета. И у оператора присваивания =, который записывает данные в переменную, этот приоритет один из самых низких
Сначала выполнилось деление двух целочисленных переменных a и b и только после этого целый результат деления записался в дробную переменную doubleResult.
- величина слева больше и = - меньше либо равно и больше либо равно == - просто равно, обратите внимание, что равенство очень похоже на оператор присваивания, который записывает значение в переменную = - не путайте их, равенство - это двойное "равно" != - не равно Компьютерная логика проста - высказывание или результат сравнения может быть либо истиной либо ложью, либо true либо flase, либо уничтожать человечество либо нет. Третьего компьютеру не дано. Для хранения таких данных существует специальный тип данных - логический - bool - который может принимать только два значения (догадываетесь какие?). Если вы хотите чего-то посложней и похардкорней - то все вместе это булева алгебра , изучайте и просвещайтесь. Нам важно понять, что любая операция сравнения, на пример 2 " width="640"
Управление и логика
- - величина слева меньше
- - величина слева больше
- и = - меньше либо равно и больше либо равно
- == - просто равно, обратите внимание, что равенство очень похоже на оператор присваивания, который записывает значение в переменную = - не путайте их, равенство - это двойное "равно"
- != - не равно
Компьютерная логика проста - высказывание или результат сравнения может быть либо истиной либо ложью, либо true либо flase, либо уничтожать человечество либо нет. Третьего компьютеру не дано. Для хранения таких данных существует специальный тип данных - логический - bool - который может принимать только два значения (догадываетесь какие?). Если вы хотите чего-то посложней и похардкорней - то все вместе это булева алгебра , изучайте и просвещайтесь.
Нам важно понять, что любая операция сравнения, на пример 2
Сделать поведение программы еще более сложным нам помогут специальные логические операторы, которые сравнивают две логические величины (каждая из которых может быть либо истиной либо ложью)
- логическое И - оператор && - вовращает истину только в том случае, если и справа и слева от него будет истина, во всех остальных случаях будет ложь
- логическое ИЛИ - оператор || - возвращает истину если хоть одна из двух величин истинна. Ложь он вернет только если обе логические величины ложны
Ну например - если есть армия И есть энергия - напасть на человечество. При использовании оператора && нападения не произойдет если нет энергии или нет армии. А вот при использовании || глупая железяка попытается напасть даже если у нее нету армии, или эта армия лежит мертвой грудой без топлива и электричества.
Комментарии
До этого момента наши тестовые программки были просты до идиотизма. Теперь они начнут усложняться. Настоящие программы бывают сложными. Очень сложным. На самом деле самая трудная часть работы программиста - это не написать новую программу, а понять уже написанную, найти в ней ошибки, исправить их или что-то поменять, не сделав новых (!). Понимание программы очень облегчают комментарии - заметки прямо в коде, которые игнорирует компьютер. Они только для высшего разума - людей. Кроме того их часто используют для того, чтобы временно отключить часть программы не удаляя уже написанного кода - так и говорят, закомментировать .
Упражнение №1
Дано: а, b — стороны прямоугольника. Вычислить периметр и площадь прямоугольника. Если a = 3, b = 7.
Решение
Циклы
Наша программа уже может что-то решать... но как-то убого она это делает, каждый чих надо прописывать вручную. А ведь настоящие роботы славятся своей способностью повторять любые действия неограниченное количество раз не зная усталости и сомнений! Делают они это с помощью циклов - специальных конструкций для программирования повторяющихся действий.
Самый простой цикл просто заставляет компьютер повторять какое-то действие, пока не выполнится какое-то логическое (см. выше!) условие. В C# такой цикл называется while
Обратите внимание: если условие не выполнится никогда, компьютер будет выполнять заданное действие вечно - это называется зацикливанием.
Можете проверить это утверждение закомментировав строку counter++; - программа будет работать бесконечно, так как counter никогда не будет равен 7. Придется прекратить ее работу вручную, закрыв окно.
Оператор FOR
Упражнение №2. Написать программу - которая выведет на на экран числа от 1 до 100, вместо кратных 3 выведет Fizz, вместо кратных 5 выведет Buzz, вместо кратных и трем и пяти FizzBuzz
Решение
Создание WindowsFormsApplication
Начальное окно
WindowsFormsApplication
Панель элементов
Основные элементы
- Label - Отображает текст, который не может быть изменена пользователем.
- Button - Описание стандартной кнопки, пользователь может щелкнуть для выполнения действий.
- TextBox - Позволяет вводить изменяемый текст от пользователя.
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Свойства элементов
Программная настройка свойств
Программная настройка свойств
Упражнение 3. Даны три точки на плоскости, заданные своими координатами. Определить ближайшие из них.
Оформление текста
Цвет текста
Поле ввода текста
Упражнение 4
Дано: а, b — стороны прямоугольника. Вычислить периметр и площадь прямоугольника.
Вариант
Задача
1
Даны три точки на плоскости. Определить, можно ли построить из них прямоугольный треугольник.
2
Составить программу для определения подобия двух треугольников. Треугольники задаются координатами своих вершин.
3
Даны два треугольника, заданные координатами своих вершин. Определите, какой треугольник имеет большую высоту.
4
Определить, лежит ли точка, заданная своими координатами на плоскости, вне области пересечения парабол y=2-ax 2 и y=2ax 2 +b.
5
Определить, можно ли построить квадрат из четырех точек, заданных своими координатами на плоскости.
6
Даны три точки на плоскости, заданные своими координатами. Определить ближайшие из них.
7
8
Определить, пройдет ли кирпич в квадратное отверстие с заданной стороной.
9
Даны три точки на плоскости, заданные своими координатами. Определить наиболее удаленные из них.
10
Определить, можно ли построить ромб из точек, заданных своими координатами на плоскости.
Определить, поместится ли круг заданного радиуса в прямоугольник, заданный координатами своих вершин.
Вариант 1


Основы языка программирования C# (2.09 MB)

