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


Программирование 1

Содержание

Внимание!В начале лекции было завершено рассмотрение материала первой лекции15.09.2011Язык С++. Начало

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

Слайд 115.09.2011
Язык С++. Начало
Программирование 1
Лекция 2


Введение в язык программирования С++.
Стандартные типы

данных.
Основные управляющие структуры (начало).

15.09.2011Язык С++. НачалоПрограммирование 1Лекция 2Введение в язык программирования С++.Стандартные типы данных. Основные управляющие структуры (начало).

Слайд 2Внимание!
В начале лекции было завершено рассмотрение материала первой лекции
15.09.2011
Язык С++.

Начало

Внимание!В начале лекции было завершено рассмотрение материала первой лекции15.09.2011Язык С++. Начало

Слайд 315.09.2011
Язык С++. Начало
Концепция данных. Типы данных
Программы = структуры данных +

алгоритмы
Компьютер – тоже состоит из структур данных (СД) и алгоритмов.
Компьютер

– это интегрированный набор структур данных и алгоритмов, способный хранить и выполнять программы.
Встроенные СД = регистры и слова памяти, где хранятся двоичные коды (числа, символы и т.д.)
Встроенные в аппаратуру алгоритмы = воплощенные в электронных логических цепях (схемах) жесткие правила интерпретации данных в памяти как команд, подлежащих исполнению.
(Это некоторое упрощение)
15.09.2011Язык С++. НачалоКонцепция данных. Типы данныхПрограммы = структуры данных + алгоритмыКомпьютер – тоже состоит из структур данных

Слайд 415.09.2011
Язык С++. Начало
Данные в прикладных (предметных) областях
Задачи, которые должны решаться

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

битов,
а с помощью оперирования
числами, литерами (буквами), текстами, символами,
а также более сложными структурами, например,
последовательностями, списками, деревьями, графами и т.п.
Далее идут геометрические образы, изображения, видео и аудио образы и т.п.
15.09.2011Язык С++. НачалоДанные в прикладных (предметных) областяхЗадачи, которые должны решаться людьми с помощью компьютеров, формулируются и решаются

Слайд 515.09.2011
Язык С++. Начало
Типы и структуры данных
Обеспечивают связь между двоичными

(машинными) данными и прикладными («человеческими») данными.

Языки высокого уровня (в отличии

от машинных языков) абстрагируются от деталей внутреннего машинного представления данных.

В программах используются переменные.
Переменная = имя + значение.
Тип данных =
множество значений, которые могут принимать переменные и
набор операций, которые можно к ним применять.
15.09.2011Язык С++. НачалоТипы и структуры данных Обеспечивают связь между двоичными (машинными) данными и прикладными («человеческими») данными.Языки высокого

Слайд 615.09.2011
Язык С++. Начало
Целые
(int)
Символьные
(char)
Логические
(bool)
Типы С++
* Определяется программистом, остальные

типы - встроенные

15.09.2011Язык С++. НачалоЦелые (int)Символьные (char)Логические (bool)Типы С++* Определяется программистом, остальные типы - встроенные

Слайд 715.09.2011
Язык С++. Начало

15.09.2011Язык С++. Начало

Слайд 8Для описания стандартных типов определены следующие ключевые слова:
int (целый);
char (символьный);
wchar_t

(расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной точностью).

15.09.2011
Язык С++. Начало
Спецификаторы

