title: Презентация на тему: Программирование процессора Cell

text:
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
SPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
PPE
SPE
SPE
LS
Load 1
Count 1
Store 1
Load 2
Count 2
Store 2
Load 1
Count 1
Store 1
Load 2
Count 2
Store 2
Count 3
Load 3
Load 4
Count 4
Store 3
0
1
2
3
4-core SMP
C
L
U
S
T
E
R
PPE
SPE
PPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
Task
Task
Task
Task
Task
Task
Task
SPE
SPE
SPE
SPE
PPE
Input
data
Output
data
SPE
PPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
SPE
SPE
SPE
SPE
SPE
SPE
SPE
PPE
SPE
Callback function
Run SPE program
SPE-program
PPE-program
spu_prog.c
spu-gcc -o spu_prog spu_prog.c
spu_prog
ppu_prog.c
spu_hello
ppu-embedspu spu_hello spu_prog spu_prog.o
ppu-gcc -o prog ppu_prog.c spu_prog.o -lspe2
spu_prog.o
prog
pthread_create()
SPE
SPE
SPE
run()
PPE
SPE
SPE
SPE
SPE
get
put
SPE
SPE
SPE
SPE
get
put
get list
SPE
SPE
SPE
SPE
get
put
get list
put list
PPE
SPE
spe_in_mbox_write()
spu_read_in_mbox()
spe_out_mbox_read()
spu_write_out_mbox()
spe_out_mbox_status()
spe_in_mbox_status()
spu_stat_in_mbox()
spu_stat_out_mbox()
in
out
PPE
SPE
spe_in_mbox_write()
spu_read_in_mbox()
spe_out_mbox_read()
spu_write_out_mbox()
spe_out_mbox_status()
spe_in_mbox_status()
spu_stat_in_mbox()
spu_stat_out_mbox()
PPE
SPE
spe_signal_write()
spu_read_signal1()
spu_stat_signal1()
spu_stat_signal2()
spe_signal_write()
spu_read_signal2()
in
out
sig1
sig2
PPE
SPE
signal
mailbox
SPE
SPE
put
spe_ls_area_get()
SPE
SPE
spe_ps_area_get()
put
get
int a[n];
short int b[n];
for (i=0; i<n; i++)
  a[i] = a[i] + b[i];
...
select = spu_cmpgt(a, b);
c_plus_1 = spu_add(c, 1);
a_plus_b = spu_add(a, b);
c = spu_sel (c, c_plus_1, select);
d = spu_sel (a_plus_b, d, select);
...
...
if (a > b)
  c += 1;
else
  d = a + b;
...
...
if ( __builtin_expect(a>b, 1) )
  c += 1;
else
  d = a + b;
...
...
if (a > b)
  c += 1;
else
  d = a + b;
...
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
IBM Cell Broadband Engine resource center, http://www.ibm.com/developerworks/power/cell/documents.html
Cell Developer's Corner, http://www.power.org/resources/devcorner/cellcorner
STI Center of Competence for the Cell Broadband Engine Processor, http://sti.cc.gatech.edu
Barcelona Supercomputing Center: Cell Superscalar, www.bsc.es/cellsuperscalar
RapidMind Development Platform, www.rapidmind.net
Mercury Computer Systems: MultiCore Framework, http://www.mc.com/software/multicore_framework.aspx
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
IBM Cell Broadband Engine resource center, http://www.ibm.com/developerworks/power/cell/documents.html
Cell Developer's Corner, http://www.power.org/resources/devcorner/cellcorner
STI Center of Competence for the Cell Broadband Engine Processor, http://sti.cc.gatech.edu
Barcelona Supercomputing Center: Cell Superscalar, www.bsc.es/cellsuperscalar
RapidMind Development Platform, www.rapidmind.net
Mercury Computer Systems: MultiCore Framework, http://www.mc.com/software/multicore_framework.aspx
Function offload model
void mulv (float *a, float *b, float *c, int n)
{
  int i, j, k;
  vector float *bv = (vector float *) b;
  vector float *cv = (vector float *) c;
  vector float s, t;

  s = spu_splats(0.0);
  for (i=0; i<n*n/4; i++) cv[i] = s;

  for (i=0; i<n; i++)
    for (k=0; k<n; k++)
    {
      s = spu_splats ( a[i*n+k] );
      for (j=0; j<n/4; j++)
      { t = spu_mul (s, bv[k*n/4+j] );
        cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t );
      }
    }
}
IBM Cell Broadband Engine resource center, http://www.ibm.com/developerworks/power/cell/documents.html
Cell Developer's Corner, http://www.power.org/resources/devcorner/cellcorner
STI Center of Competence for the Cell Broadband Engine Processor, http://sti.cc.gatech.edu
Barcelona Supercomputing Center: Cell Superscalar, www.bsc.es/cellsuperscalar
RapidMind Development Platform, www.rapidmind.net
Mercury Computer Systems: MultiCore Framework, http://www.mc.com/software/multicore_framework.aspx


title: Презентация на тему: Программное обеспечение. Операционная система

text:
COMPUTER
WORK
UROK
APPLE
IBM
DOCUMENT
DOC2
DOC1
letter2.doc
letter1.doc

SMOLENSK
SCHOOL_5
SCHOOL_6
6A
7A
Ivanov.doc
Andreev.doc
CLASS
CLASS
6A
6B
Sasha.txt
Masha.txt
7A
7B
Pasha.txt

SMOLENSK
SCHOOL_5
SCHOOL_6
6A
7A
Ivanov.doc
Andreev.doc
6_CLASS
7_CLASS
6A
6B
Sasha.txt
Masha.txt
7A
7B
Pasha.txt
\FOTO\SCHOOL_class.jpg
\FOTO\SCHOOL_class.jpg
\FOTO\ FAMILY\mother.jpg
\FOTO\ FAMILYather.jpg
\DOC\VIDEO\HOME\doc_1.txt
\DOC\VIDEO\doc_2.txt
\DOC\FOTO\me.jpg


title: Презентация на тему: Программное обеспечение компьютера (8 класс)

text:
Click to edit Master title style
Click to edit Master text styles
Second level
Third level
Fourth level
Fifth level
Click to edit Master title style
Click to edit Master subtitle style
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:
A:\
B:\
C:\
D:\
E:\
F:


title: Презентация на тему: Программное обеспечение

text:
Программное обеспечение
Содержание
Введение
Немного из истории
Классификация ПО
Уровни программной конфигурации
Глоссарий

Введение
Программное обеспечение – это совокупность программ системы обработки информации и программных документов, необходимых для эксплуатации программ.

Немного из истории
50-60-е годы
70-е годы

80-е годы
90-е годы

В 50-60-е годы
когда компьютер еще назывался ЭВМ (электронно-вычислительная машина), он мог только вычислять. Процесс обработки информации состоял в операциях над числовыми данными.

В 70-е годы
компьютер «научился» работать с текстом. Пользователь получил возможность редактировать и форматировать текстовые документы. В настоящее время большая часть компьютеров и большая часть времени используется для работы именно с текстовыми данными.

В 80-е годы
появились первые компьютеры, способные работать с графической информацией. Сейчас компьютерная графика широко используется в деловой графике, в компьютерном моделировании, при подготовке презентаций, при создании web-сайтов и т.д. Применение компьютеров для обработки графических данных постоянно расширяется.

В 90-е годы
компьютер получил возможность обрабатывать звуковую информацию. Любой пользователь современного ПК может воспользоваться стандартными приложениями Windows для прослушивания, записи и редактирования звуковых файлов. Работа со звуковыми данными является неотъемлемой частью мультимедиа технологии.

Классификация ПО
По способу использования

По назначению

По использования
Несвободные - ПО, являющееся частной собственностью авторов и не удовлетворяющее критериям свободного ПО.

Открытые – ПО с открытым исходным кодом.

Свободные – ПО, пользователи которого имеют права на его неограниченную установку.

По назначению
Системное

Прикладное

Инструментальное

Системное ПО
- это комплекс программ, которые обеспечивают управление компонентами компьютерной системы, выступая как «межслойный интерфейс»,  с одной стороны которого аппаратура, а с другой – приложения пользователя.
Главной частью системного ПО является операционная система.

