Z g b y ( 1) - DonSoft...

130
The Physics Department, Southern Federal University, Russia [email protected] Доцент кафедры прикладной электродинамики и компьютерного моделирования, к.ф.-м.н. Губский Д.С. Технологии программирования (часть 1)

Transcript of Z g b y ( 1) - DonSoft...

Page 1: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

The Physics Department,

Southern Federal University,

Russia [email protected]

Доцент кафедры прикладной

электродинамики и

компьютерного

моделирования, к.ф.-м.н.

Губский Д.С.

Технологии программирования (часть 1)

Page 2: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Задачи

2

Основная задача — обеспечить фундамент для

овладения в дальнейшем другими языками,

основанными на Си (Java, PHP, JavaScript и др.).

Язык Си рассматривается не столько как

инструмент, сколько как основа современного

программисткого мировоззрения.

Понятие технологии программирования. Методы и

приемы создания приложений с помощью языков

программирования.

Язык Си.

Page 3: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Содержание курса

3

Характеристики языка. Структура программы.

Принципы структурного программирования. Алгоритмы.

Типы данных. Переменные и константы. Описание

переменных. Массивы. Основные арифметические

операции. Циклы. Условные операторы. Функции.

Передача параметров при вызове функций.

Глобальные и локальные переменные. Строки.

Указатели. Структуры. Работа с файлами.

Современные методы программирования. Понятие об

объектном программировании и его основы. Развитие

принципов модульности. Понятие объекта. Объектные

модели предметных областей. ООП как инструмент

повышения надежности программ. Классы и все, что

связано с ними.

Page 4: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

В результате вы будете

4

• знать язык программирования С++, его основные возможности, структуру программы, принципы программирования и современные методы программирования;

• уметь решить поставленную задачу, путем написания необходимой программы на языке С++, применять полученные знания для оптимального построения физико-математических моделей различных процессов;

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

Page 5: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Литература

5

• Керниган Б., Ритчи Д. Язык программирования Си.

Москва, "Финансы и статистика", 1992.

• Страуструп Б. Язык программирования С++. -

Киев, "Диа-Софт", 1993 г. (Страуструп, Бьерн. Язык программирования C++: специальное издание

/ Бьерн Страуструп ; пер. с англ. С. Анисимова, М. Кононова под ред. Ф.

Андреева, А. Ушакова - Москва: Бином-Пресс, 2007. - 1104 с.)

Page 6: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Литература

6

• Пахомов Б.И. С/С++ и MS Visual C++ 2008 для

начинающих. / СПб.: БХВ -Петербург, 2009. – 624 с.

• Пахомов Б.И. С/С++ и MS Visual C++ 2012 для

начинающих. / СПб.: БХВ-Петербург, 2013. – 512 с.

• Прохоренок Н.А. Программирование на С++ в

Visual Studio 2010 Express / Самиздат, 2010. – 550 с.

• Интернет

• Библиотека MSDN https://msdn.microsoft.com/ru-ru

Page 7: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Литература

7

• Грис Д. Наука программирования. Москва, "Мир",

1984.

Page 8: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Visual Studio 2015

https://www.visualstudio.com/ru/

(Версия community)

Dev-C++

среда разработки приложений для Си/С++

Термин IDE

Интегрированная среда разработки – IDE

(Integrated Development Environment)

ПО

8

Page 9: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Лекции

Практика

Экзамен

Что будет

9

Page 10: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ 10

Понятие технологии программирования

Page 11: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

С++

11

Язык С++

История

Page 12: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

История

12

Вдохновлённые языком ALGOL-60 Математическая

лаборатория Кембриджского Университета совместно с

Компьютерным отделом Лондонского университета

создали в 1963 году язык CPL (Combined Programming

Language).

Язык CPL был сложным, и в 1966 году был создан язык

BCPL, основное предназначение которого заключалось

в написании компиляторов.

BCPL послужил предком для языка B (Би) (1969 г.).

Язык B (Би) был использован для написания самых

ранних версий UNIX. Именно этот язык послужил

непосредственным предшественником языка C (Си).

Язык программирования Си был разработан в стенах

Bell Labs в период с 1969 по 1973 годы.

Page 13: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Истроя

13

Успех Си в основном связан с тем, что на нём была

написана значительная часть операционной системы

UNIX.

Первая книга, посвящённая языку Си была написана

Керниганом и Ритчи в 1978 году и вышла в свет под

названием «Язык программирования Си».

В конце 1970-х годов, язык Си начал вытеснять BASIC.

В 1980-х годах он был адаптирован под архитектуру

IBM-PC, что привело к значительному скачку его

популярности.

.

Page 14: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

История

14

В то же время (начало 1980-х годов) Бьярн Страуструп

начал разработку языка программирования, который бы

сочетал в себе синтаксис популярного языка Си и

концепцию объектно-ориентированного

программирования.

В 1983 году произошло переименование языка из «Cи с

классами» в «язык программирования C++».

C++ компилируемый язык программирования общего

назначения, сочетает свойства как высокоуровневых,

так и низкоуровневых языков программирования.

Название «язык программирования C++» происходит от

языка программирования C, в котором унарный

оператор ++ обозначает инкремент переменной.

.

Page 15: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

История

15

Первый коммерческий выпуск состоялся в октябре 1985

года.

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

1983 под покровительством Американского

Национального Института Стандартов (ANSI).

