Скачать презентацию Лекция 4 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЕ Скачать презентацию Лекция 4 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЕ

Лекция_4_Алгоритмы_C++.ppt

  • Количество слайдов: 39

Лекция № 4 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЕ Лекция № 4 ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЕ

Некоторые этапы развития языка программирования • 1834 г. – Ада Лавлейс – основные принципы Некоторые этапы развития языка программирования • 1834 г. – Ада Лавлейс – основные принципы программирования для аналитической машины Ч. Бэббиджа. • 1944 г. – Конрад Цузе – первый алгоритмический язык Plankalkuel. • 1948 г. – Том Килбурн – первая компилированная программа (52 мин работы, 3. 5 млн. операторов – вычисление степени числа). • 1950 г. – ассемблер. • 1971 г. – Никлаус Вирт – Pascal. • 1973 г. – Керниган и Ритчи – С. • 1983 г. – Б. Страуструп – С++. 2

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

Способы описания алгоритма: - словесный (словесно-формульный), - графический (в виде схем из графических символов), Способы описания алгоритма: - словесный (словесно-формульный), - графический (в виде схем из графических символов), - программный (в виде текста на языке программирования), - псевдокод (синтез алгоритмического и обычного языков). 4

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

Некоторые служебные слова учебного алгоритмического языка • алг – заголовок алгоритма • нач – Некоторые служебные слова учебного алгоритмического языка • алг – заголовок алгоритма • нач – начало алгоритма • кон – конец алгоритма • нц – начало цикла • кц – конец цикла • если • то • иначе • пока • для • или • не • да • нет • ввод • вывод 6

