Разделы презентаций


Программирование на С++

Содержание

СОДЕРЖАНИЕ Слайды1. Общие понятия. Первая программа 32. Запись математических выражений 273. Условный оператор if ... else 414. Циклы. Конструкция циклов 605. Отладка программы 836. Массивы 90 7. Оператор switch 1018. Функция

Слайды и текст этой презентации

Слайд 1Начальное программирование на С++. Графики. Технические приложения
(презентация – практикум)

Иванов Виктор Никитович,
преподаватель высшей
категории, к.т.н.
2016

Начальное программирование на С++. Графики. Технические приложения(презентация – практикум)  Иванов Виктор Никитович,  преподаватель высшей

Слайд 2СОДЕРЖАНИЕ
Слайды
1. Общие

понятия. Первая программа 3
2. Запись математических выражений 27
3. Условный оператор if ...

else 41
4. Циклы. Конструкция циклов 60
5. Отладка программы 83
6. Массивы 90
7. Оператор switch 101
8. Функция (подпрограмма) 107
9. Файловый ввод/вывод 125
10. Построение графиков (C++ & Excel) 130
11. Задания для самостоятельной работы 147
12. Технические приложения 162
13. Литература 167
СОДЕРЖАНИЕ					      	  Слайды1. Общие понятия. Первая программа		32. Запись математических выражений		273. Условный

Слайд 4Этапы создания программы
Алгоритм
Текст программы на каком-либо языке программирования
Машинный код


#include
a=10;
s=a*a;
cout

перечень действий (инструкций), которые должна выполнить вычислительная машина.
Этапы создания программыАлгоритмТекст программы на  каком-либо языке  программированияМашинный код#include a=10;s=a*a;cout

Слайд 5Последовательность инструкций, которые должна выполнить вычислительная машина, называется алгоритмом.
Графически алгоритм

можно изобразить в виде блок схемы, состоящей из условных обозначений.

Последовательность инструкций, которые должна выполнить вычислительная машина, называется алгоритмом.Графически алгоритм можно изобразить в виде блок схемы, состоящей

Слайд 6Транслятор
Транслятор (translator) - это программа переводчик. Она преобразует программу, написанную

на языке высокого уровня, в программу, состоящую из машинных команд.
последовательно

анализирует и исполняет каждую строку программы

Формирует машинный код, готовый к исполнению вычислительной машиной

ТрансляторТранслятор (translator) - это программа переводчик. Она преобразует программу, написанную на языке высокого уровня, в программу, состоящую

Слайд 7Текст (код) программы состоит из переменных и операторов.
Переменная - это

буквенно-цифровое обозначение, составленное по определенным правилам, которое используется для написания

кода программы, и которому отводится определенное количество оперативной памяти. В языке программирования С++ создание переменных называется также объявлением переменных.
Оператор — это инструкция, описание действия, которое необходимо выполнить над переменными. В состав операторов могут входить служебные слова, данные, выражения и другие операторы, например, арифметические операторы, условные операторы, операторы цикла, операторы ввода/вывода данных и др.

Текст (код) программы состоит из переменных и операторов.Переменная - это буквенно-цифровое обозначение, составленное по определенным правилам, которое

Слайд 8Правила записи переменной
ПЕРЕМЕННАЯ
Тип
Имя
Текущее значение
unsigned int abc 12134
int A -31745
float b 0.56
double a_21 -8.75

Правила записи переменнойПЕРЕМЕННАЯТипИмяТекущее значениеunsigned int	abc			12134int			A			-31745float			b			0.56double		a_21			-8.75

Слайд 9Правила записи имени переменной
НЕЛЬЗЯ использовать
руские буквы
скобки
знаки арифметических действий, знаки

препинания и др.
имя не может начинаться с цифры
заглавные и строчные

буквы различаются

МОЖНО использовать
латинские буквы (A-Z, a-z)
Цифры
знак подчеркивания _


Правила записи имени переменнойНЕЛЬЗЯ использоватьруские буквыскобки знаки арифметических действий, знаки препинания и др.имя не может начинаться с

Слайд 10Под заданную таким образом переменную будет выделена некоторая область оперативной

памяти.
Что означает объявить переменную? Это значит:
Задать тип.
Задать имя.
Задать значение, которое

можно присвоить переменной сразу или в процессе выполнения программы.

Объявление переменных

Под заданную таким образом переменную будет выделена некоторая область оперативной памяти.Что означает объявить переменную? Это значит:Задать тип.Задать

Слайд 11Глобальные и локальные переменные
Переменные могут быть глобальные, действующие во всей

программе, и локальные, действующие в пределах определенного блока программы. Глобальные

переменные объявляются в начале программы, а локальные внутри блока программы.
Глобальные переменные могут менять свое значение в процессе выполнения программы. Если переменная не должна менять свое значение, то она задается, например,
следующим образом:

const int a=10;
Глобальные и локальные переменные	Переменные могут быть глобальные, действующие во всей программе, и локальные, действующие в пределах определенного

Слайд 12Тип переменной и диапазон ее допустимых значений

Тип переменной и диапазон ее допустимых значений

Слайд 13 Для первоначального изучения языка программирования C++ удобно использовать небольшую по

объему бесплатную интегрированную среду Dev-C++ . В настоящее время официально

проект Dev-C++ не поддерживается и сайт проекта - http://www.bloodshed.net/ закрыт, но на сайте http://orwelldevcpp.blogspot.ru/ имеются обновления Dev-C++, разрабатываемые энтузиастами. Последняя версия, представленная на сайте - Version 5.11 - 27 April 2015. Интерфейсное окно другой популярной версии Dev-C++4.9.9.2 представлено на следующем слайде.
В продолжение проекта Dev-C++ сейчас разрабатывается также бесплатный русифицированный проект wxDev-C++, который включает все свойства Dev-C++ и дополнительно имеет возможность создания виджетов, официальный сайт этого проекта - http://wxdsgn.sourceforge.net/

Программное обеспечение для изучения С++

Для первоначального изучения языка программирования C++ удобно использовать небольшую по объему бесплатную интегрированную среду Dev-C++ . В