Язык подвергся небольшим изменениям в 1995.

Более значительные изменения случились в 1999 году,

когда был опубликован стандарт ISO/IEC 9899:1999.

Язык, описанный в этом стандарте, обычно называют

C99.

В 2011 году вместе с редакцией языка Си++ был

выпущен стандарт C11.

……………….

.

Page 16: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ 16

Структура программы

Page 17: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Структура программы

17

// Start.cpp: определяет точку входа для

консольного приложения.

//

#include "stdafx.h"

#include <iostream>

int main()

{

std::cout << "First Programm!" << "\n";

return 0;

}

Page 18: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Структура программы

18

// Start.cpp: определяет точку входа

//

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

cout << "First Programm!" << endl << endl;

return 0;

}

Page 19: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример первой программы

19

#include "stdafx.h“

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

cout << "First Projects" << "\n";

return 0;

}

Page 20: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример первой программы

20

#include "stdafx.h“

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

cout << "First Projects" << "\n";

return 0;

}

#include "stdafx.h“

#include <iostream>

int _tmain(int argc, _TCHAR* argv[])

{

std ::cout << "First Projects" << "\n";

return 0;

}

Page 21: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Локализация

21

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

cout << "First Programm!" << endl << endl;

cout << "Моя первая программа!" << endl << endl;

return 0;

}

Page 22: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример программы

22

#include "stdafx.h"

#include <iostream>

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

cout << "Моя первая программа!" << endl << endl;

double x, y, z;

x = 3.0;

y = 4.5;

z = y / x;

cout << "z = y / x = " << y << " / " << x << " = " << z << "\n"

<< endl;

return 0;

}

Page 23: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример программы

23

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

Моя первая программа!

z = y / x = 4.5 / 3 = 1.5

Для продолжения нажмите любую клавишу . . .

Page 24: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример программы

24

int main()

{

setlocale(LC_ALL, "RUS");

cout << "Моя первая программа!" << endl << endl;

double x, y, z;

x = 3.0;

y = 4.5;

z = y / x;

cout << "z = y / x = " << y << " / " << x << " = " << z << "\n" << endl;

cout << "Введите x = ";

cin >> x;

z = y / x;

cout << "z = y / x = " << y << " / " << x << " = " << z << "\n";

return 0;

}

Page 25: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Структура программы

25

#include "stdafx.h“

#include <iostream>

using namespace std;

…..

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

…..

int _tmain(int argc, _TCHAR* argv[])

{

// текст основной программы

…….

…….

return 0;

}

// описание используемых функций

…….

…….

Page 26: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Пример программы

26

#include "stdafx.h"

#include <iostream>

using namespace std;

// описание прототипа

// пользовательских функций

int sum(int x, int y);

int main()

{

//описание переменных

int i, j, k, n;

//ввод данных

cout << “Input i = ";

cin >> i;

cout << “Input j = ";

cin >> j;

k=sum(i,j); //вызов ф-ции

//вывод результатов

cout << "k=i+j= " << i << " + " << j << "=" << k << "\n";

return 0;

}

// описание пользовательских

// функций

int sum(int x, int y)

{

int z;

z=x+y;

return z;

}

Page 27: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Структура программы

27

#include "stdafx.h“

#include <iostream>

using namespace std;

…….

// описание используемых функций

…….

…….

int _tmain(int argc, _TCHAR* argv[])

{

// текст основной программы

…….

…….

return 0;

}

Page 28: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ 28

Интерфейс пакета

Microsoft Visual Studio 2015

Page 29: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

MS VS 2015

29

Запускаем Microsoft

Visual Studio 2015

Page 30: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

MS VS 2015

30

Page 31: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Создание нового проекта MS VS 2015

31

Page 32: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Создание нового проекта MS VS 2015

32

Page 33: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Создание нового проекта MS VS 2015

33

Page 34: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Создание нового проекта MS VS 2015

34

Page 35: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Новый проект MS VS 2015

35

Page 36: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

MS VS 2015

36

Page 37: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Запуск проекта на выполнение

37

Page 38: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Консольное окно выполнения

38

Page 39: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Консольное окно выполнения

39

Page 40: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

MS VS 2015

40

Настройка цвета, языка и т.д.

Page 41: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

MS VS 2015

41

Настройка цвета, языка и т.д.

Page 42: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Выбор и открытие существующего проекта

42

Page 43: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Выбор и открытие существующего проекта

43

Page 44: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Выбор и открытие существующего проекта

44

Page 45: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ 45

Интерфейс пакета

Dev-C++

Page 46: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Dev-C++

46

Page 47: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Изменить «язык меню»

Сервис /

Параметры

среды

Dev-C++

47

Page 48: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

С++

48

Язык С++

Page 49: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Лексемы языка С++

49

Лексе́ма (от др.-греч. λέξις — слово, выражение, оборот речи) Лексема(лингвистика) — слово как абстрактная единица естественного языка.

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

Page 50: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Лексемы языка С++

50

В алфавит входят: •буквы латинского алфавита (строчные и прописные – разные!!!)

•цифры (0-9)

•спец. знаки

Из символов формируются лексемы: •Идентификаторы

•Константы

•Знаки операций

•Ключевые слова

•Разделители

Page 51: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Комментарии С++

51

// ….. Все после этих символов до конца стоки

считается комментарием

/*

все, что расположено между этими знаками –

комментарий

*/

Кому и зачем они нужны?

