Скачать презентацию Информатика и программирование Трофимов Иван Евгеньевич Алексей Скачать презентацию Информатика и программирование Трофимов Иван Евгеньевич Алексей

lecture.ppt

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

Информатика и программирование Трофимов Иван Евгеньевич Информатика и программирование Трофимов Иван Евгеньевич

Алексей Пажитнов Билл Гейтс Игорь Данилов Ларри Пейдж Сергей Брин Марк Цукерберг Евгений Касперский Алексей Пажитнов Билл Гейтс Игорь Данилов Ларри Пейдж Сергей Брин Марк Цукерберг Евгений Касперский Евгений Рошал Линус Торвальдас Питер Нортон 2 Павел Дуров Джон Кармак

Перспективы на будущее 1. Область ИТ растет 2. Программисты могут получать миллионы 3. Хорошие Перспективы на будущее 1. Область ИТ растет 2. Программисты могут получать миллионы 3. Хорошие программисты получают миллионы 3

Информатика наука о – вычислениях, хранении и обработке информации. 4 Информатика наука о – вычислениях, хранении и обработке информации. 4

Алгоритм – последовательность действий, приводящая к определенному результату. 5 Алгоритм – последовательность действий, приводящая к определенному результату. 5

Свойства алгоритма o Массовость; o Результативность; o Определенность; o Конечность; o Понятность. 6 Свойства алгоритма o Массовость; o Результативность; o Определенность; o Конечность; o Понятность. 6

Программирование o Узкий смысл – КОДИРОВАНИЕ o Широкий смысл – РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 7 Программирование o Узкий смысл – КОДИРОВАНИЕ o Широкий смысл – РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 7

Программа представляет собой набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм. В языке Программа представляет собой набор команд на языке, понятном исполнителю, реализующий некоторый алгоритм. В языке программирования, как и в любом другом языке, существуют синтаксис - правила записи его конструкций - и семантика - смысл его конструкций. 8

Этапы программирования o Анализ o Проектирование o Кодирование и Компиляция o Тестирование и отладка Этапы программирования o Анализ o Проектирование o Кодирование и Компиляция o Тестирование и отладка o Сопровождение 9

Отладка и тестирование Отладка - это поиск и исправление ошибок в программе. Тестирование - Отладка и тестирование Отладка - это поиск и исправление ошибок в программе. Тестирование - это составление специальных наборов входных и выходных данных (тестов), а затем исполнение программы и проверка полученных результатов в поисках возможных семантических или логических ошибок. 10

БЛОК-СХЕМА? 11 БЛОК-СХЕМА? 11

Блок-схема – это графическое представление программы или алгоритма с использованием стандартных графических элементов, обозначающих Блок-схема – это графическое представление программы или алгоритма с использованием стандартных графических элементов, обозначающих команды, действия, данные и т. п. 12

13 13

14 14

АЛФАВИТ ЯЗЫКА 15 АЛФАВИТ ЯЗЫКА 15

Алфавит языка Буквы: A-Z, a-z, Цифры: 0 -9, hex-цифры, Специальные символы: _, пробел, !, Алфавит языка Буквы: A-Z, a-z, Цифры: 0 -9, hex-цифры, Специальные символы: _, пробел, !, ^ Зарезервированные слова 16

