Скачать презентацию Основы программирования на С доцент кафедры Программирования и Скачать презентацию Основы программирования на С доцент кафедры Программирования и

Lektsia_1_Osnovy_programmirovania_na_S.pptx

  • Количество слайдов: 44

Основы программирования на С# доцент кафедры Программирования и компьютерной техники Киевского национального университета имени Основы программирования на С# доцент кафедры Программирования и компьютерной техники Киевского национального университета имени Тараса Шевченко Бычков Алексей Сергеевич

Содержание История. Архитектура компьютера. Алфавит языка. Изучение синтаксиса. Функция печати. Простые типы переменных. Основные Содержание История. Архитектура компьютера. Алфавит языка. Изучение синтаксиса. Функция печати. Простые типы переменных. Основные операции. Примеры решения задач.

Цели Ø Узнать: что такое компьютер, программа Ø Написать первую программу Ø Научиться писать Цели Ø Узнать: что такое компьютер, программа Ø Написать первую программу Ø Научиться писать простые программы (очень простые)

Что такое компьютер? Вкратце: компьютер — устройство для программируемой обработки информации. А это значит… Что такое компьютер? Вкратце: компьютер — устройство для программируемой обработки информации. А это значит… Компьютер может управлять доменной печью. А может помогать печатать тексты. И то, и другое — обработка информации. Чтобы компьютер работал, в него надо загрузить задание по обработке информации, так называемую программу. И наша задача — научиться эти программы писать.

Что такое компьютер? Из чего компьютер состоит. Память, в которой компьютер держит программу, по Что такое компьютер? Из чего компьютер состоит. Память, в которой компьютер держит программу, по которой работает, и данные, которые обрабатывает. Арифметико-логическое устройство. Состоит из небольшого количества памяти (т. н. регистров процессора) и логических схем, которые по команде извне соединяют регистры друг с другом. Например, соединили два регистра схемой суммирования — получили сумму двух чисел. Устройство управления, которое загружает из памяти команды и исполняет их на арифметико-логическом устройстве. Устройства ввода-вывода.

Что такое компьютер? арифметико-логическое устройство + устройство управления = центральный процессор. Что такое компьютер? арифметико-логическое устройство + устройство управления = центральный процессор.

Архитектура компьютера ГАРВАРДСКАЯ АРХИТЕКТУРА Архитектура компьютера ГАРВАРДСКАЯ АРХИТЕКТУРА

ГАРВАРДСКАЯ АРХИТЕКТУРА Применяется в основном в специальных компьютерах и микроконтроллерах. Компьютеры гарвардской архитектуры работают ГАРВАРДСКАЯ АРХИТЕКТУРА Применяется в основном в специальных компьютерах и микроконтроллерах. Компьютеры гарвардской архитектуры работают в ваших флэшках, клавиатурах, модемах. Два запоминающих устройства — выше скорость (память намного медленнее арифметико-логического устройства). Крайне сложно испортить программу по ошибке программиста. Программная память может быть постоянная, а память данных — оперативная. В таком случае гарвардской ЭВМ вообще не нужна начальная загрузка.

АРХИТЕКТУРА ФОН НЕЙМАНА АРХИТЕКТУРА ФОН НЕЙМАНА

АРХИТЕКТУРА ФОН НЕЙМАНА Применяется в компьютерах общего назначения. Это ваши настольные компьютеры, ноутбуки, телефоны, АРХИТЕКТУРА ФОН НЕЙМАНА Применяется в компьютерах общего назначения. Это ваши настольные компьютеры, ноутбуки, телефоны, планшеты, маршрутизаторы. Общая память для программ и данных => возможны сложные операционные системы наподобие Windows и Linux, загружающие программы в память и выгружающие их. Для прикладного программиста разница между этими архитектурами невелика. И на тех, и на других можно программировать на языке С#.

Первая программа на С# Я предлагаю Вам сразу приступить к программированию. Но для начала Первая программа на С# Я предлагаю Вам сразу приступить к программированию. Но для начала пусть нам немного подсказывает среда Microsoft Visual Studio Express 2013.

Первая программа на С# Первая программа на С#

