- •Понятие алгоритма. Свойства алгоритмов. Основные этапы решения задач
- •1. Формулировка задачи
- •2. Математическая постановка задачи
- •3. Разработка алгоритма
- •4. Написание текста и ввод программы
- •5. Выполнение программы. Поиск и устранение синтаксических ошибок
- •6. Тестирование программы. Поиск и устранение логических ошибок в программе
- •Этапы создания исполняемой программы (загрузочного модуля).
- •Структуры и формы написания программы
- •Внутреннее представление данных
- •Классы памяти
- •Обмен данными через внешние переменные
- •Статические переменные
- •Стандартный ввод/вывод данных через потоки
- •Ввод данных
- •Вывод данных
- •Специфические операции
- •Операции присваивания
- •Некоторые нетрадиционные (унарные) операции
- •Условные выражения
- •Операция условия ?:
- •Выражения (в том числе и условные). Порядок выполнения операций в выражении. Таблица приоритетов.
- •Условный оператор if и его применение при программировании. Сокращенная форма оператора if
- •Полная форма оператора if
- •Множественный выбор else-if
- •Оператор выбора switch и его применение при программировании.
- •Циклические вычислительные процессы
- •Оператор цикла while и его применение при программировании. Цикл while – цикл с предусловием.
- •Оператор цикла do while и его применение при программировании. Цикл do while – цикл с постусловием
- •Оператор цикла for и его применение при программировании. Цикл for – цикл с предусловием
- •Операторы break, goto, continue их применение при программировании. Операторы передачи управления
- •Оператор break
- •Оператор continue
- •Оператор goto
- •Вложенные циклы.
- •Указатели и адреса: описание, инициализация и операции с указателями. Применение указателей при программировании.
- •Статические строки
- •Динамические строки
- •Стандартный цикл обработки строки
- •Одномерные числовые массивы
- •Статические массивы
- •Динамические массивы
- •Динамические матрицы
- •Циклы перебора матрицы
- •Программирование с использованием функций пользователя. Принципы построения функций.
- •Механизм вывода функции
- •Передача значения простого аргумента в функцию. Способы передачи простых данных в функцию
- •Передача в функцию значения аргумента
- •Рекурсивная функция
- •Передача функции в другую функцию через указатель. Параметр функции. Указатель на функцию.
- •Перегрузка функций.
- •Функции с параметрами по умолчанию
- •Шаблоны функций.
- •Формат функции шаблона
- •Механизм шаблона
- •Особенности проекта с функциями-шаблонами
Обмен данными через внешние переменные
Внешняя переменная доступна из любой части программы, в том числе из другой функции. Использование внешних переменных делает функцию не универсальной, она теряет свою независимость, (//а это основные свойства функций). При широком использовании внешних переменных затруднена отладка программы.
Статические переменные
//Статистическая переменная, объявленная внутри функции, является локальной, но она живет и сохраняет свое значение во время выполнения всей программы, следовательно, вызывая функцию во второй раз, мы можем пользоваться значением статистической переменной полученной в предыдущий раз.
void func(void)
{
a |
b |
0 |
0 |
0 |
1 |
0 |
2 |
0 |
3 |
0 |
4 |
static int b=0;
cout<<a<<endl<<b<<endl;
a++;
b++;
}
int main(void)
{
for(int i=0;i<5;i++)
func();
return 0;
}
+
Программирование ввода-вывода в языке С++ с использованием стандартных объектов потоков cin и cout.
Стандартный ввод/вывод данных через потоки
#include<iostream>
using namespace std;
Используем следующие средства:
1) cin – потом ввода (объект класса istream) (этот поток по умолчанию связан с клавиатурой)
2) cout – потом вывода (объект класса ostream) (по умолчанию связан с монитором)
3) cerr – поток вывода сообщений об ошибках (объект класса ostream) (по умолчанию связан с клавиатурой)
4) операция >> - операция извлечения из потока (ввод данных)
5) операция << - операция помещения в поток (вывод данных)
6) методы ввода-вывода
7) манипуляторы
Ввод-вывод данных производится в соответствии с типом данных
Ввод данных
Синтаксис:
cin>>ИмяПеременной;
В одном операторе можно ввести несколько данных, разделяя имена переменных операцией >>
При выполнении программы необходимо вводить данное соответствующего типа, разделяя их только пробельными символами.
Пример 1:
int a, b; cin>>a>>b;
При выполнении:
13 163<ввод> ИЛИ 13<ввод>163<ввод>
Пример 2:
char simv; cin>>simv;
При выполнении:
а<ввод>
Ввод строки без пробелов внутри:
char str[20];
cin>>str;
При выполнении:
Привет!<ввод>
Ввод строки с пробелом внутри
char str[80];
cin.getline(str,80);//контроль количества вводимых символов
При выполнении:
Люблю грозу в начале мая!<ввод>
НО: операция >> и getline конфликтуют. Операция >> считывает данное и оставляет на входном потоке клавишу ввода. Метод getline считывает клавишу ввода – получается пустая строка (“проскакивает” ввод строки).
cin.ignore(); - игнорирует один символ с входного потока (при переходе от cin к выполнению)
Вывод данных
Синтаксис:
cout<<Выражение;
В одном операторе можно вывести несколько выражений, разделяя их операцией <<.
Беспокоиться о разделении данных на экране.
При выводе данного отводится столько позиций, сколько значащих символов в данном.
int a=3, b=5;
cout<<”a=”<<a<<”, b=”<<b<<endl;
При выполнении:
a=3, b=5
endl – манипулятор, переводящий строку на следующую.
Операции языка С++: арифметические операции; операция определения остатка от деления; увеличения и уменьшения на единицу.
Операции применяются для представления каких-либо действий над данными.
Операции могут быть:
Арифметические
Логические
Побитовые
Отношения и т.д.
Операнды – участники операции. В зависимости от количества операндов, операции делятся на:
Унарные
Бинарные
Тернарные
Арифметические операции:
Сложение
Вычитание
Умножение
Деление (1/3=0) (1.0/3.0=0.3333)
Операции выполняются с учетом типа: операнды должны быть одинакового типа и результат получается этого же типа. Если типы разные, то происходит автоматическое выравнивание (по высшему) : char->int->long->float->double.
Определение остатка при делении a%b результат – сколько минимально надо отнять от a, чтобы a поделилось на b нацело. (17%4=1)
