- •ОГЛАВЛЕНИЕ
- •ВВЕДЕНИЕ
- •1. ЯЗЫК ПРОГРАММИРОВАНИЯ C++
- •1.1. Нововведения C++ в сравнении с C
- •1.3. Технический обзор
- •2. ЛАБОРАТОРНАЯ РАБОТА № 1 «Знакомство с языком C++. Основные функции»
- •2.1. Методические указания
- •2.1.1. Алфавит C++
- •2.1.2. Этапы создания исполняемой программы
- •2.1.3. Типы данных C++
- •2.1.3.1. Концепция типа данных
- •2.1.3.2. Простые типы данных
- •2.1.4. Структура программы на языке C++
- •2.1.5. Директивы препроцессора
- •2.1.5.1. Директива #include
- •2.1.5.2. Директива #define
- •2.1.6. Предварительные замечания о функциях ввода/вывода
- •2.1.7. Переменные и выражения
- •2.1.7.1. Переменные
- •2.1.7.2. Операции
- •2.1.7.3. Выражения
- •2.1.8. Основные функции
- •2.1.8.1. Математические функции
- •2.1.8.2. Функции обработки сигналов
- •2.1.8.3. Функции ввода-вывода в стиле C
- •2.1.8.4. Функция работы с датой и временем
- •2.1.8.5. Функции локализации
- •2.1.8.6. Функции классификации и преобразования символов
- •2.1.8.7. Функции управления программой
- •2.1.8.8. Различные функции в стиле C
- •2.2. Примеры программ для выполнения лабораторной работы № 1
- •2.3. Вопросы для самоконтроля
- •3. ЛАБОРАТОРНАЯ РАБОТА № 2 «Программирование с использованием основных операторов языка C++. Работа с массивами»
- •3.1. Методические указания
- •3.1.1. Основные операторы языка С++
- •3.1.1.1. Базовые конструкции структурного программирования
- •3.1.1.2. Составные операторы
- •3.1.1.3. Операторы выбора
- •3.1.1.4. Операторы циклов
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Цикл с параметром (for)
- •3.1.1.5. Операторы передачи управления
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •3.1.2. Одномерные массивы
- •3.1.2.1. Описание массива в C/C++
- •3.1.2.2. Обработка одномерных массивов
- •3.1.2.3. Перебор массива по одному элементу
- •3.1.2.4. Датчика случайных чисел для формирования массива.
- •3.1.3. Многомерные массивы
- •3.2. Примеры программ для лабораторной работы № 2
- •3.3. Вопросы для самоконтроля
- •3.4. Варианты заданий к лабораторной работе № 2
- •4. КУРСОВАЯ РАБОТА «Создание собственной функции»
- •4.1. Методические указания
- •4.1.1. Объявление и определение функций
- •Глобальные переменные
- •Возвращаемое значение
- •4.1.2. Параметры функции
- •4.2. Вопросы для самоконтроля
- •4.3. Варианты заданий курсовой работы
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Список литературы
- •Направление – _____________________________________________
- •Кафедра –
- •Выполнил студент гр. _______ __________ _______ ______________
- •Направление – ________________________________________________
- •Выполнил студент гр. _______ __________ _______ __________
Далее в рамках изучения курса «Информатика» с целью упрощения понимания программ будут приводиться примеры лишь такой директивой препроцессора, как #include.
2.1.6.Предварительные замечания о функциях ввода/вывода
Вязыке нет встроенных средств ввода/вывода. Он осуществляется
спомощью подпрограмм, типов и объектов, содержащихся в стандартных библиотеках ANSI C <stdio.h> и C++ <iostream.h>.
Основные функции ввода/вывода в стиле языка C:
int scanf (const char* format...)// ввод int printf(const char* format...)// вывод
Они выполняют форматированный ввод и вывод произвольного количества величин в соответствии со строкой формата format. Строка формата содержит символы, которые при выводе копируются в поток (на экран) или запрашиваются из потока (с клавиатуры) при вводе, и спецификации преобразования, начинающиеся со знака %, которые при вводе и выводе заменяются конкретными величинами. Типы спецификаторов представлены в табл. 3.
Таблица 3
|
Спецификаторы формата для функции printf() |
|
|
%с |
символ |
%d |
целое десятичное число |
%i |
целое десятичное число |
%e |
десятичное число в виде x.xx e+xx |
%E |
десятичное число в виде x.xx E+xx |
%f |
десятичное число с плавающей запятой xx.xxxx |
%F |
десятичное число с плавающей запятой xx.xxxx |
%g |
%f или %e, что короче |
%G |
%F или %E, что короче |
%o |
восьмеричное число |
%s |
строка символов |
%u |
беззнаковое десятичное число |
%x |
шестнадцатеричное число |
%X |
шестнадцатеричное число |
%% |
символ % |
%p |
указатель |
%n |
указатель |
17
Кроме того, к командам формата могут быть применены модификаторы l и h (табл. 4).
Таблица 4
|
Модификаторы формата |
|
|
%ld |
печать long int |
%hu |
печать short unsigned |
%Lf |
печать long double |
В спецификаторе формата, после символа % может быть указана точность (число цифр после запятой). Точность задаётся следующим образом: %.n<код формата>. Где n – число цифр после запятой, а <код формата> – один из кодов приведённых выше.
Например, если имеется переменная x=10.3563 типа float и необходимо вывести её значение с точностью до 3-х цифр после запятой, то
надо написать:
printf(«Переменная x = %.3f»,x);
В результате получится:
Переменная x = 10.356
Можете также указать минимальную ширину поля отводимого для печати. Если строка или число больше указанной ширины поля, то строка или число печатается полностью.
Например, если написано: printf("%5d",20);
то результат будет следующим:
20
Следует обратить внимание на то, что число 20 напечаталось не с самого начала строки. Если вы надо, чтобы неиспользованные места поля заполнялись нулями, то нужно поставить перед шириной поля
символ 0: printf("%05d",20);
Результат:
00020
Кроме спецификаторов формата данных в управляющей строке могут находиться управляющие символы (табл. 5).
Таблица 5
Управляющие символы
18
\f |
Новая страница, перевод страницы |
\n |
Новая строка, перевод строки |
\r |
Возврат каретки |
\t |
Горизонтальная табуляция |
\v |
Вертикальная табуляция |
\" |
Двойная кавычка |
\' |
Апостроф |
\\ |
Обратная косая черта |
\0 |
Нулевой символ, нулевой байт |
\a |
Сигнал |
\N |
Восьмеричная константа |
\xN |
Шестнадцатеричная константа |
\? |
Знак вопроса |
Чаще всего используется символ \n. С помощью этого управляющего символа можно переходить на новую строку.
Пример 2
#include <stdio.h> int main(
{
int i;
printf("Введите целое число\n"); scanf("%d", &i);
printf("Вы ввели число %d, спасибо!", i);
}
Первая строка программы, приведённой в примере 1, – директива препроцессора, по которой в текст программы вставляется заголовочный файл <stdio.h>, содержащий описание использованных в программе функций ввода/вывод. Все директивы препроцессора начинаются со знака #.
Третья строка – описание переменной целого типа с именем i. Функция printf в четвертой строке выводит приглашение «Введите
целое число» и переходит на новую строку в соответствии с управляющей последовательностью \n. Функция scanf заносит введенное с клавиатуры целое число в переменную i, а следующий оператор выводит на экран указанную в нем строку, заменив спецификацию преобразования на значение этого числа. Ввод/вывод в стиле языка C рассмотрен в разделе «Функции ввода/вывода».
19
Пример 3. Вывести на экран: a=5, b=6, c=9
Код программы:
#include <stdio.h> #include <conio.h> void main()
{
int a,b,c; // Объявление переменных a,b,c a=5; b=6; c=9;
printf("a=%d, b=%d, c=%d",a,b,c); getch();
}
Блок-схема программы:
начало
int a,b,c
a=5; b=6; c=9;
a, b,c
getch ()
конец
В примере 3 отражены основные особенности структуры программ на C++, а так же синтаксис и структура. Первые две строки отражают директивы препроцессора, в заголовочных файлах которого подключа-
20