типа, уточняющих внутреннее представление и диапазон значений стандартных типов:
short (короткий);
long (длинный);
signed (со знаком);
unsigned (без знака).
Для описания стандартных типов определены следующие ключевые слова:int (целый);char (символьный);wchar_t (расширенный символьный);bool (логический);float (вещественный);double (вещественный с двойной

Слайд 9Диапазоны значений простых типов данных
15.09.2011
Язык С++. Начало

Диапазоны значений простых типов данных15.09.2011Язык С++. Начало

Слайд 1015.09.2011
Язык С++. Начало
Стандартные арифметические операции +, –, *, /, %
Знаки

отношений порядка

15.09.2011Язык С++. НачалоСтандартные арифметические операции +, –, *, /, %Знаки отношений порядка

Слайд 1115.09.2011
Язык С++. Начало
Логический (булевский) тип
Джордж Буль (1815-1864)
Тип Bool.
Множество значений

= {true, false}.
Для краткости в свободном тексте (не в

тексте программы) будем обозначать
true = T, false = F.
Константы, переменные, выражения булевского типа.
Определение булевского выражения см. далее.
15.09.2011Язык С++. НачалоЛогический (булевский) типДжордж Буль (1815-1864)Тип Bool. Множество значений = {true, false}. Для краткости в свободном

Слайд 1215.09.2011
Язык С++. Начало
Кроме записи булевских выражений в программах нам потребуется


запись утверждений.
(Синтаксически утверждения представляются как комментарии)
Утверждение = Высказывание.
Формула

– обозначение высказывания.
Высказывание (формула) образовано из других высказываний (подформул),
в т.ч. «простейших».
15.09.2011Язык С++. НачалоКроме записи булевских выражений в программах нам потребуется запись утверждений. (Синтаксически утверждения представляются как комментарии)Утверждение

Слайд 1315.09.2011
Язык С++. Начало
Логические операторы (логические связки):
(Cловесное обозначение, в Паскале, в

С++ , в мат. логике)
Отрицание – не, not, !


Дизъюнкция – или, or, || 
Конъюнкция – и, and, && & или 
15.09.2011Язык С++. НачалоЛогические операторы (логические связки):(Cловесное обозначение, в Паскале, в С++ , в мат. логике) Отрицание –

Слайд 1415.09.2011
Язык С++. Начало
Таблица истинности
a и b – переменные (или другие

«объекты» программы, принимающие булевские значения).
Val (a) или короче V (a)

– значение a.
15.09.2011Язык С++. НачалоТаблица истинностиa и b – переменные (или другие «объекты» программы, принимающие булевские значения). Val (a) или

Слайд 1515.09.2011
Язык С++. Начало
Свойства булевских операций (проверяются по таблице истинности)
Коммутативность (перестановочный

закон):
a  b = b  a ,
a & b = b & a .
Ассоциативность (сочетательный закон):
(a  b)  c = a  (b  c),
(a & b) & c = a & (b & c).
Дистрибутивность (распределительный закон):
(a  b) & c = (a & c)  (b & c),
(a & b)  c = (a  c) & (b  c).

15.09.2011Язык С++. НачалоСвойства булевских операций (проверяются по таблице истинности)Коммутативность (перестановочный закон):a  b = b  a ,a & b = b & a .Ассоциативность (сочетательный закон):(a  b)  c = a  (b  c),(a & b) & c = a & (b & c).Дистрибутивность (распределительный закон):(a  b) & c = (a & c)  (b & c),(a & b)  c = (a  c) & (b  c).

Слайд 1615.09.2011
Язык С++. Начало
Законы Де Моргана:
 (a  b) = ( a) & ( b),
 (a & b) = ( a)  ( b).

Полезные тождества
a  a = a ,
a & a = a .
a  T = T ,
a & T = a .
a  F = a ,
a & F = F .

15.09.2011Язык С++. НачалоЗаконы Де Моргана: (a  b) = ( a) & ( b), (a & b) = ( a)  ( b).Полезные тождестваa  a = a ,a & a = a .a  T = T ,a & T = a .a  F = a ,a & F = F .

Слайд 1715.09.2011
Язык С++. Начало
Исключающее или (xor)
a xor b = (a  b)  (a 

15.09.2011Язык С++. НачалоИсключающее или (xor)a xor b = (a  b)  (a  b)

Слайд 1815.09.2011
Язык С++. Начало
Всего можно определить 16 бинарных функций a op b
Каждый

вариант может иметь 2 результата (F или T)
Всего 2*2*2*2 =

24 = 16 различных четверок ответов.
Оказывается, что все 16 бинарных функций выражаются через
, &,  ,  F, T

Вариантов значений аргументов – 2*2 = 4
(a = F, a = T )  (b = F, b = T )  FF, FT, TF, TT

FF

FT

TF

TT

15.09.2011Язык С++. НачалоВсего можно определить  16 бинарных функций a op b Каждый вариант может иметь 2 результата (F

Слайд 1915.09.2011
Язык С++. Начало
Основные управляющие структуры и инструкции (операторы) языка С++
Управляющие

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

(порядком действий)
1. Структура следования = последовательность операторов

Последовательное выполнение S1; S2;
Операторные скобки – { … }
{ S1; S2; }
Составной оператор

15.09.2011Язык С++. НачалоОсновные управляющие структуры и инструкции (операторы) языка С++Управляющие структуры = способы сочетания простых операторов =

Слайд 2015.09.2011
Язык С++. Начало
2. Структура ветвления = условный оператор = инструкция

выбора

Пример:
if (a > b) a = a 

b ; else b = b  a;
15.09.2011Язык С++. Начало2. Структура ветвления = условный оператор = 				инструкция выбораПример:  if (a > b) a

Слайд 2115.09.2011
Язык С++. Начало
Сокращенный условный оператор
if (B) S 

 if (B)

S else ПУСТО


15.09.2011Язык С++. НачалоСокращенный условный операторif (B) S  if (B) S else ПУСТО

Слайд 2215.09.2011
Язык С++. Начало
Пример 1: проверка пересечения отрезков
Дано: два отрезка на

прямой [a, b] и [c, d] с целочисленными координатами концов

a, b, c, d  Z (a  b, c  d)
Требуется:
определить – пересекаются ли отрезки [a, b] и [c, d]
15.09.2011Язык С++. НачалоПример 1: проверка пересечения отрезковДано: два отрезка на прямой [a, b] и [c, d] с

Слайд 2315.09.2011
Язык С++. Начало
Условие пересечения
В вариантах 1)  4) справедливо (b  c)

& (d  a);
в варианте 5)    (b  c

) & (d < a) ;
в варианте 6)    (b < c) & (d  a)
15.09.2011Язык С++. НачалоУсловие пересеченияВ вариантах 1)  4) справедливо (b  c) & (d  a);в варианте 5)   

