- •Введение
- •Основные команды управления
- •Основные команды управления
- •Основные команды управления
- •Основные команды управления
- •Основные команды управления
- •Задача 1
- •Начало
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Основы алгоритмизации
- •Методика решения задач
- •Методика решения задач
- •Методика решения задач
- •Методика решения задач
- •Задача 2
- •Задача 2
- •Задача 3
- •Задача 3
- •Задача 3
- •Задача 4
- •Задача 4
Основы программирования на С++
Введение
•Программа — это детальное и законченное описание алгоритма средствами языка программирования.
•Трансляторы: интерпретаторы и компиляторы
•Интегрированная система: текстовый редактор + компилятор + редактор связей + библиотека функций.
•Технологии программирования: структурная; объектно-ориентированная.
•RAD – Rapid Application Development – технология быстрой (визуальной) разработки приложений.
Основные команды управления
Команда присваивания
<Объект-приемник> = <Объект-источник>
Команда ветвления if (<условие>)
<Блок 1> [ else
<Блок 2>]
+ |
- |
условие
Блок 1 |
|
|
Блок 2 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Основные команды управления
Цикл for
for (<задание начальных значений параметрам цикла>;
<условия продолжения цикла>;
<изменение параметров цикла>) <Блок>
Пример:
double s=0;
for (int i=1; i<=n; i++) { s+=1.0/i;
}
i = 1, n
Блок
Основные команды управления
Цикл while
while (<условие>) <Блок>
Пример
double S=0; int i=1;
while (i<=n) { S+=1.0/i++;
}
-
условие
+
Блок
Основные команды управления
Цикл do |
|
|
do |
|
|
<Блок> |
|
|
while(<условие>); |
Блок |
|
Пример |
+ |
|
|
условие |
|
double S=0; |
- |
|
int i=0; |
||
|
||
do |
|
|
S+=1.0/++i; |
|
|
while(i<=n); |
|
Основные команды управления
Ввод данных с клавиатуры
cin>>a>>b>>c;
Вводимые с клавиатуры данные разделяются пробелами или переносами на новую строку (Enter).
Вывод данных на экран монитора
cout<<x<<b+c<<endl;
В С++ основной является концепция потокового ввода-вывода данных: оператор cin извлекает данные из стандартного потока ввода (клавиатура), а оператор cout помещает данные в стандартный поток
вывода (монитор).
Задача 1
Даны размеры a, b, c кирпича прямоугольной формы, а также размеры x и y прямоугольного отверстия в стене. Требуется определить, пройдет ли кирпич в отверстие, если его грани параллельны сторонам отверстия.
b |
x |
y
a
c
Начало
A,B,C,X,Y
A>B - B>C - A>B - X>Y -
A<X и B<Y
- Не пройдет
Конец
Задача 1
+ |
R=A; A=B; B=R |
|
|
+ |
R=B; B=C; C=R |
|
|
+ |
R=A; A=B; B=R |
|
|
+ |
R=X; X=Y; Y=R |
|
|
|
+ |
#include <iostream> using namespace std; void main() {
double a,b,c,x,y,R; cin>>a>>b>>c>>x>>y;
if (a>b) {R=a; a=b; b=R;} if (b>c) {R=b; b=c; c=R;} if (a>b) {R=a; a=b; b=R;} if (x>y) {R=x; x=y; y=R;}
if (a<x && b<y) cout<<"Yes!"; else cout<<"No!";
cout<<endl;
}
Пройдет
Рис. 3. Алгоритм решения
Основы алгоритмизации
- начало или конец алгоритма;
- действие или серия действий;
- ветвление;
- заголовок цикла; |
Рис. 1. Типовые |
|
блоки |
||
|
||
- ввод/вывод данных; |
|
|
- вспомогательный алгоритм. |
|
Основы алгоритмизации
+ |
- |
- |
|
|
|
|
|
+ |
Рис.3. Ветвление |
Рис.4. Цикл “пока” с |
|
Рис.2. Линейная структура |
|
предусловием |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
|
|
|
|
i = 1,N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|||||
Рис.5. Цикл "пока" с постусловием |
|
Рис.6. Цикл "для" |