Слайд 14Интерфейсное окно программы Dev-C++ версии 4.9.9.2
(заимствовано из http://www.studfiles.ru/preview/3740997/)

Интерфейсное окно программы Dev-C++ версии 4.9.9.2 (заимствовано из http://www.studfiles.ru/preview/3740997/)

Слайд 151. Создать новую папку на рабочем столе и дать ей

имя.
2. Запустить программу Dev-C++
3. Настроить интерфейс. Для этого выбрать Сервис

> Параметры редактора > Синтаксис > Цветовые схемы > Classic.
4. Выбрать пункты меню: Файл > Создать >
Исходный файл.
5. Набрать текст программы.
6. Нажать кнопку Скомпилировать (F9 или Ctrl+F9).
7. Задать имя файла и сохранить в созданную папку.
8. Нажать кнопку Выполнить (F10 или Ctrl+F10).

Порядок работы с программой Dev-С++

1. Создать новую папку на рабочем столе и дать ей имя.2. Запустить программу Dev-C++3. Настроить интерфейс. Для

Слайд 16#include
using namespace std;
double a, y;
int main()
{
setlocale (0, "");
cout

"Введите переменную a: " > a;
y=a+a;
cout

" << y << endl;
return 0;
}

Пример 1 (первая программа)

Результат работы программы

#include using namespace std;double a, y;int main(){setlocale (0,

Слайд 17Директива #include используется для подключения библиотечных подпрограмм.
Библиотечная подпрограмма

отвечает за ввод/вывод данных.
Строка — using namespace std указывает на то, что

используется подпространство имен с названием «std».
double a, y – объявление вещественных переменных.
int main() {…} – главная программа. В круглых скобках указывается либо возвращаемое значение, либо ничего не указывается. Далее в фигурных скобках идет тело главной программы. Все, что находится внутри фигурных скобок, будет автоматически выполняться после запуска программы. Количество открывающих и закрывающих скобок должно быть одинаковым.
Оператор setlocale (0, "") позволяет распознавать русский текст в программе. Эквивалентная форма записи этого оператора setlocale (LC_ALL, "Russian").
Директива #include используется для подключения библиотечных подпрограмм. Библиотечная подпрограмма отвечает за ввод/вывод данных.Строка — using namespace std указывает

Слайд 18Оператор cin >> a задает ввод данных в программу с

клавиатуры. После оператора cin (Console INput) ставятся двойные угловые кавычки,

направленные от оператора cin (данные уходят от пользователя).
Оператор cout << "y= " << y << endl задает вывод данных из программы на экран монитора. После оператора cout (Console OUTput) ставятся две угловые кавычки, направленные к оператору cout (данные приходят к пользователю). Если надо вывести текст (но не значение переменной), то он заключается в верхние кавычки.
Оператор endl (end line) переводит курсор на следующую строку. Вместо endl можно применять "\n".
Команда return 0 (пишется со строчной буквы) сообщает о завершении главной программы
В конце каждого оператора (строки) ставится точка с запятой.
Оператор cin >> a задает ввод данных в программу с клавиатуры. После оператора cin (Console INput) ставятся

Слайд 19Пространство имен
std — пространство имён, определённое для всей стандартной библиотеки

С++, а «::» — это оператор разрешения области видимости, который

указывает, из какого пространства имён должен браться следующий за ним идентификатор.

Пространство имён — это группа идентификаторов, внутри которой все идентификаторы уникальны (не повторяются). Если отсутствует необходимость в использовании разных пространств имён в рамках одной программы, то можно однажды задать пространство и далее обращаться ко всем именам без его указания.
using namespace std;

Пространство именstd — пространство имён, определённое для всей стандартной библиотеки С++, а «::» — это оператор разрешения

Слайд 20cin >> a >> b;
cin >> a;
Ввод данных с клавиатуры
cout

второе число: " << endl;
cin >> b;

Фрагмент программы

Ввод переменной a

Ввод переменных a, b

cin >> a >> b;cin >> a;Ввод данных с клавиатурыcout

Слайд 21



Вывод значения переменной «a»
cout

переход на новую строку
cout

"Привет!";

Вывод текста и значения переменной «с»

cout << "Ответ " << c;

Варианты вывода данных на монитор

Важно! Число пробелов между словом Ответ и последними кавычками будет равно числу пробелов между словом Ответ и значением переменной с на экране.

Вывод значения переменной «a»cout

Слайд 22


cout.precision(5);
cout

– 5:
x = 1238.5
Значащих цифр – 2:
x= 1.2e+003
(или 1,2·103, или

1200)

Форматы вывода вещественных чисел

cout.precision(7);
cout << x << endl;

float x = 1238.4767;

Значащих цифр – 7:
x = 1238.477

cout.precision(5);cout

Слайд 23 При записи результатов в виде x= 1.2e+003, число 1.2 называется

мантиссой, 003 – показатель степени при основании 10. В данном

примере при переходе к записи числа в обычной форме точка должна быть передвинута на три знака вправо, т. е. х = 1200. Если показатель степени отрицательный (например, -003), точка передвигается на три знака влево.
В некоторых вариантах компилятора для того, чтобы задержать результаты на экране, используется оператор _getch() (начинается с символа подчеркивания). При этом в начале программы должна быть подключена библиотека . В некоторых вариантах компилятора в этом операторе нет необходимости. Достаточно поставить галочку около опции: Сервис > Параметры среды > Общие > Pause console programs after return
При записи результатов в виде x= 1.2e+003, число 1.2 называется мантиссой, 003 – показатель степени при основании

Слайд 24#include
#include
using namespace std;
int R1=10;
int R2=2000;


int main()
{
cout

<< R2 << endl;
return 0;
}

Если необходимо зарезервировать под выводимое число определенное количество позиций, то можно применить библиотеку #include и оператор setw(n), где n – кол-во зарезервированных под число позиций, например,

Вывод с заданной шириной поля

#include #include using namespace std; int R1=10; int R2=2000; int main() { cout

Слайд 26Пример программы, выводящей на экран квадрат числа, введённого пользователем с

клавиатуры и звукового сигнала:
#include
using namespace std;
double s;
int main()

{setlocale (0, "");
cout << "Введите число: ";
cin >> s;
cout << "Квадрат числа: ";
cout << s*s << endl;
cout << "\a"; // Это вывод звукового сигнала
return 0;
}

Пример 2.


Слайд 28Библиотека
Чтобы воспользоваться сложными математическими функциями, нужно подключить библиотеку, в

которой содержатся эти функции, а именно:
#include (или )

Библиотека Чтобы воспользоваться сложными математическими функциями, нужно подключить библиотеку, в которой содержатся эти функции, а именно:#include

Слайд 29Запись математических функций в C++

Запись математических функций в C++

Слайд 30


pow(x,2)-7*x+6

(fabs(x)-fabs(y))/(1+fabs(x*y))
log((y-sqrt(fabs(x)))*(x-y/(z+pow(x,2)/4)))


Примеры записи математических выражений

pow(x,2)-7*x+6(fabs(x)-fabs(y))/(1+fabs(x*y))log((y-sqrt(fabs(x)))*(x-y/(z+pow(x,2)/4)))Примеры записи математических выражений

Слайд 31int a, b;
a ++; // a = a +

1;
a --; // a = a – 1;


a += b; // a = a + b;
a -= b; // a = a - b;
a *= b; // a = a * b;
a /= b; // a = a / b;
a %= b; // a = a % b;

Допустимая сокращенная запись простых математических операций

int a, b;a ++;  		// a = a + 1; a --;  		// a =

Слайд 32 Важно. В С++ деление целого числа на целое дает

в результате целое число, т.е. 1/2 = 0. Чтобы при

делении получить 0.5 необходимо, чтобы хотя одно из чисел было вещественным числом, т.е. необходимо записать либо 1.0/4, либо 1/4.0

Операция % означает остаток от целочисленного деления. Например, 10 % 3 = 1

В C++ доступны две константы: число «пи» и число «е» (основание натурального логарифма). Их можно получить с помощью констант M_PI и M_E, например,
double a, b;
a = M_PI;
b = M_E;
cout<
Важно. В С++ деление целого числа на целое дает в результате целое число, т.е. 1/2 =

Слайд 33#include
#include
using namespace std;
int x=4578;
int y;
int main()
{
y=pow(x,2)-7*x+6;
cout

"

#include #include using namespace std;int x=4578;int y;int main(){y=pow(x,2)-7*x+6;cout

Слайд 34#include
#include
using namespace std;
int main()
{
int y(10);
int x(-4);
int z(3);
double c=fabs(x)+sqrt(y)+pow(z,2);
cout

переменной, например,
int y=10; можно записать, как int y(10);

Пример 4 (расчет по формуле)

#include #include using namespace std;int main(){	int y(10);	int x(-4);	int z(3);	double c=fabs(x)+sqrt(y)+pow(z,2);	cout

Слайд 35









8)
7)
6)
5)
4)
3)
2)
1)
Написать программы на C++ для вычисления значения y математических выражений

1…8 при следующих исходных данных: а = 10, b =

20
8)7)6)5)4)3)2)1)Написать программы на C++ для вычисления значения y математических выражений 1…8 при следующих исходных данных: а =

Слайд 36













15)
14)
13)
12)
11)
10)
18)
9)
17)
16)

Написать программы на C++ для вычисления значения функций 9...18 при

следующих исходных данных: x = π/4

15)14)13)12)11)10)18)9)17)16)Написать программы на C++ для вычисления значения функций 9...18 при следующих исходных данных: x = π/4

Слайд 37Ответы:

Ответы:

Слайд 38#include
#include
using namespace std;
int main()
{
setlocale (0, "");
double a, b,

y;
cout a;
cout

>> b;
y=pow(a,2)+pow(b,3)+pow((pow(a,2)+pow(b,3)),2);
cout << "y=" << y << endl;
return 0;
}

Пример 5. Расчет по формуле с вводом исходных данных с помощью клавиатуры.


Слайд 39Пример 6. Вычисление площади круга
#include
#include
using namespace std;
double S,

R;
double pi=3.1416;
int main()
{
setlocale(0, "");
cout

радиус окружности в метрах: ";
cin >> R;
S=pi*pow(R,2);
cout << "S=" << S << " кв.м" << endl;
return 0;
}

Слайд 40Пример 7.
Напишите программу для вычисления длины окружности:
C = 2πR

Пример

8.
Напишите программу для вычисления объема прямого цилиндра:
V = Sh,
где

S – площадь основания,
h – высота.
Радиус основания цилиндра и высота должны вводиться с клавиатуры.

Пример 7.Напишите программу для вычисления длины окружности: C = 2πRПример 8.Напишите программу для вычисления объема прямого цилиндра:V

Слайд 42Оператор if…else (если…иначе).

При выполнении условия if выполняется последующий код

программы, расположенный после условия. Если условие не выполняется, происходит переход

к дальнейшему выполнению программы или переход к коду программы, расположенному после оператора else.
Программный код после операторов if и else заключается в фигурные скобки.
Условие if всегда записывается в круглых скобках, точка с запятой после условия не ставится. Если при выполнении условия требуется выполнить только одну команду, то фигурные скобки ставить не обязательно.
Оператор if…else (если…иначе). При выполнении условия if выполняется последующий код программы, расположенный после условия. Если условие не

Слайд 43
if (a > b)
M = a;
else
M

= b;
Блок – схема:
Фрагмент программы:
Полная форма ветвления,
используются операторы
if … else
Полная

форма условного оператора
if (a > b) M = a;  else M = b;Блок – схема:Фрагмент программы:Полная форма ветвления,используются

Слайд 44
M = a;
if (b > a)
M =

b;
Блок-схема:
Фрагмент программы:
Неполная форма ветвления,
используется только if

Неполная форма условного оператора

M = a;  if (b > a) M = b;Блок-схема:Фрагмент программы:Неполная форма ветвления,используется только ifНеполная форма

Слайд 45
if (a>b)
M=10;
else {
if (a==b)
M=20;
else
M=30;
}
Вложенный условный оператор
a = = b

if (a>b) M=10;else {if (a==b)M=20;elseM=30;}Вложенный условный операторa = = b

Слайд 46
больше или равно
меньше или равно
равно
не равно
НЕ
И
ИЛИ
Двойной знак равенства является не

оператором присваивания, а оператором сравнения. Например, if (a==5) означает, что

мы не присваиваем переменной «а» значение 5, а сравниваем текущее значение «а» со значением 5. И в случае равенства условие выполняется.

больше, меньше

Знаки отношений в условном операторе if

>=

>

<=

! =

!

| |

==

<

&&

больше или равноменьше или равноравноне равноНЕИИЛИДвойной знак равенства является не оператором присваивания, а оператором сравнения. Например, if

Слайд 47Пример 9
Написать программу с условным оператором if.

