- •Ф.Ф. Павлов языки программирования
- •Санкт-Петербург
- •230201 - Информационные системы и технологии
- •Тема 2 посвящена изучению жизненного цикла программы и основным этапам решения задач на эвм.
- •Тема 4 изучает типы пользовательских интерфейсов, классификацию диалогов и основные компоненты графических пользовательских интерфейсов.
- •Тема 8 посвящена структурам данных фиксированного размера (массивы), а также типам данных, определяемых пользователем (структуры, объединения, перечисления).
- •Тема 10 изучает динамические структуры данных: виды и способы реализации списков, динамическое выделение памяти.
- •Тема 12 затрагивает вопросы обработки файлов данных: понятия записи, файла данных и способы доступа, операции и средства обработки файлов, контроль операций обработки файлов.
- •Тема 14 вводит в технологию объектно-ориентированного программирования.
- •Раздел I Принципы программирования на языках высокого уровня
- •Тема 1. Эволюция языков программирования
- •1.1. Неструктурированное, «стихийное» программирование
- •1.2. Процедурное (модульное) программирование
- •1.3. Объектно-ориентированное программирование
- •1.4. Компонентные технологии программирования
- •Тема 2. Жизненный цикл программы и основные
- •2.1. Дружественность, жизненный цикл программы
- •2.2. Постановка задачи и спецификация программы
- •2.3. Проектирование и реализация программы
- •2.4. Способы записи алгоритма
- •2.5. Критерии качества программы
- •3.1. Классификация программных продуктов
- •3.3. Модели программирования в ms-dos и Windows
- •Тема 4. Диалоговые программы
- •4.1. Типы пользовательских интерфейсов
- •4.2. Классификация диалогов и их реализация
- •4.3. Основные компоненты графических
- •Тема 5. Программа на языке высокого уровня
- •5.1. Структура программы и функции
- •5.2. Стандартные типы данных и операции над ними
- •5.3. Адресные типы данных: указатели и ссылки
- •5.4. Стандартные библиотеки языка
- •5.5. Классы памяти
- •Раздел 2 Управляющие структуры и структуры данных
- •Тема 6. Представление управляющих структур
- •6.1. Структура следования
- •6.2. Структуры ветвления
- •6.3. Структуры повторения
- •Int kol, //счетчик введенных оценок
- •Int god; //число лет
- •Тема 7. Адресные типы данных
- •7.1. Указатели
- •7.2. Ссылки
- •Тема 8. Структуры данных фиксированного размера
- •8.1. Массивы
- •8.2. Типы данных, определяемые пользователем
- •Тема 9. Функции (процедуры)
- •9.1. Определение, прототип и вызов функции
- •9.2. Передача параметров
- •9.3. Программирование рекурсивных алгоритмов
- •Тема 10. Динамические структуры данных
- •10.1. Списки: основные виды и способы реализации
- •10.2. Динамическое выделение памяти
- •Раздел 3 Процедурное программирование
- •Тема 11. Ввод/вывод данных
- •11.1. Видеофункции библиотеки conio.H
- •11.2. Функции библиотеки потокового ввода/вывода
- •Тема 12. Обработка файлов данных
- •12.1. Записи и файлы данных
- •12.2. Операции и средства обработки файлов
- •12.3. Контроль операций обработки файлов
- •Тема 13 Технология процедурного программирования
- •13.1. Способы конструирования программ
- •13.2. Проектирование программы: методы декомпозиции и и модульного программирования
- •13.3. Реализация программы: методы структурного
- •Тема 14. Введение в технологию объектно-
- •14.1. Основные понятия объектно-ориентированного
- •14.2. Проектирование программы
- •14.3. Реализация программы
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •Тема 1. Технология программирования и этапы ее
- •Тема 2. Жизненный цикл программы и основные этапы
Раздел 3 Процедурное программирование
В остальных 4-ех темах мы рассмотрим вопросы технологии процедурного программирования и основные понятия объектно-ориентированного программирования: потоковый ввод-вывод данных, потоковая обработка файлов данных, способы конструирования программ и основные этапы процедурного программирования, введение в технологию объектно-ориентированного программирования.
Тема 11. Ввод/вывод данных
В C++ нет встроенных средств ввода/вывода. Альтернативой этому служит наличие библиотек ввода/вывода. Рассмотрим две основные библиотеки, имеющие средства управления экраном и клавиатурой:conio.h и iostream.h.
11.1. Видеофункции библиотеки conio.H
Файл conio.h содержит функции прямого ввода/вывода на консоли (клавиатура, экран дисплея) в текстовом режиме.
Рассмотрим функцию форматированного вывода cprintf.
Синтаксис функции:
cprintf(формат,[аргумент1,...]);
,где формат - это символьная строка, состоящая из простых символов и спецификаций формата;
[аргумент1,...]) – список аргументов.
Функция cprintf принимает список аргументов аргумент1, применяет к каждому из них соответствующую спецификацию формата из строки формат и выводит форматированные данные в выходной поток. Простые символы переносятся в выходной поток без изменений.
Синтаксис спецификации формата:
%[флаг] [ширина] [.точность] тип
, где % - признак спецификации формата;
[флаг] – необязательная последовательность символов-флагов;
[ширина] – необязательная спецификация ширины;
[.точность] - необязательная спецификация точности.
тип – символ типа преобразования.
Символы-флаги ([флаг]):
- левое выравнивание результата, пробелы остаются справа; если флаг не задан, результат выравнивается справа;
+ - результат всегда со знаком (+) или (-);
пробел - не отрицательное значение выводится с пробелом вместо плюса, отрицательное - со знаком минус.
Спецификация ширины ([ширина]):
n - резервируется n позиций , дополнение пробелами;
0n - резервируется n позиций, дополнение нулями;
* - спецификация ширины берется из списка аргументов и должна предшествовать форматируемому аргументу.
Спецификация точности ([.точность]):
.n - выводится n символов или n десятичных знаков;
* - спецификация точности задается в списке аргументов, следующий аргумент (целый) определяет точность.
не задано - установка по умолчанию, для типов d, u, o, x - 1, для e, E , f - 6, для g, G - все значащие цифры, для s -до первого нулевого символа, для с – не влияет;
Список типов преобразований (тип)
(символ – входной аргумент –> формат вывода):
d, i - целое -> целое десятичное со знаком;
u - целое -> целое десятичное без знака;
o - целое -> целое восьмеричное без знака;
x,X - целое -> целое шестнадцатиричное без знака;
f – с плавающей точкой -> значение со знаком в формате
[-]ddd.ddd…;
e,E - c плавающей точкой -> значение со знаком в формате
[-]d.ddd…e[+|-]ddd ;
g,G - c плавающей точкой -> формат f или e,
e -если экспонента>точности или <-4 ;
c – символьное ->-один символ;
s - строка символов.
Пример:
int i=123; float x=123.45; char ch='a'; char fkart[9]="kart.dat";
cprintf("%5d %-5d %10.3f %3c %10s %10.4s",i,i,x,ch,fkart,fkart);
Вывод: 123 123 123.450 a kart.dat kart
Перечислим остальные видеофункции библиотеки conio.h:
- Вывод строки на экран: int cputs(const char* str);.
- Вывод символа на экран: int putch(int c);.
- Ввод символа с клавиатуры с эхом на экран: int getche(void);.
- Ввод символа с клавиатуры без эха на экран: int getch(void);.
- Стирание окна: void clrscr(void); .
- Стирание строки от курсора до конца строки: void clreol(void); .
- Позиционирование курсора: void gotoxy(int x,int y);,x - колонка,y - строка.
- Определение окна: void window(int left, int top, int righ, int bottom);где left и top – координаты левого верхнего угла, right и bottom – координаты правого нижнего угла.
- Установка текстового режима экрана: int textmode(int newmode); ,где newmode - соответствующий номер или название режима экрана (например, 3 или C80 - цветной, 80 столбцов.
- Установка цвета фона: void textbackground(int newcolor); ,где newcolor - соответствующий номер цвета от 0 до 7 или его название (например, 0 или BLACK - черный, 2 или GREEN - зеленый.
- Установка цвета символов: void textcolor(int newcolor); ,где newcolor - соответствующий номер цвета от 0 до 15 или его название (например, 15 или WHITE - белый, 7 или LIGHGRAY - светло-серый).
- Одновременная установка цветов символа и фона:
void textattr(int simv+(int fon<<4)); ,где simv - цвет символов, fon-цвет фона.
- Установка вида курсора: void _setcursortype(int cur_t); ,где cur_t: _NOCURSOR - невидимый курсор, _SOLIDCURSOR - прямоугольный курсор, _NORMALCURSOR – обычный курсор в виде символа подчеркивания.