Слайд 2415.09.2011
Язык С++. Начало
Инструкция выбора
if ((b  c) && (d 

a)) отрезки пересекаются;
else отрезки не пересекаются;
См. программу в файле inters.cpp
Замечание

о корректности исходных данных
15.09.2011Язык С++. НачалоИнструкция выбораif ((b  c) && (d  a)) отрезки пересекаются;else отрезки не пересекаются;См. программу

Слайд 2515.09.2011
Язык С++. Начало
Пример программы
// Пример 1.1 : пересечение отрезков
#include
using

namespace std ;
int main ( )
{ int a, b, c, d,

w; // входные данные
cout << "Введите координаты первого отрезка (левый и правый концы):\n" ;
cin >> a >> b;
cout << "Введите координаты второго отрезка (левый и правый концы):\n" ;
cin >> c >> d;
cout << "Введены отрезки: [" << a << "," << b << "] [" << c << "," << d <<"]\n";
if (( b >= c ) && ( d >= a )) cout << "Отрезки пересекаются\n“ ;
else cout << "Отрезки не пересекаются\n“ ;
cout << "End of the program LINE\n" ;
return 0 ;
}

Демонстрация выполнения. Обсуждение.
См. программу в файле intrsct.cpp
Замечание о корректности исходных данных (проверка?)

15.09.2011Язык С++. НачалоПример программы// Пример 1.1 : пересечение отрезков#include using namespace std ;int main ( ){	int a,

Слайд 2615.09.2011
Язык С++. Начало
// Пример 1.2 : пересечение отрезков (с проверкой

корректности ввода)
#include
using namespace std ;
int main ( )
{ int a,

b, c, d, w; // входные данные
cout << "Введите координаты первого отрезка (левый и правый концы):\n" ;
cin >> a >> b;
if (a > b) { w = a; a = b; b = w; };
cout << "Введите координаты второго отрезка (левый и правый концы):\n" ;
cin >> c >> d;
if (c > d) { w = c; c = d; d = w; };
cout << "Введены отрезки: [" << a << "," << b << "] [" << c << "," << d <<"]\n";
if (( b >= c ) && ( d >= a )) cout << "Отрезки пересекаются\n“ ;
else cout << "Отрезки не пересекаются\n“ ;
cout << "End of the program LINE\n" ;
return 0 ;
}
15.09.2011Язык С++. Начало// Пример 1.2 : пересечение отрезков (с проверкой корректности ввода)#include using namespace std ;int main