Общение ОС с пользователем проходит в диалоговом режиме:
<приглашение> - <команда>

Работу пользователя с файлами поддерживает файловая система.

Операционная система - это набор программ, управляющих оперативной памятью, процессором, внешними устройствами и файлами, ведущих диалог с пользователем.

Основные функции ОС:
управление устройствами компьютера;

взаимодействие с пользователем;

работа с файлами.

Структура операционной системы:
Ядро – переводит команды с языка программ на язык «машинных кодов», понятный компьютеру.
Драйверы – программы, управляющие устройствами.
Интерфейс – оболочка, с помощью которой пользователь общается с компьютером.

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

Программы общего назначения:

текстовые и графические редакторы;

системы управления базами данных(СУБД);

табличные процессоры;

коммуникационные (сетевые) программы.

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

Система программирования – это инструмент для работы программиста.

Уровни программной конфигурации

Глоссарий
Операционная система - это набор программ, управляющих оперативной памятью, процессором, внешними устройствами и файлами, ведущих диалог с пользователем.
Ядро – переводит команды с языка программ на язык «машинных кодов», понятный компьютеру.
Драйверы – программы, управляющие устройствами.
Интерфейс – оболочка, с помощью которой пользователь общается с компьютером.

Спасибо за внимание!


title: Презентация на тему: Программное обеспечение ПК. Операционная система

text: CD-RW


Презентация на тему: Программное обеспечение персонального компьютера


title: Презентация на тему: Программирование на С++ для начинающих. Построение графиков.

text:
Программирование на С++ для начинающих.  Построение графиков.
(презентация – практикум)
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
3
Этапы создания программы
4
Алгоритм
Текст программы на каком-либо языке программирования
Машинный код

#include <iostream>
a=10;
s=a*a;
cout << s;
Подключить библиотеку
Ввести переменную а
Вычислить площадь
Вывести результат
001011101010
010101100101
010111010110
101101111010
программист
транслятор
начало
Подключить библиотеку

Программа – это перечень действий (инструкций), которые должна выполнить вычислительная машина.
5
Последовательность  инструкций, которые должна выполнить вычислительная машина, называется алгоритмом.
Графически алгоритм можно изобразить в виде блок схемы, состоящей из условных обозначений.
Транслятор
Транслятор (translator) - это программа переводчик. Она преобразует программу, написанную на языке высокого уровня, в программу, состоящую из машинных команд.
6
последовательно анализирует и исполняет каждую строку программы
Формирует машинный код, готовый к исполнению вычислительной  машиной
Текст (код) программы состоит из переменных и операторов.
Переменная - это буквенно-цифровое обозначение, составленное по определенным правилам, которое используется для написания кода программы, и которому отводится определенное количество оперативной памяти.   В языке программирования С++ создание переменных называется также объявлением переменных.
Оператор — это инструкция, описание действия, которое необходимо выполнить над переменными. В состав операторов могут входить служебные слова, данные, выражения и другие операторы, например, арифметические операторы, условные операторы, операторы цикла, операторы ввода/вывода данных и др.

7
Правила записи переменной
8
ПЕРЕМЕННАЯ
Тип
Имя
Текущее значение
unsigned  int	abc			12134
int			A			-31745
float			b			0.56
double		a_21			-8.75
9
Правила записи имени переменной
НЕЛЬЗЯ использовать
руские буквы
скобки
знаки арифметических действий, знаки препинания и др.
имя не может начинаться с цифры
заглавные и строчные буквы различаются
МОЖНО использовать
латинские буквы (A-Z, a-z)
Цифры
знак подчеркивания _

10
Под заданную таким образом переменную будет выделена некоторая область оперативной памяти.
Что означает объявить переменную?  Это значит:
Задать тип.
Задать имя.
Задать значение, которое можно присвоить переменной сразу или в процессе выполнения программы.
Объявление переменных
11
Глобальные  и локальные переменные
	Переменные могут быть глобальные, действующие во всей программе, и локальные, действующие в пределах определенного блока программы. Глобальные переменные объявляются в начале программы, а локальные внутри блока программы.
Глобальные переменные могут менять свое значение в процессе выполнения программы. Если переменная не должна менять свое значение, то она задается, например,
следующим образом:

const int a=10;
Тип переменной и диапазон ее допустимых значений
12
	Для первоначального изучения языка программирования 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/
13
Программное обеспечение для изучения С++
14
Интерфейсное окно программы Dev-C++ версии 4.9.9.2
(заимствовано из http://www.studfiles.ru/preview/3740997/)
15
1. Создать новую папку на рабочем столе и дать ей имя.
2. Запустить программу Dev-C++
3. Настроить интерфейс. Для этого выбрать Сервис > Параметры редактора > Синтаксис > Цветовые схемы > Classic.
4. Выбрать пункты меню: Файл  > Создать >
     Исходный файл.
5. Набрать текст программы.
6. Нажать кнопку Скомпилировать (F9 или Ctrl+F9).
7. Задать имя файла и сохранить в созданную папку.
8. Нажать кнопку Выполнить (F10 или Ctrl+F10).
Порядок работы с программой Dev-С++
#include <iostream>
using namespace std;
double a, y;
int main()
{
setlocale (0, "");
cout << "Введите переменную a: " << endl;
cin >> a;
y=a+a;
cout << "y= " << y << endl;
return 0;
}
Пример 1 (первая программа)
16
Результат работы программы
Директива #include используется для подключения библиотечных подпрограмм.
Библиотечная подпрограмма <iostream> отвечает за ввод/вывод данных.
Строка — using namespace std указывает на то, что используется подпространство имен с названием «std».
double a, y – объявление вещественных переменных.
int main() {…} – главная программа. В круглых скобках указывается либо возвращаемое значение, либо ничего не указывается. Далее в фигурных скобках идет тело главной программы. Все, что находится внутри фигурных скобок, будет автоматически выполняться после запуска программы. Количество открывающих и закрывающих скобок должно быть одинаковым.
Оператор setlocale (0, "") позволяет распознавать русский текст в программе. Эквивалентная форма записи этого оператора setlocale (LC_ALL, "Russian").
17
18
Оператор cin >> a задает ввод данных в программу с клавиатуры. После оператора cin (Console INput) ставятся двойные угловые кавычки, направленные от оператора cin (данные уходят от пользователя).
Оператор cout << "y= " << y << endl задает вывод данных из программы на экран монитора. После оператора cout  (Console OUTput) ставятся две угловые кавычки, направленные к оператору cout (данные приходят к пользователю). Если надо вывести текст (но не значение переменной), то он заключается в верхние кавычки.
Оператор endl (end line) переводит курсор на следующую строку. Вместо endl можно применять "\n".
Команда return 0 (пишется со строчной буквы) сообщает о завершении главной программы
В конце каждого оператора (строки) ставится точка с запятой.
Пространство имен
std — пространство имён, определённое для всей стандартной библиотеки С++, а «::» — это оператор разрешения области видимости, который указывает, из какого пространства имён должен браться следующий за ним идентификатор.
19
Пространство имён — это группа идентификаторов, внутри которой все идентификаторы уникальны (не повторяются). Если отсутствует необходимость в использовании разных пространств имён в рамках одной программы, то можно однажды задать пространство и далее обращаться ко всем именам без его указания.
 using namespace std;
20
cin >> a >> b;
cin >> a;
Ввод данных с клавиатуры
cout <<"Введите первое число: " << endl;
cin >> a;
cout << "Введите второе число: " << endl;
cin >> b;
Фрагмент программы
Ввод переменной a
Ввод переменных a, b

21
Вывод значения переменной «a»
cout << a;
Вывод значения переменной «a» и переход на новую строку
cout << a << endl;
Вывод текста
cout << "Привет!";
Вывод текста и значения переменной «с»
cout << "Ответ  " << c;
Варианты вывода данных на монитор
Важно! Число пробелов между словом Ответ и последними кавычками будет равно числу пробелов  между словом Ответ и значением переменной с на экране.

22
cout.precision(5);
cout << x << endl;
cout.precision(2);
cout << x << endl;
Значащих цифр – 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
23
	При записи результатов в виде x= 1.2e+003, число 1.2 называется мантиссой, 003 – показатель степени при основании 10. В данном примере при переходе к записи числа в обычной форме точка должна быть передвинута на три знака вправо, т. е. х = 1200. Если показатель степени отрицательный (например, -003), точка передвигается на три знака влево.
	В некоторых вариантах компилятора для того, чтобы задержать результаты на экране, используется оператор _getch() (начинается  с символа подчеркивания). При этом в начале программы должна быть подключена библиотека <conio.h>. В некоторых вариантах компилятора в этом операторе нет необходимости. Достаточно поставить галочку около опции: Сервис > Параметры среды > Общие >  Pause console programs after return
24
#include <iostream>
#include <iomanip>
using namespace std;
int R1=10;
int R2=2000;
int main()
{
cout << setw(5) << R1 << setw(10) << R2 << endl;
return 0;
}
Если необходимо зарезервировать под выводимое число определенное количество позиций, то можно применить библиотеку #include <iomanip> и оператор setw(n), где n – кол-во зарезервированных под число позиций, например,
Вывод с заданной шириной поля
25
Пример программы, выводящей на экран квадрат числа, введённого пользователем с клавиатуры и звукового сигнала:
#include <iostream>
using namespace std;
double s;
int main()
   {setlocale (0,  "");
   cout << "Введите число: ";
   cin >> s;
   cout << "Квадрат числа: ";
   cout << s*s << endl;
   cout << "\a"; // Это вывод звукового сигнала
   return 0;
   }
Пример 2.
26
27
Библиотека <cmath>
Чтобы воспользоваться сложными математическими функциями, нужно подключить  библиотеку, в которой  содержатся эти функции, а именно:
#include <cmath>  (или <math.h>)
28
29
Запись математических функций в C++

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)))

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