Page 52: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Блоки С++

52

{

Все что между скобками является

блоком и рассматривается как одно

целое

}

Page 53: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Блоки С++

53

{….. Все что между скобками является блоком и рассматривается как одно целое

} Блоки могут быть вложены друг в друга

{ //начало 1-го блока

{ //начало 2-го блока

{ //начало 3-го блока

} //конец 3-го блока

} // конец 2-го блока

} // конец 1-го блока

Page 54: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

С++

54

Стиль написания.

{

……….

{

……….

{

……….

}

……….

}

……….

}

Page 55: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

С++

55

Стиль написания.

«Отступы»

«Лесенка»

{ //начало 1-го блока

{ //начало 2-го блока

{ //начало 3-го блока

} //конец 3-го блока

} // конец 2-го блока

} // конец 1-го блока

Page 56: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

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

56

Например

int a, b=12, c;

float x=12.3, S=0.0, k;

[спецификатор класса памяти] <спецификация типа>

<идентификатор>[=<инициализатор>] [, <идентификатор>[=<инициализатор>]]

……. [, <идентификатор>[=<инициализатор>]];

Page 57: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Имена переменных

57

Пример

Имя - идентификатор

это слово (лексема), составленное из допустимых символов алфавита языка программирования, не являющееся знаком некоторой операции или разделителем

Page 58: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Типы переменных С++

58

Целые char 1 байт

int от реализации short int 2 байт

long int 4 байт

для представления без знаковых целых переменных используется приставка unsigned

unsigned char unsigned int

Page 59: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Типы переменных С++

59

Для представления чисел с плавающей точкой

float 4 байта

double 8 байт

Неопределенный void

Перечисление enum

Модификатор const

Суффиксы u – без знаковое, L – длинное

long int lk;

lk=5L;

unsigned int ik;

ik=5u;

Page 60: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Числовые константы С++

60

{

int p,v,s;

p=63;

v=077;

s=0x3f;

printf("p= %3d v= %3d s= %3d \n",p,v,s);

p=12; //десятичная система

v=012; //восьмиричная

s=0x12; //16-ричная

printf("p= %3d v= %3d s= %3d \n",p,v,s);

return 0;

} Результат выполнения программы

p= 63 v= 63 s= 63

p= 12 v= 10 s= 18 Для продолжения нажмите любую клавишу . . .

Page 61: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Перечисления С++

61

{

enum t1{p,v,s,c,pt,sb=0,vs};

printf("p= %3d v= %3d s= %3d c= %3d pt= %3d sb=

%3d vs= %3d\n",p,v,s,c,pt,sb,vs);

enum t2{p1=1,v1,s1,c1,pt1,sb1,vs1};

printf("p= %3d v= %3d s= %3d c= %3d pt= %3d sb=

%3d vs= %3d\n",p1,v1,s1,c1,pt1,sb1,vs1);

}

Результат выполнения программы p= 0 v= 1 s= 2 c= 3 pt= 4 sb= 0 vs= 1

p= 1 v= 2 s= 3 c= 4 pt= 5 sb= 6 vs= 7 Для продолжения нажмите любую клавишу . . .

Page 62: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Определения размеров переменных

62

Используется функция sizeof(i),

которая возвращает длину аргумента в байтах

cout << "Razmer tipov!\n";

int i;

cout << "int i = " << sizeof(i) << " bait\n";

short int j;

cout << "short int j = " << sizeof(j) << " bait\n";

long int k;

cout << "long int k = " << sizeof(k) << " bait\n";

unsigned int ii;

cout << "unsigned int ii = " << sizeof(ii) << “bait\n\n";

float x;

cout << "float x = " << sizeof(x) << " bait\n";

double y;

cout << "double y = " << sizeof(y) << " bait\n";

Razmer tipov!

int i = 4 bait

short int j = 2 bait

long int k = 4 bait

unsigned int ii = 4 bait

float x = 4 bait

double y = 8 bait Для продолжения нажмите

любую клавишу . . .

Page 63: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Программа перевода температур

63

{

int f;

float c;

for(f=32; f<100;f++)

{

c=(f-32)*5/9;

printf("f= %3d c=%5.1f\n",f,c);

}

}

f= 32 c= 0.0

f= 33 c= 0.0

f= 34 c= 1.0

f= 35 c= 1.0

f= 36 c= 2.0

f= 37 c= 2.0

f= 38 c= 3.0

f= 39 c= 3.0

f= 40 c= 4.0

f= 41 c= 5.0

f= 42 c= 5.0

f= 43 c= 6.0

f= 44 c= 6.0

f= 45 c= 7.0

f= 46 c= 7.0 f= 47 c= 8.0

f= 48 c= 8.0

f= 49 c= 9.0

f= 50 c= 10.0

f= 51 c= 10.0

f= 52 c= 11.0

f= 53 c= 11.0

f= 54 c= 12.0

Page 64: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

64

#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

int i,j,k;

i=1;

j=2;

k=i/j; cout << "i = " << i << " j = " << j << "\n";

cout << "k = " << i << "/" << j << " = " << k << "\n"; //k=0

double x;

x=i/j; cout << "x = " << i << "/" << j << " = " << x << "\n"; // x=0

x=1.0*i/j; cout << "x = " << i << "/" << j << " = " << x << "\n"; //x=0.5

return 0;

}

Результаты работы:

i = 1 j = 2

k = 1/2 = 0

x = 1/2 = 0

x = 1/2 = 0.5 Для продолжения нажмите любую клавишу . . .

Page 65: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

65

1)