Первая программа на С 3 Компьютер работает под управлением программы. Программы предназначены для решения Первая программа на С 3 Компьютер работает под управлением программы. Программы предназначены для решения наших задач. Т. е. нам необходимо разработать некое решение – solution. Для написания программы в Microsoft Visual Studio необходимо выполнить следующее:

Первая программа на С# Первая программа на С#

Первая программа на С# Первая программа на С#

Первая программа на С# Первая программа на С#

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

Первая программа на С# Первая программа на С#

Первая программа на С# - предложенная MS VS заготовка программы, это уже готовое приложение, Первая программа на С# - предложенная MS VS заготовка программы, это уже готовое приложение, которое можно запустить, нажав на кнопку «Запуск» . Запустится наша первая программа в окне консольного приложения (быстро промелькнет черный экран). Нам надо его остановить. Для этого введем несколько дополнительных операторов в программу. - каждая программа – это набор операторов (команд, инструкций). Напишем парочку:

Первая программа на С# - предложенная MS VS заготовка программы, это уже готовое приложение, Первая программа на С# - предложенная MS VS заготовка программы, это уже готовое приложение, которое можно запустить, нажав на кнопку «Запуск» . Запустится наша первая программа в окне консольного приложения (быстро промелькнет черный экран). Нам надо его остановить. Для этого введем несколько дополнительных операторов в программу. - каждая программа – это набор операторов (команд, инструкций). Напишем парочку:

Первая программа на С# Первая программа на С#

Первая программа на С# Откуда она взялось и почему не пропало черное окно? Ответ Первая программа на С# Откуда она взялось и почему не пропало черное окно? Ответ на первый вопрос дает использование оператора Console. Write. Line("I will be a programmer"); Ответ на второй Console. Read. Key(); Слово Console говорит, что мы работаем с консолью; слово Write. Line – что программа должна распечатать текст, который находится в круглых скобках. Оператор Console. Read. Key(); ожидает нажатия клавиши пользователем. После нажатия любой клавиши - приложение закрывается.

Первая программа на С# Console – имя стандартного класса из пространства имен System, содержащего Первая программа на С# Console – имя стандартного класса из пространства имен System, содержащего методы для работы с консолью. Write. Line(“текст”) – метод класса Console, выводящий на экран заданный в кавычках текст. Read. Key() метод класса Console, ожидающий нажатия произвольной клавиши клавиатуры.

Первая программа на С# Все программы на языке C# создаются внутри классов. Что такое Первая программа на С# Все программы на языке C# создаются внутри классов. Что такое класс? Окружающий нас мир разбит на группы объектов: животные и растения, студенты и преподаватели, игроки и тренеры и т. д. Класс – это «абстрактный» тип данных. С его помощью описываются характеристики, свойства и возможные действия выделенной группы объектов. Класс дает общее описание объектов, указывает «на что они похожи» .

Первая программа на С# Класс может описывать человека, студента, автомобиль и т. д. Описав Первая программа на С# Класс может описывать человека, студента, автомобиль и т. д. Описав класс, мы можем создать его экземпляр – объект. Объект – это уже конкретный представитель класса. Пример. Распишем классы человек и студент. Класс Человек имеет фиксированные поля описания: Фамилия, Имя, Отчество, Рост, Вес, Дата рождения; свойства: Возраст. Класс Студент имеет фиксированные поля описания: Фамилия, Имя, Отчество, Рост, Вес, Дата рождения, Факультет, Группа, Курс; свойства: может не иметь. Видим, что некоторые поля повторяются.

Первая программа на С# Описание класса имеет вид: class имя_класса { //тело класса, его Первая программа на С# Описание класса имеет вид: class имя_класса { //тело класса, его описание, из чего состоит } Напишем и разберем программу на С# детальнее.

