
- •Лекция 1
- •14 Ч. Лекции
- •58 Ч. Лабораторные работы
- •1.0 Основы алгоритмизации задач
- •1.1. Методы подготовки решения задачи на эвм
- •1.2. Алгоритмы и его свойства
- •1.3. Способы описания алгоритмов:
- •1.4. Стандартные блок-схемы
- •1.5. Базовые алгоритмические структуры
- •1.6. Методы алгоритмизации задач
- •2. Основы программирования
- •2.1. Машинный код процессора
- •2.2. Программа на языке программирования
- •2.3. Трансляторы
- •2.4. Классификация языков программирования
- •2.5. Языки низкого уровня
- •2.6. Языки высокого уровня
- •Лекция 2
- •3.0. Интегрированная среда разработки (иср) Visual c# 2010 Express
- •3.1. Основные характеристики.
- •3.2. Консольное приложение
- •3.3. Сохранение проекта
- •3.3. Структура папок при сохранении консольного приложения
- •3.5. Компиляция
- •4.2. Словарь языка
- •4.3. Комментарии
- •4.4. Идентификаторы (имена)
- •4.5. Ключевые слова
- •4.6. Числа
- •4.7. Переменные и константы
- •5.0. Структура программы консольного приложения на c#
- •Лекция 3
- •6.0. Типы данных
- •6.1. Типы значений
- •6.2. Ссылочные типы
- •6.3. Задание типов в объявлениях переменных
- •6.4. Встроенные базовые типы
- •6.5. Типы чисел Типы целых чисел
- •Типы чисел с плавающей запятой
- •Значения типов по умолчанию
- •6.6. Преобразования типов
- •6.7. Стандартное форматирование чисел
- •6.8. Символы char
- •7. Инструкции, команды
- •7.1. Выражения
- •7.2. Разделители
- •7.3. Математические операции
- •7.4. Приоритеты операций
- •Лекция 4
- •7.0. Операторы
- •7.2. Унарные операторы
- •7.3. Мультипликативные операторы
- •7.4. Аддитивные операторы (типа сложения)
- •7.5. Операторы отношений
- •7.6. Операторы присвоения
- •8.0. Инструкции
- •8.1. Безусловный переход вызовом функций
- •8.2. Оператор перехода goto
- •Лекция 5
- •9.0. Условные операторы.
- •9.1. Сложные условия
- •9.2. Инструкция if
- •9.3. Инструкции выбора switch, case
- •Лекция 6
- •10.0. Операторы цикла
- •10.1. Инструкция goto
- •10.2. Инструкция for
- •10.3. Использование нескольких управляющих переменных цикла
- •10.4. Использование переменных цикла c любым шагом их изменения
- •10.5. Инструкция while . . Цикл с предусловием
- •10.6. Инструкция do - while Цикл с постусловием
- •10.7. Накопление сумм и произведений
- •10.8. Безусловные переходы
- •Лекция 7
- •11.0. Массивы
- •11.1. Операции с массивами
- •Вывод массива
- •Ввод массива
- •Поиск максимального ( или минимального ) элемента массива
- •Поиск заданного элемента массива
- •Сортировка массива
- •11.2. Расчет статистических показателей
- •11.3. Использование генератора случайных чисел
- •11.4. Массивы строк
- •Лекция 8
- •12.0. Введение в классы, объекты и методы
- •12.1. Синтаксис класса
- •13.0. Подпрограммы
- •13.1. Основные понятия
- •13.2. Сравнение вариантов
- •13.3. Описание методов (процедур и функций)
- •13.4. Аргументы и параметры
- •13.5. Области действия имен
- •13.6. Тело метода (процедуры и функции)
- •13.7. Вызов метода. Синтаксис.
- •13.8. Функция
- •13.9. Процедура
- •Лекция 9
- •14. Исключительные ситуации
- •14.1. Виды исключений:
- •14.2. Существуют два типа блоков:
- •Лекция 10
- •15. Объектно-ориентированное программирование (ооп)
- •15.1. Классы в с#
- •15.2. Основные принципы ооп
- •Конструкторы
- •Деструкторы
- •15.3. Графическая структура понятий оо Подхода
- •15.4. Преимущества ооп:
- •Лекция 11
- •16.0. Приложение под ос Windows
- •16.1. Основные характеристики
- •16.2. Основной экран среды:
- •16.3. Окно Конструктора формы
- •16.4. Окно Редактора кода
- •16.6. Характеристика проекта
- •16.7. Сохранение проекта – приложения под Windows
- •16.8. Запуск и компиляция приложения
- •16.9. Шаблон кода:
- •16.10. Разработка приложения
- •16.11. Простейшее приложение
- •16.12. Создание интерфейса приложения
- •16.13. Определение функциональности приложения
- •16.14. Отладка
- •Лекция 12
- •17.0. Ввод и вывод данных в Windows-Приложениях
- •17.1 Ввод из поля редактирования и вывод в метку, и окно сообщения
- •17.2 Окно сообщения
- •18.0 Процедуры и функции
- •18.1 Структура процедуры
- •18.2 Структура функции
- •19. Модули
- •19.1 Свойства модуля
- •19.1. Структура модуля
- •Лекция 13
- •20.0. Массивы в Windows Forms Application
- •20.1 Операции с массивами в Windows-приложениях
- •21.0. Графика в c#
- •21.1. Рисованные изображения
- •Объект Graphics
- •Перо (Pen) или карандаш
- •Кисть (Brush) или заливка
- •Шрифты и текст
- •21.2. Методы рисования
- •21.3. Методы заливки
- •21.4. Рисование с помощью примитивов
- •21.5. Рисование графика функции
- •21.6. Растровая графика
1.6. Методы алгоритмизации задач
Реальные алгоритмы представляют собой совокупность всех рассмотренных базовых структур. Наиболее часто употребляются:
линейные вычисления,
ветвления,
выбор из большого количества альтернатив одно,
циклы, (вложенные циклы),
подпрограммы.
Задача 3.
Вычислить значения функции в
диапазоне изменения x
от 0 до 3 с шагом 0.5.
Будем
использовать алгоритмическую
структуру – цикл "до", на языке С#
фрагмент программы имеет следующий
вид:
.
. . . .
double y=0, x=0;
{
do
if (x>1) y=Math.Sin(x);
else y=Math.Cos(x);
Console.WriteLine("x={0,4:f}
y={1,4:f}", x, y);
x:=x+0.5;
while
x<3;
}
.
. . . .
,
2. Основы программирования
2.1. Машинный код процессора
Процессор – это большая интегральная схема, содержащая миллионы компонент:
триггеры для запоминания битов данных,
вентили для выполнения операций.
Для управления компонентами применяются управляющие сигналы, имеющие два уровня – низкий и высокий.
Множество управляющих сигналов можно связать с набором 0 и 1, которые можно интерпретировать, как число. Например, 0110001100110101.
Программа, с которой работает процессор, это последовательность чисел, называемая машинным кодом.
2.2. Программа на языке программирования
Машинные коды трудно воспринимаются человеком. Поэтому люди составляют программу на удобном для себя языке (высокоуровневом).
Программирование на естественном человеческом языке (метаязыке) может использоваться только на этапе составления алгоритма.
Автоматически перевести такую программу в машинный код нельзя из-за неоднозначности естественного языка.
2.3. Трансляторы
Программа на языке программирования для выполнения требует преобразования высокого уровня в машинные коды. Это выполняют трансляторы.
Виды трансляторов:
компилятор,
интерпретатор.
Компилятор преобразует всю программу в машинные коды.
Достоинства компилятора:
Транслированная программа может исполняться без компилятора.
При трансляции может использоваться технология оптимизации.
Скорость работы компилированной программы в сотни раз выше, чем интерпретируемой.
Недостатки компилятора:
Трудоемкость программирования.
Сложность тестирования и отладки.
Сложность остановки.
Интерпретатор сразу выполняет команды языка, указанные в тексте программы. Команды транслируются и исполняются последовательно поштучно.
Достоинства интерпретатора:
Постоянный контроль среды программирования.
Удобства тестирования и отладки.
Легкость остановки.
Недостатки интерпретатора:
Транслированная программа не может исполняться без интерпретатора.
При трансляции не может автоматически использоваться оптимизация.
Скорость работы интерпретируемой программы в сотни раз ниже, чем компилируемой.
2.4. Классификация языков программирования
ЭВМ исполняет программу в машинных кодах. А составляют программу люди на удобном для себя языке.
Различают языки:
низкого уровня (машинно-ориентированные),
высокого уровня.
Языки высокого уровня бывают:
процедурно-ориентированные. Содержат набор универсальных команд;
проблемно-ориентированные. Имеют команды узкого назначения;
объектно-ориентированные. Программирование на уровне объектов;
событийно-ориентированные. Программирование на уровне событий;
визуальные. Поддерживают визуальное программирование;
комплексные. Поддерживают многие из перечисленных свойств.
Различают пять поколений языков программирования:
Начало 1950-х годов. Язык Ассемблера. Его принцип "Одна инструкция – одна строка". Инструкция на языке однозначно соответствует машинному коду команды.
Начало 1950-х – конец 1960-х годов. Язык символического Ассемблера. В нем появилось понятие переменной.
1960-е годы. Универсальные языки программирования.
С начала 1970-х годов до настоящего времени. Проблемно-ориентированные языки для создания проектов в узкой предметной области.
С середины 1990-х годов до настоящего времени. Языки с автоматизацией программирования. Примеры – языки визуального программирования.