Идентификатор Имена, даваемые программным объектам (константам, типам, переменным, функциям и процедурам, да и всей Идентификатор Имена, даваемые программным объектам (константам, типам, переменным, функциям и процедурам, да и всей программе целиком) называются идентификаторами. 17

Правила идентификаторов 1. 2. 3. 4. 5. Состав: A-Z, a-z, 0 -9, _ Первый Правила идентификаторов 1. 2. 3. 4. 5. Состав: A-Z, a-z, 0 -9, _ Первый символ буква или «_» Длина идентификатора Регистрозависимость? Не зарезервированное слово 18

ЛЮБАЯ ПРОГРАММА ИСПОЛЬЗУЕТСЯ ДЛЯ ОБРАБОТКИ ДАННЫХ 19 ЛЮБАЯ ПРОГРАММА ИСПОЛЬЗУЕТСЯ ДЛЯ ОБРАБОТКИ ДАННЫХ 19

Элементы данных Переменная - это элемент данных, значение которого может изменяться в процессе работы Элементы данных Переменная - это элемент данных, значение которого может изменяться в процессе работы программы. Константа - это элемент данных, значение которого известно еще до начала работы программы и в процессе работы не может быть изменено. 20

Типы данных Тип данных – множество значений, которое могут принимать элементы данных и допустимые Типы данных Тип данных – множество значений, которое могут принимать элементы данных и допустимые для них операции. 21

Базовые и конструируемые типы 22 Базовые и конструируемые типы 22

Особенности порядковых типов o Каждому элементу порядкового типа может быть сопоставлен уникальный (порядковый) номер. Особенности порядковых типов o Каждому элементу порядкового типа может быть сопоставлен уникальный (порядковый) номер. o На элементах любого порядкового типа определен порядок (в математическом смысле этого слова), который напрямую зависит от нумерации. 23

Порядковые типы o o o Логический тип boolean имеет два значения: false и true. Порядковые типы 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 Вещественные типы Эти типы данных являются арифметическими, но не порядковыми. 25

Работа с переменными o Объявление переменной – указание имени переменной и ее типа. o Работа с переменными o Объявление переменной – указание имени переменной и ее типа. o Определение переменной – выделение памяти для объявленной переменной. C - <тип> <имя переменной> [= значение]; int var 1; B - Dim <имя переменной> [as <тип>] Dim var 1 As Integer 26

Работа с константами Виды констант: o Неименованные: 0, «привет» и т. п. o Именованные Работа с константами Виды констант: 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 Приоритет операций (2) ((x+5)*(x-2*x 5)/x)-x(x*x/10)/x+1 31

Основные операторы Присваивания Ветвления Циклы Переходы Ввод/вывод 32 Основные операторы Присваивания Ветвления Циклы Переходы Ввод/вывод 32

Оператор Инструкция или оператор – наименьшая автономная часть языка программирования; команда. Окончание оператора С++ Оператор Инструкция или оператор – наименьшая автономная часть языка программирования; команда. Окончание оператора С++ - “; ” Basic - конец строки 33

Операторные скобки – скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как Операторные скобки – скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда. С++ { <оператор>; } Basic используется неявно 34

Линейные программы Линейная программа – программа, в которой не используются операторы изменяющие порядка действий. Линейные программы Линейная программа – программа, в которой не используются операторы изменяющие порядка действий. Что доступно в линейной программе? Присваивание, математические функции, арифметические операции, операторы ввода/вывода и т. п. 35

Стандартные математические функции 36 Стандартные математические функции 36

Операторы присваивания Оператор присваивания – оператор применяется для присваивания значения переменной или выражения другой Операторы присваивания Оператор присваивания – оператор применяется для присваивания значения переменной или выражения другой переменной. 37

var 1 = 20; var 2 = var 1+10; Операторы присваивания (2) C++ <имя var 1 = 20; var 2 = var 1+10; Операторы присваивания (2) C++ <имя переменной> = <выражение>|<значение>; Basic <имя переменной> = <выражение>|<значение> 38

Преобразования типов Виды преобразований: 1. Неявное (компилятор) 2. Явное (программист) 39 Преобразования типов Виды преобразований: 1. Неявное (компилятор) 2. Явное (программист) 39

Явное преобразование типов производится программистом. Применяются специальные функции языка. С++ Int. V = (int) Явное преобразование типов производится программистом. Применяются специальные функции языка. С++ Int. V = (int) Float. V; Int. V = int Float. V; Int. V = static_cast (Float. V) Basic Int. V = CInt(Float. V) 40

Неявное преобразования типов 41 Неявное преобразования типов 41

Неявное преобразование типов (2) Тип данных extended double Старшинство Высший real longint integer smallint Неявное преобразование типов (2) Тип данных extended double Старшинство Высший real longint integer smallint shortint Низший 42

Операторы ветвления Оператор ветвления – оператор, позволяющий из нескольких возможных вариантов выполнения программы (ветвей) Операторы ветвления Оператор ветвления – оператор, позволяющий из нескольких возможных вариантов выполнения программы (ветвей) выбрать только один. 43

Операторы ветвления: if, if-else 44 Операторы ветвления: if, if-else 44

if (a==10) {a=1; b=2; } if a<10 then a=11 else a=1 If a>10 Then 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 46

Операторы ветвления: switch/case 47 Операторы ветвления: switch/case 47

Операторы ветвления: switch/case (2) C++ Basic switch (<порядковое значение>) { case <значение_1>: <операторы>; [break; Операторы ветвления: 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 Операторы повторения Цикл – некоторая последовательность действий, которая может повторяться неоднократно. 49

Важные понятия Тело цикла – последовательность действий, предназначенная для многократного исполнения. Итерация – однократное Важные понятия Тело цикла – последовательность действий, предназначенная для многократного исполнения. Итерация – однократное выполнение тела цикла. Условием выхода из цикла – выражение определяющее, будет в очередной раз выполняться итерация, или цикл завершится. Счётчик цикла - переменная, хранящая текущий номер итерации. 50

Параметр цикла управляет работой цикла. Параметр цикла отвечает условиям: 1. параметр цикла задан до Параметр цикла управляет работой цикла. Параметр цикла отвечает условиям: 1. параметр цикла задан до входа в цикл; 2. параметр цикла должен изменяться в теле цикла; 3. параметр цикла должен участвовать в условии окончания цикла; 4. параметр цикла всегда один. 51

Циклы: со счётчиком, с предусловием, с постусловием 52 Циклы: со счётчиком, с предусловием, с постусловием 52

Цикл со счётчиком C++ Basic for (<иниц. выражение>; <усл. выполнения>; <инк. выражение>) <оператор>; For Цикл со счётчиком 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++ 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 раз Внутренний цикл всегда заканчивается раньше внешнего. Вложенные циклы 5 раз 7 раз 3 раз Внутренний цикл всегда заканчивается раньше внешнего. Параметр внешнего цикла не должен изменяться во внутреннем. Внутренний цикл Внешний цикл 55

56 56

57 57

Операторы перехода Break – прекращение цикла Continue – переход к следующей итерации Go. To Операторы перехода Break – прекращение цикла Continue – переход к следующей итерации Go. To – безусловный переход 58

Операторы перехода (2) continue; break; 59 Операторы перехода (2) continue; break; 59

МОЖЕТ GOTO МОЖНО ИСПОЛЬЗОВАТЬ? 60 МОЖЕТ GOTO МОЖНО ИСПОЛЬЗОВАТЬ? 60

61 61

Операторы ввода/вывода – действия, обеспечивающие передачу данных в программу и выдачу их из нее. Операторы ввода/вывода – действия, обеспечивающие передачу данных в программу и выдачу их из нее. 62

Операторы ввода C++ Basic Операция извлечения >> cin – стандартный поток ввода <имя переменной> Операторы ввода C++ Basic Операция извлечения >> cin – стандартный поток ввода <имя переменной> = Input. Box (<сообщение>[, <заголовок>, <значение по умолчанию>. . ]) #include using namespace std; cin >> <имя переменной> [>> <имя переменной>]; #include using namespace std; void main() { int ftemp; cin >> ftemp; } I=Input. Box(“введи число”, “ввод”, “ 10”) 63

Операторы вывода C++ Basic Операция вставки << cout – стандартный поток вывода Msg. Box(<сообщение>) Операторы вывода C++ Basic Операция вставки << cout – стандартный поток вывода Msg. Box(<сообщение>) #include using namespace std; cout << <значение> [<< <значение>] [<< endl]; #include using namespace std; void main(){ cout << “Хороший пример. ” << endl; } Msg. Box(“Введено ” & a) 64

Форматированный вывод C++ Basic Способы форматирования вывода: 1. Использование управляющих последовательностей (УП) cout << Форматированный вывод C++ Basic Способы форматирования вывода: 1. Использование управляющих последовательностей (УП) cout << A << ‘t’ << B; Msg. Box(Format(<значение >|<выражение>[, <шаблон форматирования>]) 2. Использование манипуляторов #include cout << setw(9) << “Мама” << endl; 3. printf() My. Str = Format(23) ' Возвратит "23". My. Str = Format(5459. 4, "##, ##0. 00") ' Возвратит "5, 459. 40". My. Str = Format(334. 9, "###0. 00") ' Возвратит "334. 90". 65

СТРУКТУРА ПРОГРАММЫ 66 СТРУКТУРА ПРОГРАММЫ 66

Структура программы C++ Basic [#include <директива>] /* директивы препроцессора */ [using namespace <имя пространства Структура программы C++ Basic [#include <директива>] /* директивы препроцессора */ [using namespace <имя пространства имен>] /* прочие директивы, в данном случае – директива определения пространства имен */ <тип возвращаемого значения> main() { <операторы>; [return [<возвращаемое значение>]; ] } Sub <имя программы> <операторы> [Exit Sub] <операторы> End Sub 67

Структура программы (2) C++ Basic #include <iostream> using namespace std; int main() { int Структура программы (2) C++ Basic #include using namespace std; int main() { int s=0, i=1; while (i<=100) { s+=i; i++; } cout << s; return s; } Sub XXX Dim s As integer Dim i As integer s=0 i=1 Do While i<=100 s=s+i i=i+1 Loop Msg. Box(“s=” & s) End Sub 68

КОНТРОЛЬ ВВОДА 69 КОНТРОЛЬ ВВОДА 69

Нужен ли контроль ввода? 70 Нужен ли контроль ввода? 70

ЭТО И ЕСТЬ НАШ ПОЛЬЗОВАТЕЛЬ! 71 ЭТО И ЕСТЬ НАШ ПОЛЬЗОВАТЕЛЬ! 71

Контроль ввода C++ Basic 1. <cstdlib> <числовая переменная> = Val(<строка>) your. Double=atof(’ 23 dfg’); Контроль ввода C++ Basic 1. <числовая переменная> = Val(<строка>) your. Double=atof(’ 23 dfg’); your. Int=atoi(‘fd 234’); your. Long=atol(‘fdgb 33 d’); 2. A=Val(“ 23 sdf”) ‘ результат 23 #include #include using namespace std; int main(){ string s=“ 100”; int a; stringstream conv; conv << s; conv >> a; conv. clear(); } Тип String -> Тип «Число» 72

ПОД ПРОГРАММЫ 73 ПОД ПРОГРАММЫ 73

Подпрограммы Подпрограмма – это самостоятельная программа, которая может быть вызвана другими программами. Виды подпрограмм: Подпрограммы Подпрограмма – это самостоятельная программа, которая может быть вызвана другими программами. Виды подпрограмм: 1. функции; 2. процедуры. 74

Взаимодействие подпрограмм 1. Откуда был вызов туда и возвращаемся A. . . B. . Взаимодействие подпрограмм 1. Откуда был вызов туда и возвращаемся A. . . B. . . C. . . B. . . 2. Кто вызывает – тот «главный» 75

Обмен данными Существуют два варианта обмена данными с подпрограммами: 1. используя локальные и глобальные Обмен данными Существуют два варианта обмена данными с подпрограммами: 1. используя локальные и глобальные переменные; 2. используя формальные и фактические параметры. 76

Область видимости определяет, из каких частей программы возможен доступ к переменным. Локальные переменные – Область видимости определяет, из каких частей программы возможен доступ к переменным. Локальные переменные – текущий блок. Глобальные переменные – текущий блок и все входящие в него. 77

ЗАПРЕЩАЕТСЯ! Использование глобальных переменных в подпрограммах для обмена данными 78 ЗАПРЕЩАЕТСЯ! Использование глобальных переменных в подпрограммах для обмена данными 78

79 79

Параметры (1) Фактический параметр – переменная/выражение, значение которого передаётся в подпрограмму и соответствуют типу Параметры (1) Фактический параметр – переменная/выражение, значение которого передаётся в подпрограмму и соответствуют типу формального параметра. Формальный параметр – переменная, принимающая значение фактического параметра, переданного в подпрограмму. 80

Параметры (2) Y=Sin(X) факт форма Sin(N). . . N=0. 001 81 Параметры (2) Y=Sin(X) факт форма Sin(N). . . N=0. 001 81

Передача параметров 1. По значению 2. По ссылке C++ Basic 1. Default 2. Default Передача параметров 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 <имя пространства имен>] <тип> Структура п/п функции (1) C++ Basic [#include <директива>] [using namespace <имя пространства имен>] <тип> <имя> ([<параметры>]); <тип> main() { <операторы>; <имя>([<параметры>]); [return [<значение>]; ] } <тип> <имя> ([<параметры>]){ <операторы>; [return [<значение>]; ] } Function <имя>(<параметры>) [As <тип>] <операторы> [Exit Function] <операторы> <имя>=<возвращаемое значение> End Function 83

Структура п/п функции (2) C++ Basic С объявлением функции #include <iostream> using namespace std; Структура п/п функции (2) C++ Basic С объявлением функции #include using namespace std; void starline(); int main() { starline(); return s; } void starline() { for(int j=0; j<45; j++) cout << ‘*’; cout << endl; } Function Summ(a, b) As Integer Summ=a+b End Function Без объявления функции #include using namespace std; void starline() { for(int j=0; j<45; j++) cout << ‘*’; cout << endl; } int main() { starline(); return s; } Sub Pr Dim a, b a=Input. Box(“введи A”) b=Input. Box(“введи B”) Msg. Box(Summ(a, b)) End Sub 84

Структура п/п процедур C++ Basic void starline() { for(int j=0; j<45; j++) cout << Структура п/п процедур 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 РЕКУРСИЯ 86

87 87

Рекурсия – обращение подпрограммы самой к себе. Function FA(k: byte): longint; begin if k=0 Рекурсия – обращение подпрограммы самой к себе. Function FA(k: byte): longint; begin if k=0 then FA: =1 else FA: =k*FA(k-1) end; 88

МАССИВ 89 МАССИВ 89

Массивы (1) Массив – структурированный тип данных, состоящий из определенного числа элементов, имеющих один Массивы (1) Массив – структурированный тип данных, состоящий из определенного числа элементов, имеющих один и тот же тип. Обращение к элементу массива происходит по индексу. Классификации массивов: 1. статические и динамические массивы; 2. одномерные и многомерные. 90

91 91

Массивы (2) C++ Basic <тип> <имя> [<количество>][<ко личество>] Dim <имя> (<нач> To <кон>) As Массивы (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]<arr[i]) { tmp=arr[j]; Сортировка пузырьковым методом C++ Basic for(i=0; i<=n-1; i++) for(j=i+1; j<=n; j++) If(arr[j]

Математические операции 94 Математические операции 94

Математические функции 1. Sin, Cos, Log… 2. Int, Round, Trunc… 3. Целочисленное деление, остаток Математические функции 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 Генератор псевдослучайных чисел 96

Генератор псевдослучайных чисел (1) Генератор псевдослучайных чисел – алгоритм, генерирующий последовательность независимых друг от Генератор псевдослучайных чисел (1) Генератор псевдослучайных чисел – алгоритм, генерирующий последовательность независимых друг от друга чисел. 97

Генератор псевдослучайных чисел (2) C++ Basic # include <cstdlib> # include <ctime> srand(time(NULL)); k=rand() Генератор псевдослучайных чисел (2) C++ Basic # include # include srand(time(NULL)); k=rand() % (n-1); /*0≤x randomize(); k=random(n); /*0≤x

СТРОКИ 99 СТРОКИ 99

Строковый тип Строка – это связанная последовательность символов. М И Х А Символ Строка Строковый тип Строка – это связанная последовательность символов. М И Х А Символ Строка Char И Л Ю Ш И К О М П Ь Ю Т Н Е Р String 100

Объявление строковых переменных C++ Basic #include<string> Dim s As String s; Dim s 2 Объявление строковых переменных C++ Basic #include Dim s As String s; Dim s 2 As String*N char s[]; char s 2[N]; 101

Что можно делать со строками? 102 Что можно делать со строками? 102

Обычные операции над строками 1. Определение длины строки 2. Объединение строк (конкатенация) 3. Поиск Обычные операции над строками 1. Определение длины строки 2. Объединение строк (конкатенация) 3. Поиск подстроки в строке 4. Выбор подстроки в строке 5. Добавление символов 6. Удаление символов 7. Преобразования типов 103

Определение длины строки C++ Basic <строка>. length(); Len(<строка>) S=‘маманя’; X=S. length(); X= Len(“молот”) 104 Определение длины строки C++ Basic <строка>. length(); Len(<строка>) S=‘маманя’; X=S. length(); X= Len(“молот”) 104

Конкатенация строк C++ Basic <переменная> = <строка 1> + <строка 2>; <переменная> = <строка Конкатенация строк C++ Basic <переменная> = <строка 1> + <строка 2>; <переменная> = <строка 1> + <строка 2> <переменная> = <строка 1> & <строка 2> X=‘мама’ + ‘ня’; X=“мама” + “ня” X=“мама” & “ня” 105

Поиск подстроки в строке C++ Basic <строка>. find(<под строка>); In. Str([<позиция>, ] <строка>, <подстрока>) Поиск подстроки в строке C++ Basic <строка>. find(<под строка>); In. Str([<позиция>, ] <строка>, <подстрока>) S=‘моль’; X=S. find(‘л’); X=In. Str(1, “моль”, “л”) 106

Выбор подстроки в строке C++ Basic <строка>. substr( <позиция>, <кол-во>); Mid(<строка>, <позиция>, <колво>) S=‘моль’; Выбор подстроки в строке 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(<код символа>) Преобразования типов 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