Кредит, который может

выдать банк физическому лицу, зависит от суммы зарплаты.
Если сумма зарплаты

Sz<=20000 руб, то кредит недоступен.
Если сумма зарплаты 20000 < Sz <= 40000 руб, то банк может выдать кредит Kr=0.7*Sz.
Если сумма зарплаты Sz>40000 руб, то банк может выдать кредит Kr=1.2*Sz.

Сумму зарплаты вводить с клавиатуры.
Вывести на монитор доступную сумму кредита.
Пример 9Написать программу с условным оператором if. Кредит, который может выдать банк физическому лицу, зависит от суммы

Слайд 48#include
using namespace std;
int main()
{
setlocale(0, "");
int

Sz,Kr; // Sz – сумма зарплаты, Kr – сумма кредита
cout

<< "Введите сумму зарплаты: ";
cin >> Sz;
if (Sz<=20000)
cout << "Кредит недоступен" << endl;
if (Sz>20000 && Sz<=40000)
{
Kr=0.7*Sz;
cout << "Доступен кредит: "<< Kr << "руб" << endl;
}
if (Sz>40000)
{
Kr=1.2*Sz;
cout << "Доступен кредит: "<< Kr << "руб" << endl;
}
return 0;
}

Пример 9


Слайд 49
int a=6;
if (a==5) {
c=5;
y=a+c;
}
else {
c=4;
y=a-c;
}
Дополнить приведенный фрагмент обязательными инструкциями и

написать полностью программу. В конце программы вывести на монитор переменную

y.

Пример 10. Фрагмент программы с условным оператором

int a=6;if (a==5) {c=5;y=a+c;}else {c=4;y=a-c;}Дополнить приведенный фрагмент обязательными инструкциями и написать полностью программу. В конце программы вывести

Слайд 50Пример 11.
Написать программу, в которой с клавиатуры вводятся два числа:

a, b. Если выполняется условие a > b, то вычислить
Если

условие не выполняется, то вычислить

Вывести на монитор значение M.

M = a + b

M = a - b

Пример 11.Написать программу, в которой с клавиатуры вводятся два числа: a, b. Если выполняется условие a >

Слайд 51Взять за основу пример 11, но ввести в него не

два, а три условия: если a > b то переменной

M присвоить значение




если a = b то присвоить

если a < b то присвоить

Вывести на монитор значение M.

M = 10;

M = 20;

M = 30;

Пример 12.

Взять за основу пример 11, но ввести в него не два, а три условия: если a >

Слайд 52Пример 13. Написать программу для нахождения случайного числа (в диапазоне

0…99), которое присваивается переменной num.
#include
#include
#include
using namespace std;
int

main() {
setlocale(LC_ALL, "Russian");
int num = rand() % 100; /*остаток от деления случайного числа на 100 */
cout << "Случайное число num=" << num << endl;
return 0;
}
Пример 13. Написать программу для нахождения случайного числа (в диапазоне 0…99), которое присваивается переменной num.#include #include #include

Слайд 53
Дополнить программу примера 13 следующим
условным оператором:

int a, b;
if (num

>=50)
{
a = 1;
cout

= 2;
cout << "b= " << b << endl;
}

Пример 14