Слайд 27Обмен значений
if (a > b) { w = a; a

= b; b = w; };

if (a > b) a

 b;

15.09.2011

Язык С++. Начало

a

b

w

1

2

3

Обмен значенийif (a > b) { w = a; a = b; b = w; };if (a

Слайд 28// Пример 1.3 : пересечение отрезков (с вычислением булевской переменной)
#include


using namespace std ;
int main ( )
{ int a, b, c,

d, w; // входные данные
bool p;
cout << "Введите координаты первого отрезка (левый и правый концы):\n" ;
cin >> a >> b;
if (a > b) { w = a; a = b; b = w;};
cout << "Введите координаты второго отрезка (левый и правый концы):\n" ;
cin >> c >> d;
if (c > d) {w = c; c = d; d = w;};
cout << "Введены отрезки: [" << a << "," << b << "] [" << c << "," << d << "]\n";
p = ( b >= c ) && ( d >= a );
cout << "Отрезки “ ;
if (!p ) cout << "НЕ“ ;
cout << “ пересекаются\n“ ;
cout << "End of the program LINE INTERSECTION\n" ;
return 0 ; }

15.09.2011

Язык С++. Начало

// Пример 1.3 : пересечение отрезков (с вычислением булевской переменной)#include using namespace std ;int main ( ){	int

Слайд 2915.09.2011
Язык С++. Начало
p = ( b >= c ) &&

( d >= a );
// p – отрезки пересекаются
if (!p

) cout << "НЕ“ ;






Конец примера 1

Варианты

!p  !( ( b >= c ) && ( d >= a )) 
 !( b >= c ) || !( d >= a ) ( b < c ) || ( d < a )

q = ( b < c ) || ( d < a );
// q – отрезки не пересекаются
if (q) cout << "НЕ“ ;


Закон Де Моргана:
 (a & b) = ( a)  ( b).

Проще было бы начать именно с условия «непересечения»!

15.09.2011Язык С++. Началоp = ( b >= c ) && ( d >= a );// p –

Слайд 30Указание
Следующие примеры на лекции не рассматривались (но были на практическом

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

Студенты должны разобрать эти примеры самостоятельно.

15.09.2011
Язык С++.

Начало
УказаниеСледующие примеры на лекции не рассматривались (но были на практическом занятии в некоторых группах).Студенты должны разобрать эти

Слайд 31Пример 2. Вычисление функции
Функция f(x) задана графиком (см.рис.).
Дано: x –

вещественное число
Требуется: вычислить значение функции y=f(x)
15.09.2011
Язык С++. Начало
1
2
-1
-2
1
-1

Пример 2. Вычисление функцииФункция f(x) задана графиком (см.рис.).Дано: x – вещественное числоТребуется: вычислить значение функции y=f(x)15.09.2011Язык С++.

Слайд 32Анализ задачи
Запишем аналитическое представление функции:
0, при x ≤ - 2
x

+ 2, при - 2 < x ≤ -1
y =

- x , при -1 < x ≤ 1
x - 2, при 1 < x ≤ 2
0, при x > 2

15.09.2011

Язык С++. Начало

Анализ задачи	Запишем аналитическое представление функции:			0, 		при x ≤ - 2			x + 2,	при - 2 < x ≤

Слайд 33Пример программы
// пример 2 с инструкцией выбора (ветвления)
#include
using namespace

std ;
int main ( )
{ float x, y;
cout

x : “ ;
cin >> x ;
cout << "Argument x = " << x << endl;
y = 0;
if ((-2 < x) && (x <= -1)) y = x + 2;
else if ((-1 < x) && (x <= 1)) y = - x;
else if ((1 < x) && (x <= 2)) y = x - 2;
cout << "Value function f (" << x << ") = " << y << endl;
return 0;
}

15.09.2011

Язык С++. Начало

Пример программы// пример 2 с инструкцией выбора (ветвления)#include using namespace std ;int main ( ){	float x, y;	cout

Слайд 34Ответ:
“точка лежит/не лежит в D”
Пример 3. Попадание точки

на плоскости в заданную графически область
Дано: точка p = (x,

y)

15.09.2011

Язык С++. Начало

1

2

3

1

2

3

p = (x, y)

Область D

Считаем, что граница входит в область

Ответ: “точка лежит/не лежит в D” Пример 3. Попадание точки на плоскости в заданную графически областьДано: точка

Слайд 35Уравнение окружности радиуса r : x 2 + y 2

= r 2
Круг радиуса r1 : x 2 + y

2 ≤ r1 2
Кольцо с радиусами r2 и r3 (r2 ≤ r3):
r2 2 ≤ x 2 + y 2 ≤ r3 2 или в другой форме
(x2 + y2 ≥ r2 2 ) & (x2 + y2 ≤ r32 )
---------------------------------------------------------
В нашей задаче: точка p = (x, y), область D,
pD  (pКруг)  (pКольцо)
r1 = 1, r2 = 2, r3 = 3
(x 2 + y 2 ≤ 1)  (x 2 + y ≥ 4) & (x 2 + y 2 ≤ 9)


15.09.2011

Язык С++. Начало

Анализ задачи

Уравнение окружности радиуса r : x 2 + y 2 = r 2Круг радиуса r1 : x

Слайд 36// пример 3 с инструкцией выбора (ветвления) - вариант 3.1
#include


using namespace std ;
int main ( )
{ float x, y, r2;
bool

b = false;
cout << "Enter x and y for point p=(x y): ";
cin >> x >> y;
cout << "Point p = (" << x << " , " << y << " ) " << endl;
r2 = x*x + y*y;
if (r2 <= 1) b = true;
else if (r2 >= 4) if (r2 <= 9) b = true;
if (!b) cout << "NOT ";
cout << "in region !" << endl;
return 0;
}

15.09.2011

Язык С++. Начало

// пример 3 с инструкцией выбора (ветвления) - вариант 3.1#include using namespace std ;int main ( ){	float

Слайд 3715.09.2011
Язык С++. Начало
// пример 3 с инструкцией выбора (ветвления) -

вариант 3.2
#include
using namespace std ;
int main ( )
{ float x,

y, r2;
bool b = false;
cout << "Enter x and y for point p=(x y): ";
cin >> x >> y;
cout << "Point p = (" << x << " , " << y << " ) " << endl;
r2 = x*x + y*y;
if ( (r2 <= 1) || (r2 >= 4) && (r2 <= 9) ) b = true;
if (!b) cout << "NOT ";
cout << "in region !" << endl;
return 0;
}
15.09.2011Язык С++. Начало// пример 3 с инструкцией выбора (ветвления) - вариант 3.2#include using namespace std ;int main

Слайд 38// пример 3 с инструкцией выбора (ветвления) - вариант 3.3
#include


using namespace std ;
int main ( )
{ float x, y, r2;
bool

b = false;
cout << "Enter x and y for point p=(x y): ";
cin >> x >> y;
cout << "Point p = (" << x << " , " << y << " ) " << endl;
r2 = x*x + y*y;
b = (r2 <= 1) || (r2 >= 4) && (r2 <= 9);
if (!b) cout << "NOT ";
cout << "in region !" << endl;
return 0;
}

15.09.2011

Язык С++. Начало

// пример 3 с инструкцией выбора (ветвления) - вариант 3.3#include using namespace std ;int main ( ){	float

Слайд 39Проанализировать отличие
вариантов 1, 2 и 3.
15.09.2011
Язык С++. Начало

Проанализировать отличие вариантов 1, 2 и 3.15.09.2011Язык С++. Начало

Слайд 4015.09.2011
Язык С++. Начало
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ

ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ
КОНЕЦ ЛЕКЦИИ

15.09.2011Язык С++. НачалоКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ  ЛЕКЦИИКОНЕЦ

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

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

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

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

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


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

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