30
31
int 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;
Допустимая сокращенная запись простых математических операций
 Важно. В С++ деление целого числа на целое дает в результате целое число, т.е. 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<<a<< " " <<b<<endl;
32
#include <iostream>
#include <cmath>
using namespace std;
int x=4578;
int y;
int main()
{
y=pow(x,2)-7*x+6;
cout << "y= "  << y << endl;
return 0;
}
Пример 3 (расчет по формуле)
33
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
	int y(10);
	int x(-4);
	int z(3);
	double c=fabs(x)+sqrt(y)+pow(z,2);
	cout << "c= " << c << endl;
	return 0;
}

Важно: присвоение значения переменной, например,
int y=10; можно записать, как int y(10);
Пример 4 (расчет по формуле)
34
35

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

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

Написать программы на C++ для вычисления значения функций  9...18 при следующих исходных данных: x = π/4
37
Ответы:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
	setlocale (0, "");
	double a, b, y;
	cout <<"Введите первое число:";
	cin >> a;
	cout << "Введите второе число:";
	cin >> b;
	y=pow(a,2)+pow(b,3)+pow((pow(a,2)+pow(b,3)),2);
	cout << "y=" << y << endl;
	return 0;
}
Пример 5. Расчет по формуле с вводом исходных данных с помощью клавиатуры.
38
Пример 6. Вычисление площади круга
#include <iostream>
#include <math.h>
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;
}
39
Пример 7.
Напишите программу для вычисления длины окружности:
C = 2πR

Пример 8.
Напишите программу для вычисления объема прямого цилиндра:
V = Sh,
где S – площадь основания,
       h – высота.
Радиус основания цилиндра и высота должны вводиться с клавиатуры.

40
41
Оператор if…else (если…иначе).

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

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

44
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

46
больше или равно
меньше или равно
равно
не равно
НЕ
И
ИЛИ
Двойной знак равенства является не оператором присваивания, а оператором сравнения. Например, if (a==5) означает, что мы не присваиваем переменной «а» значение 5, а сравниваем текущее значение «а» со значением 5. И в случае равенства условие выполняется.
больше, меньше
Знаки отношений в условном операторе if
>=
>
<=
! =
!
| |
==
<
&&
Пример 9
Написать программу с условным оператором if.

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

Сумму зарплаты вводить с клавиатуры.
Вывести на монитор доступную сумму кредита.
47
48
#include <iostream>
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

int a=6;
if (a==5) {
c=5;
y=a+c;
}
else {
c=4;
y=a-c;
}
Дополнить приведенный фрагмент обязательными инструкциями и написать полностью программу. В конце программы вывести на монитор переменную y.
Пример 10. Фрагмент программы с условным оператором
49
50
Пример 11.
Написать программу, в которой с клавиатуры вводятся два числа: a, b. Если выполняется условие a > b, то вычислить
Если условие не выполняется, то вычислить

Вывести на монитор значение M.
M = a + b
M = a - b
51
Взять за основу пример 11, но ввести в него не два, а три условия: если a > b то переменной M присвоить значение

если a = b то присвоить
если a < b то присвоить
Вывести на монитор значение M.
M = 10;
M = 20;
M = 30;
Пример 12.
52
Пример 13. Написать программу для нахождения случайного числа (в диапазоне 0…99), которое присваивается переменной num.
#include <iostream>
#include <windows.h>
#include <cmath>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int num = rand() % 100; /*остаток от деления случайного числа на 100 */
cout << "Случайное число num=" << num << endl;
return 0;
}
53

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

int a, b;
if (num >=50)
{
a = 1;
cout << "a= " << a << endl;
}
else
{
b = 2;
cout << "b= " << b << endl;
}
Пример 14

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;
Пример 16. Написать программу вычисления сопротивления последовательной или параллельной цепи в зависимости от варианта. Значения сопротивлений должны вводиться с клавиатуры. Варианты 1 или 2 также должны вводиться с клавиатуры.

Вар.1
Вар.2

55
R1
R2
R1
R2
#include <iostream>
#include <math.h>
using namespace std;
double R1, R2, R11, R22;
int num;
int main()
{
    setlocale(0, "");
    cout << "Введите R1: ";
    cin >> R1;
Пример 16 (начало)
56
cout << "Введите R2: ";
 cin >> 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 (окончание)
57
Пример 17. Написать программу вычисления сопротивления последовательной или параллельной цепи аналогично предыдущему примеру, но последовательная и параллельная электрическая цепи должны состоять уже из трех резисторов. Значения сопротивлений R1, R2, R3 должны вводиться с клавиатуры. Варианты 1 или 2 также должны вводиться с клавиатуры.
В программе использовать следующие формулы
Вар 1 (последовательная цепь):

Вар.2 (параллельная цепь):
где:
58
59
Пример 18. После абсолютно упругого соударении двух тел массой m1 и m2  они будут двигаться со скоростями

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

Написать программу расчета скоростей при абсолютно упругом и абсолютно неупругом соударении тел. Массы и начальные скорости двух тел вводить с клавиатуры.
60
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 строк.
Такая запись крайне нерациональна!
В этих случаях используют оператор цикла.
Пример алгоритма, требующего многократных повторений.

Цикл for
Заголовок цикла, записывается в круглых скобках, точка с запятой после заголовка не ставится!
Внутри заголовка:
1. На первом месте располагается начальное значение изменяемого параметра цикла. В нашем примере изменяемым параметром является переменная i, она же служит счетчиком цикла. Начальное значение равно 1. Каждое новое значение переменной соответствует одному проходу цикла. Один проход цикла называется итерацией. После задания начального значения ставится точка с запятой.
for (int i = 1; i <= 10; i++)   - заголовок цикла
{
x=i;
y=2*x-5;
cout << y << endl;
}
63

тело цикла
64
2. На втором месте в заголовке указывается конечное значение переменной. В нашем примере конечное значение переменной i равно 10. Снова ставим точку с запятой.

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

За заголовком цикла идет тело цикла, которое записывается в фигурных скобках.
65
#include <iostream>
#include <math.h>
using namespace std;
int t, dt=10;
int main() {
setlocale (0, "");
for (t=0; t<=60; t=t+dt)
cout << "Время в сек: " << t << endl;
return 0;
}
В качестве изменяемого параметра цикла может выступать любая физическая величина.

Пример цикла for с параметром «время».
66
#include <iostream>
#include <math.h>
using namespace std;
int L, dL=5;
int main() {
setlocale (0, "");
for (L=0; L<=50; L=L+dL)
cout << "Расстояние в км: " << L << endl;
return 0;
}
Пример цикла for с параметром «расстояние»

67
int a = 5;
int sum=0;
for( i = 1; i <= 4; i++ )
{
a = a + 2;
sum=sum+a;
}
cout << a << 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 после выполнения цикла.

Когда мы не знаем, сколько итераций должен произвести цикл, нам понадобится цикл while или do...while. Синтаксис циклов while и do…while в C++ выглядит следующим образом:
        while:                                       do…while:
while (условие)                     do
{                                                {
  Тело цикла;                          Тело цикла;
}                                                }
                                                 while (условие);

Циклы будут выполняться до тех пор, пока выполняется  условие, указанное в круглых скобках.
Циклы  while и do…while
68
Цикл while
   В цикле while условие, определяющее будет ли цикл повторяться, проверяется перед первым шагом цикла. Такой цикл называется циклом с предпроверкой условия.
69
#include <iostream>
using namespace std;
int main()
{
int i=0;
while (i<3)
{
i++;
cout << i << " ";
}
return 0;
}
Цикл do…while
   Если условие проверки располагается в конце цикла, то это будет цикл с постпроверкой условия. Для его записи используется конструкция из операторов do…while.

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

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

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

В чем отличие цикла 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».

72
#include <iostream>
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.
73
Пример 21.
Дописать программу, которая будет считать сумму чисел  от 1 до 10 с помощью цикла while.

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

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

74

Пример 23. Написать программу
для расчета значений  выражения
при а = 5 и  b =  0.5, 1.0, 1.5, 2.0, 2.5, 3.0

75
#include <iostream>
#include <math.h>
#include <iomanip>
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=" <<setw(4) << b << "  y=" << y << endl;
}
   return 0;
}

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

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

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

