
- •Лекция 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. Растровая графика
16.14. Отладка
Тестирование – процесс проверки работоспособности программы, в процессе которой выявляются разного рода ошибки.
Процесс поиска и устранения ошибок называется отладкой.
Классификация ошибок
Программ без ошибок не бывает. Ошибки допускает любой программист: и начинающий, и имеющий тридцатилетний опыт. Компилятор генерирует исполняемую программу лишь в том случае, если исходный текст не содержит синтаксических ошибок.
В процессе выполнения программы возникают ошибки следующих видов:
Синтаксические (ошибки времени компиляции),
Логические (алгоритмические – ошибочные рассуждения),
Динамические (ошибки времени выполнения) – исключительные ситуации.
Синтаксические ошибки возникают при нарушении синтаксиса языка. Они выявляются и устраняются при компиляции программы. Сообщения о найденных ошибках отображаются в Окне Списка ошибок. Например,
При обнаружении в программе неточностей, которые не являются ошибками, компилятор выводит подсказки и предупреждения.
Логические ошибки являются следствием реализации неправильного алгоритма и проявляются при выполнении программы. Сообщения компилятором не выдаются, но программа работает не корректно и выдаёт не правильные результаты.
Например, два выражения y=sin(x)/x+5 и y=sin(x)/(x+5) дадут разные результаты.
Поэтому при получении результата его надо анализировать. Составляются тесты и отлаживаются программы на тех значениях входных данных, результат при которых легко проверить путем подсчета его «вручную».
Например, при х=0 sin(x)= 0 и
результат первого выражения y=sin(x)/x+5 даст y=1+ 5 = 6,
а второго выражения y=sin(x)/(x+5) даст y=0/(0+5)=0 / 5 = 0
Динамические ошибки возникают при выполнении программы и являются следствием неправильной работы операторов, подпрограмм, методов программы и операционной системы.
Исключительная ситуация (exception) представляет собой нарушение условий выполнения программы, вызывающее прерывание или полное прекращение ее работы.
Например, если пользователь в редактор textBox2 ввел букву, вместо цифры, то ИСР сгенерирует окно ошибки и проект будет закрыт.
Чтобы этого не произошло, вводим свой обработчик исключительных ситуаций и в окне появляется надпись об ошибочном вводе данных.
Например:
После внесения изменения в textBox2 и нажатия кнопки «Вычислить» можно продолжить выполнение программы или прервать ее выполнение. Обработка исключительной ситуации состоит в нейтрализации динамической ошибки, вызвавшей ее.
Лекция 12
17.0. Ввод и вывод данных в Windows-Приложениях
В оконном приложении все данные, вводятся в компоненты с клавиатуры, и они воспринимаются программой в строковом виде. Поэтому, прежде чем проводить арифметические операции их необходимо сформировать, т.е. преобразовать в числовой эквивалент. Для этого используются функции преобразования:
int.Parse(s) Целое, изображением которого является строка s.
double.Parse(s) Вещественное, изображением которого является строка.
После расчёта полученный результат выводится в компоненты через их свойства «text» поэтому числовые значения необходимо преобразовать в их строковые отображения. Для этого используются следующие методы:
S.ToString() Строка, являющаяся изображением вещественного / целого числа s, в соответствии с заданным форматом.
String.Format(s,x) Строка, являющаяся изображением вещественного числа x с заданным форматированием s.
Строка формата задается методу String.Format в следующем виде:
{ N [ , M ] [ : formatString ] }
Здесь число N задает номер преобразуемого аргумента, передаваемого методу String.Format в качестве параметра. Необязательное число M задает ширину области текстовой строки (в символах), внутри которой необходимо поместить цифры преобразуемого значения. Если это число отрицательное, цифры числа выравниваются по левой границе данной области, а если положительное – по правой границе области.
Например,
int а = int.Parse(textBox1.Text); //преобразование текста-числа, введенного
// в textBox1 в целое число
double b = double.Parse(textBox1.Text); //преобразование текста-числа, введенного
// в textBox1 в вещественное число
label3.Text = S.ToString()+ " руб."; // преобразование числа S в строку
label1.Text =String.Format(“{0,5:d}”,x); преобразование целого числа x в строку, где d – количество (здесь 5) целых чисел в изображении числа в компоненте label1.Text.
label1.Text =String.Format(“{0:f 2}”,x); // преобразование вещественного числа x в строку c форматным выводом символов в компонент label1 через его свойство Text,
где 0 – индекс переменной, f – мантисса c 2 символами после запятой.
label1.Text =String.Format(“{0,8:f 3}”,x); // преобразование числа x в строку c форматным выводом символов в компонент label1, где 0 – индекс переменной, 8 – количество выводимых символов (включая зпт.), f – мантисса c 3 символами после зпт.
label1.Text =String.Format(“{0}”,x); // форматирование по умолчанию.