lecture.ppt
- Количество слайдов: 108
Информатика и программирование Трофимов Иван Евгеньевич
Алексей Пажитнов Билл Гейтс Игорь Данилов Ларри Пейдж Сергей Брин Марк Цукерберг Евгений Касперский Евгений Рошал Линус Торвальдас Питер Нортон 2 Павел Дуров Джон Кармак
Перспективы на будущее 1. Область ИТ растет 2. Программисты могут получать миллионы 3. Хорошие программисты получают миллионы 3
Информатика наука о – вычислениях, хранении и обработке информации. 4
Алгоритм – последовательность действий, приводящая к определенному результату. 5
Свойства алгоритма o Массовость; o Результативность; o Определенность; o Конечность; o Понятность. 6
Программирование o Узкий смысл – КОДИРОВАНИЕ o Широкий смысл – РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 7
Программа представляет собой набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм. В языке программирования, как и в любом другом языке, существуют синтаксис - правила записи его конструкций - и семантика - смысл его конструкций. 8
Этапы программирования o Анализ o Проектирование o Кодирование и Компиляция o Тестирование и отладка o Сопровождение 9
Отладка и тестирование Отладка - это поиск и исправление ошибок в программе. Тестирование - это составление специальных наборов входных и выходных данных (тестов), а затем исполнение программы и проверка полученных результатов в поисках возможных семантических или логических ошибок. 10
БЛОК-СХЕМА? 11
Блок-схема – это графическое представление программы или алгоритма с использованием стандартных графических элементов, обозначающих команды, действия, данные и т. п. 12
13
14
АЛФАВИТ ЯЗЫКА 15
Алфавит языка Буквы: A-Z, a-z, Цифры: 0 -9, hex-цифры, Специальные символы: _, пробел, !, ^ Зарезервированные слова 16
Идентификатор Имена, даваемые программным объектам (константам, типам, переменным, функциям и процедурам, да и всей программе целиком) называются идентификаторами. 17
Правила идентификаторов 1. 2. 3. 4. 5. Состав: A-Z, a-z, 0 -9, _ Первый символ буква или «_» Длина идентификатора Регистрозависимость? Не зарезервированное слово 18
ЛЮБАЯ ПРОГРАММА ИСПОЛЬЗУЕТСЯ ДЛЯ ОБРАБОТКИ ДАННЫХ 19
Элементы данных Переменная - это элемент данных, значение которого может изменяться в процессе работы программы. Константа - это элемент данных, значение которого известно еще до начала работы программы и в процессе работы не может быть изменено. 20
Типы данных Тип данных – множество значений, которое могут принимать элементы данных и допустимые для них операции. 21
Базовые и конструируемые типы 22
Особенности порядковых типов o Каждому элементу порядкового типа может быть сопоставлен уникальный (порядковый) номер. o На элементах любого порядкового типа определен порядок (в математическом смысле этого слова), который напрямую зависит от нумерации. 23
Порядковые типы o o o Логический тип boolean имеет два значения: false и true. В символьный тип char входит 256 символов расширенной таблицы ASCII. Целочисленные типы данных сведем в таблицу: o Перечисляемые типы данных задаются явным перечислением их элементов. Например: type week =(sun, mon, tue, wed, thu, fri, sat) Интервальные типы данных задаются только границами своего диапазона. Например: type month = 1. . 12; Программист может создавать и собственные типы данных, являющиеся комбинацией нескольких стандартных типов. Например: type valid_for_identifiers = 'a'. . 'z', 'A'. . 'Z', '_', '0. . 9'; o o 24
Вещественные типы Эти типы данных являются арифметическими, но не порядковыми. 25
Работа с переменными o Объявление переменной – указание имени переменной и ее типа. o Определение переменной – выделение памяти для объявленной переменной. C - <тип> <имя переменной> [= значение]; int var 1; B - Dim <имя переменной> [as <тип>] Dim var 1 As Integer 26
Работа с константами Виды констант: o Неименованные: 0, «привет» и т. п. o Именованные нетипизированные C - #define <имя константы> <значение> #define PI 3. 14159 B - Const <имя константы> = <значение> Const PI=3. 14159 o Именованные типизированные C - const <тип> <имя константы> = <значение>; const float PI=3. 14159 F; B - Const <имя константы> As <тип> = <значение> Const PI As Single = 3. 14159 27
Работа с комментариями Компилятор игнорирует все, что помечено в программе как комментарий! // однострочный комментарий /* многострочный комментарий */ 28
Операции и выражения Операция - стандартные действия, разрешенные для переменных того или иного базового типа данных. Основу операций составляют арифметические операции. 29
Приоритет операций Если в выражении есть скобки, то чем меньше глубина вложенности скобок, тем позже вычисляется заключенная в них операция. Если же скобок нет, то сначала вычисляются значения операций с более высоким приоритетом, затем - с менее высоким. Несколько подряд идущих операций одного приоритета вычисляются в последовательности "слева направо". 30
Приоритет операций (2) ((x+5)*(x-2*x 5)/x)-x(x*x/10)/x+1 31
Основные операторы Присваивания Ветвления Циклы Переходы Ввод/вывод 32
Оператор Инструкция или оператор – наименьшая автономная часть языка программирования; команда. Окончание оператора С++ - “; ” Basic - конец строки 33
Операторные скобки – скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда. С++ { <оператор>; } Basic используется неявно 34
Линейные программы Линейная программа – программа, в которой не используются операторы изменяющие порядка действий. Что доступно в линейной программе? Присваивание, математические функции, арифметические операции, операторы ввода/вывода и т. п. 35
Стандартные математические функции 36
Операторы присваивания Оператор присваивания – оператор применяется для присваивания значения переменной или выражения другой переменной. 37
var 1 = 20; var 2 = var 1+10; Операторы присваивания (2) C++ <имя переменной> = <выражение>|<значение>; Basic <имя переменной> = <выражение>|<значение> 38
Преобразования типов Виды преобразований: 1. Неявное (компилятор) 2. Явное (программист) 39
Явное преобразование типов производится программистом. Применяются специальные функции языка. С++ Int. V = (int) Float. V; Int. V = int Float. V; Int. V = static_cast
Неявное преобразования типов 41
Неявное преобразование типов (2) Тип данных extended double Старшинство Высший real longint integer smallint shortint Низший 42
Операторы ветвления Оператор ветвления – оператор, позволяющий из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один. 43
Операторы ветвления: if, if-else 44
if (a==10) {a=1; b=2; } if a<10 then a=11 else a=1 If a>10 Then a=1 Операторы ветвления: if, if-else (2) C++ if (<условие>) <оператор>; [else <оператор>; ] Basic If <условие> Then <оператор> [Else <оператор>] 45
46
Операторы ветвления: switch/case 47
Операторы ветвления: switch/case (2) C++ Basic switch (<порядковое значение>) { case <значение_1>: <операторы>; [break; ] . . . case <значение_n>: <операторы>; [break; ] [default: <оператор>; ] } Select Case <порядковое значение> Case <значение_1>: <операторы> . . . Case <значение_n>: <операторы> [Case Else <операторы>] End Select 48
Операторы повторения Цикл – некоторая последовательность действий, которая может повторяться неоднократно. 49
Важные понятия Тело цикла – последовательность действий, предназначенная для многократного исполнения. Итерация – однократное выполнение тела цикла. Условием выхода из цикла – выражение определяющее, будет в очередной раз выполняться итерация, или цикл завершится. Счётчик цикла - переменная, хранящая текущий номер итерации. 50
Параметр цикла управляет работой цикла. Параметр цикла отвечает условиям: 1. параметр цикла задан до входа в цикл; 2. параметр цикла должен изменяться в теле цикла; 3. параметр цикла должен участвовать в условии окончания цикла; 4. параметр цикла всегда один. 51
Циклы: со счётчиком, с предусловием, с постусловием 52
Цикл со счётчиком C++ Basic for (<иниц. выражение>; <усл. выполнения>; <инк. выражение>) <оператор>; For <счётчик>=<нач. значение> To <кон. значение> [Step <шаг>] <операторы> [Exit For] <операторы> Next [<счётчик>] for (j=0; j<15; j++) n++; For j=0 To 15 n=n+1 Next j for (j=0; j<15; j++) {n++; k--; } for (j=0, i=1; j<15; j++, i--) n++; For j=15 To 0 Step -1 n=n+1 Next j 53
Do Цикл с пред-/пост- условием s=s+i i=i-1 Loop Until i>10 while (j<15) j++; C++ Basic while (<условие выполнения>) <оператор>; Do While <условие выполнения> <операторы> [Exit Do] <операторы> Loop Работает на истине do <оператор>; while (<условие выполнения>); Работает на истине Do <операторы> [Exit Do] <операторы> Loop Until <условие выполнения> Питается ото лжи 54
Вложенные циклы 5 раз 7 раз 3 раз Внутренний цикл всегда заканчивается раньше внешнего. Параметр внешнего цикла не должен изменяться во внутреннем. Внутренний цикл Внешний цикл 55
56
57
Операторы перехода Break – прекращение цикла Continue – переход к следующей итерации Go. To – безусловный переход 58
Операторы перехода (2) continue; break; 59
МОЖЕТ GOTO МОЖНО ИСПОЛЬЗОВАТЬ? 60
61
Операторы ввода/вывода – действия, обеспечивающие передачу данных в программу и выдачу их из нее. 62
Операторы ввода C++ Basic Операция извлечения >> cin – стандартный поток ввода <имя переменной> = Input. Box (<сообщение>[, <заголовок>, <значение по умолчанию>. . ]) #include
Операторы вывода C++ Basic Операция вставки << cout – стандартный поток вывода Msg. Box(<сообщение>) #include
Форматированный вывод C++ Basic Способы форматирования вывода: 1. Использование управляющих последовательностей (УП) cout << A << ‘t’ << B; Msg. Box(Format(<значение >|<выражение>[, <шаблон форматирования>]) 2. Использование манипуляторов #include
СТРУКТУРА ПРОГРАММЫ 66
Структура программы C++ Basic [#include <директива>] /* директивы препроцессора */ [using namespace <имя пространства имен>] /* прочие директивы, в данном случае – директива определения пространства имен */ <тип возвращаемого значения> main() { <операторы>; [return [<возвращаемое значение>]; ] } Sub <имя программы> <операторы> [Exit Sub] <операторы> End Sub 67
Структура программы (2) C++ Basic #include
КОНТРОЛЬ ВВОДА 69
Нужен ли контроль ввода? 70
ЭТО И ЕСТЬ НАШ ПОЛЬЗОВАТЕЛЬ! 71
Контроль ввода C++ Basic 1.
ПОД ПРОГРАММЫ 73
Подпрограммы Подпрограмма – это самостоятельная программа, которая может быть вызвана другими программами. Виды подпрограмм: 1. функции; 2. процедуры. 74
Взаимодействие подпрограмм 1. Откуда был вызов туда и возвращаемся A. . . B. . . C. . . B. . . 2. Кто вызывает – тот «главный» 75
Обмен данными Существуют два варианта обмена данными с подпрограммами: 1. используя локальные и глобальные переменные; 2. используя формальные и фактические параметры. 76
Область видимости определяет, из каких частей программы возможен доступ к переменным. Локальные переменные – текущий блок. Глобальные переменные – текущий блок и все входящие в него. 77
ЗАПРЕЩАЕТСЯ! Использование глобальных переменных в подпрограммах для обмена данными 78
79
Параметры (1) Фактический параметр – переменная/выражение, значение которого передаётся в подпрограмму и соответствуют типу формального параметра. Формальный параметр – переменная, принимающая значение фактического параметра, переданного в подпрограмму. 80
Параметры (2) Y=Sin(X) факт форма Sin(N). . . N=0. 001 81
Передача параметров 1. По значению 2. По ссылке C++ Basic 1. Default 2. Default (By. Ref) 2. void pr(int& a, int b) { 1. Sub pr(By. Val a As Integer, By. Ref b As Integer) } End Sub 82
Структура п/п функции (1) C++ Basic [#include <директива>] [using namespace <имя пространства имен>] <тип> <имя> ([<параметры>]); <тип> main() { <операторы>; <имя>([<параметры>]); [return [<значение>]; ] } <тип> <имя> ([<параметры>]){ <операторы>; [return [<значение>]; ] } Function <имя>(<параметры>) [As <тип>] <операторы> [Exit Function] <операторы> <имя>=<возвращаемое значение> End Function 83
Структура п/п функции (2) C++ Basic С объявлением функции #include
Структура п/п процедур C++ Basic void starline() { for(int j=0; j<45; j++) cout << ‘*’; cout << endl; } Sub <имя>(<параметры>) <операторы> [Exit Sub] <операторы> End Sub Summ(a, b) Msg. Box(a+b) End Sub 85
РЕКУРСИЯ 86
87
Рекурсия – обращение подпрограммы самой к себе. Function FA(k: byte): longint; begin if k=0 then FA: =1 else FA: =k*FA(k-1) end; 88
МАССИВ 89
Массивы (1) Массив – структурированный тип данных, состоящий из определенного числа элементов, имеющих один и тот же тип. Обращение к элементу массива происходит по индексу. Классификации массивов: 1. статические и динамические массивы; 2. одномерные и многомерные. 90
91
Массивы (2) C++ Basic <тип> <имя> [<количество>][<ко личество>] Dim <имя> (<нач> To <кон>) As <тип> Dim <имя> (<нач> To <кон> [, <нач> To <кон>]) As <тип> int age[4]; int ege[2][3]; Dim A(1 To 10) As Integer Dim B(1 To 10, 1 To 5) As Single <имя>[<индекс>] age[3] ege[2][1] <имя>(<индекс>) <имя>(<инд. >, <инд. >) A(5) B(3, 4) int age[4]={21, 12, 3, 23}; int ege[2][3]={{1, 2, 3}, {4, 5, 6}}; 92
Сортировка пузырьковым методом C++ Basic for(i=0; i<=n-1; i++) for(j=i+1; j<=n; j++) If(arr[j]
Математические операции 94
Математические функции 1. Sin, Cos, Log… 2. Int, Round, Trunc… 3. Целочисленное деление, остаток от деления нацело Целочисленное деление: C++ – «/» int My. Value=8/3 Basic – «» My. Value=114 Остаток от деления нацело: C++ – «%» My. Value=8%3 Basic – mod My. Value=11 mod 4 95
Генератор псевдослучайных чисел 96
Генератор псевдослучайных чисел (1) Генератор псевдослучайных чисел – алгоритм, генерирующий последовательность независимых друг от друга чисел. 97
Генератор псевдослучайных чисел (2) C++ Basic # include
СТРОКИ 99
Строковый тип Строка – это связанная последовательность символов. М И Х А Символ Строка Char И Л Ю Ш И К О М П Ь Ю Т Н Е Р String 100
Объявление строковых переменных C++ Basic #include
Что можно делать со строками? 102
Обычные операции над строками 1. Определение длины строки 2. Объединение строк (конкатенация) 3. Поиск подстроки в строке 4. Выбор подстроки в строке 5. Добавление символов 6. Удаление символов 7. Преобразования типов 103
Определение длины строки C++ Basic <строка>. length(); Len(<строка>) S=‘маманя’; X=S. length(); X= Len(“молот”) 104
Конкатенация строк C++ Basic <переменная> = <строка 1> + <строка 2>; <переменная> = <строка 1> + <строка 2> <переменная> = <строка 1> & <строка 2> X=‘мама’ + ‘ня’; X=“мама” + “ня” X=“мама” & “ня” 105
Поиск подстроки в строке C++ Basic <строка>. find(<под строка>); In. Str([<позиция>, ] <строка>, <подстрока>) S=‘моль’; X=S. find(‘л’); X=In. Str(1, “моль”, “л”) 106
Выбор подстроки в строке C++ Basic <строка>. substr( <позиция>, <кол-во>); Mid(<строка>, <позиция>, <колво>) S=‘моль’; X=S. substr(2, 2); X=Mid(“моль”, 2, 2) 107
Преобразования типов C++ Basic (int)<символ> s=‘b’; x=(int)s; Asc(<символ>) X=Asc(“b”) (char)<число> s=98; x=(char)s; Chr(<код символа>) X=Chr(98) (string)<перем> s=98; x=(string)s; Str(<число>) X=Str(98) 108