Досрочное завершение цикла (оператор break)
  В результате работы следующего примера на экран будут выведены только числа «1 2 3 4», хотя конечное значение счетчика цикла равно 10.
for (int i=1; i<=10; i++)
{
  if(i == 5) {
  break;
  }
  cout << i << " ";
}
78
Пример 25 (оператор цикла for + оператор break).
	Мяч вертикально падает с высоты 2м. Высота каждого подскока составляет 0,6 от предыдущей высоты. Сколько подскоков должен сделать мяч, чтобы очередная высота подскока не превышала 0,3 м.
	В программе используется оператор цикла и оператор break.
79
80
#include <iostream>
#include <math.h>
using namespace std;
int ik;
double h=2.0;
int main()
{
setlocale(0, "");
for (int i = 1; i <=10; i++)
{
h=h*0.6;
if (h<=0.3)
{
ik=i;
break;
}
}
cout << "Номер подскока: " << ik << endl;
cout << "Высота подъема: " << h << endl;
return 0;
}
Пример 25
81
Мяч вертикально падает на пол со скоростью V1=6 м/с. В момент каждого отскока мяч теряет в скорости 30%, т.е. скорость отскока равна V2=0.7*V1. После отскока мяч подпрыгивает на высоту
При втором и каждом последующем падении  мяча скорость падения равна скорости предыдущего отскока.
Написать программу и вывести на монитор высоту подъема после каждого отскока. Число отскоков задать равным 6. Ускорение свободного падения
Пример 26

82
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(0, "");
int i=0;
double V1=6, V2, h, g=9.81;
for (i=1; i<=6; i++)
{
V2=0.7*V1;
h=pow(V2,2)/(2*g);
V1=V2;
cout<<"Номер отскока: "<< i <<"  Высота подъема: "<<h<<endl;
}
return 0;
}
Пример 26
83
84
Последовательность действий при отладке программы
1. Для демонстрации отладки выберем пример 25 и версию программы Dev-C++ 4.9.9.2.
Создадим, откомпилируем и выполним программу. Программа выдает результат, но, предположим, у нас есть сомнения в правильности результата.
2. Запускаем отладку (кнопка Отладка или клавиша F8). При первом запуске отладки программа выдаст запрос, хотим ли мы разрешить отладку и перестроить проект. Отвечаем Да (Yes).
3. Задаем точки прерывания программы. Для этого щелкаем мышью в столбце слева от операторов и строчка подсвечивается красным цветом. Программа будет выполняться до строки, предшествующей строке прерывания.
85
4. Далее работаем с нижней панелью интерфейсного окна. Чтобы она появилась, щелкаем в нижней части окна по вкладке Отладка.
5. Щелкаем в нижней панели по опции Выполнить до курсора. Строчка  программы (номер 12), соответствующая первой точке прерывания, становится синей, как показано на рис. 1.
6. Щелкаем в нижней панели программы по кнопке Добавить в наблюдаемые, появляется дополнительное окошко, в котором задаем интересующую нас переменную i. Затем повторяем процедуру и последовательно задаем переменные h и ik. Эти переменные и их значения появляются в левой области интерфейсного окна (рис. 1).
86
Рис. 1
87
Рис. 2
Рис. 3
Рис. 4
7. Далее в нижней панели нажимаем на кнопку Продолжить выполнение и переменные i, h, ik принимают новые значения, как показано на рис. 2, рис. 3, рис. 4.
8. Когда значение i станет равным четырем, выполнится условный оператор, нижняя строчка (номер 15), соответствующая второй точке прерывания, станет синей, также выполнится оператор break и программа закончит работу (рис. 5).
88
Рис. 5
89
Таким образом, с помощью режима отладки мы проконтролировали работу программы, выяснили, какие значения принимают переменные i, h, ik, убедились, что программа работает правильно. Чтобы остановить режим отладки, надо нажать кнопку Остановить выполнение в нижней панели.
С помощью кнопки Следующий шаг, можно проследить пошаговое выполнение программы.
С помощью кнопки Удалить объект наблюдения, можно удалять наблюдаемые переменные из левой области интерфейсного окна.
90
Массив (совокупность нескольких значений) Имя массива создается аналогично имени обычной переменной, но за именем массива в квадратных скобках указывается количество элементов массива, которое задается при его объявлении. Чтобы описать элементы массива сразу при его создании, можно использовать фигурные скобки. В фигурных скобках значения элементов массива перечисляются через запятую. В конце закрывающей фигурной скобки ставится точка с запятой. При объявлении массива нумерация элементов массива начинается с нуля. Массив, как и любую переменную можно не заполнять значениями при объявлении.
Описание массива и вывод на печать
91

#include <iostream>
using namespace std;
int main()
{
setlocale (0, "");
int a[5]={5,10,15,20,25};
for (int i=0; i <= 4; i++)
 cout << a[i] << endl;
 return 0;
 }
Пример  27 (вариант заполнения массива сразу после его объявления)
Важно: нумерация элементов массива начинается с 0:
92
a[0] = 5
a[1] = 10
a[2] = 15
a[3] = 20
a[4] = 25
Элемента a[5] не существует .
5
элементов
93
Пример  28 (вариант заполнения массива с помощью оператора цикла)
#include <iostream>
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;
 }
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;
Пример 29. Написать программу для вычисления дальности полета тела, брошенного под углом α к горизонту. Сопротивлением воздуха пренебречь. Расчет провести для следующих углов бросания: 0, 15, 30, 45, 60, 75, 90 градусов.  Для хранения рассчитанных значений дальности создать массив L[7]. Задать начальную скорость бросания равной V = 20 м/сек. Ускорение свободного падения g = 9,81 м/сек2 .
Дальность полета тела рассчитывается по формуле

95
#include <iostream>
#include <math.h>
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<=6; i++)
{
	L[i]=2*pow(v,2)*sin(alf)*cos(alf)/g;
	cout << alf << "  " << L[i] << endl;
	alf=alf+pi/12;
}
return 0;
}
Пример 29
96
Пример 30.
Взять за основу программу предыдущего примера и видоизменить ее так, чтобы начальная скорость и угол бросания вводились с клавиатуры. Тогда программа будет находить дальность полета при любой начальной скорости и любом угле бросания, заданных с клавиатуры. Вывести на монитор заданный угол бросания, заданную начальную скорость и рассчитанную дальность полета.