Дополнить программу примера 13 следующим условным оператором:int a, b;if (num >=50){a = 1;cout

Слайд 54
Пример 15. Дополнить программу примера 13 следующим условным оператором:
double a,

b;
double х=3.1416/4;
if (num >=50)
{
a =

;

cout << "a = " << a << endl;
}
else
{
b =
cout << "b = " << b << endl;
}

(1+tgx+cosx+sinx)2+5sinx;

Пример 15. Дополнить программу примера 13 следующим условным оператором:double a, b;double х=3.1416/4;if (num >=50) { a =

Слайд 55Пример 16. Написать программу вычисления сопротивления последовательной или параллельной цепи

в зависимости от варианта. Значения сопротивлений должны вводиться с клавиатуры.

Варианты 1 или 2 также должны вводиться с клавиатуры.


Вар.1

Вар.2




R1

R2

R1

R2

Пример 16. Написать программу вычисления сопротивления последовательной или параллельной цепи в зависимости от варианта. Значения сопротивлений должны

Слайд 56#include
#include
using namespace std;
double R1, R2,

R11, R22;
int num;
int main()
{
setlocale(0,

"");
cout << "Введите R1: ";
cin >> R1;

Пример 16 (начало)


Слайд 57cout > R2;
cout

1, если последовательная цепь, введите 2, если параллельная цепь: ";
cin

>> num;
if (num==1)
{
R11=R1+R2;
cout << "R11=" << R11 << endl;
} else {
R22=R1*R2/(R1+R2);
cout << "R22=" << R22 << endl;
}
return 0;
}

Пример 16 (окончание)

cout > R2;cout > num; if (num==1) { 	R11=R1+R2; 	cout

Слайд 58Пример 17. Написать программу вычисления сопротивления последовательной или параллельной цепи

аналогично предыдущему примеру, но последовательная и параллельная электрическая цепи должны

состоять уже из трех резисторов. Значения сопротивлений R1, R2, R3 должны вводиться с клавиатуры. Варианты 1 или 2 также должны вводиться с клавиатуры.
В программе использовать следующие формулы
Вар 1 (последовательная цепь):




Вар.2 (параллельная цепь):

где:

Пример 17. Написать программу вычисления сопротивления последовательной или параллельной цепи аналогично предыдущему примеру, но последовательная и параллельная

Слайд 59Пример 18. После абсолютно упругого соударении двух тел массой m1

и m2 они будут двигаться со скоростями



После абсолютно неупругого

соударении двух тел массой m1 и m2 они будут двигаться с общей скоростью



Написать программу расчета скоростей при абсолютно упругом и абсолютно неупругом соударении тел. Массы и начальные скорости двух тел вводить с клавиатуры.

Пример 18. После абсолютно упругого соударении двух тел массой m1 и m2 они будут двигаться со скоростями

Слайд 61Цикл – это многократное выполнение одинаковых действий.
Циклические алгоритмы в С++
Различают

два вида циклов:
цикл с известным числом шагов (например, выполнить действие

10 раз) – цикл for
цикл с неизвестным числом шагов (делать, пока не выполнится условие останова цикла) – цикл while
Цикл – это многократное выполнение одинаковых действий.Циклические алгоритмы в С++Различают два вида циклов:цикл с известным числом шагов

Слайд 62Пусть надо найти значения функции y=2*x-5 при нескольких значениях аргумента

x=1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Тогда

фрагмент кода программы будет иметь вид:
x=1;
y=2*x-5;
cout << y << endl;
x=2;
y=2*x-5;
cout << y << endl;
и т.д. всего 30 строк.
Такая запись крайне нерациональна!
В этих случаях используют оператор цикла.

Пример алгоритма, требующего многократных повторений.

Пусть надо найти значения функции y=2*x-5 при нескольких значениях аргумента x=1, 2, 3, 4, 5, 6, 7,

Слайд 63
Цикл for
Заголовок цикла, записывается в круглых скобках, точка с запятой

после заголовка не ставится!
Внутри заголовка:
1. На первом месте располагается

начальное значение изменяемого параметра цикла. В нашем примере изменяемым параметром является переменная i, она же служит счетчиком цикла. Начальное значение равно 1. Каждое новое значение переменной соответствует одному проходу цикла. Один проход цикла называется итерацией. После задания начального значения ставится точка с запятой.

for (int i = 1; i <= 10; i++) - заголовок цикла
{
x=i;
y=2*x-5;
cout << y << endl;
}


тело цикла

Цикл forЗаголовок цикла, записывается в круглых скобках, точка с запятой после заголовка не ставится! Внутри заголовка:1. На

Слайд 642. На втором месте в заголовке указывается конечное значение переменной.

В нашем примере конечное значение переменной i равно 10. Снова

ставим точку с запятой.

3. И, наконец, на третьем месте, указывается шаг изменения переменной или шаг цикла. Шаг цикла — это значение, на которое будет увеличиваться или уменьшаться переменная при каждом проходе (i++ означает увеличение на единицу).

За заголовком цикла идет тело цикла, которое записывается в фигурных скобках.
2. На втором месте в заголовке указывается конечное значение переменной. В нашем примере конечное значение переменной i

Слайд 65#include
#include
using namespace std;
int t, dt=10;
int main() {
setlocale (0,

"");
for (t=0; t

t << endl;
return 0;
}

В качестве изменяемого параметра цикла может выступать любая физическая величина.

Пример цикла for с параметром «время».

#include #include using namespace std;int t, dt=10;int main() {setlocale (0,

Слайд 66#include
#include
using namespace std;
int L, dL=5;
int main() {
setlocale (0,

"");
for (L=0; L

L << endl;
return 0;
}

Пример цикла for с параметром «расстояние»

#include #include using namespace std;int L, dL=5;int main() {setlocale (0,

Слайд 67
int a = 5;
int sum=0;
for( i = 1; i

4; i++ )
{
a = a + 2;
sum=sum+a;
}
cout

<< endl;
cout << sum << endl;

i=1, a=7, sum=7
i=2, a=9, sum=16
i=3, a=11, sum=27
i=4, a=13, sum=40

Дописать программу и убедиться, что в результате выполнения цикла а=13, sum=40

Пример 19. Определить значения переменных а, sum после выполнения цикла.

int a = 5;int sum=0;for( i = 1; i

Слайд 68

Когда мы не знаем, сколько итераций должен произвести цикл, нам

понадобится цикл while или do...while. Синтаксис циклов while и do…while

в C++ выглядит следующим образом:
while: do…while:
while (условие) do
{ {
Тело цикла; Тело цикла;
} }
while (условие);

Циклы будут выполняться до тех пор, пока выполняется условие, указанное в круглых скобках.

Циклы while и do…while

Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис циклов

Слайд 69Цикл while
В цикле while условие, определяющее будет

ли цикл повторяться, проверяется перед первым шагом цикла. Такой цикл

называется циклом с предпроверкой условия.

#include
using namespace std;
int main()
{
int i=0;
while (i<3)
{
i++;
cout << i << " ";
}
return 0;
}

Цикл while   В цикле while условие, определяющее будет ли цикл повторяться, проверяется перед первым шагом

Слайд 70Цикл do…while
Если условие проверки располагается в конце цикла,

то это будет цикл с постпроверкой условия. Для его записи

используется конструкция из операторов do…while.

#include
using namespace std;
int main()
{
int i=0;
do
{
i++;
cout << i << endl;
}
while (i<3);
return 0;
}

Цикл do…while  Если условие проверки располагается в конце цикла, то это будет цикл с постпроверкой условия.

Слайд 71Важно.
В цикле while точка с запятой после условия цикла

не ставится.
В цикле do…while после условия цикла надо поставить точку

с запятой.


Обратить внимание. Оператор вывода в циклах
while и do…while можно задавать различным образом. При этом выводимые данные будут располагаться или в строчку, или в столбик.


Важно. В цикле while точка с запятой после условия цикла не ставится.В цикле do…while после условия цикла

Слайд 72

В чем отличие цикла while от do…while?

while do…while
int i = 1; int i = 1;
while

(i < 0) { do {
cout << i << " "; cout << i << " ";
i++; i++;
} }
while (i < 0);

Цикл while не выполнится ни разу, а цикл do…while выполнится 1 раз, и на экран будет выведено «1».

В чем отличие цикла while от do…while?    while			  do…whileint i = 1; 			int

Слайд 73#include
using namespace std;
int main()
{
int i;
int sum = 0;


setlocale(0, "");
for (i = 1; i

<= 10; i++)
{
sum = sum + i;
}
cout << "Сумма чисел от 1 до 10 = " << sum << endl;
return 0;
}

Пример 20. Напишем с помощью цикла for программу, которая будет считать сумму чисел от 1 до 10.

#include using namespace std;int main(){int i; int sum = 0;  setlocale(0,

Слайд 74Пример 21.
Дописать программу, которая будет считать сумму чисел от

1 до 10 с помощью цикла while.

int i=0;
int sum

= 0;
while (i<10)
{
i++;
sum = sum + i;
}

Пример 22.
Написать программу, которая будет считать сумму чисел от 1 до 10 с помощью цикла do…while.

Пример 21. Дописать программу, которая будет считать сумму чисел от 1 до 10 с помощью цикла while.int

Слайд 75
Пример 23. Написать программу
для расчета значений выражения
при а

= 5 и b = 0.5, 1.0, 1.5, 2.0, 2.5,

3.0



#include
#include
#include
using namespace std;
int a=5;
double b, y;
int main()
{
setlocale(0, "");
int i;
for (i = 1; i <=6; i++)
{
b=0.5*i;
y=pow(a,2)+pow(b,3)+a*b+a/sqrt(b);
cout << "b=" < Пример 23. Написать программу для расчета значений выражения при а = 5 и b = 0.5, 1.0,


Слайд 76
Пример 24. Написать программу для расчета значений выражения



при значении b

= 1.5 и при значениях
a = 3, 6, 9, 12,

15, 18



Пример 24. Написать программу для расчета значений выраженияпри значении b = 1.5 и при значенияхa = 3,

Слайд 77Досрочное завершение цикла (оператор break)
Как цикл while так и

цикл for можно завершить досрочно, если внутри тела цикла использовать

оператор break.
При этом произойдёт моментальный выход из цикла, не будет закончен даже текущий шаг (т. е. если после break присутствовали какие-то ещё операторы, то они не выполнятся).
Досрочное завершение цикла (оператор break) Как цикл while так и цикл for можно завершить досрочно, если внутри

Слайд 78
Досрочное завершение цикла (оператор break)
В результате работы следующего примера

на экран будут выведены только числа «1 2 3 4»,

хотя конечное значение счетчика цикла равно 10.
for (int i=1; i<=10; i++)
{
if(i == 5) {
break;
}
cout << i << " ";
}
Досрочное завершение цикла (оператор break) В результате работы следующего примера на экран будут выведены только числа «1

Слайд 79Пример 25 (оператор цикла for + оператор break).
Мяч вертикально

падает с высоты 2м. Высота каждого подскока составляет 0,6 от

предыдущей высоты. Сколько подскоков должен сделать мяч, чтобы очередная высота подскока не превышала 0,3 м.
В программе используется оператор цикла и оператор break.
Пример 25 (оператор цикла for + оператор break). 	Мяч вертикально падает с высоты 2м. Высота каждого подскока

Слайд 80#include
#include
using namespace std;
int ik;
double h=2.0;
int main()


{
setlocale(0, "");
for (int i = 1; i


{
h=h*0.6;
if (h<=0.3)
{
ik=i;
break;
}
}
cout << "Номер подскока: " << ik << endl;
cout << "Высота подъема: " << h << endl;
return 0;
}

Пример 25

#include #include using namespace std; int ik;double h=2.0;int main() {setlocale(0,

Слайд 81Мяч вертикально падает на пол со скоростью V1=6 м/с. В

момент каждого отскока мяч теряет в скорости 30%, т.е. скорость

отскока равна V2=0.7*V1. После отскока мяч подпрыгивает на высоту
При втором и каждом последующем падении мяча скорость падения равна скорости предыдущего отскока.
Написать программу и вывести на монитор высоту подъема после каждого отскока. Число отскоков задать равным 6. Ускорение свободного падения

Пример 26





Мяч вертикально падает на пол со скоростью V1=6 м/с. В момент каждого отскока мяч теряет в скорости

Слайд 82#include
#include
using namespace std;
int main()
{
setlocale(0, "");
int i=0;
double V1=6,

V2, h, g=9.81;
for (i=1; i

<<" Высота подъема: "<}
return 0;
}

Пример 26

#include #include using namespace std;int main(){setlocale(0,

Слайд 84Последовательность действий при отладке программы
1. Для демонстрации отладки выберем

пример 25 и версию программы Dev-C++ 4.9.9.2.
Создадим, откомпилируем и выполним

программу. Программа выдает результат, но, предположим, у нас есть сомнения в правильности результата.
2. Запускаем отладку (кнопка Отладка или клавиша F8). При первом запуске отладки программа выдаст запрос, хотим ли мы разрешить отладку и перестроить проект. Отвечаем Да (Yes).
3. Задаем точки прерывания программы. Для этого щелкаем мышью в столбце слева от операторов и строчка подсвечивается красным цветом. Программа будет выполняться до строки, предшествующей строке прерывания.
Последовательность действий при отладке программы 1. Для демонстрации отладки выберем пример 25 и версию программы Dev-C++ 4.9.9.2.Создадим,

Слайд 854. Далее работаем с нижней панелью интерфейсного окна. Чтобы она

появилась, щелкаем в нижней части окна по вкладке Отладка.
5.

Щелкаем в нижней панели по опции Выполнить до курсора. Строчка программы (номер 12), соответствующая первой точке прерывания, становится синей, как показано на рис. 1.
6. Щелкаем в нижней панели программы по кнопке Добавить в наблюдаемые, появляется дополнительное окошко, в котором задаем интересующую нас переменную i. Затем повторяем процедуру и последовательно задаем переменные h и ik. Эти переменные и их значения появляются в левой области интерфейсного окна (рис. 1).
4. Далее работаем с нижней панелью интерфейсного окна. Чтобы она появилась, щелкаем в нижней части окна по

Слайд 86Рис. 1

Рис. 1

Слайд 87Рис. 2
Рис. 3
Рис. 4
7. Далее в нижней панели нажимаем на

кнопку Продолжить выполнение и переменные i, h, ik принимают новые

значения, как показано на рис. 2, рис. 3, рис. 4.
8. Когда значение i станет равным четырем, выполнится условный оператор, нижняя строчка (номер 15), соответствующая второй точке прерывания, станет синей, также выполнится оператор break и программа закончит работу (рис. 5).
Рис. 2Рис. 3Рис. 47. Далее в нижней панели нажимаем на кнопку Продолжить выполнение и переменные i, h,

Слайд 88Рис. 5

Рис. 5

Слайд 89Таким образом, с помощью режима отладки мы проконтролировали работу программы,

выяснили, какие значения принимают переменные i, h, ik, убедились, что

программа работает правильно. Чтобы остановить режим отладки, надо нажать кнопку Остановить выполнение в нижней панели.
С помощью кнопки Следующий шаг, можно проследить пошаговое выполнение программы.
С помощью кнопки Удалить объект наблюдения, можно удалять наблюдаемые переменные из левой области интерфейсного окна.
Таким образом, с помощью режима отладки мы проконтролировали работу программы, выяснили, какие значения принимают переменные i, h,

Слайд 91Массив (совокупность нескольких значений) Имя массива создается аналогично имени обычной

переменной, но за именем массива в квадратных скобках указывается количество

элементов массива, которое задается при его объявлении. Чтобы описать элементы массива сразу при его создании, можно использовать фигурные скобки. В фигурных скобках значения элементов массива перечисляются через запятую. В конце закрывающей фигурной скобки ставится точка с запятой. При объявлении массива нумерация элементов массива начинается с нуля. Массив, как и любую переменную можно не заполнять значениями при объявлении.

Описание массива и вывод на печать

Массив (совокупность нескольких значений) Имя массива создается аналогично имени обычной переменной, но за именем массива в квадратных

Слайд 92
#include
using namespace std;
int main()
{
setlocale (0, "");
int a[5]={5,10,15,20,25};
for (int i=0;

i

return 0;
}

Пример 27 (вариант заполнения массива сразу после его объявления)

Важно: нумерация элементов массива начинается с 0:

a[0] = 5
a[1] = 10
a[2] = 15
a[3] = 20
a[4] = 25

Элемента a[5] не существует .

5
элементов

#include using namespace std;int main(){setlocale (0,

Слайд 93Пример 28 (вариант заполнения массива с помощью оператора цикла)
#include
using

namespace std;
int main()
{
setlocale (0, "");
int a[7];
for (int i=0; i

7; i++)
{
if (i==0)
a[i]=1;
else
a[i] = a[i-1]*2;
cout << a[i] << endl;
}
return 0;
}
Пример 28 (вариант заполнения массива с помощью оператора цикла)#include using namespace std;int main(){setlocale (0,

Слайд 94Написать программы, аналогичные примеру 27 на заполнение массива при объявлении.

Вывести массивы на монитор:
P[7]=0, -1, 1, -2, 2, -3, 3;
Q[8]=1.8,

2.5, 3.7, 4.9, 2.9, 1.5, -1.7, -2.3;
R[4]=3, 33, 333, 3333;

Написать программы, аналогичные примеру 28 на заполнение массива с помощью оператора цикла. Вывести массивы на монитор:
S[5]=1, 10, 100, 1000, 10000;
T[5]=-1, -8, -27, -64, -125;
U[6]=1.5, 2.0, 2.5, 3.0, 3.5, 4.0;
Написать программы, аналогичные примеру 27 на заполнение массива при объявлении. Вывести массивы на монитор:P[7]=0, -1, 1, -2,

Слайд 95Пример 29. Написать программу для вычисления дальности полета тела, брошенного

под углом α к горизонту. Сопротивлением воздуха пренебречь. Расчет провести

для следующих углов бросания: 0, 15, 30, 45, 60, 75, 90 градусов. Для хранения рассчитанных значений дальности создать массив L[7]. Задать начальную скорость бросания равной V = 20 м/сек. Ускорение свободного падения g = 9,81 м/сек2 .
Дальность полета тела рассчитывается по формуле


Пример 29. Написать программу для вычисления дальности полета тела, брошенного под углом α к горизонту. Сопротивлением воздуха

Слайд 96#include
#include
using namespace std;
double v=20;
double g=9.81;
double pi=3.1416;
double alf;
double L[7];
int

main()
{
setlocale (0, "");
alf=0;
int i;
for (i=0; i

" " << L[i] << endl;
alf=alf+pi/12;
}
return 0;
}

Пример 29

#include #include using namespace std;double v=20;double g=9.81;double pi=3.1416;double alf;double L[7];int main(){	setlocale (0,

Слайд 97Пример 30.
Взять за основу программу предыдущего примера и видоизменить

ее так, чтобы начальная скорость и угол бросания вводились с

клавиатуры. Тогда программа будет находить дальность полета при любой начальной скорости и любом угле бросания, заданных с клавиатуры. Вывести на монитор заданный угол бросания, заданную начальную скорость и рассчитанную дальность полета.

Примечание: угол вводить в градусах, а в формулу подставлять в радианах.
Пример 30. Взять за основу программу предыдущего примера и видоизменить ее так, чтобы начальная скорость и угол

Слайд 98#include
#include
using namespace std;
double v, alf, L;
double g=9.81;
double pi=3.1416;
int

main()
{
setlocale (0, "");
cout > v;
cout

"Введите угол: ";
cin >> alf;
alf=alf*pi/180;
L=2*pow(v,2)*sin(alf)*cos(alf)/g;
cout << "Дальность полета: " << L << endl;
return 0;
}

Пример 30


Слайд 99Пример 31.
Написать программу для перевода двоичного числа в десятичное.
Использовать следующий

алгоритм
где b – десятичное число;
an – крайняя слева цифра двоичного

числа;
n – количество цифр в двоичном числе.
Например, перевести двоичное число 11001011 в десятичное:

При написании программы представить двоичное число в виде массива a[8] = {1,1,0,0,1,0,1,1}








Пример 31.Написать программу для перевода двоичного числа в десятичное.Использовать следующий алгоритмгде b – десятичное число;an – крайняя

Слайд 100#include
#include
using namespace std;
int main()
{
int i;
int b=0;
int

a[8]={1,1,0,0,1,0,1,1};
for (i=0; i

31
#include #include using namespace std; int main(){int i;int b=0;int a[8]={1,1,0,0,1,0,1,1};for (i=0; i

Слайд 102

Оператор SWITCH
Конструкция оператора
switch:
switch (переключатель) {
case значение1:

инструкция1;
break;
case значение2:
инструкция2;
break;

}

Пример,
a=2;
switch

(a)
{
case 1:
b=1;
break;
case 2:
b=2;
break;
}

В качестве переключателя могут выступать только целочисленные переменные или выражения.

Оператор SWITCH Конструкция оператора switch:switch (переключатель) { case значение1:  инструкция1;  break; case значение2:  инструкция2;

Слайд 103Пример 32. Вывод словесного описания оценки, основываясь на текущей оценке

ученика

#include
using namespace std;
int main() {
setlocale (0, "");
int grade;


cout << "Введите оценку от 2 до 5" << endl;
cin >> grade;
switch (grade)
{ case 5: cout << "У вас оценка отлично" << endl; break;
case 4: cout << "У вас оценка хорошо" << endl; break;
case 3: cout << "У вас всего лишь удовлетворительно" << endl; break;
case 2: cout << "Плохо, у вас двойка" << endl; break;
}
return 0;
}

Использование оператора SWITCH

Пример 32. Вывод словесного описания оценки, основываясь на текущей оценке ученика #include using namespace std;int main() {setlocale

Слайд 104Написать программу – калькулятор, которая будет выполнять для двух чисел

a, b, введенных с клавиатуры, следующие математические операции:
1. a+b;
2. a-b;
3.

a*b;
4. a/b;

Пример 33

Написать программу – калькулятор, которая будет выполнять для двух чисел a, b, введенных с клавиатуры, следующие математические

Слайд 105cout a;
cout

b;
cout

"Выберите действие: " << endl;
cout << "1. Сложить a+b" << endl;
cout << "2. Вычесть a-b" << endl;
cout << "3. Умножить a*b" << endl;
cout << "4. Разделить a/b" << endl;
cin >> z;
switch (z)
{
case 1: cout << "a+b= " << a+b << endl;
break;
case 2: cout << "a-b= " << a-b << endl;
break;
case 3: cout << "a*b= " << a*b << endl;
break;
case 4: cout << "a/b= " << a/b << endl;
break;
}

Пример 33. Дописать программу.

cout a;cout b;cout

Слайд 106Пример 34.
Дополнить пример 33 следующими математическими операциями:

5. b-a;
6. b/a;
7. sqrt

(a);
8. sqrt (b);

Пример 34.Дополнить пример 33 следующими математическими операциями:5. b-a;6. b/a;7. sqrt (a);8. sqrt (b);

Слайд 108 Функция (в Fortran – процедура) – подпрограмма ,

выполняющая действия, многократно повторяющиеся в основной программе. Использование функций сокращает

объем программы и уменьшает вероятность появления ошибок в программе.
Функция может иметь возвращаемое значение или не иметь возвращаемого значения.
Функция может быть с параметрами или без параметров. В функции без параметров не указывается возвращаемое значение. Начинается с оператора void.
Код функции может быть размещен в начале программы или в конце программы. Во втором случае в начале программы необходимо объявить функцию с помощью оператора, который называется прототипом функции. При этом описание прототипа не отличается от описания заголовка функции.

Функция (подпрограмма)

Функция (в Fortran – процедура) – подпрограмма , выполняющая действия, многократно повторяющиеся в основной программе.

Слайд 109

INT
LONG
DOUBLE
В списке параметров перед каждым параметром указывается тип,

параметры разделяются запятыми.
Структура функции
Заголовок функции
{
операторы;
return выражение (или переменная);
}
Пример:
int amp(int x,

int y) – заголовок функции
{
x=pow(x,2);
y=pow(y,2);
return x+y;
}

Тип возвращаемого функцией значения

Имя функции (список параметров)

Заголовок функции

Правила записи функции с возвращаемым значением.

x, y – формальные параметры


тело функции

INTLONG DOUBLE В списке параметров перед каждым параметром указывается тип, параметры разделяются запятыми.Структура функцииЗаголовок функции{операторы;return выражение (или

Слайд 110 Функция состоит из заголовка и тела функции. Тело функции заключается

в фигурные скобки. В прототипе и теле функции задаются формальные

параметры. Внутри функции они доступны как локальные переменные.
Фактические параметры существуют в основной программе. Они указываются при вызове функции на месте формальных. В момент вызова функции значения фактических параметров присваиваются формальным параметрам. Имена формальных и фактических параметров могут совпадать, это не вызовет конфликта.
Не рекомендуется создавать функции, обращающиеся к глобальным переменным, так как в этом случае функция становится привязанной к конкретной основной программе.
Функция состоит из заголовка и тела функции. Тело функции заключается в фигурные скобки. В прототипе и теле

Слайд 111Соответствие фактических параметров формальным параметрам устанавливается в том порядке, в

котором они были объявлены. Тип фактических параметров должен совпадать или

быть совместимым с типом формальных параметров. Одна функция не может объявляться или определяться внутри другой т.е. нельзя объявлять и определять функции внутри main. Но одна функция может вызываться внутри другой. В частности, внутри своего тела функция может вызывать саму себя. Такое явление называется рекурсией.
Соответствие фактических параметров формальным параметрам устанавливается в том порядке, в котором они были объявлены. Тип фактических параметров

Слайд 112

#include
#include
using namespace std;
double a, b, z1, z2;
double amp(double

x, double y); // прототип функции «amp»


int main()
{
setlocale (0, "");
cout << "Введите a: ";
cin >> a;
cout << "Введите b: ";
cin >> b;
z1=a+b;
z2=pow(a,2)+pow(b,2);
cout << amp(z1,z2); /* z1, z2 фактические параметры, подставляемые вместо формальных параметров в функцию amp */
return 0;
}
double amp(double x, double y) // функция «amp»
{
x=x+1;
y=y+1;
return x/y; // x/y - возвращаемое значение
}

Пример 35

Задание: записать пример 35 без прототипа функции.


Слайд 113
#include
#include
using namespace std;
int x=4;
int y, yy, z;
int aver

(int a, int b) // функция
{
z=(a+b)/2;
}
int main() {
y=pow(x,2);
aver (x,y);
cout

<< z << endl;
yy=pow(x,3);
aver (y,yy);
cout << z << endl;
return 0;
}

Формальные параметры

Фактические
параметры

Пример 36

Задание: записать пример 36 с прототипом функции.

#include #include using namespace std;int x=4;int y, yy, z;int aver (int a, int b)  // функция{	z=(a+b)/2;}int

Слайд 114Функция с параметрами
Функция без параметров

Функция с параметрамиФункция без параметров

Слайд 115Функция с возвращаемым
значением

Функция без возвращаемого
значения

Функция с возвращаемымзначением Функция без возвращаемого значения

Слайд 116 В рассмотренных примерах функция без возвращаемого значения avrg становится зависимой

от глобальной переменной z, что нежелательно. В случае функции с

возвращаемым значением aver такой зависимости нет, так как все переменные определены внутри функции. Переменная z в этом случае является локальной. В языке C++ локальными являются переменные объявленные внутри функции или блока, ограниченного фигурными скобками.
В рассмотренных примерах функция без возвращаемого значения avrg становится зависимой от глобальной переменной z, что нежелательно. В

Слайд 117Возвращаемых значений в
функции может быть несколько,
например,
#include
#include
using

namespace std;
int x (4), y;
double z1, z2;
int aver(int a, int

b) {
z1=a+b;
z2=(a+b)/2;
return z1, z2;
}
int main() {
y=pow(x,2);
aver (x,y);
cout << z1 << " " << z2 << endl;
return 0;
}

Пример 37

Примечание: int x(4) означает int x=4;

Задание: записать пример 37
с прототипом функции.

Возвращаемых значений в функции может быть несколько, например,#include #include using namespace std;int x (4), y;double z1, z2;int

Слайд 118Итак, когда мы работаем с функцией, надо указать тип возвращаемого

функцией значения, имя функции, задать перечень формальных параметров с указанием

типа в круглых скобках после имени функции (точку с запятой после заголовка функции ставить не надо), записать необходимые действия в теле функции, и вернуть результат работы функции оператором return.
Оператор return заканчивает выполнение функции и возвращает управление в вызывающую функцию.
Если описание функции располагается после main, то перед main необходимо объявить прототип функции.

Правила работы с функцией (имеющей формальные параметры и возвращаемое значение)

Итак, когда мы работаем с функцией, надо указать тип возвращаемого функцией значения, имя функции, задать перечень формальных

Слайд 119Пример 38. Необходимо найти путь и расход топлива для автомобиля,

который во время поездки двигался с различной скоростью в течение

различных временных отрезков.
Пусть скорость автомобиля описывается следующим массивом скоростей:
V[7] = {60,70,80,90,100,110,120} км/час. Этому массиву скоростей соответствует массив временных промежутков:
t[7] = {0.7, 0.65, 0.55, 0.4, 1.2, 1.0, 1.5} часов.
Путь будем определять по формуле S = V·t, а расход топлива по формуле R = 0,001·V2 ·t, где S[км], V[км/час], t[час], R[л]. Последняя формула учитывает зависимость расхода топлива не только от времени движения автомобиля, но и от его скорости. За исходную величину расхода топлива принимается расход в10 литров на 100 км пути при скорости 100 км/час. При уменьшении скорости расход топлива уменьшается, при увеличении скорости – увеличивается.
Пример 38. Необходимо найти путь и расход топлива для автомобиля, который во время поездки двигался с различной

Слайд 120#include
#include
using namespace std;
double S=0;
double R=0;
int v[7]={60,70,80,90,100,110,120}; //массив скоростей
double

t[7]={0.7,0.65,0.55,0.4,1.2,1.,1.5}; /*массив временных промежутков, соответствующих массиву скоростей*/
double F1(int a, double

b); /*прототип функции для вычисления пути */
double F2(int a, double b); /*прототип функции для вычисления расхода топлива */
int main()
{
setlocale(0, "");

Пример 38 (начало)

#include #include using namespace std;double S=0;double R=0;int v[7]={60,70,80,90,100,110,120}; //массив скоростейdouble t[7]={0.7,0.65,0.55,0.4,1.2,1.,1.5}; /*массив временных промежутков, соответствующих массиву скоростей*/double

Слайд 121 for (int i=0; i

параметров a, b подставляем фактические значения скорости и времени на

i-ом отрезке пути */
R=R+F2(v[i],t[i]); //Вычисляем расход топлива
}
cout << S <<" "<< R;
return 0;
}
double F1(int a, double b) { //описание функции F1
return a*b;
}
double F2(int a, double b) { //описание функции F2
return 0.001*pow(a,2)*b;
}

Пример 38 (продолжение)

for (int i=0; i

Слайд 122Пример 38 (результаты расчета)
Задание: записать пример 38 без прототипов функций.

Пример 38 (результаты расчета)Задание: записать пример 38 без прототипов функций.

Слайд 123
где L – длина маятника,
g – ускорение свободного падения.
Получить результаты

для длины L1=5 м и L2=10 м.
Для вычисления T использовать

подпрограмму-функцию.

Пример 39. Написать программу для расчета периода колебаний математического маятника.
Период колебаний математического маятника определяется по формуле:


где L – длина маятника,g – ускорение свободного падения.Получить результаты для длины L1=5 м и L2=10 м.Для

Слайд 124#include
#include
using namespace std;
double PF (int LM)
{
double pi=3.1416;
double g=9.81;
double

TM;
TM=2*pi*sqrt(LM/g);
return TM;
}
int main()
{
int L=5;
double T1, T2;
T1=PF(L);
cout

T1 << endl;
L=10;
T2=PF(L);
cout << "T2= " << T2 << endl;
return 0;
}

Пример 39

#include #include using namespace std;double PF (int LM){	double pi=3.1416;	double g=9.81;	double TM;	TM=2*pi*sqrt(LM/g);	return TM;}int main(){int L=5;double T1, T2;T1=PF(L);cout

Слайд 126Пример 40. Запись результатов вычисления функции sin(x) в текстовый файл
#include


#include
#include
using namespace std;
double x;
double dh=3.1416/20;
int main()
{
setlocale (LC_ALL,"Russian");
ofstream f;
f.open

("snx.txt");
for (int i=0; i<=10; i++)
{
x=dh*i;
f << sin(x) << endl;
}
return 0;
}
Пример 40. Запись результатов вычисления функции sin(x) в текстовый файл#include #include #include using namespace std;double x;double dh=3.1416/20;int

Слайд 127Рассмотрим пример 40 подробнее:
#include //подключить библиотеку fstream
ofstream.f; //output file

stream – организовать поток вывода в файл,
f.open («snx.txt"); //открыть текстовый

файл snx.txt для записи,
f << sin(x) << endl; //записать значения sin(x) в файл snx.txt
Это четыре минимально необходимых строчки кода программы, чтобы организовать вывод в файл.
Результат вывода имеет вид:




Рассмотрим пример 40 подробнее:#include  //подключить библиотеку fstreamofstream.f; //output file stream – организовать поток вывода в файл,f.open

Слайд 128Пример 41. Считывание данных из текстового файла test.txt
#include
#include
#include


using namespace std;
int main()
{
setlocale (LC_ALL,"Russian");
ifstream f;
f.open ("test.txt");
double a[11];
for (int i=0;

i<=10; i++)
{
f >> a[i];
cout << a[i] << endl;
}
return 0;
}

Слайд 129Рассмотрим пример 41 подробнее:
#include //подключить библиотеку fstream
ifstream.f; // input

file stream – организовать поток ввода из файла,
f.open ("test.txt"); //открыть

текстовый файл test.txt,
f >> a[i]; //записать значения из файла test.txt в массив a[11]
Имеем, как и в предыдущем случае, четыре минимально необходимых строчки кода программы, чтобы организовать ввод из файла в программу.
Тестовый файл test.txt заполняем значениями синуса из предыдущего примера. Результат ввода из файла имеет вид:

Слайд 131 Иногда необходимо не просто получить результаты расчета, но и построить

график по результатам расчета. Поведение кривых на построенном графике позволяет

оперативно контролировать правильность написанной программы.
Будем проводить расчеты в С++, а график строить в Excel, поскольку Excel имеет более развитый инструментарий для построения графиков и диаграмм, нежели С++. Чтобы автоматизировать перенос результатов расчета из C++ в Excel, результаты расчетов будем выводить в файл, а затем копировать в Excel.
Иногда необходимо не просто получить результаты расчета, но и построить график по результатам расчета. Поведение кривых на

Слайд 132Последовательность действий при построении графика
1. Написать программу, в которой значения

аргумента и функции выводятся в файл, а не на консоль.

Предусмотреть вывод запятой между аргументом и функцией.
2. Открыть полученный файл в программе Microsoft Office Word.
3. Преобразовать данные в таблицу с помощью опций Вставка > Таблица > Преобразовать в таблицу, используя в качестве разделителя данных запятую после аргумента.
4. Скопировать таблицу в Excel и заменить точку в полученных данных на запятую с помощью опций Главная > Найти и выделить > Заменить.
5. Построить график в Excel с помощью опций Вставка > Точечная > Точечная с гладкими кривыми.
Последовательность действий при построении графика1. Написать программу, в которой значения аргумента и функции выводятся в файл, а

Слайд 133Примечание. Чтобы Excel не переводил автоматически дробное число в дату

при копировании из Word в Excel, измените системные настройки даты

с «.» на «/» в Панель управления > Язык и региональные стандарты:
Примечание. Чтобы Excel не переводил автоматически дробное число в дату при копировании из Word в Excel, измените

Слайд 134#include
#include //библиотека потокового ввода/вывода
#include
using namespace std;
double

trig(double var); // прототип функции trig
int main()
{
setlocale (0, "");
double a,

b, h, x;
char s[20]; // строка из 20 символов для имени файла
cout << "Введите начальное и конечное значение аргумента и шаг: ";
cin >> a >> b >> h;
cout << "Введите имя файла: ";
cin >> s;
ofstream f; //объявляем поток записи в файл
f.open(s); // открываем файл

Пример 42. Построить график функции y=sin(x)+cos(x)

1)


Слайд 135 for (x=a; x

x

ставим запятую после аргумента, которая позволит нам преобразовать результаты в таблицу */
f.width(15);
f << trig(x) << endl; /*вызываем функцию с текущим аргументом х и пишем результаты вычислений в файл */
}
f.close(); // закрываем файл
return 0;
}
double trig(double var) { // функция trig
return sin(var)+cos(var);
}

Пример 42 (продолжение)

for (x=a; x

Слайд 1362)
3)
Файл с
результатами
расчетов
Преобразовываем
результаты в
таблицу

2)3)Файл с результатамирасчетов Преобразовываемрезультаты втаблицу

Слайд 1374)
5)
Строим
график
Копируем
таблицу в Excel и
заменяем
разделительные
точки в числах на
запятые

4)5)СтроимграфикКопируем таблицу в Excel изаменяем разделительные точки в числах назапятые

Слайд 138Пример 43. При подключении разряженного конденсатора C к источнику напряжения

U0 через резистор R, напряжение на конденсаторе увеличивается от 0

до U0 по закону



Где постоянная заряда, имеющая размерность [сек].

Написать программу расчета кривой U(t) и построить график этой кривой.
Расчет проведем при следующих исходных данных: R=1 кОм, С=1000 мкФ, время окончания заряда ts=4 с, шаг по времени dt=0.1с.

Пример 43. При подключении разряженного конденсатора C к источнику напряжения U0 через резистор R, напряжение на конденсаторе

Слайд 139#include
#include
#include
using namespace std;
double u0=12;
double tau=1;
double volt(double x);

// прототип функции
int main() {
double t, ts, dt;
setlocale

(0, "");
char s[20];
cout << "Введите время окончания расчета ts: ";
cin >> ts;
cout << "Введите шаг dt: ";
cin >> dt;
cout << "Введите имя файла ";
cin >> s;

Пример 43 (начало)


Слайд 140 ofstream f; // вывод в файл
f.open(s); // открыть

файл
for (t=0; t

<< t << ","; /* Записываем в файл аргумент t и одновременно пишем после него запятую */
f.width(15);
f << volt(t) << endl; /* вызываем функцию volt с текущим аргументом t и пишем результаты вычислений в файл*/
}
f.close(); //Закрываем файл
return 0;
}
double volt(double x) {
return u0*(1-exp(-x/tau));
}

Пример 43 (продолжение)

ofstream f; // вывод в файл f.open(s); // открыть файл for (t=0; t

Слайд 141Пример 43 (построение графика)
Таблица приведена в сокращенном виде.

Пример 43 (построение графика) Таблица приведена в сокращенном виде.

Слайд 142Мяч падает на пол в точке А со скоростью V1=6

м/с. Угол падения мяча составляет 30 град. от вертикали. При

каждом отскоке мяч теряет 30% скорости, т.е. для скорости отскока можно записать V2=0.7*V1. Угол отскока мяча равен углу падения. При втором и каждом последующем падении мяча скорость падения равна скорости предыдущего отскока. Угол падения и угол отскока сохраняют значение 30 град.
Написать программу и вывести на монитор траекторию движения мяча при подскоках. Число отскоков задать равным 6.
Высота подъема мяча при отскоке
Время движения мяча между двумя соседними подскоками
, где - вертикальная составляющая скорости отскока.

Пример 44 (построение траектории)

Мяч падает на пол в точке А со скоростью V1=6 м/с. Угол падения мяча составляет 30 град.

Слайд 143#include
#include
#include //библиотека для выводы в

файл
using namespace std;
double V1=6, g=9.80665, pi=3.14159;
int main()
{
setlocale(LC_ALL, "Russian");
char s[20];
double x,

t, tm, dt, V2, Vx, Vy, Vys, h;
int i, j, N;
double xp[7]; // массив координат точек подскока
double tp[7]; //время, соответствующее точкам подскока
cout << "Введите имя файла: ";
cin >> s;
ofstream f; // указываем поток вывода в файл
f.open(s); // открыть файл
tp[0]=0;
xp[0]=0;

Пример 44 (начало)


Слайд 144cout > N; // N

- число разбиений отрезка между отскоками
for (i=0; i

цикл по точкам подскока
{
V2=0.7*V1;
Vy=V2*cos(pi/6);
Vx=V2*sin(pi/6);
tm=Vy/g; // время подъема на максим. высоту при отскоке
tp[i+1]=tp[i]+2*tm; //время до следующей точки отскока
xp[i+1]=xp[i]+Vx*2*tm; //расстояние до след. точки отскока
dt=2*tm/N; // шаг по времени
for (j=0; j<=N; j=j+1) /*цикл на построение траектории между соседними точками отскока */
{
if (j==0)
{
h=0;
x=xp[i];
t=tp[i];
Vys=Vy; //запоминание вертик. скорости в предыд. момент
}

Пример 44 (продолжение)

cout > N; // N - число разбиений отрезка между отскокамиfor (i=0; i

Слайд 145else
{
Vy=Vy-g*dt;
h=h+dt*(Vy+Vys)/2; /* расчет высоты с учетом средней скорости за промежуток

времени dt */
x=x+Vx*dt;
t=t+dt;
Vys=Vy;
}
f

координаты х в файл
f << h << endl; //запись высоты, соответствующей коорд. х
}
V1=V2; // переприсвоение скоростей падения и отскока
cout << tp[i] << " "<< xp[i] << endl;
}
f.close(); //закрываем файл
}

Пример 44 (окончание)

else{Vy=Vy-g*dt;h=h+dt*(Vy+Vys)/2; /* расчет высоты с учетом средней скорости за промежуток времени dt */ x=x+Vx*dt;t=t+dt;Vys=Vy;	}f

Слайд 146Пример 44. Результаты расчета - траектория движения
мяча

Пример 44. Результаты расчета - траектория движениямяча

Слайд 148Написать программы самостоятельно:
45. Написать программу, выводящую на монитор элементы в

диапазоне от 11 до 20 для последовательности чисел 1 3

5 7 9 11 13 15 17 19 21 23 25
46. Написать программу, выводящую на монитор первые 5 элементов последовательности 2 4 8 16 32 64 128
47. Написать программу, вычисляющую факториал натурального числа n, которое пользователь вводит с клавиатуры (n!=1·2·3·4·…·n).
48. Написать программу, переводящую двоичные числа в десятичные:
1100011111 (ответ: 799),
11001110001 (ответ: 1649),
101010111111 (ответ: 2751).


Написать программы самостоятельно:45. Написать программу, выводящую на монитор элементы в диапазоне от 11 до 20 для последовательности

Слайд 14949. Уравнение идеального трансформатора имеет вид
где

- напряжение в первичной и вторичной обмотках

соответственно,
- число витков в первичной и вторичной обмотках соответственно.
Написать программу для определения напряжения во вторичной обмотке при известных значениях . Значения вводить с клавиатуры.








49. Уравнение идеального трансформатора имеет видгде        - напряжение в первичной

Слайд 15050. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном

соединении резисторов:
Сопротивления резисторов R1 … R4 вводить с клавиатуры.

50. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:Сопротивления резисторов R1 … R4 вводить

Слайд 15151. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном

соединении резисторов:
Сопротивления резисторов R1 … R7 вводить с клавиатуры. Для

расчета параллельного участка цепи использовать подпрограмму – функцию.
51. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:Сопротивления резисторов R1 … R7 вводить

Слайд 15252. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном

соединении резисторов:
Сопротивления резисторов R1 … R7 вводить с клавиатуры. Для

расчета параллельного участка цепи использовать подпрограмму – функцию.
52. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:Сопротивления резисторов R1 … R7 вводить

Слайд 15353. Написать программу для вычисления корней квадратного уравнения
Выражение

называется

дискриминантом и обозначается буквой D. Если дискриминант больше нуля, то существуют два корня, если D=0, то существует один корень, и если D<0, то действительных корней не существует.
Коэффициенты квадратного уравнения a, b, с вводить с клавиатуры.

Корни квадратного уравнения вычисляются по формуле

 

53. Написать программу для вычисления корней квадратного уравненияВыражение

Слайд 15454. Пример на эффект Доплера. Пусть имеется источник звукового сигнала,

который излучает звук частотой f0 , и приемник, который принимает

звуковой сигнал. Частота принимаемого звука зависит от скоростей источника и приемника. Возможны случаи:
Случай 1. Источник сигнала приближается к приемнику со скоростью Vист . Тогда частота звука, принимаемого приемником, будет равна


Случай 2. Источник сигнала удаляется от приемника со скоростью Vист . Тогда частота звука, принимаемого приемником, будет равна


54. Пример на эффект Доплера. Пусть имеется источник звукового сигнала, который излучает звук частотой f0 , и

Слайд 155Случай 3. Источник сигнала и приемник движутся навстречу друг другу

со скоростями соответственно Vист и Vпр . Тогда частота звука,

принимаемого приемником, будет равна


Случай 4. Источник сигнала и приемник удаляются друг от друга со скоростями Vист и Vпр . Тогда частота звука, принимаемого приемником, будет равна


Написать программу с оператором switch для вычисления частоты звука для рассмотренных случаев. Принять скорость звука V = 340 м/сек. Переменные f0 , Vист , Vпр вводить с клавиатуры.

Случай 3. Источник сигнала и приемник движутся навстречу друг другу со скоростями соответственно Vист и Vпр .

Слайд 156









62)
61)
60)
59)
58)
57)
56)
55)
Написать программы для вычисления значения y при следующих исходных данных:


а = 6.5, 7.0, 7.5, 8.0, 8.5, 9.0;
b =

14.3, 15.0, 15.7, 16.4, 17.1
62)61)60)59)58)57)56)55)Написать программы для вычисления значения y при следующих исходных данных: а = 6.5, 7.0, 7.5, 8.0, 8.5,