Пример записи алгоритма на псевдокоде алг Сумма квадратов целых чисел до n включительно (арг Пример записи алгоритма на псевдокоде алг Сумма квадратов целых чисел до n включительно (арг цел n рез цел S) дано | n > 0 надо | S = 1 * 1 + 2 * 2 + 3 * 3 + … + n * n нач цел i ввод n; S: =0 нц для i от 1 до n S: =S + i * i кц вывод “S = “, S кон 7

Использование основных алгоритмических конструкций Логическая структура любого алгоритма может быть представлена комбинацией трех базовых Использование основных алгоритмических конструкций Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур. Типы алгоритмов: • линейный; • разветвляющийся; • циклический. 8

Элементы блок-схем 9 Элементы блок-схем 9

Элементы блок-схем (продолжение) 10 Элементы блок-схем (продолжение) 10

Свойства алгоритма: 1. Конечность. 2. Определенность (детерминированность). 3. Результативность. 4. Эффективность. Язык программирования – Свойства алгоритма: 1. Конечность. 2. Определенность (детерминированность). 3. Результативность. 4. Эффективность. Язык программирования – искусственный язык, предназначенный для реализации алгоритмов. Программу, написанную на ЯП, необходимо перевести (транслировать) на язык машинных (для ЭВМ) команд. Эту операцию выполняют обслуживающие программытрансляторы – интерпретаторы и компиляторы. 11

Виды программирования • Процедурное • Структурное • Объектно-ориентированное 12 Виды программирования • Процедурное • Структурное • Объектно-ориентированное 12

Особенности ООП • Инкапсуляция • Наследование • Полиморфизм 13 Особенности ООП • Инкапсуляция • Наследование • Полиморфизм 13

Алфавит языка С++ • Прописные и строчные буквы латинского алфавита (различие прописных и строчных Алфавит языка С++ • Прописные и строчные буквы латинского алфавита (различие прописных и строчных букв) • Цифры от 0 до 9 • Специальные символы: " {}, | [ ] ( ) + - / ; ' : ? < = > _ ! & # ~ ^. * • Пробелы (неотображаемые символы) Из букв и символов алфавита формируются: • Идентификаторы • Ключевые (служебные) слова • Знаки операций • Разделители (знаки пунктуации) 14

Типы данных 15 Типы данных 15

Диапазоны типов данных Тип int float double Наименование Диапазон целый -32768 32767 вещественный -3. Диапазоны типов данных Тип int float double Наименование Диапазон целый -32768 32767 вещественный -3. 4 e-38 3. 4 e+38 вещественный 1. 7 e-308 1. 7 e+308 char дв. точности символьный char -128 127 unsigned int беззнаковый int 0 65535 unsigned беззнаковый 0 255 16

Формы записи чисел в программе: – основная (форма записи целых и вещественных чисел) примеры: Формы записи чисел в программе: – основная (форма записи целых и вещественных чисел) примеры: 12; 12. ; 0. 00012; . 874; 98723. 25; – экспоненциальная (показательная) форма записи вещественного числа (с плавающей точкой) в виде ±me±p, где m – число с плавающей точкой (мантисса), e– основание степени 10, p – показатель степени примеры: -13, 24∙ 10 -6 = -13. 24 e-6; 9 21, 47∙ 10 = 21. 47 e 9; -17 0, 28∙ 10 = 0. 28 e-17 17

Примеры записи идентификаторов: • age; AGE; summa_1 • Неправильно: a-1; 2_х 18 Примеры записи идентификаторов: • age; AGE; summa_1 • Неправильно: a-1; 2_х 18

Название функции Синус, косинус Тангенс Арктангенс Арксинус Арккосинус Показательная ex Логарифм натуральный Логарифм по Название функции Синус, косинус Тангенс Арктангенс Арксинус Арккосинус Показательная ex Логарифм натуральный Логарифм по основанию 10 Корень квадратный Абсолютное значение Целая часть числа Целый остаток от деления х на у Возведение в степень xy Извлечение корня n-степени Имя Примечание sin(x), cos(x) tan(x) asin(x) acos(x) exp(x) log 10(x) sqrt(x) abs(x), fabs(x) floor(x) Аргумент – вещественный, положительный fmod(x, y) pow(x, 1. /n) _______ x, y – вещественные 19

Название функции Синус, косинус Имя Примечание sin(x), cos(x) Тангенс tan(x) Арктангенс atan(x) Арксинус asin(x) Название функции Синус, косинус Имя Примечание sin(x), cos(x) Тангенс tan(x) Арктангенс atan(x) Арксинус asin(x) Арккосинус acos(x) показательная ех exp(x) аргумент функций – вещественный, положительный 20

Название функции Имя Логарифм натуральный log(x) Логарифм десятичный log 10(x) Корень квадратный sqrt(x) Абсолютное Название функции Имя Логарифм натуральный log(x) Логарифм десятичный log 10(x) Корень квадратный sqrt(x) Абсолютное значение Примечание abs(x), fabs(x) аргумент функций – вещественный, положительный 21

Название функции Имя Целая часть числа floor(x) Абсолютное значение Примечание abs(x), fabs(x) 22 Название функции Имя Целая часть числа floor(x) Абсолютное значение Примечание abs(x), fabs(x) 22

Название функции Целый остаток Имя Примечание fmod(x, y) от деления х на у Возведение Название функции Целый остаток Имя Примечание fmod(x, y) от деления х на у Возведение в степень xy Извлечение корня n-степени pow(x, y) . pow(x, 1 /n) 23

Матем. запись Запись на С++ 2 * a* (-b) (a *pow( x , 2) Матем. запись Запись на С++ 2 * a* (-b) (a *pow( x , 2) + b * x + c) / pow((d - 2. 5) , 1. / 3) pow(sin(x) , 2) – cos(pow(x, 3)) 24

Структура программы # include “stdafx. h” # include <имя библиотеки> int _tmain(int argc, _TCHAR* Структура программы # include “stdafx. h” # include <имя библиотеки> int _tmain(int argc, _TCHAR* argv[ ]) { Строки программного кода; // комментарий /* блок комментариев */ return 0; } 25

Инициализация переменной – объявление типа + значение Пример: int A; // объявление типа double Инициализация переменной – объявление типа + значение Пример: int A; // объявление типа double r, t=0; int A = 2; double SUMMA = A + cos(t); double Y = r + SUMMA; 26

ПРИМЕР Сложить значения двух переменных и вывести результат. # include “stdafx. h” # include ПРИМЕР Сложить значения двух переменных и вывести результат. # include “stdafx. h” # include # include using namespace std; int _tmain(int argc, _TCHAR* argv[ ]) { int slag_1=3; // инициализация slag_1 double slag_2=3 ; // инициализация slag_2 double summa=slag_1+cos(slag_2); cout<<“summa=”<

модификация ПРИМЕРА Сложить значения двух переменных и вывести результат. Значения ввести с клавиатуры. # модификация ПРИМЕРА Сложить значения двух переменных и вывести результат. Значения ввести с клавиатуры. # include “stdafx. h” # include # include using namespace std; int _tmain(int argc, _TCHAR* argv[ ]) { int slag_1; // объявление типа slag_1 double slag_2; cout<<“Vvesti znachenia slag_1, slag_2”; cin>> slag_1>> slag_2; double summa=slag_1+cos(slag_2); cout<<“summa=”<

Пояснения к программному коду • # include “stdafx. h” – подключение файла, отвечающего за Пояснения к программному коду • # include “stdafx. h” – подключение файла, отвечающего за перекомпиляцию; • # include -- подключение библиотеки ввода-вывода с указанием пути; • # include -- то же для математической библиотеки; • using namespace std – использовать стандартное пространство имен; • { } – операторные скобки; • cout<<“summa=”<>slag_1 – входной поток, оператор извлечения, идентификатор. 29

Линейный вычислительный процесс где а = 1∙ 102, t = 1, 2 30 Линейный вычислительный процесс где а = 1∙ 102, t = 1, 2 30

Линейный вычислительный процесс • • • • # include <stdafx. h> # include <iostream> Линейный вычислительный процесс • • • • # include # include # include using namespace std; int _tmain(int argc, _TCHAR* argv[ ]) { int a=1 e 2; // инициализация double t=1. 2; // инициализация double x=a*pow(t, 2)+0. 2; double y=. . . cout<<“summa=”<

Специальные символы управления выходным потоком • • • n символ новой строки; t символ Специальные символы управления выходным потоком • • • n символ новой строки; t символ горизонтальной табуляции; v символ вертикальной табуляции; r возврат каретки (не перевод строки); b символ возврата. Использование специальных символов – в тексте сообщения, например: ”выводn” или после оператора вставки в апострофах <<‘n’. 32

Операции сравнения в С++ 33 Операции сравнения в С++ 33

Операции инкремента и декремента. Префиксные и постфиксные операции Увеличить значение переменной на единицу, (Начальное Операции инкремента и декремента. Префиксные и постфиксные операции Увеличить значение переменной на единицу, (Начальное значение переменной s – 2) s=2, s=2+1=3, s=s+1=3. Этапы: 1) обращение к переменной s, т. е. указание адреса переменной; 2) извлечение значения из этой ячейки, т. е. подстановка s = 2; 3) вычисление суммы 2 + 1; 4) запись результата вычислений по адресу s. 34

Фрагмент программного кода { int s = 2; cout<< Фрагмент программного кода { int s = 2; cout<<"Начальное значение "<

модификация программного кода { int s = 2; cout<< модификация программного кода { int s = 2; cout<<"Начальное значение "<

Инкремент с постфиксом { int s = 2, post_s; post_s = s++; cout<< Инкремент с постфиксом { int s = 2, post_s; post_s = s++; cout<<"post_s= "<

Инкремент с префиксом { int s = 2, pre_s; pre_s = ++s; cout<< Инкремент с префиксом { int s = 2, pre_s; pre_s = ++s; cout<<"pre_s= "<

Специальные операторы Пример равнозначных операторов: s=s+1 s++ ++s s+=1 / / += используется для Специальные операторы Пример равнозначных операторов: s=s+1 s++ ++s s+=1 / / += используется для изменения значения переменной. += -= *= /= - прибавление числа к переменной - вычитание числа из переменной - умножение переменной на число - деление переменной на число 39