Примечание: угол вводить в градусах, а в формулу подставлять в радианах.
97
#include <iostream>
#include <math.h>
using namespace std;
double v, alf, L;
double g=9.81;
double pi=3.1416;
int main()
{
setlocale (0, "");
cout << "Введите скорость: ";
cin >> v;
cout << "Введите угол: ";
cin >> alf;
alf=alf*pi/180;
	L=2*pow(v,2)*sin(alf)*cos(alf)/g;
	cout << "Дальность полета: " << L << endl;
return 0;
}
98
Пример 30
99
Пример 31.
Написать программу для перевода двоичного числа в десятичное.
Использовать следующий алгоритм
где b – десятичное число;
an – крайняя слева цифра двоичного числа;
n – количество цифр в двоичном числе.
Например, перевести двоичное число 11001011 в десятичное:
При написании программы представить двоичное число в виде массива a[8] = {1,1,0,0,1,0,1,1}

100
#include <iostream>
#include <cmath>
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<=7; i++)
{
b=b+a[i]*pow(2,(7-i));
}
cout << b << endl;
return 0;
}
Пример 31
101

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

102
Пример,
a=2;
switch (a)
{
case 1:
b=1;
break;
case 2:
b=2;
break;
}
В качестве переключателя могут выступать только целочисленные переменные или выражения.
103
Пример 32. Вывод словесного описания оценки, основываясь на текущей оценке ученика

#include <iostream>
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
104
Написать программу – калькулятор, которая будет выполнять для двух чисел a, b, введенных с клавиатуры, следующие математические операции:
1. a+b;
2. a-b;
3. a*b;
4. a/b;
Пример 33
105
cout << "Введите число a: " << endl;
cin >> a;
cout << "Введите число b: " << endl;
cin >> 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. Дописать программу.
106
Пример 34.
Дополнить  пример 33 следующими  математическими операциями:

5. b-a;
6. b/a;
7. sqrt (a);
8. sqrt (b);
108
    		Функция (в Fortran – процедура) – подпрограмма , выполняющая действия, многократно повторяющиеся в основной программе. Использование функций сокращает объем программы и уменьшает вероятность появления ошибок в программе.
		Функция может иметь возвращаемое значение или не иметь возвращаемого значения.
		Функция может быть с параметрами или без параметров. В функции без параметров не указывается возвращаемое значение. Начинается с оператора void.
		Код функции может быть размещен в начале программы или в конце программы. Во втором случае в начале программы необходимо объявить функцию с помощью оператора, который называется прототипом функции. При этом описание прототипа не отличается от описания заголовка функции.
Функция (подпрограмма)

109
INT
LONG
DOUBLE
В списке параметров перед каждым параметром указывается тип, параметры разделяются запятыми.
Структура функции
Заголовок функции
{
операторы;
return выражение (или переменная);
}
Пример:
int amp(int x, int y) – заголовок функции
{
x=pow(x,2);
y=pow(y,2);
return x+y;
}
Тип возвращаемого функцией  значения
Имя функции (список параметров)
Заголовок функции
Правила записи функции с возвращаемым значением.
x, y – формальные параметры

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

112
#include <iostream>
#include <math.h>
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 <iostream>
#include <math.h>
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 с прототипом функции.
114
Функция с параметрами
Функция без параметров
115
Функция с возвращаемым
значением

Функция без возвращаемого
значения
116
	В рассмотренных примерах функция без возвращаемого значения avrg становится зависимой от глобальной переменной z, что нежелательно. В случае функции с возвращаемым значением aver такой зависимости нет, так как все переменные определены внутри функции. Переменная z в этом случае является локальной. В языке C++ локальными являются переменные объявленные внутри функции или блока, ограниченного фигурными скобками.
117
Возвращаемых значений в
функции может быть несколько,
например,
#include <iostream>
#include <math.h>
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
с прототипом функции.
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 км/час. При уменьшении скорости расход топлива уменьшается, при увеличении скорости – увеличивается.
120
#include <iostream>
#include <math.h>
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 (начало)
121
	for (int i=0; i<=6; i++)
	{
	S=S+F1(v[i],t[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 (продолжение)
122
Пример 38 (результаты расчета)
Задание: записать пример 38 без прототипов функций.
123

где L – длина маятника,
g – ускорение свободного падения.
Получить результаты для длины L1=5 м и L2=10 м.
Для вычисления T использовать подпрограмму-функцию.
Пример 39. Написать программу для расчета периода колебаний математического маятника.
	Период колебаний математического маятника определяется по формуле:

124
#include <iostream>
#include <cmath>
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= " << T1 << endl;
L=10;
T2=PF(L);
cout << "T2= " << T2 << endl;
return 0;
}
Пример 39
125
126
Пример 40. Запись результатов вычисления функции sin(x) в текстовый файл
#include <iostream>
#include <fstream>
#include <cmath>
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;
}
127
Рассмотрим пример 40 подробнее:
#include <fstream>  //подключить библиотеку fstream
ofstream.f;  //output file stream – организовать поток вывода в файл,
f.open («snx.txt");  //открыть текстовый файл snx.txt для записи,
f << sin(x) << endl; //записать значения sin(x) в файл snx.txt
Это четыре минимально необходимых строчки кода программы, чтобы организовать вывод в файл.
Результат вывода имеет вид:

128
Пример 41.  Считывание данных из текстового файла test.txt
#include <iostream>
#include <fstream>
#include <cmath>
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>  //подключить библиотеку fstream
ifstream.f;  // input file stream – организовать поток ввода из файла,
f.open ("test.txt");  //открыть текстовый файл test.txt,
f >> a[i]; //записать значения из файла test.txt в массив a[11]
Имеем, как и в предыдущем случае, четыре минимально необходимых строчки кода программы, чтобы организовать ввод из файла в программу.
Тестовый файл test.txt заполняем значениями синуса из предыдущего примера. Результат ввода из файла имеет вид:
130
131
	Иногда необходимо не просто получить результаты расчета, но и построить график по результатам расчета. Поведение кривых на построенном графике позволяет оперативно контролировать правильность написанной программы.
	Будем проводить расчеты в С++, а график строить в Excel, поскольку Excel  имеет более развитый инструментарий для построения графиков и диаграмм, нежели С++. Чтобы автоматизировать перенос результатов расчета из C++ в Excel, результаты расчетов будем выводить в файл, а затем копировать в Excel.
132
Последовательность действий при построении графика
1. Написать программу, в которой значения аргумента и функции выводятся в файл, а не на консоль. Предусмотреть вывод запятой между аргументом и функцией.
2. Открыть полученный файл в программе Microsoft  Office Word.
3. Преобразовать данные в таблицу с помощью опций Вставка > Таблица > Преобразовать в таблицу, используя в качестве разделителя данных запятую после аргумента.
4. Скопировать таблицу в Excel и заменить точку в полученных данных на запятую с помощью опций Главная > Найти и выделить > Заменить.
5. Построить график в Excel с помощью опций Вставка > Точечная > Точечная с гладкими кривыми.
133
Примечание. Чтобы Excel не переводил автоматически дробное число в дату при копировании из Word в Excel, измените системные настройки даты с «.» на «/»  в Панель управления > Язык и региональные стандарты:
134
#include <iostream>
#include <fstream> //библиотека потокового ввода/вывода
#include <сmath>
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<=b; x+=h)
  {f.width(10);
  f << x <<","; /* записываем аргумент х в файл и одновременно ставим запятую после аргумента, которая позволит нам преобразовать результаты в таблицу  */
  f.width(15);
  f << trig(x) << endl; /*вызываем функцию с текущим аргументом х и пишем результаты вычислений в файл */
  }
 f.close(); // закрываем файл
    return 0;
 }
 double trig(double var) {  // функция trig
 return sin(var)+cos(var);
 }
Пример 42 (продолжение)
136
2)
3)
Файл с
результатами
расчетов
Преобразовываем
результаты в
таблицу

137
4)
5)
Строим
график
Копируем
таблицу в Excel и
заменяем
разделительные
точки в числах на
запятые
138
Пример 43. При подключении разряженного конденсатора C к источнику напряжения U0 через резистор R, напряжение на конденсаторе увеличивается от 0 до U0 по закону