int n;

double s;

s=0.0;

for(n=1;n<=10;n=n+1)

s=s+n/2;

cout << "s = " << s << "\n"; //s=25

2)

int n;

double s;

s=0.0;

for(n=1;n<=10;n=n+1)

s=s+n/2.0;

cout << "s = " << s << "\n"; // s = 27.5

Page 66: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

66

3) h=g*t*t/2 (считать g=10 м/с/с)

int t,g;

double h;

g=10;

t=1;

h=(t*t)/2*g;

cout << "h = " << h << "m za t = " << t << " cek \n";

h=(t*t)/2.0*g;

cout << "h = " << h << "m za t = " << t << " cek \n";

h=((double)t*t)/2*g;

cout << "h = " << h << "m za t = " << t << " cek \n"; Результаты работы:

h = 0m za t = 1 cek

h = 5m za t = 1 cek

h = 5m za t = 1 cek Для продолжения нажмите любую клавишу . . .

Page 67: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

67

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

double x; //сколько отдавать ежемесячно

int dolg;

cout << "Введите сумму долга - ";

cin >> dolg;

x = dolg / 12;

cout << "Надо отдавать ежемесячно = " << x << endl;

double otdal;

otdal = x*12;

cout << "Отдам через 12 месяцев = " << otdal << endl;

return 0;

}

Page 68: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

68

Введите сумму долга - 18

Надо отдавать ежемесячно = 1

Отдам через 12 месяцев = 12

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

Page 69: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Преобразование типов С++

69

double x; //сколько отдавать ежемесячно

int dolg;

cout << "Введите сумму долга - ";

cin >> dolg;

x = dolg / 12;

cout << "Надо отдавать ежемесячно = " << x << endl;

double otdal;

otdal = x*12;

cout << "Отдам через 12 месяцев = " << otdal << endl;

Введите сумму долга - 18

Надо отдавать ежемесячно = 1

Отдам через 12 месяцев = 12

Page 70: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Взятие модуля (деление по модулю) Операция %

70

int i,j,k;

i=9;

j=4;

k=i%j;

cout << "k = " << i << " % " << j << " = " << k << "\n";

i=12;

j=4;

k=i%j;

cout << "k = " << i << " % " << j << " = " << k << "\n";

i=3;

j=4;

k=i%j;

cout << "k = " << i << " % " << j << " = " << k << "\n";

Результаты работы:

k = 9 % 4 = 1

k = 12 % 4 = 0

k = 3 % 4 = 3 Для продолжения нажмите любую клавишу . . .

Page 71: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Операторы присваивания и выражения

71

double a, b, c, d;

d=2.4;

a=b=c=d+5.6; cout << "a = " << a << " b = " << b << " c = " << c << " d = " << d <<

"\n";

d=2.4;

a=b=(c=2.2)+d+5.6; cout << "a = " << a << " b = " << b << " c = " << c << " d = " << d <<

"\n";

//----------------------------------------------------

a=3.6;

a=a+2.2; cout << "a = " << a << "\n";

a=3.6;

a+=2.2; cout << "a = " << a << "\n";

a = 8 b = 8 c = 8 d = 2.4

a = 10.2 b = 10.2 c = 2.2 d = 2.4

a = 5.8

a = 5.8

Page 72: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Операторы присваивания и выражения

72

double x,y;

y=3.3;

x=1.2;

x=x*(y+1.0);

cout << "x = " << x << "\n";

y=3.3;

x=1.2;

cout << "x = " << x << " y = " << y << "\n";

x*=(y+1.0);

cout << "x = " << x << "\n";

y=3.3;

x=1.2;

cout << "x = " << x << " y = " << y << "\n";

x*=y+1.0;

cout << "x = " << x << "\n";

x = 5.16

x = 1.2 y = 3.3

x = 5.16

x = 1.2 y = 3.3

x = 5.16

Page 73: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Сдвиги (только к целым типам)

73

int i ,k;

//сдвиг влево == умножение

i=7;

cout << "i = " << i << "\n";

k=i<<1;

cout << "k = " << k << "\n";

k=i<<2;

cout << "k = " << k << "\n"; //сдвиг вправо == деление

i=13;

cout << "i = " << i << "\n";

k=i>>1;

cout << "k = " << k << "\n";

k=i>>2;

cout << "k = " << k << "\n";

i=24;

cout << "i = " << i << "\n";

k=i>>1;

cout << "k = " << k << "\n";

k=i>>2;

cout << "k = " << k << "\n";

i = 7

k = 14

k = 28

i = 13

k = 6

k = 3

i = 24

k = 12

k = 6

Page 74: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Инкремент и декремент

74

int n,x;

n=3;

n++;

cout << "n = " << n << "\n";

++n;

cout << "n = " << n << "\n";

x=n++;

cout << "n = " << n << " x = " << x << "\n";

x=++n;

cout << "n = " << n << " x = " << x << "\n"; n = 4

n = 5

n = 6 x = 5

n = 7 x = 7

Page 75: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

А что будет?

75

int n,x;

int y;

n=3;

cout << "n = " << n << "\n";

x=n+++3;

cout << "n = " << n << " x = " << x << "\n";

cout << "\n" << "n = " << n << "\n";

x=++n+2;

