
- •Методическое материалы по курсу
- •Cанкт-Петербург
- •Оглавление
- •Введение.
- •Задание: Разобраться в коде и вывести на консоль еще одну фразу: "It's a first program"
- •Типы данных и правила их применения:
- •Операции
- •Управляющие операторы
- •Задание: в данном примере реализуйте операции умножения и деления Оператор цикла for (;;)
- •Оператор цикла do-while
- •Задание: к примеру добавьте перегруженную функцию для суммирования чисел типа double, и проверьте ее работу
- •Модульная организация программы
- •Массивы
- •Задание: добавьте еще один элемент в массив при инициализации и посмотрите его размерность. В цикле увеличьте значение всех элементов массива на 10 и напечатайте его заново. Работа со строками
- •Ссылочный тип данных
- •Задание: Объявить еще одну переменную-ссылку на I и, изменив ее значение, пронаблюдать, как изменилось значение переменной I Работа с файлами
- •Взаимодействие с ассемблером
- •Обработка ошибок и исключений
- •Директивы препроцессора: Макросы и Условные директивы
- •Структуры
- •Задание : Добавить в сруктуру еще одно данное (стоимость модели) типа int, в коде функции main() задать значение этого данного переменной–структуры, и напечатать его.
- •Объектно-ориентированное программирование (ооп)
- •Терминология ооп
- •Структура как простейший класс
- •Конструкторы и деструкторы
- •Перегрузка методов класса
- •Дружественные функции и классы
- •Указатель this
- •Перегрузка операций
- •Множественное наследование
- •Если осталось время – разобраться в иерархии классов и принципов построения
- •Список литературы
Задание: к примеру добавьте перегруженную функцию для суммирования чисел типа double, и проверьте ее работу
:: - Операция уточнения области действия (\16SCOPE), т.е. обращение к глобальной переменной. По умолчанию локальные переменные имеют приоритет.
int iproduct(int iw, int ix); // Прототип функции
int in = 10; // Объявление глобальной переменной
int main()
{
int il = 3, im = 7, io;
io = iproduct(il, im);
cout << "The product is: " << io << endl;
return(0);
}
int iproduct(int iw, int ix)
{
int iy;
int in = 2; // Объявление локальной переменной in
iy = iw * ix * in; // Локальная in имеет приоритет
//iy = iw * ix * ::in; // Доступ к глобальной in
return(iy);
}
Модульная организация программы
позволяет оформлять логически связанные модули в отдельные файлы. Директива #include позволяет включать заголовочные файлы модулей для использования функций данных модулей
//
// 17MODULE.CPP Использование модульной организации программы
//
#include <iostream>
#include "17func.h" // Включение заголовка библиотеки функций
using namespace std;
int main()
{
int isum, ix = 1, iy = 2;
float fsum, fx = 1.1, fy = 2.2;
isum = adder(ix, iy); // Вызовется первая функция
fsum = adder(fx, fy); // Вызовется вторая функция
cout << "The sum of integers is :" << isum << endl; // вывод результатов
cout << "The sum of floats is : " << fsum << endl;
return(0);
}
//
// 17FUNC.H Заголовочный файл библиотеки функций
//
int adder(int ix, int iy); // Функция, складывающая целые числа
float adder(float fx, float fy); // Функция, складывающая дробные числа
//
// 17FUNC.CPP Файл реализующий функции
//
int adder(int ix, int iy) // Функция, складывающая целые числа
{
return (ix + iy); // Возвратить сумму
}
float adder(float fx, float fy) // Функция, складывающая дробные числа
{
return (fx + fy);
}
Стандартные библиотеки С/С++
Содержат набор уже готовых функций, например, для работы с файлами, временем….
Доступ к функциям стандартной библиотеки достигается включением заголовочного файла (имеющего расширение .h) необходимой библиотеки в модуль, использующий эти функции
#include <ctype.h> // Включение заголовочного файла в начале модуля
..
cuppercase = toupper(csinglechar); // Использование функции библиотеки toupper()
..
Находятся в подкаталоге \INCLUDE каталога, куда установлен С++
Некоторые стандартные библиотеки:
<math.h> - математические функции
<string.h> - обработка строк
<time.h> - функции работы с временем
Массивы
Массив – переменная, содержащая несколько элементов одного типа.
Отдельные объекты данных в массиве называются элементами
Все элементы массива должны иметь одинаковый тип данных
Все элементы располагаются в памяти последовательно, индекс первого элемента равен нулю
Имя массива является постоянным значением, это адрес первого элемента
Отсутствует проверка выхода за пределы массива
int array[20]; // Массив из 20 целых
char carray[20]; // Массив из 20 символов
При объявлении глобального или статического массива его значения инициализируются нулями, локальный неинициализированный массив может содержать произвольные значения. При явной инициализации массива - если начальных значений недостаточно - они инициализируются нулями
Функция sizeof возвращает размер массива в байтах и может помочь рассчитать число элементов массива, возвращаемый результат имеет тип size_t (\18ARRAY)
int main()
{
int arr[10]; // Объявление массива из 10 элементов
int array[] = { 1, 2, 3, 4, 5 }; // Объявление и инициализация массива
size_t sizearr = // Вычисление кол-ва эл-тов в массиве
sizeof( array ) / sizeof( array[0] ); // sizeof( array ) = 20 байт
// sizeof( array[0] ) = 4 байта
cout << "Array size is : " << sizearr << endl; // Вывод размера массива
array[0] = array[1]*array[2]; // Присвоение первому элементу значения
for (int i=0; i < sizearr; i++) // Печать всех элементов массива
cout << array[i] << endl;
return(0);
}