Где                  постоянная заряда, имеющая размерность [сек].
Написать программу расчета кривой U(t) и построить график этой кривой.
Расчет проведем при следующих исходных данных: R=1 кОм, С=1000 мкФ, время окончания заряда ts=4 с, шаг по времени dt=0.1с.
139
#include <iostream>
#include <math.h>
#include <fstream>
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<=ts; t=t+dt)
 {
   f.width(10);
   f << 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 (продолжение)
141
Пример 43 (построение графика)
Таблица приведена в сокращенном виде.
142
Мяч падает на пол в точке А со скоростью V1=6 м/с. Угол падения мяча составляет 30 град. от вертикали. При каждом отскоке мяч теряет 30% скорости, т.е. для скорости отскока можно записать V2=0.7*V1. Угол отскока мяча равен углу падения. При втором и каждом последующем падении  мяча скорость падения равна скорости предыдущего отскока. Угол падения и угол отскока сохраняют значение 30 град.
Написать программу и вывести на монитор траекторию движения мяча при подскоках. Число отскоков задать равным 6.
Высота подъема мяча при отскоке
Время движения мяча между двумя соседними подскоками
                        , где          - вертикальная составляющая скорости отскока.
Пример 44 (построение траектории)
143
#include <iostream>
#include <cmath>
#include <fstream>     //библиотека для выводы в файл
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 (начало)
144
cout << "Введите число N: ";
cin >> N;  // N - число разбиений отрезка между отскоками
for (i=0; i<=6; i=i+1) // цикл по точкам подскока
{
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 (продолжение)
145
else
{
Vy=Vy-g*dt;
h=h+dt*(Vy+Vys)/2; /* расчет высоты с учетом средней скорости за промежуток времени dt */
x=x+Vx*dt;
t=t+dt;
Vys=Vy;
}
f << x << ",  ";  //запись координаты х в файл
f << h << endl; //запись высоты, соответствующей коорд. х
}
V1=V2; // переприсвоение скоростей падения и отскока
cout << tp[i] << "  "<< xp[i] << endl;
}
f.close();          //закрываем файл
}
Пример 44 (окончание)
146
Пример 44. Результаты расчета - траектория движения
мяча
147
Написать программы самостоятельно:
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).

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

150
50. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:
Сопротивления резисторов R1 … R4 вводить с клавиатуры.
151
51. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:
Сопротивления резисторов R1 … R7 вводить с клавиатуры. Для расчета параллельного участка цепи использовать подпрограмму – функцию.
152
52. Написать программу для расчета сопротивления электрической цепи при параллельно-последовательном соединении резисторов:
Сопротивления резисторов R1 … R7 вводить с клавиатуры. Для расчета параллельного участка цепи использовать подпрограмму – функцию.
153
53. Написать программу для вычисления корней квадратного уравнения
Выражение                       называется дискриминантом и обозначается буквой D. Если дискриминант больше нуля, то существуют два корня, если D=0, то существует один корень, и если D<0, то действительных корней не существует.
Коэффициенты квадратного уравнения a, b, с вводить с клавиатуры.
Корни квадратного уравнения вычисляются по формуле
154
54. Пример на эффект Доплера. Пусть имеется источник звукового сигнала, который излучает звук частотой f0 , и приемник, который принимает звуковой сигнал. Частота принимаемого звука зависит от скоростей источника и приемника. Возможны случаи:
Случай 1. Источник сигнала приближается к приемнику со скоростью Vист . Тогда частота звука, принимаемого приемником, будет равна

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

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

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

Написать программу с оператором  switch для вычисления частоты звука для рассмотренных случаев. Принять скорость звука V = 340 м/сек. Переменные  f0 , 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
157

Написать программы для вычисления значения y при следующих исходных данных:
 = 10, 20, 30, 40, 50, 60 градусов,
 = 15, 30, 45, 60, 75 градусов
63)
64)
65)
66)
67)
68)
158
К примеру 63 (вар.1)
#include <iostream>
#include <cmath>
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="<<a<<"  b="<<b<<"  y="<<y<< endl;
	}
}
return 0;
}
159
К примеру 63 (вар.2)
#include <iostream>
#include <cmath>
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="<<a<<"  b="<<b<<"  y="<<y<< endl;
	}
}
return 0;
}
Программа варианта 2 короче и более наглядная.
160
	Мяч падает на пол в точке А со скоростью V1=6 м/с. Угол падения мяча составляет 30 град. от вертикали. При каждом отскоке мяч теряет в скорости 30%, т.е. скорость отскока равна V2=0.7*V1, угол отскока мяча равен углу падения. При втором и каждом последующем падении  мяча скорость падения равна скорости предыдущего отскока. Угол падения и угол отскока сохраняют значение 30 град.
Написать программу и вывести на монитор максимальную высоту подъема после каждого отскока мяча и расстояние от первоначальной точки падения до текущей точки отскока.  Число отскоков задать равным 6.
Высота подъема мяча при отскоке
Время движения мяча между двумя соседними подскоками
                        , где          - вертикальная составляющая скорости отскока.
Пример 69

161

Построить графики в диапазоне от -4 до 4
70.
71.
72.
73.
Построить графики в диапазоне от 0 до 
162
163
Пример 74.  Рассмотрим, как программирование может пригодиться при создании технического устройства.  Техническим устройством,  в частности, может служить прибор, управляющий подсветкой различных объектов. На фотографии представлен макет  технического устройства, состоящий из микроконтроллерной платы Ардуино и линейки светодиодов.
Программирование микроконтроллерной платы осуществляется с помощью упрощенного аналога С++. Процесс программирования платы подробно описан в литературе [7]. Там же есть описания других устройств на Ардуино.
Программа, управляющая миганием светодиодов, представлена на следующих слайдах.
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 (начало)
165
 for (i=0; i<=9; i++)
    {
      digitalWrite(Led[i],HIGH);
      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 (продолжение)
166
 for (i=5; i<=9; i++)
         digitalWrite(Led[i],LOW);
         delay (500);
  }
for (j=1; j<=5; 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 (окончание)
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)
Допускается использование и копирование слайдов при условии ссылки на презентацию.


title: Презентация на тему: Программное обеспечение компьютера. Операционная система

text:
Программное обеспечение компьютера.     Операционная система

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

Программное обеспечение (ПО) – все многообразие программ, используемых в современном компьютере.

Классификация ПО
Системное ПО
– является основным ПО. Именно системное ПО руководит слаженной работой всех элементов компьютерной системы, как на аппаратном уровне, так и на программном.

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

Инструментарий программирования
– это средства, предназначенные для создания ПО, т.е. того же системного и прикладного ПО. Его составляют разнообразные языки и среды  программирования, такие как Бейсик, Паскаль, С, С++.

Основной системной программой, без которой невозможно комфортное общение с компьютером, является «операционная система».
ОС – это комплекс системных программ, обеспечивающий совместное функционирование всех устройств компьютера и поддерживающий работу всех программ.

Предназначения ОС
удобство: операционная система делает использование компьютера простым и удобным;
эффективность: операционная система позволяет эффективно использовать ресурсы компьютерной системы;
возможность развития: операционная система должна допускать разработку тестирования новых приложений и системных функций без нарушения нормального функционирования вычислительной системы
Основные функции ОС:
– обеспечивает обмен данными с внешними устройствами
– поддерживает файловую систему (работа с файлами и папками):
– обеспечивает запуск и выполнение остальных программ
– тестирование компьютера, обработка ошибок
– распределение ресурсов (процессор, память, внешние устройства)

Спасибо за внимание!


title: Презентация на тему: Программное обеспечение компьютера

text:
Программное обеспечение компьютера
Подготовила: учитель информатики МБОУ МОШ №49 г. Шахты Ростовской области В.Н. Верёвкина
Ответьте на вопросы:
Что такое процессор?
Какие устройства ввода вы знаете?
Какие устройства вывода вы знаете?
Что такое оперативная память?
Что такое долговременная память?
Какие типы персональных компьютеров вы знаете?
Что такое данные?
Что такое программы?
Что такое файл?
Что такое файловая система?
Для чего нужна программа архиватор?
Для чего нужно делать дефрагментацию диска?
Прикладное ПО – это программы, с помощью которых пользователь решает свои информационные задачи, не прибегая к программированию
Виды программного обеспечения (ПО)
Системное ПО
Прикладное ПО
Системы программирования (СП)
Общего назначения
 Текстовые редакторы
-Графические редакторы
СУБД (базы данных)
Электронные таблицы
Коммуникационные (сетевые) программы
Компьютерные игры