namespace First. Program /* Пространства имен позволяют группировать проекты, содержащие большое число классов, * namespace First. Program /* Пространства имен позволяют группировать проекты, содержащие большое число классов, * объединяя в одну группу близкие классы. Если над проектом работает несколько исполнителей, то, * как правило, каждый из них создает свое пространство имен. * Это дает возможность давать классам имена, не задумываясь об их уникальности. */ { ///

/// главный класс программы, такой класс может быть только один. /// class Program { /// /// главная точка входа в программу; статическая функция (метод) Main /// /// static void Main(string[] args) { Console. Write. Line("I will be a programmer"); // этот оператор напечататет фразу I will be a programmer Console. Read. Key(); // этот оператор ожидает, когда будет нажата любая клавиша клавиатуры. После нажатия консоль закрывается. } } }

Переменные. Переменная – это объект программы. Пусть даже такой сложный как экземпляр класса. В Переменные. Переменная – это объект программы. Пусть даже такой сложный как экземпляр класса. В переменную можно записывать данные и считывать. Данные, записанные в переменной, называются значением переменной. Эти данные хранятся в памяти компьютера. Собственно говоря, при обращении в программе к переменной, происходит обращение (по адресу) к некоторому участку памяти, в котором хранится ее значение. С# – язык жесткой типизации. Каждая переменная должна быть определенного типа данных. Т. е. для каждого объекта должен быть задан класс. Все типы языка C# делятся на встроенные и определенные пользователем. Типы данных разделяются также на статические и динамические. Тип данных определяет: • внутреннее представление данных в памяти компьютера • множество значений, которые могут принимать величины этого типа • операции и функции, которые можно применять к величинам этого типа.

Для того, чтобы использовать переменную, ее сначала нужно объявить: static void Main(string[] args) { Для того, чтобы использовать переменную, ее сначала нужно объявить: static void Main(string[] args) { int a; // объявляем переменную a типа int a = 5; // записываем в переменную a число 5 int b, c; // объявить можно сразу несколько переменных через запятую bool d; // объявляем переменную d типа bool d = true; // записываем в переменную d значение true (истинна) long e = 10; // при объявлении переменной можно сразу же задавать ей значение, это называется инициализацией float f = 5. 5 f; // чтобы записать число с плавающей точкой типа float, нужно после значения добавлять суффикс f. char g = 'g'; // объявление символьной переменой g с ее инициализацией значением символа 'g' }

При использовании переменной, в которую не было записано значение, компилятор выдаст ошибку При использовании переменной, в которую не было записано значение, компилятор выдаст ошибку "Use of unassigned local variable [variable. Name]" static void Main(string[] args) { int a; Console. Write. Line(a); //ошибка }

Логический тип Имя типа bool Системный тип System. Boolean Значения true, false Размер 8 Логический тип Имя типа bool Системный тип System. Boolean Значения true, false Размер 8 бит Арифметические целочисленные типы Имя типа Системный тип Диапазон Размер sbyte System. SByte -128 — 127 Знаковое, 8 Бит byte System. Byte 0 — 255 Беззнаковое, 8 Бит short System. Int 16 -32768 — 32767 Знаковое, 16 Бит ushort System. UInt 16 0 — 65535 Беззнаковое, 16 Бит int System. Int 32 ≈(-2*109 — 2*109) Знаковое, 32 Бит uint System. UInt 32 ≈(0 — 4*109) Беззнаковое, 32 Бит long System. Int 64 ≈(-9*1018 — 9*1018) Знаковое, 64 Бит ulong System. UInt 64 ≈(0— 18*1018) Беззнаковое, 64 Бит

Арифметический тип с плавающей точкой Имя типа Системный тип Диапазон Точность float System. Single Арифметический тип с плавающей точкой Имя типа Системный тип Диапазон Точность float System. Single +1. 5*10 -45 - +3. 4*1038 7 цифр double System. Double +5. 0*10 -324 - +1. 7*10308 15 -16 цифр Арифметический тип с фиксированной точкой (финансовый тип) Имя типа decimal Системный тип System. Decimal Диапазон Точность +1. 0*10 -28 - +7. 9*1028 28 -29 значащих цифр Символьные типы Имя типа Системный тип Диапазон Точность char System. Char U+0000 - U+ffff 16 бит Unicode символ string System. String Строка из символов Unicode Объектный тип Имя типа object Системный тип System. Object Примечание Прародитель всех встроенных и пользовательских типов

Константы Константа – это переменная, значение которой нельзя изменить. Константы используются для того, что Константы Константа – это переменная, значение которой нельзя изменить. Константы используются для того, что данные этой переменной нельзя было изменить. Для того, чтобы объявить константу, перед обычным объявлением переменной нужно добавить ключевое слово const: static void Main(string[] args) { const int months = 12; // объявление константы months = 13; // ошибка компиляции }

При объявлении константы она должна обязательно быть проинициализирована значением. Константы также делают ваш код При объявлении константы она должна обязательно быть проинициализирована значением. Константы также делают ваш код более красивым, читаемым. static void Main(string[] args) { const int group_Students = 15; const int course_Group = 4; int all_Students = group_Students * course_Group; } Приведенный исходный код читается и понимается лучше чем следующий: static void Main(string[] args) { int all_Students = 15 * 4; }

При объявлении константы она должна обязательно быть проинициализирована значением. Константы также делают ваш код При объявлении константы она должна обязательно быть проинициализирована значением. Константы также делают ваш код более красивым, читаемым. static void Main(string[] args) { const int group_Students = 15; const int course_Group = 4; int all_Students = group_Students * course_Group; } Приведенный исходный код читается и понимается лучше чем следующий: static void Main(string[] args) { int all_Students = 15 * 4; }

Константы могут быть двух типов: простые литералы и строчные: static void Main(string[] args) { Константы могут быть двух типов: простые литералы и строчные: static void Main(string[] args) { Console. Write. Line(100); // 100 - это константа, числовой литерал Console. Write. Line("Student"); // строка “ Student ” является строчным литералом }

Ключевое слово var позволяет создавать переменные без явного указания типа данных. Тип данных такой Ключевое слово var позволяет создавать переменные без явного указания типа данных. Тип данных такой переменной определяет компилятор в момент инициализации. static void Main(string[] args) { var number = 5; // number будет типа int var text =" I will be a programmer"; // text будет типа string var number 2 = 0. 5; // number 2 будет типа double }

Ключевое слово var позволяет создавать переменные без явного указания типа данных. Тип данных такой Ключевое слово var позволяет создавать переменные без явного указания типа данных. Тип данных такой переменной определяет компилятор в момент инициализации. static void Main(string[] args) { var number = 5; // number будет типа int var text =" I will be a programmer"; // text будет типа string var number 2 = 0. 5; // number 2 будет типа double } var сохраняет принцип строгой типизации в С#. Это означает, что после того, как для переменной уже был определен тип, в нее нельзя записать данные другого типа: static void Main(string[] args) { var number = 5; number = " I will be a programmer"; // ошибка, number УЖЕ определен как int }

Ссылочные типы Все типы данных, о которых мы говорили выше, являются структурными. Также существуют Ссылочные типы Все типы данных, о которых мы говорили выше, являются структурными. Также существуют ссылочные типы. Из базовых типов к ним относятся object и string. Тип object является базовым для всех остальных типов данных. Типу string соответствует строка символов Unicode. static void Main(string[] args) { string hello = "Hello!"; Console. Write. Line(hello); } Структурные типы данных в С# хранятся в стеке. Для этих данных зарезервирована область в стеке.

Ссылочные типы Все типы данных, о которых мы говорили выше, являются структурными. Также существуют Ссылочные типы Все типы данных, о которых мы говорили выше, являются структурными. Также существуют ссылочные типы. Из базовых типов к ним относятся object и string. Тип object является базовым для всех остальных типов данных. Типу string соответствует строка символов Unicode. static void Main(string[] args) { string hello = "Hello!"; Console. Write. Line(hello); } Структурные типы данных в С# хранятся в стеке. Для этих данных зарезервирована область в стеке. Стек — это структура данных, которая сохраняет элементы по принципу «последним пришёл — первым вышел» . Примером из жизни магазин автомата. Скорость работы со стеком гораздо выше, чем с другой памятью, следовательно, использование стека повышает скорость работы программы.

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

Задания 1. Вывести какой-нибудь узор, например * * **** * * * * * Задания 1. Вывести какой-нибудь узор, например * * **** * * * * * * **** ** 2. Перевести градусы Фаренгейта в градусы Цельсия. 0°F = − 18°C, 100°F = 38°C.

Задания 3. Ввести с клавиатуры значения a, b, c, d, e, f. Решить методом Задания 3. Ввести с клавиатуры значения a, b, c, d, e, f. Решить методом Крамера систему линейных алгебраических уравнений: ax + by = c dx + ey = f (считаем, что система невырожденная и имеет только одно решение. )