cout << "n = " << n << " x = " << x << "\n";

cout << "n = " << n << "\n";

y=3;

x=n*++y;

cout << "n = " << n << " x = " << x << "\n";

cout << "\n" << "n = " << n << "\n";

x=++n*2;

cout << "n = " << n << " x = " << x << "\n";

n = 3

n = 4 x = 6

n = 4

n = 5 x = 7

n = 5

n = 5 x = 20

n = 5

n = 6 x = 12

Page 76: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Приоритет операций и порядок их выполнения

76

Прио-

ритет Операция Примечание

Порядок

выполнения

1

:: .

[ ]

( )

( )

разрешение контекста,

извлечение

индексирование массива

вызов функции

преобразование типа

слева – направо

2

++ -- ~ !

- +

&

*

new,delete

sizeof

унарный -, унарный +

получение адреса

разрешение указателя

работа с динамической

памятью

определение размера

справа – налево

3

*

/

%

умножение

деление

остаток

слева – направо

Page 77: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Приоритет операций и порядок их выполнения

77

Прио-

ритет Операция Примечание

Порядок

выполнения

4 * .* извлечение слева - направо

5 +

-

бинарное сложение

бинарное вычитание

слева - направо

слева - направо

6 << >> сдвиги слева - направо

7 < <= > => сравнение слева - направо

8 = = != равно не равно слева - направо

9 & побитовое И слева - направо

10 ^ XOR (исключающее ИЛИ) слева - направо

11 | побитовое ИЛИ слева - направо

12 && И - логическое слева - направо

13 || ИЛИ - логическое слева - направо

14 ?: тернарная операция справа - налево

Page 78: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Приоритет операций и порядок их выполнения

78

Прио-

ритет Операция Примечание

Порядок

выполнения

15

= *=

/= %= +=

и т.д.

операция присвоения справа - налево

16 , следование слева - направо

Первый приоритет является наивысшим.

A=F(x)+G(X)

Page 79: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Приоритет операций и порядок их выполнения

79

Операторы

(знаки операций) Ассоциативность

() [] . -> Слева направо

+ - ~ ! * & ++ --

sizeof приведение типа Справа налево

* / % Слева направо

+ – Слева направо

>> << Слева направо

< > <= >= Слева направо

== != Слева направо

& Слева направо

^ Слева направо

| Слева направо

&& Слева направо

|| Слева направо

? : Справа налево

= *= /= %= +=

-= <<= >>= &= |=

^= Справа налево

Page 80: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный вывод

80

#include <stdio.h>

int printf( const char *format, ... );

Вывод форматированной строки на стандартный

вывод.

Возвращает кол-во выведенных (напечатанных) литер.

Управляющая последовательность строки формата

%[-|+][ширина][.точность]тип

Page 81: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный вывод

81

Значения типов:

d, i — десятичное знаковое число, размер по-умолчанию, sizeof(

int ). По-умолчанию записывается с правым выравниванием,

знак пишется только для отрицательных чисел

o — восьмеричное u — десятичное беззнаковое число

x и X — шестнадцатеричное число

f и F — числа с плавающей запятой. По-умолчанию выводятся с

точностью 6, если число по модулю меньше единицы, перед

десятичной точкой пишется 0.

e и E — числа с плавающей запятой в экспотенциальной форме

записи (вида 1.1e+44)

g и G — число с плавающей запятой; форма представления

зависит от значения величины (f или e)

a и A — число с плавающей запятой в шестнадцатеричном виде

c — вывод символа s — вывод строки с нулевым завершающим

байтом

Page 82: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный вывод

82

int i,j;

i=12;

j=543210;

float x,y;

x=123.45678;

y=0.1415;

double a,b;

a=3.1415926536;

b=0.000123;

printf("%d %f %e\n",i,x,a); printf("%d %f %e\n",j,y,b);

printf("\n\n");

printf("%6d %12.6f %9.6e\n",i,x,a);

printf("%6d %12.6f %9.6e\n",j,y,b);

printf("\n\n");

printf("%-6d %-12.6f %-9.6e\n",i,x,a);

printf("%-6d %-12.6f %-9.6e\n",j,y,b);

printf("\n\n");

printf(" i,j x,y a,b \n");

printf("%6d %12.6f %9.6e\n",i,x,a);

printf("%6d %12.6f %9.6e\n",j,y,b);

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

12 123.456779 3.141593e+000

543210 0.141500 1.230000e-004

12 123.456779 3.141593e+000

543210 0.141500 1.230000e-004

12 123.456779 3.141593e+000

543210 0.141500 1.230000e-004

i,j x,y a,b

12 123.456779 3.141593e+000

543210 0.141500 1.230000e-004 Для продолжения нажмите любую клавишу . . .

Page 83: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный вывод

83

char t[]="qwertyuiopasdfghjklz";

char t1[]="12345678901234567890";

printf("%s \n",t1);

printf("%20.20s \n",t);

printf("%15.15s \n",t);

printf("%15.10s \n",t);

printf("%-15.10s \n",t);

printf("\n\n\n");

printf("%30.30s \n",t);

printf("%30.20s \n",t);

printf("%-30.20s \n",t);

printf("\n\n\n");

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

12345678901234567890

qwertyuiopasdfghjklz

qwertyuiopasdfg

qwertyuiop

qwertyuiop

qwertyuiopasdfghjklz

qwertyuiopasdfghjklz

qwertyuiopasdfghjklz Для продолжения нажмите любую клавишу . . .

Page 84: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный ввод

84

int scanf(const char *format, адрес, ..);

Пример

char str[80], str2[80]; int i;

/* читается строка и целое значение */

scanf("%s%d", str, &i);

// в переменную str считывается не более 79 символов

scanf("%79s", str);

/* целое, расположенное между двумя строками,

пропускается */

scanf("%s%*d%s", str, str2);

Page 85: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Форматный ввод

85

char text[10];

scanf("%s",text); //можно 9 символов

printf("%s\n",text);

int i;

float y;

double x;

scanf("%d %f %lf",&i,&y,&x);

printf("%d %f %f\n",i,y,x);

scanf("%*2s %d %f %lf",&i,&y,&x);

printf("%d %f %f\n",i,y,x);

printf("\ni = ");

scanf("%i",&i);

printf("\n\n");

printf("%d %f %f\n",i,y,x);

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

qwerty

qwerty

1 2.3 4.67

1 2.300000 4.670000

i=234 4.5 6.789

234 4.500000 6.789000

i = 32

y = 4.56

x = 7.6543

32 4.560000 7.654300 Для продолжения нажмите любую клавишу . . .

printf("\ny = ");

scanf("%f",&y);

printf("\nx = ");

scanf("%lf",&x);

Page 86: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Логическое выражение

86

Логическое выражение «ИСТИНА»,

если отлично от нуля

Page 87: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Логическое выражение

87

> >= < <= != ==

&& - «И»

|| - «ИЛИ»

Пример

i<=10

i>2 && i<4

& - побитовое «И»

| - побитовое «ИЛИ»

^ - исключающее «ИЛИ»

~ - побитовое отрицание

Page 88: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Логическое выражение

88

int i=0, j=2;

cout << "i= " << i << " j= " << j << "\n";

i=j>3;

cout << "i=j>3= " << i <<"\n";

i=j<3;

cout << "i=j>3= " << i <<"\n";

i=j!=3;

cout << "i=j!=3= " << i <<"\n";

i=j==3;

cout << "i=j==3= " << i << " j= " << j << "\n“;

Результат

работы

i= 0 j= 2

i=j>3= 0

i=j>3= 1

i=j!=3= 1

i=j==3= 0 j= 2

«ИСТИНА», если отлично от нуля

Page 89: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Циклы (цикл for)

89

for (выр_1; выр_2; выр_3)

инстукция;

for (выр_1; выр_2; выр_3){

инстукция;

инстукция;

тело цикла

} выр_1 - начало

выр_2 - логическое выражение

выр_3 - шаг

Page 90: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Ццкл for

90

int i, beg;

double s;

beg=1;

s=0.0;

for (i=beg;i<=10;i++)

s=s+i/2.0;

cout << "s = " << s << "\n";

Результат

s = 27.5

Page 91: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Ццкл for

91

beg=10;

s=0.0;

for (i=beg;i<=10;i++)

s=s+i/2.0;

cout << "s = " << s << "\n";

beg=11;

s=0.0;

for (i=beg;i<=10;i++)

s=s+i/2.0;

cout << "s = " << s << "\n“;

Результат

s = 5

s = 0

Page 92: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Ццкл for

92

double b, s;

b=1.5;

s=0.0;

for (int i=1;s<6.0;b=b+0.5){

s=s+i/2.0+b;

cout << "i = " << i << "\n";

cout << "b = " << b << "\n";

cout << "s = " << s << "\n";

}

cout << "Vsego s = " << s << "\n";

i = 1

b = 1.5

s = 2

i = 1

b = 2

s = 4.5

i = 1

b = 2.5

s = 7.5

Vsego s = 7.5

Page 93: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Ццкл for

93

double b, s;

b=1.5;

s=0.0;

for (int i=1;s<6.0;b=b+0.5, i++){

s=s+i/2.0+b;

cout << "i = " << i << "\n";

cout << "b = " << b << "\n";

cout << "s = " << s << "\n";

}

cout << "Vsego s = " << s << "\n";

i = 1

b = 1.5

s = 2

i = 2

b = 2

s = 5

i = 3

b = 2.5

s = 9

Vsego s = 9

Page 94: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Цикл while

94

while (выр_1){

инстукция;

инстукция;

тело цикла

}

Цикл выполняется пока выр_1 – «ИСТИНА»

Page 95: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Цикл while

95

int i, beg;

double s;

s=0.0;

beg=1;

i=beg;

while (i<=10){

s=s+i/2.0;

i++;

}

cout << "s = " << s << "\n";

Результат выполнений

s = 27.5

Page 96: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Цикл while

96

int i, beg;

double s;

s=0.0;

beg=11;

i=beg;

while (i<=10){

s=s+i/2.0;

i++;

}

cout << "s = " << s << "\n“;

Результат выполнений

s = 0

Page 97: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Циклы (цикл do)

97

do {

инстукция;

инстукция;

тело цикла

} while (выр_1);

Цикл выполняется пока выр_1 – «ИСТИНА»

Цикл выполняется всегда ОДИН раз как минимум

Page 98: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Цикл do

98

int i, beg;

double s;

s=0.0;

beg=1;

i=beg;

do {

s=s+i/2.0;

i++;

} while (i<=10);

cout << "s = " << s << "\n";

Результат выполнений

s = 27.5

Page 99: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Цикл do

99

int i, beg;

double s;

s=0.0;

beg=11;

i=beg;

do {

s=s+i/2.0;

i++;

} while (i<=10);

cout << "s = " << s << "\n"; Результат выполнений

s = 5.5

Page 100: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

100

if (выр_1)

инстукция;

else

инстукция;

выр_1 «истина», если отлично от нуля

Page 101: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

101

if (выр_1){

инстукция;

инстукция;

инстукция;

}

else {

инстукция;

инстукция;

инстукция;

}

Page 102: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

102

if (выр_1){

инстукция;

инстукция;

инстукция;

}

Page 103: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

103

double a, b, c;

a=1.1;

b=2.2;

if(a>b)

c=a;

else

c=b;

cout << "c = " << c << "\n";

c = 2.2

Page 104: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

104

int a=2, b=7, c=3;

if(a>b)

if (b<c)

c=b;

else

c=a;

cout << "c = " << c << "\n";

Чему равно c = ???

Page 105: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

105

int a=2, b=7, c=3;

if(a>b)

if (b<c)

c=b;

else

c=a;

cout << "c = " << c << "\n";

c = 3

Page 106: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

106

for (int i=1; i<=5;i++){

cout << "i = " << i << "\n";

if(i==1)

cout << " 1 " << "\n";

else if(i==2)

cout << " 2 " << "\n";

else if(i==3)

cout << " 3 " << "\n";

else

cout << " > 3 " << "\n";

}

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

i = 1

1

i = 2

2

i = 3

3

i = 4

> 3

i = 5

> 3

Page 107: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

107

int a, b;

a=1;

b=0;

cout << " a = " << a << " b = " << b << "\n";

if(a==b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n“;

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

a = 1 b = 0

a НЕ равно b

a = 1 b = 0

a НЕ равно b

a = 0 b = 0 Для продолжения нажмите

любую клавишу . . .

Page 108: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

108

int a, b;

a=1;

b=2;

cout << " a = " << a << " b = " << b << "\n";

if(a==b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n“;

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

a = 1 b = 2

a НЕ равно b

a = 1 b = 2

a равно b

a = 2 b = 2 Для продолжения нажмите

любую клавишу . . .

Page 109: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

109

a=1; b=0;

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

Результат выполнения

a = 1 b = 0

a НЕ равно b

a = 0 b = 0 Для продолжения нажмите любую клавишу . . .

Page 110: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

110

a=1; b=1;

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

Результат выполнения

a = 1 b = 1

a равно b

a = 1 b = 1 Для продолжения нажмите любую клавишу . . .

Page 111: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

111

a=0; b=0;

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

Результат выполнения

a = 0 b = 0

a НЕ равно b

a = 0 b = 0 Для продолжения нажмите любую клавишу . . .

Page 112: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

112

a=0; b=2;

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

Результат выполнения

a = 0 b = 2

a равно b

a = 2 b = 2 Для продолжения нажмите любую клавишу . . .

Page 113: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

113

a=0; b=2;

cout << " a = " << a << " b = " << b << "\n";

if(a=b)

cout << " a равно b " << "\n";

else

cout << " a НЕ равно b " << "\n";

cout << " a = " << a << " b = " << b << "\n";

Результат выполнения

a = 0 b = 2

a равно b

a = 2 b = 2 Для продолжения нажмите любую клавишу . . .

Page 114: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

114

«Идентичные записи»

if(a) if(a!=0)

if(!a) if(a==0)

double a;

a=0.01;

cout << " a = " << a << "\n";

if(a)

cout << " Istina a = " << a << "\n";

else

cout << " No Istina a = " << a << "\n";

if(a!=0)

cout << " Istina a = " << a << "\n";

else

cout << " No Istina a = " << a << "\n";

a = 0.01

Istina a = 0.01

No Istina a = 0.01

Page 115: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

115

(выр_1) ? (выр_2) : (выр_3)

double a,b,c;

a=0.0;

b=2.2;

cout << " a = " << a << " b = " << b << "\n";

c=(a>b) ? a : b;

cout << " c=(a>b) = " << c << "\n";

a=2.23;

b=2.2;

cout << " a = " << a << " b = " << b << "\n";

c=(a>b) ? b : a;

cout << " c=(a>b) = " << c << "\n";

a = 0 b = 2.2

c=(a>b) = 2.2

a = 2.23 b = 2.2

c=(a>b) = 2.2

Page 116: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

116

&& - «И»

|| - «ИЛИ»

int i;

for (i=0; i<=5; i++){

cout << " i = " << i << "\n";

if (i>2 && i<4)

cout << " i>2 && i<4 " << "\n";

else

cout << " no " << "\n";

}

i = 0

no

i = 1

no

i = 2

no

i = 3 i>2 && i<4

i = 4

no

i = 5

no

Page 117: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

117

&& - «И»

|| - «ИЛИ»

int i;

for (i=0; i<=5; i++){

cout << " i = " << i << "\n";

if (i<2 || i>=4)

cout << " i<2 || i>=4 " << "\n";

else

cout << " no " << "\n";

}

i = 0

i<2 || i>=4

i = 1

i<2 || i>=4

i = 2

no

i = 3

no

i = 4

i<2 || i>=4

i = 5

i<2 || i>=4

Page 118: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

118

int i=3, j=4, k;

cout << " i=" << i << "\n";

k=~i; //отрицание

cout << " k=" << k << "\n";

k=i&j; // И AND

cout << " k=" << k << "\n";

k=i^j; // исключающее ИЛИ XOR

cout << " k=" << k << "\n";

k=i|j; // ИЛИ OR

cout << " k=" << k << "\n";

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

i=3

k=-4

k=0

k=7

k=7 Для продолжения

нажмите любую клавишу .

. .

& - побитовое «И»

| - побитовое «ИЛИ»

^ - исключающее «ИЛИ»

~ - побитовое отрицание

Page 119: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

119

int k, m, l;

k=2;

m=2;

l=k>m;

cout << " l=" << l << "\n";

if (k&&m)

cout << "Истина\n";

else

cout << "Ложь\n";

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

l=0

Истина Для продолжения

нажмите любую

клавишу . . .

Page 120: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

120

k=2;

m=1;

l=k>m;

cout << " l=" << l <<

"\n";

if (k&&m)

cout << "Истина\n";

else

cout << "Ложь\n";

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

l=1

Истина Для продолжения нажмите

любую клавишу . . .

Page 121: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

121

k=2;

m=1;

l=k>m;

cout << " l=" << l << "\n";

if (k&&m)

cout << "Истина\n";

else

cout << "Ложь\n";

if (k&m)

cout << "Истина\n";

else

cout << "Ложь\n";

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

l=1

Истина

Ложь Для продолжения нажмите

любую клавишу . . .

Page 122: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

«Условия»

122

k=2;

m=1;

l=k>m;

cout << " l=" << l << "\n";

if (k&&m)

cout << "Истина\n";

else

cout << "Ложь\n";

if (k&m)

cout << "Истина\n";

else

cout << "Ложь\n";

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

l=1

Истина

Ложь Для продолжения нажмите

любую клавишу . . .

Page 123: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

break

123

int i;

for (i=0; i<=5; i++){

if (i>2 && i<=4){

cout << " i>2 && i<=4 (i=" << i << ")" << "\n";

break;

}

else {

cout << " no (i=" << i << ")" << "\n";

}

cout << "--------------------------------" << "\n";

}

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

no (i=0)

---------------------------

no (i=1)

---------------------------

no (i=2)

---------------------------

i>2 && i<=4 (i=3)

Page 124: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

continue

124

int i;

for (i=0; i<=5; i++){

if (i>2 && i<=4){

cout << " i>2 && i<=4 (i=" << i << ")" << "\n";

}

else {

cout << " no (i=" << i << ")" << "\n";

continue;

}

cout << "--------------------------------" << "\n";

}

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

no (i=0)

no (i=1)

no (i=2)

i>2 && i<=4 (i=3)

--------------------------------

i>2 && i<=4 (i=4)

--------------------------------

no (i=5)

Page 125: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

goto

125

int i, j;

for (i=0; i<=3; i++){

cout << " ----- i=" << i << "\n"

for (j=0; j<=4; j++){

cout << " j=" << j << "\n";

if(i==2 && j==3)

goto metka;

}

}

cout << "do metka:" << "\n";

metka:

cout << "metka:" << "\n";

Результат

работы

----- i=0

j=0

j=1

j=2

j=3

j=4

----- i=1

j=0

j=1

j=2

j=3

j=4

----- i=2

j=0

j=1

j=2

j=3

metka:

Page 126: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

Переключатель

126

switch (выражение типа int) {

case конст.-выр.1:

[инструкции;]

case конст.-выр.2:

[инструкции;]

case ……………………………….

[default:

инструкции;]

}

конст.-выр. – константное выражение,

уникальное, нет одинаковых

Page 127: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

switch

127

int i;

i=2;

switch (i) {

case 1:

cout << "case 1" << "\n";

case 2:

cout << "case 2" << "\n";

case 3:

cout << "case 3" << "\n";

default:

cout << "default" << "\n";

}

cout << "end" << "\n";

Результат

работы

case 2

case 3

default

end

Page 128: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

switch

128

int i;

i=2;

const int j=2;

const int k=3;

switch (i) {

case 1: cout << "case 1" << "\n";

case j: cout << "case 2" << "\n";

case k: cout << "case 3" << "\n";

default:

cout << "default" << "\n";

}

cout << "end" << "\n";

Результат

работы

case 2

case 3

default

end

Если написать

const int j=3;

const int k=3; 1>d:\0_st\switch\esli\esli.cpp(27) : error C2196: значение варианта выбора "3" уже

используется

Page 129: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ

switch

129

int i, j;

i=1;

while (i<=3) {

j=4-i;

switch (j) {

case 1: cout << "case 1" << "\n";

case 2: cout << "case 2" << "\n";

break;

case 3: cout << "case 3" << "\n";

case 4: cout << "case 4" << "\n";

case 5: cout << "case 5" << "\n";

default: cout << "default" << "\n";

}

i++;

cout << "-----------------------------" << "\n";

}

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

case 3

case 4

case 5

default

--------------------

case 2

--------------------

case 1

case 2

--------------------

Page 130: Z g b y ( 1) - DonSoft LTDvirtlab.donsoftltd.ru/docs_uc/Prog_Technologies_1.pdfоснованными на Си (Java, PHP, JavaScript и др.). Язык Си рассматривается

«Технология программирования» © 2017 кафедра ПЭКМ физический факультет ЮФУ 130

Видимость переменных.

Классы памяти.

(см. продолжение - часть 2)