Специального назначения
Бухгалтерские пакеты
Системы автоматизированного проектирования (САПР)
 Математические пакеты
Экспертные системы
Педагогические программные средства
Системное ПО и системы программирования
Операционная система (ОС)
Операционная система (ОС)

Ядро         Файлы
Функции операционной системы
Диалог с пользователем
 управление ресурсами (процессорным временем, внутренней памятью, внешними устройствами)
 работа с файлами
ОЗУ
ВЗУ
Примеры ОС : MS-DOS, CP/M, UNIX, WINDOWS,….
Установка ОС
Системный диск
Загрузка ОС
Оперативная память
Установка и загрузка операционной системы
дистрибутив
Загрузка операционной системы начинается в одном из трех случаев:
Включении питания компьютера;
Нажатия кнопки Reset на системном блоке компьютера;
Одновременном нажатии клавиш[Ctrl]+[Alt]+[Del] на клавиатуре.
Домашнее задание: § 1.5.1 контрольные вопросы на стр. 43.


text:
Программное обеспечение компьютера
www.skachat-prezentaciju-besplatno.ru
Программа являет собой описание на языке, понятном компьютеру алгоритм действий, необходимых к выполнению с целью решения поставленных задач.
Синтез программ, направленных на работу на компьютере, называют программным обеспечением ПК.
www.skachat-prezentaciju-besplatno.ru
Что такое программа?
•Прикладное
•Системное
•Инструментарий программирования

www.skachat-prezentaciju-besplatno.ru
ПО компьютера классифицируют как:

Под системным ПО понимают совокупность программ, определяющих правила работы в системной среде. Самой важной системной программой считают операционную систему.
www.skachat-prezentaciju-besplatno.ru
Что такое системное ПО?
Операционная система направлена на:
•Контакт пользователя с персональным компьютером
•Управление ресурсами компьютера
•Контроль за работой прикладных программ

www.skachat-prezentaciju-besplatno.ru
Под прикладным ПО следует понимать все прикладные программы, которые есть в наличии на ПК. Они могут работать только, если на ПК уже есть операционная система.
Совокупность прикладных программ в ОС Windows именуют приложениями или пакетом прикладных программ.

www.skachat-prezentaciju-besplatno.ru
Что такое прикладное ПО?
•Игры
•Текстовые процессоры
•Табличные процессоры
•Графические пакеты
•Базы данных
•Обучающие программы
•Интегрированные пакеты

www.skachat-prezentaciju-besplatno.ru
Какие можно назвать самые популярные пакеты прикладного ПО?
Инструментарий программирования – это методика создания программного обеспечения.

 Базовый набор инструментов – это языки программирования.

www.skachat-prezentaciju-besplatno.ru
Самые распространенные языки программирования:

•Basic
•Pascal
•Delphi
•C++
•ЛОГО

www.skachat-prezentaciju-besplatno.ru
Языки программирования разделяются на процедурные и непроцедурные. Процедурные в свою очередь бывают низкого и высокого уровня. Непроцедурные языки программирования классифицируют как объектно-ориентированные, логические и другие.

www.skachat-prezentaciju-besplatno.ru
Системное ПО следует разделить на базовое ПО и сетевое ПО.
К базовому ПО относят:
•Операционную систему
•Сетевую операционную систему
•Оболочки ОС.
www.skachat-prezentaciju-besplatno.ru
Сетевое ПО следует понимать, как утилиты. К ним можно отнести:
•Программы, созданные с целью диагностики работоспособности компьютера
•Программы для уничтожения вредоносного ПО (вирусов)
•Программы обслуживания дисков
•Программы архивирования данных
•Программы обслуживания сети и др.

www.skachat-prezentaciju-besplatno.ru
Прикладное ПО разделяют:
•Общего назначения
•специального назначения
•профессионального назначения
www.skachat-prezentaciju-besplatno.ru
www.skachat-prezentaciju-besplatno.ru
К ПО общего назначения относят текстовые процессоры, издательские системы, графические процессоры, системы управления БД, электронные таблицы, интегрированные системы, и прочие.
Под ПО специального назначения следует понимать прикладные программные средства, системы по управлению искусственным интеллектом, системы гипертекста и мультимедиа.


text:
Без чего невозможна работа компьютера?
Программное обеспечение
Выполнила учитель информатики МБОУ «Окская СОШ» Рязанского района Рязанской области Юзвитскова Юлия Алексеевна
Программа -
описание на формальном языке последовательности действий, которые необходимо выполнить над данными для решения поставленной задачи
Программное обеспечение (ПО)  -
совокупность всех программ, предназначенных для выполнения на компьютере.
1. Системное ПО
Операционная система (ОС) – комплекс программ, обеспечивающих совместное функционирование всех устройств компьютера и предоставляющих пользователю доступ к ресурсам  компьютера
ОС включает в себя:
Аппаратный интерфейс – средства, обеспечивающие взаимодействие между устройствами компьютера (драйверы устройств)
Пользовательский интерфейс – средства, обеспечивающие взаимодействие человека и компьютера (программы, поддерживающие диалог пользователя с компьютером: «открыть», «сохранить», «запустить» и т.д.)

После установки ОС входящие в её состав программы копируются с оптического диска на жесткий диск и там же хранятся.
Загрузка ОС
1 этап – выполнение программ BIOS (Basic Input/Output System – базовая система ввода/вывода) – тестирование и настройка аппаратных средств. Если все оборудование функционирует нормально – происходит поиск загрузчика ОС.
2 этап – считывание программы – загрузчика в оперативную память, затем загрузка программ ОС в оперативную память с системного диска (диска, с которого производится загрузка ОС)
Сервисные программы:
программы, обслуживающие диски (проверка, восстановление, очистка),

программы – архиваторы

антивирусные программы

 коммуникационные программы

2. Системы программирования
это комплекс программных средств, предназначенных для разработки компьютерных программ
3. Прикладное ПО
программы, с помощью которых пользователь может работать с разными видами информации, не прибегая к программированию
Приложения общего назначения (офисные программы)
Текстовые редакторы
Электронные таблицы
Графические редакторы
Мультимедийные проигрыватели
Редакторы презентаций
Системы управления базами данных
Приложения специального назначения (профессиональные программы)
Издательские системы
Бухгалтерские программы
Системы автоматизированного проектирования
Программы компьютерного моделирования
Математические пакеты
Геоинформационные системы
Медицинские экспертные системы
Электронные учебники
Тренажеры
Тестирующие системы

Правовые нормы использования ПО
ПО, являющееся частной собственностью авторов или правообладателей
Свободное ПО
ПО, являющееся частной собственностью авторов или правообладателей
Коммерческие программы – продаются в специальной упаковке и с сопровождающей документацией (лицензионное соглашение).
Условно бесплатные программы – программы, имеющие ограниченный срок действия или ограниченные возможности.
Свободно распространяемые программы (нельзя внести изменения в двоичный код) – новые, еще не доработанные версии программ, дополнения к программам, устаревшие программы, драйверы к новым устройствам
Свободное ПО
Возможность внести изменения в двоичный код
Не требует лицензии и ключа
Можно использовать в любых целях
Можно копировать и распространять программу
Можно распространять измененную программу
На сегодняшнем уроке мы узнали, что:
Совокупность всех программ, предназначенных для выполнения на компьютере, называется
Программным обеспечением
На сегодняшнем уроке мы узнали, что:
Системное программное обеспечение включает в себя:
Операционную систему и сервисные программы
На сегодняшнем уроке мы узнали, что:
Комплекс программ, обеспечивающих совместное функционирование всех устройств компьютера и предоставляющих пользователю доступ к ресурсам компьютера, - это
Операционная система
На сегодняшнем уроке мы узнали, что:
Комплекс программных средств, предназначенный для разработки компьютерных программ на языке программирования, - это
Системы программирования
На сегодняшнем уроке мы узнали, что:
Программы, с помощью которых пользователь может решать информационные задачи, не прибегая к программированию, - это
Прикладные программы
На сегодняшнем уроке мы узнали, что:
По правовому статусу ПО можно разделить на:
По, являющееся частной собственностью, и свободное ПО
Домашнее задание:
§2.3 учебника, вопросы стр. 77 – 78.


