
- •Лекция 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. Растровая графика
Лекция 6
10.0. Операторы цикла
Алгоритмы решения многих задач являются циклическими, т.е. для достижения результата определенная последовательность действий должна быть выполнена несколько раз. Циклом называется группа инструкций, повторяющихся многократно с разными данными. Например, программа контроля знаний. Для циклов применяются инструкции: goto, for, while, do while.
10.1. Инструкция goto
Инструкция goto в первых языках программирования была основой для реализации циклов и многократных переходов, вследствие чего возникала запутанность кода программы. Опытные программисты стараются ее не использовать, но для того, чтобы узнать все возможности языка, рассмотрим и ее.
Инструкция goto используется следующим образом:
В коде программы создается метка с именем (например, M).
Организуется переход на эту метку инструкцией goto M.
Имя метки M в коде обязательно должно заканчиваться двоеточием (:). Оно указывает на точку в программе, с которой будет выполняться программа после использования инструкции goto.
Обычно инструкция goto привязывается к условию.
Пример. Используя цикл (метка M - начало), написать программу, в которой в консоль выводится последовательность чисел.
public static int Main()
{
int i = 0;
M : Console.WriteLine("i= {0} ", i);
i = i + 1;
if (i < 10) goto M;
Console.ReadKey();
}
}
Решение циклических задач можно организовать на основе структуры ветвление или с помощью инструкций циклов.
Задача1. Вычислить на ЭВМ значения функций
при а=1.3, b=1.29, t = [ 0.1… 2.2], t изменяется в диапазоне от 0.1 до 2.2 с шагом h=0.3.
Организовать вывод значений аргумента и вычисленного значения функции в виде таблицы с заголовком.
static void Main(string[] args)
{
double tn = 0.1, tk = 2.2, h = 0.3, t=0.1, x, s;
const double a = 1.3, b = 1.29;
Console.WriteLine("Таблица расчета функции s");
Console.WriteLine();
t = tn;
M : x = a * t;
if (x < 1) s = x + b;
else if (x == 1) s = Math.Cos(x);
else s=Math.Exp(x)*Math.Cos(x);
Console.WriteLine(" *********************** ");
Console.WriteLine(" * x= {0,4} * s= {1,6:f} *",x,s);
t=t+h;
if (t<=tk) goto M;
Console.WriteLine(" *********************** ");
Console.ReadKey();
}
10.2. Инструкция for
Служит для организации циклов с заранее известным числом повторений. Циклы, в которых количество повторений заранее определено, называются регулярными.
В цикле изменение индекса цикла заложено в инструкцию. Задаются - начальное значение индекса (инициализация), условие выполнения, правило изменения индекса после итерации. Разделители для параметров инструкции for – точка с запятой (;).
Ф
ормат
записи цикла for
для повторного использования одной
инструкции имеет вид:
for (инициализация; условие выполнения; итерация) инструкция;
Если цикл предназначен для повторного выполнения
программного блока, то его формат:
for (индекс цикла = начало; условие выполнения; изменение индекса)
{
Инструкции тела цикла;
}
Существует 2 варианта записи инструкции:
Инкрементный вариант:
П
ример1.
Программа использует цикл, в котором в
консоль выводится последовательность
чисел от 0 до 9 (шаг = 1).
static void Main(string[] args)
{
for (int i = 0; i < 10; i++) // шаг = 1
Console.WriteLine("i = {0} ", i);
Console.ReadKey();
}
Декрементный вариант:
П
ример2.
Программа использует цикл, в котором в
консоль выводится последовательность
чисел от 10 до 1 (шаг = -1).
static void Main(string[] args)
{
for (int i = 10; i > 0; i) // шаг = 1
Console.WriteLine("i = {0} ", i);
Console.ReadKey();
}
Выполняется оператор For следующим образом:
Сначала вычисляется и запоминается начальное и конечное значения индекса цикла (индекс – порядкового типа).
Далее индексу цикла присваивается начальное значение.
Затем значение индекса цикла сравнивается с конечным значением.
Далее, пока индекс цикла конечного значения (в 1 варианте оператора), выполняется очередная итерация цикла, в противном случае – выход из цикла.
При завершении цикла индекс цикла объявляется неопределенным.
Задача2. Вывести на экран буквы от A до Z (инкрементный вариант)
static void Main(string[] args)
{
for (char i = 'a'; i <= 'z'; i++)
Console.Write(" "+ i);
Console.ReadKey();
}
З
адача3.
Написать программу, которая выводит
таблицу квадратов первых десяти целых
положительных чисел (инкрементный
вариант).
static void Main(string[] args)
{
int x = 1, y = 1;
Console.WriteLine("Таблица квадратов:");
Console.WriteLine();
Console.WriteLine("------------------");
Console.WriteLine(" x | y ");
Console.WriteLine("------------------");
for (byte i = 1; i <= 10; i++)
{
y = x * x;
Console.WriteLine(" x = {0,2} | y = {1,3}", x, y);
x=x+1;
}
Console.WriteLine("------------------"); ;
Console.ReadKey();
}
Задача4. Обратный отсчет времени перед запуском (декрементный вариант)
static void Main(string[] args)
{
Console.WriteLine("Обратный отсчет времени:");
Console.WriteLine();
for (byte second = 10; second >= 1; second--) //отрицательное приращение
{
Console.Write("Осталось ={0,2} ", second);
Console.WriteLine(" минут");
}
Console.WriteLine();
Console.WriteLine("Старт!");
Console.ReadKey();
}