Similar presentations:
Информатика. Базовые понятия и определения
1.
Кафедра «Информатика»Информатика
Для курса 1 группы БКБО-02-16
По направлению подготовки
09.03.04 «Программная инженерия»
Москва, 2016
1
2.
Кафедра «Информатика»Содержание:
1. Базовые понятия и определения………………………….3
2. Представление данных. Принцип программного
управления…………………………………………………….39
3. Методологии и языки программирования……………..88
4. Структуры данных. Основы проектирования баз
данных.………………………………………………………..114
Москва, 2016
2
3.
Базовые понятия и определенияЗадача.
Задача - координированная и систематизированная серия
элементов работы, используемых для достижения
результатов.
3
4.
Базовые понятия и определенияРешение задач
• Решение задач — процесс выполнения действий
или мыслительных операций, направленный на
достижение цели, заданной в рамках проблемной ситуации
4
5.
Базовые понятия и определенияАлгоритм
Алгоритм — набор инструкций, описывающих порядок действий
исполнителя для достижения результата решения задачи за конечное
число действий.
Алгоритмизация – процесс разработки алгоритма (плана
действий) для решения задачи. Алгоритмы реализованные
на компьютере решают сложные задачи:
• в медицине;
• в производстве;
• в сфере безопасности
5
6.
Базовые понятия и определенияСвойства алгоритмов.
Это свойство указывает , что
любой алгоритм должен
состоять из конкретных
действий, следующих в
определенном порядке.
6
7.
Базовые понятия и определенияСвойства алгоритмов.
Это свойство указывает , что
любой алгоритм должен
состоять из конкретных
действий, следующих в
определенном порядке.
7
8.
Базовые понятия и определенияСвойства алгоритмов.
Это свойство определяет,
что каждое действие в
отдельности и алгоритм в
целом должны иметь
возможность завершения
8
9.
Базовые понятия и определенияСвойства алгоритмов.
Это свойство определяет,
что каждое действие в
отдельности и алгоритм в
целом должны иметь
возможность завершения
9
10.
Базовые понятия и определенияСвойства алгоритмов.
Это свойство требует,
чтобы в алгоритме не
было ошибок. Алгоритм
должен всегда приводить
к
какому – либо результату.
10
11.
Базовые понятия и определенияСпособы записи алгоритма
• Словесно-формульный (на естественном
языке с использованием математических
формул)
• Графический (блок-схема)
• На языке программирования (программа)
11
12.
Базовые понятия и определенияСловестно-формульный способ
A x2 + B x + C = 0
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Начать.
Ввод A, B, C.
D = B2 - 4 A C.
Если D < 0, то идти к п. 6.
Если D > 0, то идти к п. 8.
Действительных корней нет.
Идти к п. 10.
X1 = (- B ) / 2 A ; X2 = (- B +
Вывести значения X1 и X2.
Закончить.
)/2A.
12
13.
Базовые понятия и определенияГрафический способ
13
14.
Базовые понятия и определенияЗапись на языке программирования
program example;
var a,b,c: integer;d,x1,x2:real;
begin
writeln ('a,b,c');
readln (a,b,c);
d:=sqr(b)-4*a*c;
if d<0 then
begin
writeln ('no korny');
end
else
begin
x1:=(-b-sqrt(d))/2*a;
x2:=(-b+sqrt(d))/2*a;
writeln ('x1=',x1,' x2=',x2);
end;
readln;
end.
14
15.
Базовые понятия и определенияУсловные графические обозначения в блок-схемах
15
16.
Базовые понятия и определенияЦикл
16
17.
Базовые понятия и определенияВетвление
17
18.
Базовые понятия и определенияМножественное ветвление
18
19.
Базовые понятия и определенияПрограмма
• Программа — термин, в
переводе означающий
«предписание», то есть
предварительное
описание предстоящих
событий или действий,
регламентированное
алгоритмом.
19
20.
Базовые понятия и определенияПрограммное обеспечение
Программное обеспечение (ПО) — совокупность всех программ,
хранящихся на всех устройствах долговременной памяти
компьютера.
Программное обеспечение
Системное
Прикладное
Инструментальное
20
21.
Базовые понятия и определенияСистемное программное
обеспечение
Системное программное обеспечение — необходимая часть ПО, без которой не
может работать компьютер.
Главной частью системного ПО является операционная система (ОС).
Некоторые ОС: MS-DOS, Windows, Linux, MACos, Android.
Также к системному ПО можно отнести:
обслуживания дисков (копирование, форматирование, «лечение» и пр.)
сжатия файлов (архиваторы)
антивирусы
21
22.
Базовые понятия и определенияПрикладное программное обеспечение
Программы, с помощью которых пользователь может
решать свои информационные задачи, не прибегая к
программированию,
называются
прикладными
программами.
К ним относятся:
текстовые и графические редакторы;
табличные процессоры;
системы управления базами данных;
коммуникационные (сетевые) программы.
22
23.
Базовые понятия и определенияИнструментальное программное
обеспечение
К инструментальному ПО относятся системы
программирования.
Системы программирования — инструмент для работы
программиста.
Существует много языков программирования:
Бейсик;
Паскаль;
Фортран;
Си;
...
23
24.
Базовые понятия и определенияИнформация.
Информация для человека – это знания,
которые он получает из различных
источников.
Свойства информации
Понятность
Полезность
Достоверность
Актуальность
Полнота
Точность
24
25.
Базовые понятия и определенияЕдиницы измерения информации
Единицами измерения информации являются биты (0 и 1) и
байты.
1 байт – это 8 битов.
25
26.
Базовые понятия и определенияКоличество информации
i
2 N
i – число бит информации
N – количество возможных событий
26
27.
Базовые понятия и определенияРазмерности и их
соотношения
8 бит = 1 байт
1 Кб = 1024 байта
1 Мб = 1024 Кб
1 Гб = 1024 Мб
1 Тб = 1024 Гб
27
28.
Базовые понятия и определенияИнформационные технологии
Информацио́нные техноло́гии (ИТ, от англ. information
technology, IT) — широкий класс дисциплин и областей
деятельности, относящихся к технологиям создания,
сохранения, управления и обработки данных, в том числе с
применением вычислительной техники. В последнее время
под информационными технологиями чаще всего
понимают компьютерные технологии. В частности, ИТ имеют
дело с использованием компьютеров и программного
обеспечения для создания, хранения, обработки, ограничения
к передаче и получению информации. Специалистов по
компьютерной технике и программированию часто называют
ИТ-специалистами.
28
29.
Базовые понятия и определенияДанные.
Это значения, необходимые для выполнения программы, хранящиеся в ячейках
памяти.
Типы данных – числовые и текстовые
Операции с данными:
• ввод (сбор) данных — накопление данных с целью обеспечения достаточной
полноты для принятия решений;
• формализация данных — приведение данных, поступающих из разных
источников, к одинаковой форме, для повышения их доступности;
• фильтрация данных — это отсеивание «лишних» данных, в которых нет
необходимости для повышения достоверности и адекватности;
• сортировка данных — это упорядочивание данных по заданному признаку с
целью удобства их использования;
• архивация — это организация хранения данных в удобной и легкодоступной
форме;
• защита данных — включает меры, направленные на предотвращение утраты,
воспроизведения и модификации данных;
• транспортировка данных — приём и передача данных между участниками
информационного процесса;
• преобразование данных — это перевод данных из одной формы в другую или из
одной структуры в другую.
29
30.
Базовые понятия и определенияЧисла в арифметике
Арифметика — раздел математики, изучающий числа, их отношения
и свойства.
Числа
30
31.
Базовые понятия и определенияВыражения.
Выражение в математике - это практически всё, с
чем мы собственно и имеем дело в математике.
Уравнения, дроби, примеры, формулы...
• 1+1 - это выражение;
• a+b+c - это выражение;
• уравнение 5x+12=37 - это 2 математических
выражения, соединённые знаком равенства;
• дробь - математическое выражение, состоящее
из числителя и знаменателя.
31
32.
Базовые понятия и определенияОперанды
Операнд в языках программирования ― аргумент операции;
данные, которые обрабатываются командой; грамматическая
конструкция, обозначающая выражение, задающее значение
аргумента операции; иногда операндом называют место,
позицию в тексте, где должен стоять аргумент операции.
Отсюда понятие местности, или арности, операции, то есть
числа аргументов операции.
Виды операндов:
1. Целые числа
2. Вещественные числа (дробные)
3. Символы
4. Строки
5. Логический операнд (да/нет, true/false)
32
33.
Базовые понятия и определенияЗнаки операций
Знак
Операция
Типы операндов
Тип результата
+
Сложение
Целые
Хотя бы один вещественный
Целый
Вещественный
-
Вычитание
Целые
Хотя бы один вещественный
Целый
Вещественный
*
Умножение
Целые
Хотя бы один вещественный
Целый
Вещественный
/
Деление
Целые или вещественные
Вещественный
33
34.
Базовые понятия и определенияИдентификаторы
Идентификаторы - имена объектов и конструкций
программы (меток, констант, типов, переменных, типов,
процедур, функций, объектов, модулей, программ, полей в
записях и т.д.).
Имя состоит из латинской буквы, за которой могут следовать
латинские буквы, цифры или символ подчеркивания.
Примеры:
first – правильно
a1 – правильно
1q – НЕ правильно
34
35.
Базовые понятия и определенияКонстанты
Это особый вид переменных, значение
которых не меняется на протяжении работы
всей программы.
Примеры:
Pi=3.14
M12=‘Декабрь’
35
36.
Базовые понятия и определенияЗаконы арифметики
36
37.
Базовые понятия и определенияЗаконы арифметики
37
38.
Базовые понятия и определенияЗаконы арифметики
38
39.
Представление данных. Принцип программного управленияОсновы алгебры логики.
Алгебра – это раздел математики, предназначенный для
описания действий над переменными величинами, которые
принято обозначать строчными буквами латинского алфавита
– а, b, x, y и т.д. Действия над переменными величинами
записываются в виде математических выражений.
Алгеброй логики называется аппарат, который позволяет
выполнять действия над высказываниями.
Алгебру логику называют также алгеброй Буля, или булевой
алгеброй, по имени английского математика Джорджа Буля,
разработавшего в XIX веке ее основные положения.
39
40.
Представление данных. Принцип программного управленияОсновы алгебры логики.
В булевой алгебре высказывания принято обозначать прописными
латинскими буквами: A, B, X, Y. В алгебре Буля введены три
основные логические операции с высказываниями: сложение,
умножение, отрицание. Определены аксиомы (законы) алгебры
логики для выполнения этих операций. Действия, которые
производятся над высказываниями, записываются в виде
логических выражений.
40
41.
Представление данных. Принцип программного управленияПростое логическое выражение
Простое логическое выражение состоит из одного
высказывания и не содержит логические операции.
В простом логическом выражении возможно только
два результата — либо «истина», либо «ложь».
Примеры:
• a>b
• существует a
41
42.
Представление данных. Принцип программного управленияСложное логическое выражение
Сложное логическое выражение содержит высказывания, объединенные
логическими операциями. По аналогии с понятием функции в алгебре
сложное логическое выражение содержит аргументы, которыми являются
высказывания.
В качестве основных логических операций в сложных логических
выражениях используются следующие:
• НЕ (логическое отрицание, инверсия);
• ИЛИ (логическое сложение, дизъюнкция);
• И (логическое умножение, конъюнкция).
Пример:
login=‘Vasya’ и pass=‘123’
42
43.
Представление данных. Принцип программного управленияМестность операции
Логическое отрицание является одноместной операцией, так
как в ней участвует одно высказывание. Логическое сложение
и умножение — двуместные операции, в них участвует два
высказывания. Существуют и другие операции, например
операции следования и эквивалентности, правило работы
которых можно вывести на основании основных операций.
43
44.
Представление данных. Принцип программного управленияТаблицы истинности
Все операции алгебры логики определяются таблицами истинности значений. Таблица
истинности определяет результат выполнения операции для всех возможных логических
значений исходных высказываний. Количество вариантов, отражающих результат
применения операций, будет зависеть от количества высказываний в логическом
выражении, например:
таблица истинности одноместной логической операции состоит из двух строк: два
различных значения аргумента — «истина» (1) и «ложь» (0) и два соответствующих
им значения функции;
в таблице истинности двуместной логической операции — четыре строки: 4
различных сочетания значений аргументов — 00, 01, 10 и 11 и 4 соответствующих им
значения функции;
если число высказываний в логическом выражении N, то таблица истинности будет
содержать 2N строк, так как существует 2N различных комбинаций возможных
значений аргументов.
44
45.
Представление данных. Принцип программного управленияОперация НЕ — логическое
отрицание (инверсия)
Логическая операция НЕ применяется к одному аргументу, в качестве которого может
быть и простое, и сложное логическое выражение. Результатом операции НЕ является
следующее:
• если исходное выражение истинно, то результат его отрицания будет ложным;
• если исходное выражение ложно, то результат его отрицания будет истинным.
Для операции отрицания НЕ приняты следующие условные обозначения:
не А, Ā, not A, ¬А.
Результат операции отрицания НЕ определяется следующей таблицей истинности:
Результат операции отрицания истинен, когда исходное высказывание ложно, и
наоборот.
A
не А
0
1
1
0
45
46.
Представление данных. Принцип программного управленияОперация ИЛИ — логическое сложение
(дизъюнкция, объединение)
Логическая операция ИЛИ выполняет функцию объединения двух
высказываний, в качестве которых может быть и простое, и сложное
логическое выражение. Высказывания, являющиеся исходными для
логической операции, называют аргументами. Результатом операции ИЛИ
является выражение, которое будет истинным тогда и только тогда, когда
истинно будет хотя бы одно из исходных выражений.
• Применяемые обозначения: А или В, А V В, A or B.
• Результат операции ИЛИ определяется следующей таблицей истинности:
A
B
А или B
0
0
0
0
1
1
1
0
1
1
1
1
46
47.
Представление данных. Принцип программного управленияОперация И — логическое умножение
(конъюнкция)
Логическая операция И выполняет функцию пересечения двух
высказываний (аргументов), в качестве которых может быть и
простое, и сложное логическое выражение. Результатом операции И
является выражение, которое будет истинным тогда и только тогда,
когда истинны оба исходных выражения.
• Применяемые обозначения: А и В, А Λ В, A & B, A and B.
• Результат операции И определяется следующей таблицей
истинности:
A
B
АиB
0
0
0
0
1
0
1
0
0
1
1
1
47
48.
Представление данных. Принцип программного управленияОперация «ЕСЛИ-ТО» — логическое
следование (импликация)
Эта операция связывает два простых логических выражения,
из которых первое является условием, а второе — следствием
из этого условия.
Применяемые обозначения:
• если А, то В; А влечет В; if A then В; А→ В.
Таблица истинности:
A
B
А→B
0
0
1
0
1
1
1
0
0
1
1
1
48
49.
Представление данных. Принцип программного управленияОперация «А тогда и только тогда, когда В» (эквивалентность,
равнозначность)
Применяемое обозначение: А ↔ В, А ~ В.
Таблица истинности:
A
B
А↔B
0
0
1
0
1
0
1
0
0
1
1
1
Примеры:
1. День сменяет ночь тогда и только тогда, когда солнце скрывается за горизонтом;
2. Добиться результата в спорте можно тогда и только тогда, когда приложено
максимум усилий.
49
50.
Представление данных. Принцип программного управленияПриоритет логических операций
1.
2.
3.
4.
5.
6.
Действия в скобках
Инверсия
Конъюнкция ( & )
Дизъюнкция ( V )
Импликация ( → )
Эквивалентность ( ↔ )
50
51.
Представление данных. Принцип программного управленияЗакон противоречия
51
52.
Представление данных. Принцип программного управленияЗакон исключенного третьего
52
53.
Представление данных. Принцип программного управленияЗакон двойного отрицания
53
54.
Представление данных. Принцип программного управленияЗаконы де Моргана
54
55.
Представление данных. Принцип программного управленияЗаконы повторения
A & A = A; A v A = A;
В & В = В; В v В = В.
55
56.
Представление данных. Принцип программного управленияЗаконы склеивания
56
57.
Представление данных. Принцип программного управленияПример использования законов
алгебры логики
57
58.
Представление данных. Принцип программного управленияПрименение таблиц истинности к
логическим функциям
58
59.
Представление данных. Принцип программного управленияСистемы счисления
Числа записываются с
использованием
особых знаковых
систем, которые
называются системами
счисления, в них числа
записываются по
определенным
правилам с помощью
символов некоторого
алфавита, называемых
цифрами.
59
60.
Представление данных. Принцип программного управления60
61.
Представление данных. Принцип программного управленияВиды систем счисления
Наиболее употребляемыми в настоящее время позиционными
системами являются:
2 — двоичная (в дискретной
математике, информатике, программировании);
3 — троичная;
8 — восьмеричная;
10 — десятичная (используется повсеместно);
12 — двенадцатеричная (счёт дюжинами);
16 — шестнадцатеричная (используется
в программировании, информатике);
60 — шестидесятеричная (единицы измерения времени,
измерение углов и, в частности, координат, долготы и широты)
61
62.
Представление данных. Принцип программного управленияСистемы со связанными основаниями
Двоична Восьмерич Шестнадцатер
я
ная
ичная
Основа 2
ние
Базис
Алфав
ит
8
16
20,21,22, 80,81,82,83,.. 160,161,162,163
23,...,2N,. .,8N,...
,...,16N,...
..
{0, 1}
{0, 1, 2, 3,
4, 5, 6, 7}
{0, 1, 2, 3, 4, 5,
6, 7, 8, 9, A, B,
C, D, E, F}
2-ная
000
001
010
011
100
101
110
111
8-ная
0
1
2
3
4
5
6
7
2-ная
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
16-ная
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
62
63.
Представление данных. Принцип программного управленияДвоичная арифметика. Сложение.
Пример 1. Сложить двоичные числа:
1001112 + 111012.
РЕШЕНИЕ:
100111
+
11101
1000100
В итоге получаем:
1001112 + 111012 = 10001002
63
64.
Представление данных. Принцип программного управленияДвоичная арифметика. Вычитание.
Если нам необходимо найти разность двух
двоичных чисел, то нужно:
1. Сравнять количество разрядов обоих чисел;
2. Инвертировать вычитаемое путем замены нулей
единицами, а единицы – нулями;
3. Добавить дополнительную единицу;
4. Сложить оба числа;
5. Удалить единицу самого старшего разряда.
64
65.
Представление данных. Принцип программного управленияДвоичная арифметика. Вычитание.
1100112 – 0010012 =
110011
+
110110
1101010
Отбрасываем единицу старшего разряда,
получаем:
101010.
В итоге получаем:
1100112 – 10012 = 1010102
65
66.
Представление данных. Принцип программного управленияДвоичная арифметика.
Умножение.
0*0=0
1*0=0
1*1=1
66
67.
Представление данных. Принцип программного управленияДвоичная арифметика. Умножение.
11011012 * 1012.
1101101
*
101
+ 1101101
1101101
1000100001
Получаем:
11011012 * 1012 = 10001000012
67
68.
Представление данных. Принцип программного управленияБазовая структура ЭВМ.
Принцип фон Неймана.
68
69.
Представление данных. Принцип программного управления69
70.
Представление данных. Принцип программного управленияЕдиницы измерения ёмкости запоминающих
устройств
70
71.
Представление данных. Принцип программного управленияПредставление целых и вещественных
чисел в памяти ЭВМ
Целые числа
Целые числа без знака
(только
положительные)
Целые числа со знаком
(положительные и
отрицательные)
71
72.
Представление данных. Принцип программного управленияЦелые числа без знака
Обычно занимают в памяти один или два байта.
В однобайтовом формате значения от 000000002 до 111111112
(0…255)
Пример 7210=10010002
Биты числа
номера разрядов
0
1
0
0
1
0
0
0
7
6
5
4
3
2
1
0
72
73.
Представление данных. Принцип программного управленияЦелые числа со знаком
Обычно занимают в памяти компьютера 1, 2
или 4 байта, при этом самый левый
(старший) разряд содержит информацию о
знаке числа.
Знак «+» кодируется 0, а «-» - 1
110=12
0
0
0
0
0
0
0
1
Знак числа «+»
73
74.
Представление данных. Принцип программного управленияСпособы записи целых чисел в памяти
компьютера
В компьютерной технике применяются три формы записи
(кодирования) целых отрицательных чисел: прямой код,
обратный код, дополнительный код.
1
0
0
0
0
0
0
1
Знак числа «-»
74
75.
Представление данных. Принцип программного управленияПолучается инвертированием всех цифр двоичного кода
абсолютной величины числа, включая разряд знака: нули
заменяются единицами, а единицы – нулями.
Пример
Число: -1.
Код модуля числа: 0 0000001.
Обратный код числа: 1 1111110.
1
1
1
1
1
1
1
0
75
76.
Представление данных. Принцип программного управленияПолучается образованием обратного кода с последующем
прибавлением единицы к его младшему разряду.
Пример
Число: -1.
Код модуля числа:
0 0000001.
Обратный код числа: 1 1111110
+1
1 1111111
1
1
1
1
1
1
1
1
76
77.
Представление данных. Принцип программного управленияКодирование вещественных чисел
Форма с плавающей точкой использует представление
вещественного числа R в виде произведения мантиссы m на
основание системы счисления р в некоторой целой степени n,
которую называют порядком:
R = m * рn
m – мантисса,
n – порядок,
p – основание системы.
77
78.
Представление данных. Принцип программного управленияНапример, число 25,324 можно записать в таком виде:
0.25324х102.
Здесь m=0.25324 — мантисса,
n=2 — порядок. Порядок указывает, на какое количество
позиций и в каком направлении должна «переплыть», т.е.
сместиться десятичная точка в мантиссе. Отсюда название
«плавающая точка».
Однако справедливы и следующие равенства:
25,324 = 2,5324*101 = 0,0025324*104 = 2532,4*102 и т.п.
78
79.
Представление данных. Принцип программного управленияПолучается, что представление числа в форме с плавающей
точкой неоднозначно.
Чтобы не было неоднозначности, в ЭВМ используют
нормализованное представление числа в форме с
плавающей точкой. Мантисса в нормализованном
представлении должна удовлетворять условию:
0,1p ≤ m < 1p.
Иначе говоря, мантисса меньше единицы и первая значащая цифра
— не ноль. Значит для рассмотренного числа нормализованным
представлением будет: 25,324=0.25324 * 102.
79
80.
Представление данных. Принцип программного управленияПусть в памяти компьютера вещественное число
представляется в форме с плавающей точкой в двоичной
системе счисления (р=2) и занимает ячейку размером 4 байта. В
ячейке должна содержаться следующая информация о числе:
знак числа, порядок и значащие цифры мантиссы. Вот как эта
информация располагается в ячейке:
±машинный
порядок
1-й байт
байт
МА
2-й байт
НТИС
СА
3-й байт 4-й
В старшем бите 1-го байта хранится знак числа. В этом разряде 0
обозначает плюс, 1 — минус. Оставшиеся 7 бит первого байта содержат
машинный порядок. В следующих трех байтах хранятся значащие
цифры мантиссы.
80
81.
Представление данных. Принцип программного управленияЧто такое машинный порядок?
В семи двоичных разрядах помещаются двоичные числа в
диапазоне от 0000000 до 1111111. В десятичной системе это
соответствует диапазону от 0 до 127. Всего 128 значений.
Знак порядка в ячейке не хранится. Но порядок, очевидно,
может быть как положительным так и отрицательным.
Разумно эти 128 значений разделить поровну между
положительными и отрицательными значениями порядка.
В таком случае между машинным порядком и истинным
(назовем его математическим) устанавливается
следующее соответствие:
Машинный
порядок
0
1
2
3
...
64
65
...
125
126 127
Математический
порядок
-64
-63
-62
-61
...
0
1
...
61
62
63
Если обозначить машинный порядок Мр, а математический — р, то
связь между ними выразится такой формулой:
Мр = р + 64.
81
82.
Представление данных. Принцип программного управленияИтак, машинный порядок смещён
относительно математического на 64
единицы и имеет только положительные
значения. При выполнении вычислений с
плавающей точкой процессор это смещение
учитывает.
В двоичной системе счисления смещение:
Мр2 = р2+100 00002
82
83.
Представление данных. Принцип программного управленияТеперь мы можем записать внутреннее представление числа 25,324 в форме с
плавающей точкой.
1)Переведем его в двоичную систему счисления с 24 значащими цифрами.
25,32410= 11001,01010010111100011012
2)Запишем в форме нормализованного двоичного числа с плавающей точкой:
0,110010101001011110001101*10101
Здесь мантисса, основание системы счисления (210=102) и порядок
(510=1012)записаны в двоичной системе.
3) Вычислим машинный порядок.
Мр2 = 101 + 100 0000 = 100 0101.
4) Запишем представление числа в ячейке памяти.
порядок
мантисса
0 1 0 0 0 1 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 0 0 0 1 1 0 1
83
84.
Представление данных. Принцип программного управленияПредставление символьной
информации
Для представления текстовой информации достаточно 256
различных символов.
N = 2I, 256 = 2I , 28 = 2I ,I = 8 битов
Для кодирования каждого знака требуется количество
информации, равное 8 битам.
Для представления текста в памяти компьютера необходимо
представить его в двоичной знаковой системе.
Каждому знаку необходимо поставить в соответствие
уникальный двоичный код в интервале от 00000000 до
11111111 (в десятичном коде от 0 до 255)
84
85.
Представление данных. Принцип программного управленияТаблицы символов
Для представления символов и соответствующих им кодов
используется кодовая таблица.
В качестве стандарта во всем мире принята таблица ASCII
(American Standard Code for Information Interchange –
Американский стандартный код для обмена информацией).
Условно таблица разделена на части:
от 0 до 32 коды соответствуют операциям;
с 33 по 127 соответствуют символам латинского алфавита,
цифрам, знакам арифметических операций и знакам
препинания;
со 128 по 255 являются национальными.
85
86.
Представление данных. Принцип программного управления86
87.
Представление данных. Принцип программного управленияТипы данных
1.
2.
3.
4.
5.
Целые числа
Вещественные числа (дробные)
Символы
Строки
Логический операнд (да/нет, true/false)
87
88.
Методологии и языки программированияСтадии и этапы разработки
программ.
Определяются стандартами:
• ГОСТ 34.601-90
• ISO/IEC 12207:2008 «System and software
engineering — Software life cycle processes»
(российский аналог — ГОСТ Р ИСО/МЭК 122072010 Информационная технология. Системная и
программная инженерия. Процессы жизненного
цикла программных средств)
88
89.
Методологии и языки программированияСтандарт ГОСТ 34.601-90
Стандарт ГОСТ 34.601-90 предусматривает следующие стадии и этапы
создания автоматизированной системы:
1.
Формирование требований к АС
2.
Разработка концепции АС
3.
Техническое задание
4.
Эскизный проект
5.
Технический проект
6.
Рабочая документация
7.
Ввод в действие
8.
Сопровождение АС.
89
90.
Методологии и языки программированияМодели жизненного цикла
Модель жизненного цикла ПО — структура,
определяющая последовательность выполнения и
взаимосвязи процессов, действий и задач на
протяжении жизненного цикла. Модель жизненного
цикла зависит от специфики, масштаба и сложности
проекта и специфики условий, в которых система
создается и функционирует.
Модель ЖЦ ПО включает в себя:
• Стадии;
• Результаты выполнения работ на каждой стадии;
• Ключевые события — точки завершения работ и
принятия решений.
90
91.
Методологии и языки программированияВодопадная (каскадная, последовательная)
модель
Водопадная модель жизненного цикла была предложена в 1970 г. Уинстоном
Ройсом. Она предусматривает последовательное выполнение всех этапов
проекта в строго фиксированном порядке. Переход на следующий этап
означает полное завершение работ на предыдущем этапе. Требования,
определенные на стадии формирования требований, строго документируются
в виде технического задания и фиксируются на все время разработки
проекта. Каждая стадия завершается выпуском полного комплекта
документации, достаточной для того, чтобы разработка могла быть
продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
• Формирование требований;
• Проектирование;
• Реализация;
• Тестирование;
• Внедрение;
• Эксплуатация и сопровождение.
91
92.
Методологии и языки программирования92
93.
Методологии и языки программированияИтерационная модель
Модель предполагает разбиение жизненного цикла проекта на
последовательность итераций, каждая из которых напоминает «мини-проект»,
включая все процессы разработки в применении к созданию меньших
фрагментов функциональности, по сравнению с проектом в целом. Цель
каждой итерации — получение работающей версии программной системы,
включающей функциональность, определённую интегрированным
содержанием всех предыдущих и текущей итерации. Результат финальной
итерации содержит всю требуемую функциональность продукта. Таким
образом, с завершением каждой итерации продукт получает приращение —
инкремент — к его возможностям, которые, следовательно,
развиваются эволюционно. Итеративность, инкрементальность и
эволюционность в данном случае есть выражение одного и то же смысла
разными словами со слегка разных точек зрения[3].
93
94.
Методологии и языки программирования94
95.
Методологии и языки программированияСпиральная модель
Спиральная модель была разработана в середине 1980-х
годов Барри Боэмом. При использовании этой модели ПО создается
в несколько итераций (витков спирали).
Каждая итерация соответствует созданию фрагмента или версии ПО,
на ней уточняются цели и характеристики проекта, оценивается
качество полученных результатов и планируются работы следующей
итерации.
• На каждой итерации оцениваются:
• риск превышения сроков и стоимости проекта;
• необходимость выполнения ещё одной итерации;
• степень полноты и точности понимания требований к системе;
• целесообразность прекращения проекта.
95
96.
Методологии и языки программирования96
97.
Методологии и языки программированияПроблемы программирования
97
98.
Методологии и языки программированияЛокальное программирование
• Проблемы системы типов
При передачи значения одного типа данных с разным размером выделяемой
памяти (int(2) -> double(8))
• Проблемы с метаданными
При использовании компиллировании программного кода помимо
исполняемого когда они наполняются инструкциями по обработке
• Проблемы выполнения
Сложность с внедрением части кода написанного на другом языке в
программу
98
99.
Методологии и языки программированияГлобальное программирование
При работе с программными компонентами, написанными разными программистами и
при помощи разных языков программирования в различных средах, и последующих
попытках собрать эти компоненты в одну распределенную систему, программисту
придется решить бесчисленное множество проблем глобального программирования.
Проблема именования (Naming)
Определение имен переменных разными разработчиками
Обработка ошибок (error handling)
При возникновении ошибок возвращаемый код не унифицирован
Безопасность (security)
Нет гарантий при передачи данных через Интернет
Контроль версий (versioning)
Несовместимость версий ПО
Масштабируемость (scalability)
Невозможность использования большого количества пользователей
(Интернет)
99
100.
Методологии и языки программированияМетодологии программирования
Методология программирования — совокупность методов,
применяемых на различных стадиях жизненного цикла
программного обеспечения и имеющих общий философский
подход.
Классификации:
• Классификация по ядрам
• Классификация по топологической специфике
• Классификация по специфике реализации
100
101.
Методологии и языки программированияКлассификация по ядрам
При подходе к методологии, как имеющей ядро,
соответствующее способу описания алгоритма,
и дополнительные особенности, можно выделить
следующие пять основных ядер методологий:
• Методология императивного программирования
• Методология структурного программирования
• Методология ООП
• Методология функционального программирования
• Методология логическое программирование
• Методология программирования в ограничениях
101
102.
Методологии и языки программированияМетодология структурного
программирования
Структу́рное программи́рование — методология
разработки программного обеспечения, в основе которой лежит
представление программы в виде иерархической структуры блоков.
Предложена в 70-х годах XX века Э. Дейкстрой, разработана и
дополнена Н. Виртом.
В соответствии с данной методологией любая программа
представляет собой структуру, построенную из трёх типов базовых
конструкций:
– последовательное исполнение — однократное выполнение операций в том
порядке, в котором они записаны в тексте программы;
– ветвление — однократное выполнение одной из двух или более операций,
в зависимости от выполнения некоторого заданного условия;
– цикл — многократное исполнение одной и той же операции до тех пор, пока
выполняется некоторое заданное условие (условие продолжения цикла).
В программе базовые конструкции могут быть вложены друг в друга
произвольным образом, но никаких других средств управления
последовательностью выполнения операций не предусматривается.
102
103.
Методологии и языки программированияМетодология императивного
программирования
Императивное программирование — это парадигма
программирования, которая описывает процесс вычисления в
виде инструкций, изменяющих состояние программы.
Императивная программа очень похожа на приказы,
выражаемые повелительным наклонением в естественных
языках, то есть это последовательность команд, которые
должен выполнить компьютер.
103
104.
Методологии и языки программированияМетодология объектноориентированного программирования
В центре ООП находится понятие объекта. Объект — это
сущность, которой можно посылать сообщения, и которая
может на них реагировать, используя свои данные. Объект —
это экземпляр класса. Данные объекта скрыты от остальной
программы.
104
105.
Методологии и языки программированияМетодология функционального
программирования
Функциональное программирование — раздел дискретной
математики и парадигма программирования, в которой
процесс вычисления трактуется как вычисление
значений функций в математическом понимании последних.
105
106.
Методологии и языки программированияМетодология логического
программирования
Логическое программирование — парадигма программирования,
основанная на автоматическом доказательстве теорем, а также
раздел дискретной математики, изучающий принципы логического
вывода информации на основе заданных фактов и правил вывода.
Логическое программирование основано на теории и
аппарате математической логики с использованием математических
принципов резолюций.
106
107.
Методологии и языки программированияМетодология программирования в
ограничениях
Программирование в ограничениях (или программирование
ограничениями) является парадигмой программирования, в которой
отношения между переменными указаны в форме ограничений.
Ограничения определяют не последовательность шагов для
исполнения, а свойства искомого решения. Ограничения, которые
используются в программировании в ограничениях, бывают
различных видов: те, которые используются в задачах
удовлетворения ограничений (например, «А или В истинно»), те,
которые решаются симплекс-алгоритмом (например, «x ≤ 5») и
другие. Ограничения, как правило, встроены в язык
программирования или осуществляются через отдельные
программные библиотеки.
107
108.
Методологии и языки программированияСтруктурное программирование.
108
109.
Методологии и языки программированияПошаговая детализация и
нисходящее проектирование
Технология нисходящего проектирования с пошаговой детализацией
является неотъемлемой частью создания хорошо структурированных
программ. При написании программы с использованием этой
технологии вся задача рассматривается как единственное
предложение (вершина), выражающее общее назначение программы.
Так как вершина редко отображает достаточное количество деталей, на
основании которых можно написать программу, то поэтому надо
начинать процесс детализации. Вершина разделяется на ряд более
мелких задач в том порядке, в котором эти задачи должны выполнятся.
В результате получим первую детализацию. Далее каждая из подзадач
разбивается на подзадачи, принадлежащие второму уровню
детализации. Программист завершает процесс нисходящей разработки
с пошаговой детализацией, когда алгоритм настолько детализирован,
чтобы его можно было бы преобразовать в программу.
109
110.
Методологии и языки программированияПример пошаговой детализации
110
111.
Методологии и языки программированияR1 – радиус круга;
R2 – радиус круга;
X1, Y1 – координаты
центра круга;
X2, Y2 – координаты
центра круга;
Color1 – цвет круга.
Color2 – цвет круга.
Draw1
Draw2
R_n – радиус круга;
X_n, Y_n – координаты
центра круга;
Color_n – цвет круга.
Draw_n
111
112.
Методологии и языки программированияАбстракция
Абстрагирование — это способ выделить набор значимых характеристик объекта, исключая
из рассмотрения незначимые. Соответственно, абстракция — это набор всех таких
характеристик.
Инкапсуляция
Инкапсуляция — это свойство системы, позволяющее объединить данные и методы,
работающие с ними в классе, и скрыть детали реализации от пользователя.
Наследование
Наследование — это свойство системы, позволяющее описать новый класс на основе уже
существующего с частично или полностью заимствующейся функциональностью. Класс, от
которого производится наследование, называется базовым, родительским или
суперклассом. Новый класс — потомком, наследником или производным классом.
Полиморфизм
Полиморфизм — это свойство системы использовать объекты с одинаковым интерфейсом без
информации о типе и внутренней структуре объекта.
112
113.
Методологии и языки программированияКлассификация языков
программирования
113
114.
Структуры данных. Основы проектирования баз данныхМассивы
Массив – группа элементов одного типа,
объединенных под общим именем.
Индекс – что-то (чаще всего номер), что
позволяет отличать элементы массива
один от другого и обращаться к ним.
Книга
состоит
из
множества
однотипных элементов – страниц,
у каждой страницы есть номер
(индекс),
все
страницы
объединены под одним названием
(название книги)
114
115.
Структуры данных. Основы проектирования баз данныхПример
начало
Описать
алгоритм доставки
свежего номера
газеты во все
квартиры дома,
если квартиры
нумеруются от 1
до 100.
Начнем с первой
квартиры N=1
Доставим газету
в квартиру N
Перейдем к
следующей квартире
(увеличим N на 1)
да
Такая квартира
есть?
(N<=100)
конец
115
116.
Структуры данных. Основы проектирования баз данныхЗаписи.
Запись – единица хранения информации в базе
данных
116
117.
Структуры данных. Основы проектирования баз данныхОсновные операции над
структурами данных
Над всеми структурами данных могут выполняться
четыре операции:
1.
создание,
2.
уничтожение,
3.
выбор (доступ),
4.
обновление.
117
118.
Структуры данных. Основы проектирования баз данныхДинамические структуры данных. Списки.
Характеристики
• Длина списка. Количество элементов в списке.
• Списки могут быть типизированными или нетипизированными.
Если список типизирован, то тип его элементов задан, и все его
элементы должны иметь типы, совместимые с заданным типом
элементов списка. Обычно списки, реализованные при помощи
массивов, являются типизированными.
• Список может быть сортированным или несортированным
• В зависимости от реализации может быть
возможен произвольный доступ к элементам списка.
118
119.
Структуры данных. Основы проектирования баз данныхДинамические структуры данных. Стеки.
Концептуально, структура данных — стек очень проста: она позволяет добавлять или удалять
элементы в определенном порядке. Каждый раз, когда добавляется элемент, он попадает на
вершину стека, единственный элемент, который может быть удален из стека — элемент, который
находится на вершине стека.
Таким образом, стек, как принято говорить,
«первым пришел, последним ушел — FILO» или
«последним пришел, первым ушел — LIFO».
Первый элемент, добавленный в стек будет
удален из него в последнюю очередь.
119
120.
Структуры данных. Основы проектирования баз данныхДинамические структуры данных. Деревья.
Дерево — одна из наиболее широко распространённых структур
данных в информатике, эмулирующая древовидную структуру в
виде набора связанных узлов. Является связанным графом, не
содержащим циклы.
120
121.
Структуры данных. Основы проектирования баз данных, представляющая собой совокупность
элементов и отношений, образующих иерархическую структуру этих
элементов .
Каждый элемент дерева называется
(узлом) дерева.
Вершины дерева соединены направленными дугами, которые называют
.
Начальный узел дерева называют
, ему соответствует нулевой
уровень.
дерева называют вершины, в которые входит одна ветвь и не
выходит ни одной ветви.
Каждое дерево обладает следующими свойствами:
существует узел, в который не входит ни одной дуги (корень);
в каждую вершину, кроме корня, входит одна дуга.
Деревья особенно часто используют на практике при изображении различных
иерархий. Например, популярны генеалогические деревья.
121
122.
Структуры данных. Основы проектирования баз данныхВсе вершины, в которые входят ветви, исходящие из одной общей вершины,
называются
, а сама вершина –
. Для каждого предка может
быть выделено несколько потомков.
Уровень потомка на единицу превосходит уровень его предка.
Корень дерева не имеет предка, а листья дерева не имеют потомков.
(глубина)
определяется количеством уровней, на которых
располагаются его вершины.
Высота пустого дерева рана нулю, высота дерева из одного корня – единице.
На первом уровне дерева может быть только одна вершина – корень дерева, на
втором – потомки корня дерева, на третьем – потомки потомков корня дерева и т.д.
122
123.
Структуры данных. Основы проектирования баз данных– часть древообразной структуры данных, которая может быть
представлена в виде отдельного дерева.
в дереве называется количество дуг, которое из нее выходит.
равна максимальной степени вершины, входящей в дерево. При
этом листьями в дереве являются вершины, имеющие степень нуль. По величине
степени дерева различают два типа деревьев:
двоичные – степень дерева не более двух;
сильноветвящиеся – степень дерева произвольная.
– это дерево, у которого ветви, исходящие из каждой
вершины, упорядочены по определенному критерию.
Деревья являются рекурсивными структурами, так как каждое поддерево также
является деревом. Таким образом, дерево можно определить как рекурсивную
структуру, в которой каждый элемент является:
либо пустой структурой;
либо элементом, с которым связано конечное число поддеревьев.
Действия с рекурсивными структурами удобнее всего описываются с помощью
рекурсивных алгоритмов.
123
124.
Структуры данных. Основы проектирования баз данныхСписочное представление деревьев основано на элементах, соответствующих
вершинам дерева.
Каждый элемент имеет
:
При таком способе представления дерева обязательно
Для того, чтобы выполнить определенную операцию над всеми вершинами
дерева необходимо все его вершины просмотреть. Такая задача называется
.
– это упорядоченная последовательность вершин дерева, в
которой каждая вершина встречается только один раз.
124
125.
Структуры данных. Основы проектирования баз данныхПри обходе все вершины дерева должны посещаться в определенном порядке.
Существует несколько способов обхода всех вершин дерева. Выделим три наиболее
часто используемых способа обхода дерева:
125
126.
Структуры данных. Основы проектирования баз данныхСтруктурная схема типов данных
126
127.
Структуры данных. Основы проектирования баз данныхИнформационная система.
Информационная система
это
совокупность техническог
о, программного и
организационного
обеспечения, а
также персонала,
предназначенная для того,
чтобы своевременно
обеспечивать надлежащих
людей
надлежащей информацией
127
128.
Структуры данных. Основы проектирования баз данныхКлассификация ИС
По степени распределённости отличают:
• настольные (desktop), или локальные ИС, в которых все
компоненты (БД, СУБД, клиентские приложения) находятся
на одном компьютере;
• распределённые (distributed) ИС, в которых компоненты
распределены по нескольким компьютерам.
Распределённые ИС, в свою очередь, разделяют на:
• файл-серверные ИС (ИС с архитектурой «файл-сервер»);
• клиент-серверные ИС (ИС с архитектурой «клиентсервер»).
128
129.
Структуры данных. Основы проектирования баз данныхБаза данных.
База данных – совокупность данных, организованных по
определенным правилам, предусматривающим общие принципы
описания, хранения и манипулирования данными, независимо от
прикладных программ
129
130.
Структуры данных. Основы проектирования баз данныхТребования пользователей к
базам данных
Высокое быстродействие (малое время отклика на запрос).
Время отклика - промежуток времени от момента запроса к БД до фактического получения
данных. Похожим является термин время доступа - промежуток времени между выдачей
команды записи (считывания) и фактическим получением данных.
Под доступом понимается операция поиска, чтения данных или записи их. Часто операции
записи, удаления и модификации данных называют операцией обновления.
Простота обновления данных.
Независимость данных.
Совместное использование данных многими пользователями.
Безопасность данных - защита данных от преднамеренного или непреднамеренного
нарушения секретности, искажения или разрушения.
Стандартизация построения и эксплуатации БД (фактически СУБД).
Адекватность отображения данных соответствующей предметной области.
Дружелюбный интерфейс пользователя.
130
131.
Структуры данных. Основы проектирования баз данныхПроектирование баз данных
131
132.
Структуры данных. Основы проектирования баз данных132
133.
Структуры данных. Основы проектирования баз данныхПостроение инфологической модели
133
134.
Структуры данных. Основы проектирования баз данныхМодель «сущность-связь»
134
135.
Структуры данных. Основы проектирования баз данныхТипы отношений в модели «сущностьсвязь»
135
136.
Структуры данных. Основы проектирования баз данныхМодели данных.
Модель данных - совокупность структур данных и операций
их обработки.
По способу установления связей между данными СУБД
(системы управления базами данных) основывается на
использовании трёх основных видов модели: иерархической,
сетевой или реляционной; на комбинации этих моделей или
на некотором их подмножестве.
Каждая из указанных моделей обладает характеристиками,
делающими ее наиболее удобной для конкретных
приложений.
136
137.
Структуры данных. Основы проектирования баз данныхИерархическая модель
Иерархическая модель данных — представление базы
данных в виде древовидной (иерархической) структуры,
состоящей из объектов (данных) различных уровней.
137
138.
Структуры данных. Основы проектирования баз данныхСетевая модель.
Разница между иерархической моделью данных и сетевой состоит в том, что в
иерархических структурах запись-потомок должна иметь в точности одного
предка, а в сетевой структуре данных у потомка может иметься любое число
предков.
Сетевая БД состоит из набора экземпляров определенного типа записи и набора
экземпляров определенного типа связей между этими записями.
138
139.
Структуры данных. Основы проектирования баз данныхРеляционная модель
Реляционная модель данных – логическая модель данных,
основанная на отношении одних записей к другим. Представляет
собой таблицы и связи между ними. Впервые была предложена
британским учёным сотрудником компании IBM Эдгаром Франком
Коддом (E. F. Codd) в 1970 году. В настоящее время эта модель
является фактическим стандартом, на который ориентируются
практически все современные коммерческие СУБД.
139
140.
Структуры данных. Основы проектирования баз данныхРеляционная модель
140
141.
Структуры данных. Основы проектирования баз данныхОтношения между таблицами. Связь 1:1
Одной записи Таблицы А соответствует одна запись
Таблицы В
141
142.
Структуры данных. Основы проектирования баз данныхОтношения между таблицами. Связь 1:М и
М:1
Одной записи Таблицы А соответствует несколько записей
Таблицы В
142
143.
Структуры данных. Основы проектирования баз данныхОтношения между таблицами. Связь М:М
Многим записям Таблицы А соответствует много записей Таблицы
В. В явном виде не существует. Реализуется через третью таблицу
и две связи 1:М
143
144.
Структуры данных. Основы проектирования баз данныхНормализация таблиц базы данных. Первая
нормальная форма.
144
145.
Структуры данных. Основы проектирования баз данныхНормализация таблиц базы данных. Вторая
нормальная форма.
145
146.
Структуры данных. Основы проектирования баз данныхНормализация таблиц базы данных. Вторая
нормальная форма.
146
147.
Структуры данных. Основы проектирования баз данныхСистемы управления базами данных
Система управления базами данных (СУБД) — совокупность
программных и лингвистических средств общего или специального
назначения, обеспечивающих управление созданием и
использованием баз данных
147
148.
Структуры данных. Основы проектирования баз данныхБазы данных и компьютерные сети
148
149.
Структуры данных. Основы проектирования баз данныхСетевые базы данных.
149
150.
Структуры данных. Основы проектирования баз данныхРаспределенные базы данных
150