text:
Программное обеспечение компьютера
Выполнила: учитель информатики ГКООУСТ для детей, нуждающихся в длительном лечении «ДСШИ» Попова Ж.Л.
Презентация для 8 класса на тему:
Содержание:
Что такое программа
Программное обеспечение компьютера
Виды ПО
Системное ПО
Виды операционных систем
Сервисные программы
Системы программирования
Прикладные программы
Виды прикладного ПО
Пакеты прикладного ПО
Вопросы
Домашнее задание
Источники

Как вы думаете а что такое ПРОГРАММА?
Программа – это описание на формальном языке, «понятном» компьютеру, последовательности действий, которые необходимо выполнить над данными для решения поставленной задачи.
Совокупность всех программ, предназначенных для выполнения на компьютере, называют программным обеспечением (ПО) компьютера.
Виды ПО
Системное ПО
Системы программирования
Прикладное ПО
Включает в себя операционную
систему и сервисные программы
Предназначены для разработки компьютерных программ на языке программирования
Программы, с помощью которых пользователь может работать с разными видами информации, не прибегая к программированию
Системное ПО включает в себя операционную систему и сервисные программы.Операционная система – это комплекс программ, обеспечивающих совместное функционирование всех устройств компьютера и представляющих пользователю доступ к ресурсам компьютера.
Самые популярные ОС – это:
1
2
3
К сервисным программам относят различные программы, обслуживающие диски (проверка, восстановление, очистка и др.), программы –архиваторы, программы для борьбы с компьютерными вирусами, коммуникационные программы и многое другое.
Например …
Комплекс программных средств, предназначенных для разработки компьютерных программ на языке программирования, называют системами программирования.
Программы, с помощью которых пользователь может работать с разными видами информации, не прибегая к программированию, принято называть прикладными программами или приложениями.
Примеры прикладного ПО:
Текстовые редакторы
Электронные таблицы
Графические редакторы
Мультимедийные проигрыватели
Редакторы презентаций
Системы управления базами данных
Наиболее распространенными являются такие офисные пакеты как
А теперь, давайте повторим!Выберите номер вопроса!
1
2
3
4
5
6

Что называется программой?
Правильный ответ
Это описание на формальном языке,
«понятном» компьютеру,
последовательности действий, которые необходимо выполнить над
данными для решения поставленной задачи.

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

Какие основные группы ПО принято выделять по функциональному назначению?
Правильный ответ
Системное,
прикладное программное обеспечение и системы программирования.

Можно ли обойтись без операционной системы?
Правильный ответ
Нет

Какими прикладными программами вы пользуетесь чаще всего?

Какие основные функции выполняет операционная система?
Правильный ответ
Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет пользователю доступ к ресурсам компьютера.

Для чего предназначены системы программирования?
Правильный ответ
Они предназначены для разработки компьютерных программ на языке программирования.

Параграф 2.3, вопросы

Источники:
Информатика : учебник для 8 класса / Л. Л. Босова, А. Ю. Босова, - М. : БИНОМ. Лаборатория знаний. 2013.
http://tvoya-nedelya.ru/complaints/experts/8724/
http://blackdahlia.info/tag/one-question-one-person
http://mimi-gallery.ru/kartinki-programmnoe-obespechenie?p=1
http://new.colokol.ru/page/%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%BE%D0%B9_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%8B_windows/
http://www.anyplace-control.com/computer-resources-a-guide-to-linux.htm
http://aportal808.weebly.com/blog/category/all/2
http://windsc.ru/tag/arhivatoryi/feed
http://www.main-hosting.com/resources/?ip=37.79.244.175
http://page2rss.com/9021d4453869a1924d5b80b4f4fbb8e8
http://imgplusdb.com/yazyk-programmirovaniya-beysik
http://tibtirecdy.3space.info/pg.php?n=124-tekstovie-redaktorinaznachenie
http://www.slideserve.com/ace/3820321
http://vecvglw.w8w.pl/%D1%80%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B2%D1%8B%D0%B9+%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9+%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80+%D0%BE%D0%BD%D0%BB%D0%B0%D0%B9%D0%BD/
http://900igr.net/fotografii/informatika/Multimedia-tekhnologii/002-Interfejs-programmy-Zvukozapis.html
http://soujaruuhil.blogostrefa.org/%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80+%D0%BF%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B9/
http://programynode.weebly.com/blog/programma-sozdanie-bazi
http://qarvvp.com/novinki/gh312.htm
http://softikbox.com/openoffice-svobodnyiy-paket-ofisnyih-prilozheniy-355.html


text:
Департамент образования, науки и молодежной политики Воронежской области
ГОБУ СПО ВО «Россошанский колледж мясной и молочной промышленности»

Программное обеспечение компьютера
Дисциплина 	«Информатика и ИКТ»
I курс
Преподаватель:
Сухорукова Л.А.
Цели занятия

образовательная
развивающая
воспитательная

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

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

воспитательная:

воспитывать внимательность
аккуратность
точность
трудолюбие
Совокупность программ, хранящихся в долговременной памяти компьютера, составляют программное обеспечение (ПО) компьютера.
ПО можно разделить на три группы:
прикладные программы;
системные программы;
системы программирования.
Прикладные программы дают возможность пользователю непосредственно решать свои информационные задачи, создавать и обрабатывать информационные объекты.
Прикладное ПО
Информационный объект:
обладает определенными потребительскими качествами;
допускает хранение на цифровых носителях в виде самостоятельной информационной единицы;
допускает выполнение над ним определенных действий путем использования аппаратных и программных средств компьютера.
Прикладные программы общего назначения – программы, которые полезны большинству пользова-телей независимо от их профессиональных интересов.
Специализированные программы (профессионально ориентированные) программы. К ним также относятся обучающие программы.
Виды прикладных программ
Программы и информационные объекты
Системное ПО
Операционная система — это комплекс программ, обеспечивающих:
управление устройствами и задачами (процессами) — согласованную работу всех аппаратных средств компьютера и выполняемых программ;
работу с файлами — организацию хранения и обработки файлов на внешних носителях;
пользовательский интерфейс — диалог пользователя с компьютером
Утилиты – специальные программы, выполняющие некоторые дополни-тельные услуги системного характера (управление внешними устройствами, архивирование файлов, защиту от вирусов, «лечение» и оптимизацию дисков и т.д.).
Драйвера – специальные программы, входящие в состав операционной системы для управления работой внешних устройств.
Классы операционных систем
однопользовательские однозадачные;
однопользовательские многозадачные;
многопользовательские многозадачные
Взаимодействие пользователя с ОС происходит по схеме:
ОС находится в состоянии ожидания команды пользователя;
пользователь отдает команду в какой-либо форме;
ОС исполняет команду или сообщает о невозможности выполнения;
ОС возвращается в состояние ожидания следующей команды пользователя; и т.д.
Пользовательский интерфейс
Рабочий стол
Панель задач
Меню
Ярлыки, папки, файлы
Ядро операционной системы
В состав ядра входят наиболее часто используемые модули. Программы, входящие в состав ядра, при загрузке ОС помещаются в оперативную память, где они постоянно находятся и используются при работе компьютера. Такие программы называются резидентными программами. Остальная часть ОС хранится на жестком диске и автоматически загружается в оперативную память по мере необходимости, а затем удаляется из нее.
Работа с файлами
Работу пользователя с файлами обслуживает подсистема ОС, которая называется файловой системой.
На современных компьютерах используется иерархическая, многоуровневая файловая структура.
Системы программирования
Системы программирования – инструмент для работы профессиональных программистов. Каждая такая система ориентирована на определенный язык программирования: Паскаль, Бейсик, Фортран, Си, Ассемблер и др. Системы программирования позволяют создавать тексты программ, отлаживать и исполнять программы.
Итог занятия
Приведите классификацию программного обеспечения.
В чем принципиальное отличие прикладного программного обеспечения общего назначения от иных видов прикладного программного обеспечения?
В чем заключается принцип организации диалога «компьютер-пользователь» с помощью меню?
Что такое ядро ОС?
Какие программы управляют работой внешних устройств?
Рефлексия
Понравилось ли тебе занятие?
Что получилось лучше всего?
Какое задание вызвало трудность?