- •Теоретические вопросы к экзамену к экзамену по курсу «Программирование и алгоритмизация»
- •А)Основные типы переменных в с. Б)Правила определения переменных и типов. В)Инициализация данных.
- •A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных
- •Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода
- •Оператор цикла for
- •Операторы цикла while и do … while
- •Указатели. Типизированные и нетипизированные.
- •Работа с файлами. Файловая переменная, открытие, закрытие файла.
- •Чтение и запись в файлы. Функция eof()
- •Определение и вызов функций. Фактические и формальные параметры.
- •Определение и вызов функций. Передача массивов и указателей на функции.
- •Бинарный поиск в упорядоченном массиве.
- •Сортировка массива на примере одного из алгоритмов.
- •Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- •Вставка узла
- •Удаление узла
- •Виды линейных списков: стек, очередь, дек.
- •Сущность методологии объектно-ориентированного программирования. Инкапсуляция. Наследование. Полиморфизм.
- •Дружественные функции класса.
- •Определение конструктора. Форматы вызова конструктора. Перегрузка конструкторов.
- •Наследование. Определение базового и производного классов.
- •Полиморфизм. Виртуальные функции.
- •Динамическое распределение памяти под объекты. Операторы new и delete. Динамическое выделение памяти
- •Функции operator new() и operator delete()
- •Шаблоны классов. Шаблоны классов
- •Использование шаблонов
- •Шаблоны функций.
- •Жизненный цикл программного продукта.
- •Основные процессы жизненного цикла.
- •Разновидности процесса разработки по.
- •Стадии разработки по
- •Действия при разработке тз
Оператор цикла for
Оператор цикла for позволяет выполнять оператор или группу операторов заранее заданное количество раз.
Общая форма оператора
for (V1; ЛВ; V2) ОP;
где V1 – выражение, в котором производится присваивание переменной, называемой параметром цикла, начального значения (инициализация); ЛВ – условие, определяющее, следует ли в очередной раз выполнять оператор (тело цикла); V2 – выражение, в котором производится изменение переменной цикла (приращение); ОР – оператор или группа операторов.
Принцип работы:
· вычисляется V1;
· вычисляется ЛВ;
· если ЛВ истинно, выполняется ОР, затем вычисляется V2;
· проверка ЛВ → ОP → V2 и т. д.
Когда ЛВ становится ложным, осуществляется переход к оператору, следующему за ОP. Если ОP – составной оператор, то его надо заключить в{}.
Если ЛВ сразу ложно, то ни ОР, ни V2 не выполняются ни разу.
Отметим две дополнительные возможности оператора for по сравнению с оператором while:
o возможность включения инициализирующего выражения V1, используемого один раз перед тем, как будет произведена оценка условия;
o возможность включения выражения V2, которое будет использоваться после каждой итерации оператора ОР.
Операторы цикла while и do … while
Ключевое слово while позволяет выполнять оператор или группу операторов до тех пор, пока условие не перестанет быть истинным.
Синтаксис: while(ЛВ) ОP;
где ЛВ – логическое выражение, ОP – тело цикла (простой или составной оператор).
Итак:
если ЛВ – истинно, выполняется ОР, затем снова проверяется ЛВ и так далее;
если ЛВ – ложно, ОР пропускается, и управление передается на оператор, следующий за телом цикла.
Поскольку проверка ЛВ выполняется перед телом цикла цикл while называют циклом с предусловием.
Если ЛВ изначально ложно, тело цикла while не выполнится ни разу.
В цикле do-while проверка условия проводится после выполнения тела цикла:
do ОP while(ЛВ)
Действие
· выполняется ОР;
· если ЛВ истинно, повторяется выполнение ОР, в противном случае осуществляется переход к оператору, следующему за while.
Если в цикле должно выполняться несколько операторов, они заключаются в {}. Данный цикл носит название цикла с постусловием, т. е. при любом ЛВ тело цикла выполняется хотя бы один раз.
Форматированный ввод-вывод. Форматированный ввод-вывод позволяет за одно обращение к библиотечной функции обрабатывать несколько объектов данных. Запись оператора обращения к стандартной функции форматного консольного вывода имеет вид
printf ("строка формата", арг1, арг2, …, аргN);
В качестве аргументов функции арг1…аргN используются идентификаторы переменных или выражения. Список аргументов может быть пустым.
Строка формата записывается в двойных кавычках и может содержать:
любой текст;
спецификаторы форматов (по количеству аргументов), обозначаются символом %, содержат информацию о типе выводимого значения и его модификации;
управляющие символы.
printf (“<строка формата>” [,<аргументы>]); где:
строка формата - совокупность необязательных символов, задаваемых программистом, и спецификаций формата преобразования данных;
аргументы - имена объектов, перечисленные через запятую.
Каждому объекту из списка, следующего за строкой формата должна соответствовать своя спецификация формата преобразования данных. При выводе данных на ее место подставляется значение объекта. Общий вид записи спецификации формата преобразования
%[<флаг>][<ширина>][.<точность>]<тип преобразования > где:
<флаг> - символ, устанавливающий форму вывода (“-“ - выравнивание влево, “+” – вывод знака числа и т.д.);
<ширина> - число, устанавливающее максимальную ширину поля вывода;
<точность> - число, устанавливающее максимальное количество позиций после десятичной точки, предназначенных для вывода данных;
тип преобразования - символ, указывающий как должны трактоваться данные, хранящиеся в памяти компьютера при их выводе на экран.
Используются следующие символы для задания типа преобразования данных при их выводе:
c – вывод одного символа;
d - вывод десятичного целого числа;
f - вывод десятичного вещественного числа в естественной форме представления;
e - вывод десятичного вещественного числа в экспоненциальной форме представления;
s - вывод строки символов.
Три первых элемента записи спецификации формата преобразования в функции printf (флаг, ширина, точность) являются необязательными
Запись оператора обращения к стандартной функции форматного консольного ввода имеет вид
Структура (синтаксис) обращения к функции:
scanf("строка формата", список аргументов);
С помощью данной функции производится ввод с клавиатуры значений переменных, перечисленных в списке аргументов в формате, определенном строкой формата (см. 5.2.1). Функция преобразует последовательность вводимых символов в различные формы: целые числа, числа с плавающей точкой, символы и строки C.
Особенности функции:
в языке C в строке формата рекомендуется писать только спецификаторы форматов; количество спецификаторов должно быть равно числу аргументов в строке; каждый спецификатор имеет ту же структуру, что и в функции printf();
список аргументов может состоять из одного или нескольких аргументов; разделителем в списке аргументов служит [,];
в качестве аргументов функции используются только адреса переменных.
Задачей аргумента в данной функции является указание адреса ячейки памяти, куда должно быть помещено вводимое значение. Так, символ&обозначает операцию получения адреса переменной, т. е. конструкция &p обеспечивает ввод значения в ячейку памяти, где размещена переменная p.
При использовании функции scanf() необходимо помнить два правила:
при считывании значений для переменных простого типа перед именем переменной ставится символ &;
при считывании строки символ & не ставится, так как строковая переменная задается с помощью указателя.
scanf (“<строка формата>” [,<адреса аргументов>]); где:
<строка формата> - совокупность спецификаций формата преобразования данных, разделяемых между собой пробельными символами;
<адреса аргументов> -адреса объектов, перечисленные через запятую.