Слайд 157





Написать программы для вычисления значения y при следующих исходных данных:


α = 10, 20, 30, 40, 50, 60 градусов,
β =

15, 30, 45, 60, 75 градусов

63)

64)

65)

66)

67)

68)

Написать программы для вычисления значения y при следующих исходных данных: α = 10, 20, 30, 40, 50,

Слайд 158К примеру 63 (вар.1)
#include
#include
using namespace std;
int i,j;
double a,

b; // углы α и β


double pi=3.1416;
double ar, br, y;
int main()
{
a=0;
for (i=1; i<=6; i++) // цикл по углу α
{
a=a+10;
ar=(a*pi)/180; // угол α в радианах
b=0;
for (j=1; j<=5; j++) // цикл по углу β
{
b=b+15;
br=(b*pi)/180; // угол β в радианах
y=sin(ar)+tan(br);
cout<<"a="< К примеру 63 (вар.1)#include #include using namespace std;int i,j;double a, b;    		 // углы

Слайд 159К примеру 63 (вар.2)
#include
#include
using namespace std;
double a, b;

// углы α и β
double pi=3.1416;
double ar, br, y;
int main()
{
for (a=10; a<=60; a=a+10) // цикл по углу α
{
ar=(a*pi)/180; // угол α в радианах
for (b=15; b<=75; b=b+15) // цикл по углу β
{
br=(b*pi)/180; // угол β в радианах
y=sin(ar)+tan(br);
cout<<"a="< К примеру 63 (вар.2)#include #include using namespace std;double a, b;

Слайд 160 Мяч падает на пол в точке А со скоростью V1=6

м/с. Угол падения мяча составляет 30 град. от вертикали. При

каждом отскоке мяч теряет в скорости 30%, т.е. скорость отскока равна V2=0.7*V1, угол отскока мяча равен углу падения. При втором и каждом последующем падении мяча скорость падения равна скорости предыдущего отскока. Угол падения и угол отскока сохраняют значение 30 град.
Написать программу и вывести на монитор максимальную высоту подъема после каждого отскока мяча и расстояние от первоначальной точки падения до текущей точки отскока. Число отскоков задать равным 6.
Высота подъема мяча при отскоке
Время движения мяча между двумя соседними подскоками
, где - вертикальная составляющая скорости отскока.

Пример 69






Мяч падает на пол в точке А со скоростью V1=6 м/с. Угол падения мяча составляет 30 град.

Слайд 161




Построить графики в диапазоне от -4 до 4
70.
71.
72.
73.
Построить графики в

диапазоне от 0 до π

Построить графики в диапазоне от -4 до 470.71.72.73.Построить графики в диапазоне от 0 до π

Слайд 163Пример 74. Рассмотрим, как программирование может пригодиться при создании технического

устройства. Техническим устройством, в частности, может служить прибор, управляющий подсветкой

различных объектов. На фотографии представлен макет технического устройства, состоящий из микроконтроллерной платы Ардуино и линейки светодиодов.

Программирование микроконтроллерной платы осуществляется с помощью упрощенного аналога С++. Процесс программирования платы подробно описан в литературе [7]. Там же есть описания других устройств на Ардуино.
Программа, управляющая миганием светодиодов, представлена на следующих слайдах.

Пример 74. Рассмотрим, как программирование может пригодиться при создании технического устройства. Техническим устройством, в частности, может служить

Слайд 164#define S1 3
#define S2 4
#define S3 5
#define S4 6
#define S5

7
#define S6 8
#define S7 9
#define S8 10
#define S9 11
#define S10

12
int Led[10]={S1, S2, S3, S4, S5, S6, S7, S8, S9, S10};
int i, j;
void setup()
{
for (i=0; i<=9; i++)
pinMode (Led[i], OUTPUT);
}
void loop()
{
for (i=0; i<=9; i++) // начальное обнуление
digitalWrite(Led[i],LOW);
for (j=1; j<=5; j++) //последовательное мигание светодиодов
{

Пример 74 (начало)

#define S1 3#define S2 4#define S3 5#define S4 6#define S5 7#define S6 8#define S7 9#define S8 10#define

Слайд 165 for (i=0; i

delay (70);
digitalWrite(Led[i],LOW);
}
}
for

(j=1; j<=5; j++) // одновременное мигание линейки
{
for (i=0; i<=9; i++)
digitalWrite(Led[i],LOW);
delay (500);
for (i=0; i<=9; i++)
digitalWrite(Led[i],HIGH);
delay (500);
}
for (j=1; j<=5; j++) //переключение между половинами линейки
{
for (i=0; i<=4; i++)
digitalWrite(Led[i],LOW);
for (i=5; i<=9; i++)
digitalWrite(Led[i],HIGH);
delay (500);
for (i=0; i<=4; i++)
digitalWrite(Led[i],HIGH);

Пример 74 (продолжение)

for (i=0; i

Слайд 166 for (i=5; i


delay (500);
}
for (j=1; j

j++) //мигание первой половины линейки
{
for (i=0; i<=4; i++)
digitalWrite(Led[i],HIGH);
delay (100);
for (i=0; i<=4; i++)
digitalWrite(Led[i],LOW);
delay(100);
}
for (j=1; j<=5; j++) //мигание второй половины линейки
{
for (i=5; i<=9; i++)
digitalWrite(Led[i],HIGH);
delay (100);
for (i=5; i<=9; i++)
digitalWrite(Led[i],LOW);
delay(100);
}
}

Пример 74 (окончание)

for (i=5; i

Слайд 167Литература
http://life-prog.ru/view_cat.php?cat=2. Язык
программирования Си(C++). Обучающие уроки
2. http://code-live.ru Уроки С++ с

нуля.
3. http://kpolyakov.spb.ru К.Ю. Поляков, Е.А. Еремин.
Программирование на С++

(презентация).
4. http://comp-science.narod.ru/Progr/file_c.htm Шестаков
А.П. Файлы в C++.
5. http://itedu.ru/courses/cpp/functions-in-cpp Обучение
программированию.
6.http://www.youtube.com/playlist?list=PLbmlzoDQrXVFC13GjpPrJxl6mzTiX65gs. C++ Уроки Denis Markov (Полный курс 28 уроков)
7. Программирование Ардуино. (В книге: В.Н. Иванов, И.О. Мартынова. Электроника и микропроцессорная техника. – М.: «Академия», 2016)

Допускается использование и копирование слайдов при условии ссылки на презентацию.

Литератураhttp://life-prog.ru/view_cat.php?cat=2. Язык программирования Си(C++). Обучающие уроки2. http://code-live.ru Уроки С++ с нуля.3. http://kpolyakov.spb.ru  К.Ю. Поляков, Е.А. Еремин.

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика