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


Санкт-Петербургский государственный электротехнический университет

Содержание

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация1Тема 1. Типы данных, адресацияШевченко А. В.chardoublelong*short

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

Слайд 1Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»

Факультет электротехники и автоматики
Программирование
и
основы

алгоритмизации
Шевченко Алексей Владимирович
Кафедра РАПС
Санкт-Петербург, 2010 г.

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»Факультет электротехники и автоматикиПрограммирование и основы алгоритмизацииШевченко Алексей ВладимировичКафедра РАПССанкт-Петербург, 2010 г.

Слайд 2Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
1
Тема 1. Типы

данных, адресация
Шевченко А. В.
char
double
long*
short

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация1Тема 1. Типы данных, адресацияШевченко А. В.chardoublelong*short

Слайд 3Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
2
Классификация типов данных
Шевченко

А. В.
Типы данных
Простые
Составные
Целые
Вещественные
Массивы
Объединения
Структуры

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация2Классификация типов данныхШевченко А. В.Типы данныхПростыеСоставныеЦелыеВещественныеМассивыОбъединенияСтруктуры

Слайд 4Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
3
Целые типы данных
Шевченко

А. В.
Тип
char
Размер
Диапазон
1
-128 … 127
unsigned char
1
0 … 255
short
2
-32768 … 32767
unsigned short
2
0

… 65535

long

4

-231 … 231-1

unsigned long

4

0 … 232-1

1

1

1

1

1

1

1

1

0

1

1

1

1

1

1

1

unsigned char

char

Знаковый разряд (0 = +, 1 = -)

int - зависит от платформы

11111111 = 255 00000000 = 0

01111111 = 127 00000000 = 0 11111111 = -1 10000000 = -128

0

7

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация3Целые типы данныхШевченко А. В.ТипcharРазмерДиапазон1-128 … 127unsigned char10 … 255short2-32768

Слайд 5Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
4
Вещественные типы данных
Шевченко

А. В.
Тип
float
Размер
Диапазон
4
3.4*10-38 … 3.4*1038
double
8
1.7*10-308 … 1.7*10308
long double
10
3.4*10-4932 … 3.4*104932
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
float
Знаковый разряд

(0 = +, 1 = -)

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

15

31

16

порядок

мантисса

Число = (1+мантисса)*2(порядок-127)

мантисса

Точность

7

15

19

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация4Вещественные типы данныхШевченко А. В.ТипfloatРазмерДиапазон43.4*10-38 … 3.4*1038double81.7*10-308 … 1.7*10308long double103.4*10-4932

Слайд 6Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
5
Адресация. Архитектура компьютера
Шевченко

А. В.
Центральная часть
Периферийные устройства
Процессор
Оперативная память
Устройства ввода-вывода
Диски
Ленты
...

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация5Адресация. Архитектура компьютераШевченко А. В.Центральная частьПериферийные устройстваПроцессорОперативная памятьУстройства ввода-выводаДискиЛенты...

Слайд 7Оперативная память
Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
5
Адресация. Процессор

и память
Шевченко А. В.
Процессор
Регистр
Регистр
Регистр
Регистр
Программный счетчик
Указатель стека
АЛУ
00000000
00000001
00000002
00000003
00000004

адрес
Архитектура процессора: разрядность, система команд

Оперативная памятьПрограммирование и основы алгоритмизацииТема 1. Типы данных, адресация5Адресация. Процессор и памятьШевченко А. В.ПроцессорРегистрРегистрРегистрРегистрПрограммный счетчикУказатель стекаАЛУ0000000000000001000000020000000300000004…адресАрхитектура процессора:

Слайд 8Оперативная память
Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
6
Адресация. Адресное

пространство
Шевченко А. В.
Процессор
Регистр
Регистр
Регистр
Регистр
PC - программный счетчик
SP - указатель стека
АЛУ
00000000
00000001
00000002
00000003
00000004

Адресное пространство: 16

бит = 64К, 32 бита = 4М

команды

данные

Оперативная памятьПрограммирование и основы алгоритмизацииТема 1. Типы данных, адресация6Адресация. Адресное пространствоШевченко А. В.ПроцессорРегистрРегистрРегистрРегистрPC - программный счетчикSP -

Слайд 9Виртуальное адресное пространство
Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
7
Адресация.

Образ задачи
Шевченко А. В.
Образ задачи
Данные
Код
Стек
Регистры
00000000
00000001
00000002
00000003
00000004

Образ задачи создается компилятором и построителем

в виртуальном адресном пространстве
Виртуальное адресное пространствоПрограммирование и основы алгоритмизацииТема 1. Типы данных, адресация7Адресация. Образ задачиШевченко А. В.Образ задачиДанныеКодСтекРегистры0000000000000001000000020000000300000004…Образ задачи создается

Слайд 10Виртуальное адресное пространство
Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
7
Адресация.

Переменные. Указатели
Шевченко А. В.
Текст программы
short a; unsigned

char b = 3; short *p = &a; ... a = 5; *p = 5;

00000000

00000001

00000002

00000003

00000004


Компилятор размещает переменные и присваивает адреса: адрес а = 00000000 адрес b = 00000002 адрес р = 00000004 содержимое а = ? / 5 содержимое b = 3 содержимое р = 0

p

00000005

00000006

00000007

b

a

Виртуальное адресное пространствоПрограммирование и основы алгоритмизацииТема 1. Типы данных, адресация7Адресация. Переменные. УказателиШевченко А. В.Текст программы  short

Слайд 11Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
8
Структуры
Шевченко А. В.
Текст

программы
typedef struct { short a;

float b; char c; } A; … A a1, a2; a1.a = -23456; a1.b = 1234.56; a1.c = 8;

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

a

b

c

A

a

b

c

a

b

c

a1

a2

sizeof(A) = 12

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация8СтруктурыШевченко А. В.Текст программы  typedef struct   {

Слайд 12Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
8
Оптимальное размещение данных

в структурах
Шевченко А. В.
a
b
c
A1
sizeof(A1) = 12
a
c
A2
sizeof(A2) = 8
b
Текст программы

typedef struct { short a; float b; char c; } A1; … typedef struct { short a; char c; float b; } A2;
Программирование и основы алгоритмизацииТема 1. Типы данных, адресация8Оптимальное размещение данных в структурахШевченко А. В.abcA1sizeof(A1) = 12acA2sizeof(A2) =

Слайд 13Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
10
Объединения
Шевченко А. В.
Текст

программы
typedef union { short a;

float b; char c; } B; … B b1, b2; b1.a = -23456; b1.b = 1234.56; b1.c = 8;

В объединениях поля данных перекрываются. Размер равен самому большому полю

a

b

c

B

a,b,c

b1

b2

a,b,c

sizeof(B) = 4

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация10ОбъединенияШевченко А. В.Текст программы  typedef union   {

Слайд 14Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
11
Массивы
Шевченко А. В.
Текст

программы
int a[4]; … int *b =

a; … (a[2] == b[2]) //true

Имя массива эквивалентно адресу первого элемента массива

a[0]

a[1]

a[2]

a

sizeof(a) = 16

a[3]

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация11МассивыШевченко А. В.Текст программы  int a[4];   …

Слайд 15Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
12
Динамическое выделение памяти

под массивы
Шевченко А. В.
Текст программы
int *a = new

int[40]; … a[12] = 5; a[39] = 8; a[40] = … ОПАСНО!!! … delete[] a;

Имя массива эквивалентно адресу первого элемента массива

a

a[0]

a[1]

a[2]

...

a[39]

Динами-ческая память

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация12Динамическое выделение памяти под массивыШевченко А. В.Текст программы  int

Слайд 16Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
13
Символы, строки. Кодирование

символов
Шевченко А. В.

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация13Символы, строки. Кодирование символовШевченко А. В.

Слайд 17Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
14
Символы, строки
Шевченко А.

В.
Текст программы
char a[8]; a[0] = ’T’;

a[1] = ’e’; a[2] = ’к’; a[3] = ’с’; a[4] = ’т’; a[5] = 0; ... strcpy(a, ”Текст”);

В языках С и С++ строки заканчиваются нулевым байтом

a

210

229

234

241

242

0

?

?

Т

е

к

с

т

Программирование и основы алгоритмизацииТема 1. Типы данных, адресация14Символы, строкиШевченко А. В.Текст программы  char a[8];

Слайд 18Программирование и основы алгоритмизации
Тема 1. Типы данных, адресация
15
Операции со строками
Шевченко

А. В.
Текст программы
char a[8]; // выделение памяти char

*b = ”Текст”; // строковая константа strcpy(a, b); // копирование строк int len = strlen(a); // длина строки int cmp = strcmp(a, b); // сравнение строк char* s = strсhr(a, ’т’); // поиск символа char* s = strstr(a, ”кс”); // поиск подстроки
Программирование и основы алгоритмизацииТема 1. Типы данных, адресация15Операции со строкамиШевченко А. В.Текст программы  char a[8];			// выделение

Слайд 19Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
1
Тема 2. Переменные,

управление памятью
Шевченко А. В.
double a;
char b[64];
long* c = new long(48);

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью1Тема 2. Переменные, управление памятьюШевченко А. В.double 	a;char	b[64];long* c =

Слайд 20Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
2
Программирование. Задачи
Шевченко А.

В.
Аппаратное обеспечение
Программное обеспечение

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью2Программирование. ЗадачиШевченко А. В.Аппаратное обеспечениеПрограммное обеспечение

Слайд 21Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
3
Программирование. Языки
Шевченко А.

В.
Ассемблер
Языки программирования
Низкого уровня
Высокого уровня
Компиляция
Интерпретация
Процедурные
Непроцедурные
Алгол, Кобол, Фортран, ПЛ/1, С, Паскаль
Бэйсик
Пролог

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью3Программирование. ЯзыкиШевченко А. В.АссемблерЯзыки программированияНизкого уровняВысокого уровняКомпиляцияИнтерпретацияПроцедурныеНепроцедурныеАлгол, Кобол, Фортран, ПЛ/1,

Слайд 22Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
4
Программирование. Компиляция и

построение задачи
Шевченко А. В.
Текст программы
int a = 5; int main() {

int b = a/5; int c = f(b); } int f(int a) { return(abs(a)); }

Виртуальное адресное пространство

0x00000000

0x00000001

0x00000002

0x00000003

0x00000004


Образ задачи

Данные

Код

Компилятор

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью4Программирование. Компиляция и построение задачиШевченко А. В.Текст программыint a =

Слайд 23Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
5
Размещение переменных в

памяти
Шевченко А. В.
Текст программы
int A; int B = 999; void f() {

int C; int *D = new int[8]; *D = A+B+C; ... }

Виртуальное адресное пространство задачи

0x00000000

Динамическая память (Heap)

Неинициализи-рованные данные

0x00400000

0x00800000

Инициализи-рованные данные

Код

Стек

Управляющие структуры

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью5Размещение переменных в памятиШевченко А. В.Текст программыint A; int B

Слайд 24Файл образа задачи (.exe)
Программирование и основы алгоритмизации
Тема 2. Переменные, управление

памятью
6
Файл образа задачи
Шевченко А. В.
Виртуальное адресное пространство задачи
0x00000000
Динамическая память (Heap)
0x00400000
0x00800000
Данные
Код
Управляющие структуры
Заголовок
Неинициализирован-ные

данные (BSS)

Инициализированные данные

Код

Стек

Управляющие структуры

Файл образа задачи (.exe)Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью6Файл образа задачиШевченко А. В.Виртуальное адресное пространство

Слайд 25Программирование и основы алгоритмизации
Тема 2. Переменные, управление памятью
6
Выполнение задачи
Шевченко А.

В.
Оперативная память
0x00000000
Динамическая память (Heap)
0x00400000
0x00800000
Неинициализирован-ные данные (BSS)
Инициализированные данные
Код
Стек
Управляющие структуры
Загрузка
Точка входа

Программирование и основы алгоритмизацииТема 2. Переменные, управление памятью6Выполнение задачиШевченко А. В.Оперативная память0x00000000Динамическая память (Heap)0x004000000x00800000Неинициализирован-ные данные (BSS)Инициализированные данныеКодСтекУправляющие

Слайд 26Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
1
Тема 3. Препроцессор, функции
Шевченко

А. В.
#define MAXCOUNT 100
void f(int a, int b);

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции1Тема 3. Препроцессор, функцииШевченко А. В.#define MAXCOUNT 100void f(int a, int

Слайд 27Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
2
Препроцессор
Шевченко А. В.
Текст программы
#define

MAX 200 int data[MAX]; int main() { for(int i = 0; i

< MAX; i++) data[i] = ... }

Препроцессор

Компилятор

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции2ПрепроцессорШевченко А. В.Текст программы#define MAX 200  int data[MAX];  int

Слайд 28Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
3
Директивы препроцессора
Шевченко А. В.
Текст

программы
#define MAX 200 #define GETINT(var, edit) \ var = StrToInt(edit->Text) #ifdef

DEBUG ShowMessage(”Точка 1”); #endif

Директивы препроцессора начинаются с символа #

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции3Директивы препроцессораШевченко А. В.Текст программы#define MAX 200    #define

Слайд 29Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
4
Включение при компиляции кода

из других файлов
Шевченко А. В.
Текст программы
#include ”file1.h” #include
Файл

file1.h

Файл file2.h

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции4Включение при компиляции кода из других файловШевченко А. В.Текст программы#include ”file1.h”

Слайд 30Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
5
Определение символических имен
Шевченко А.

В.
Текст программы 1
#define MAX 200 ... int data[MAX]; for(int i = 0; i

< MAX; i++) data[i] = 0;

Текст программы 2

#define Red 0x0000FF #define Green 0x00FF00 #define Blue 0xFF0000 ... Edit->Color = Red;

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции5Определение символических именШевченко А. В.Текст программы 1#define MAX 200 ... int

Слайд 31Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
6
Стандартные имена компилятора
Шевченко А.

В.
Текст программы
__cplusplus Определено, если компилируется код С++. __DATE__ Дата начала компиляции текущего

файла. __FILE__ Имя текущего файла. __FUNC__ Имя текущей функции. __LINE__ Номер текущей строки. __STDC__ Определено, если применяется стандарт ANSI. __TIME__ Время начала компиляции текущего файла.
Программирование и основы алгоритмизацииТема 3. Препроцессор, функции6Стандартные имена компилятораШевченко А. В.Текст программы __cplusplus 	Определено, если компилируется код

Слайд 32Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
7
Макросы
Шевченко А. В.
Текст программы
#define

GETINT(var, edit) \ var = StrToInt(edit->Text) ... int rows; int cols; ...

GETINT(rows, RowsEdit); GETINT(cols, ColsEdit);

rows = StrToInt(RowsEdit->Text); cols = StrToInt(ColsEdit->Text);

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции7МакросыШевченко А. В.Текст программы#define GETINT(var, edit) \   var =

Слайд 33Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
8
Пример использования макроса
Шевченко А.

В.
Текст программы 1
#define square(a, b) (a*b) ... int s = square(3+1, 5+1);
x

= 9

x = 24

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции8Пример использования макросаШевченко А. В.Текст программы 1#define square(a, b) (a*b) ...

Слайд 34Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
9
Условная трансляция
Шевченко А. В.
Текст

программы
#define DEBUG #define TRACE ... long password; #ifdef DEBUG #ifdef TRACE ShowMessage(”Точка

1”); #endif password = 1; #else GetPassword(password); #endif
Программирование и основы алгоритмизацииТема 3. Препроцессор, функции9Условная трансляцияШевченко А. В.Текст программы#define DEBUG #define TRACE

Слайд 35Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
10
Пример использования условной трансляции
Шевченко

А. В.
Текст заголовка lib.h
#ifndef LIB #define LIB ... ... ... #endif
Текст заголовка form1.h
#include ...
Текст

заголовка form2.h

#include ...

Текст программы prog.cpp

#include #include ...

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции10Пример использования условной трансляцииШевченко А. В.Текст заголовка lib.h#ifndef LIB #define LIB

Слайд 36Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
11
Функции
Шевченко А. В.
Текст заголовка

lib.h
int abs(int val);
Текст программы prog.cpp
#include ... int a = abs(b); ... int

c = a+abs(d);

Текст программы lib.cpp

int abs(int val) { if(val < 0) val = -val; return(val); }

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции11ФункцииШевченко А. В.Текст заголовка lib.hint abs(int val); Текст программы prog.cpp#include

Слайд 37Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
12
Декларация функции
Шевченко А. В.
Текст

заголовка
double square(double length, double width);
Тип функции
Имя функции
Список параметров
Тип параметра
Имя параметра
void

func(int a, int b);

Функция не возвращает значения

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции12Декларация функцииШевченко А. В.Текст заголовкаdouble square(double length, double width); Тип функцииИмя

Слайд 38Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
13
Параметры функции по умолчанию
Шевченко

А. В.
Текст заголовка
int func(int a, int b = 3, int

c = 5);

Значение параметра по умолчанию

Текст программы

int func(int a, int b, int c) { return(a+b+c); } int x = func(7, 5, 2); int x = func(7, 5); int x = func(7); int x = func();

Ошибка!

Программирование и основы алгоритмизацииТема 3. Препроцессор, функции13Параметры функции по умолчаниюШевченко А. В.Текст заголовкаint func(int a, int b

Слайд 39Текст программы 1
Текст программы 2
Программирование и основы алгоритмизации
Тема 3. Препроцессор,

функции
14
Передача параметров в функцию
Шевченко А. В.
void func(int a, int b) {

a += b; } ... int x = 5; int y = 3; func(x, y);

void func(int &a, int &b) { a += b; } ... int x = 5; int y = 3; func(x, y);

По значению

По ссылке

Текст программы 1Текст программы 2Программирование и основы алгоритмизацииТема 3. Препроцессор, функции14Передача параметров в функциюШевченко А. В.void func(int

Слайд 40Текст программы
Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
15
Функции с переменным

числом параметров
Шевченко А. В.
int sprintf(char *buffer, const char *format, ...); { ...

va_list args; va_start(args, format); for(int i = 0; i < narg; i++) { int* par = va_arg(args, int*); ... } va_end(args); }

Последний фиксированный параметр

Получение следующего параметра

Текст программыПрограммирование и основы алгоритмизацииТема 3. Препроцессор, функции15Функции с переменным числом параметровШевченко А. В.int sprintf(char *buffer, const

Слайд 41Текст программы
Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
16
Рекурсивный вызов функции
Шевченко

А. В.
double factorial(double N) { return(N == 1 ? 1

: N*factorial(N-1)); } ... ShowMessage(factorial(170));
Текст программыПрограммирование и основы алгоритмизацииТема 3. Препроцессор, функции16Рекурсивный вызов функцииШевченко А. В.double factorial(double N) {

Слайд 42Текст программы
Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
17
Затраты на вызов

функции
Шевченко А. В.
... int a = 5;

int b = 4; int c = square(a, b); ...

Стек

0х00000005 0х00000004 0х00402768 0х0001238С

Параметры, точка возврата, сохраняемые регистры

Текст программыПрограммирование и основы алгоритмизацииТема 3. Препроцессор, функции17Затраты на вызов функцииШевченко А. В. ...

Слайд 43Макросы
Программирование и основы алгоритмизации
Тема 3. Препроцессор, функции
18
Сравнение макросов и функций
Шевченко

А. В.
Быстрота выполнения
Большие затраты памяти
Функции
Дополнительные затраты времени
Экономия памяти
Нет контроля типов

параметров

Контроль типов параметров

inline - функции, шаблоны

МакросыПрограммирование и основы алгоритмизацииТема 3. Препроцессор, функции18Сравнение макросов и функцийШевченко А. В.Быстрота выполненияБольшие затраты памятиФункцииДополнительные затраты времениЭкономия

Слайд 44Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
1
Тема 4. Управление

выполнением программы
Шевченко А. В.
for(int i = 0; i < N;

i++)

try {...} catch(...) {...}

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы1Тема 4. Управление выполнением программыШевченко А. В.for(int i = 0;

Слайд 45Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
2
Операторы управления выполнением

программы
Шевченко А. В.
Операторы управления выполнением программы
Оператор безусловного перехода
Операторы условного перехода
Операторы

цикла

Обработка исключительных ситуаций

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы2Операторы управления выполнением программыШевченко А. В.Операторы управления выполнением программыОператор безусловного

Слайд 46Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
3
Оператор безусловного перехода
Шевченко

А. В.
Текст программы
... a = b+c; goto label; ... label: d = e-a; ...

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы3Оператор безусловного переходаШевченко А. В.Текст программы... a = b+c; goto

Слайд 47Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
4
Оператор условного перехода

if
Шевченко А. В.
Текст программы
if(a < b) { ... } else { ... }
Выражение:

- логическое (true, false), - арифметическое (не 0 = true, 0 = false)

Блок «true»

Блок «false»

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы4Оператор условного перехода ifШевченко А. В.Текст программыif(a < b) {

Слайд 48Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
5
Примеры оператора if
Шевченко

А. В.
Текст программы
if(a < b) a = b; if(a

b) a = b; else a = c;

Текст программы

if(a < b) { a = b; c = b-d; } else { a = c; d--; }

Текст программы

if(a < b) a = b; else if(a < c) a = c; else if(a < d) a = d; else a = 0;

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы5Примеры оператора ifШевченко А. В.Текст программыif(a < b)

Слайд 49Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
6
Оператор условного перехода

switch
Шевченко А. В.
Текст программы
switch(a) { case CONST1: ... break; case CONST2:

... break; default: ... }

Выражение

Блок «CONST1»

Блок «по умолчанию»

Блок «CONST2»

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы6Оператор условного перехода switchШевченко А. В.Текст программыswitch(a) { case CONST1:

Слайд 50Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
7
Пример оператора switch
Шевченко

А. В.
Текст программы
char* text; switch(note) { case 5: text = "Отлично";

break; case 4: text = "Хорошо"; break; case 3: text = "Удовлетворительно"; break; case 2: text = "Неудовлетворительно"; break; default: text = "Ошибка"; }
Программирование и основы алгоритмизацииТема 4. Управление выполнением программы7Пример оператора switchШевченко А. В.Текст программыchar* text;  switch(note) {

Слайд 51Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
8
Оператор цикла while
Шевченко

А. В.
Текст программы
while(a > b) { ... }
Выражение
Тело цикла

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы8Оператор цикла whileШевченко А. В.Текст программыwhile(a > b) {

Слайд 52Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
9
Пример оператора while
Шевченко

А. В.
Текст программы
int a = 10; while(a--) { ShowMessage("Сколько можно повторять!"); }

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы9Пример оператора whileШевченко А. В.Текст программыint a = 10;

Слайд 53Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
10
Оператор цикла for
Шевченко

А. В.
Текст программы
for(int i = 0; i < N; i++) {

... }

Выражение, определяющее продолжение

Тело цикла

Инициация

Выражение, выполняемое после тела цикла

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы10Оператор цикла forШевченко А. В.Текст программыfor(int i = 0; i

Слайд 54Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
11
Пример оператора for
Шевченко

А. В.
Текст программы
int factorial(int N) { int f = 1;

for(int i = 1; i <= N; i++) f *= i; return(f); }
Программирование и основы алгоритмизацииТема 4. Управление выполнением программы11Пример оператора forШевченко А. В.Текст программыint factorial(int N) {

Слайд 55Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
12
Оператор цикла do
Шевченко

А. В.
Текст программы
do { ... } while(a < b)
Выражение, определяющее продолжение
Тело цикла

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы12Оператор цикла doШевченко А. В.Текст программыdo {  ... }

Слайд 56Программирование и основы алгоритмизации
Тема 4. Управление выполнением программы
13
Операторы break, continue

и return
Шевченко А. В.
Текст программы
while(true) { ... if(...) continue;

... if(...) break; ... if(...) return; }

Переход к концу цикла

Выход из цикла

Выход из функции

Программирование и основы алгоритмизацииТема 4. Управление выполнением программы13Операторы break, continue и returnШевченко А. В.Текст программыwhile(true) {

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

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

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

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

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


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

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