информатика
.docx
1 Информатика определение предмет и задачи Информатика - наука, изучающая все аспекты накопления, обработки и передачи информации в природных, технических и научных системах. Информатику можно представить как состоящую из трех взаимосвязанных частей.: 1)Отрасль народного хозяйства -Производство тех. Средств; -Производство ПО; -Разработка технологий переработки инфор. 2) фундаментальная наука: -разработка методологии создания операционного обеспеч. 3) прикладная дисциплина: -изучением закономерностей в информационных процессах; -созданием информационных моделей коммуникаций; -разработкой информационных систем и технологий. Задачи информатики состоят в следующем: - исследование информационных процессов любой природы; - разработка информационной техники и создание новейшей технологии переработки информации - решение научных и инженерных проблем создания, внедрения и обеспечения эффективного использования компьютерной техники и технологии во всех сферах общественной жизни. |
2 Основные направления В информатике выделяют восемь основных направлений:
2)создания и использования автоматизированных систем управления разной степени сложности в объектах различной природы.
3)созданием программ для разного рода информационных систем. 4)занимается теор. и прикладными вопросами, связанными с построением реально действующих интеллектуальных систем.
5) Информационные системы (сети хранения данных(терминалы)) 6) Вычислительная техника (Элементная база, Исследование архитектур программных средств) 7) Информатика в обществе - информационное общество, интернет, накопление и продажа информации, онлайн реклама, продажи... 8) биокибернетика бионика. Биогеоценология – проблема сохранения равновесия природных систем. |
5 Программирование вложенных циклов Любой цикл может содержать внутри себя один или несколько других циклов. Такая структура называется вложенными циклами. Охватывающие циклы называются внешними, охватываемые – внутренними. Организация цикла начинается с самого внешнего цикла в тело которого помещается вложенные циклы. Каждый вложенный цикл управляет своими условиями окончания. Проверка окончания циклов начинается с самого внутреннего цикла в порядке возрастания их вложения. Изменение значения параметра внешнего цикла необходимо восстановить значения параметра внутреннего цикла. Циклы не должны пересекаться. PROGRAM Tabul1; VAR x0, xk, y0, yk, x, y, z, x2: integer; BEGIN readln (x0,xk,y0,yk); FOR x:=x0 TO xk DO BEGIN x2:=sqr (x); FOR y:=y0 TO yk DO BEGIN z:=x2+sqr(y); writeln ('x=',x,',y=',y,',z=',z); END; END; END. |
3 Формальная постановка задачи . Один из этапов программирования Настоящий этап характеризуется математической формализацией задачи, при которой существующие соотношения между величинами, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель явления с определенной точностью, допущениями и ограничениями Отображение. Закон, по которому элемент некоторого заданного множества X ставит в соответствие вполне определённый элемент другого множества Y. F:(x->y) X-область определения отображения. Y-множество значений: Y = {y=f(x), xX} |
4 Типовые простые схемы алгоритмов
Типовые (простые) схемы алгоритмов. Простая программа: - имеет один вход и один выход - через каждый узел проходит путь от вода к выходу (необязательно единственный).
Ну и самые простые схемы алгоритмов это Линейный ветвление и цикл..
|
6 Алгоритмизация. Абстрактный вычислительный алгоритм. Алгоритмизация вычислительного процесса. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Процесс обработки данных разбивается на отдельные относительно самостоятельные блоки, и устанавливается последовательность выполнения блоков. Разрабатывается блок-схема алгоритма. Алгоритмизация:
Алгоритм - понятное и точное предписание совершить определенную последовательность действий, направленных на достижение указанной цели или решение поставленной задачи. Абстрактный выч. алгоритм – применяется к мат. Объектам записывается в общепринятых мат. терминах и не связан с конкретным языком програмирования. Основные свойства:
Результативность означает возможность получения результата после выполнения конечного количества операций. Определенность состоит в совпадении получаемых результатов независимо от пользователя и применяемых технических средств. Массовость заключается в возможности применения алгоритма к целому классу однотипных задач, различающихся конкретными значениями исходных данных |
7 Способы задания алгоритмов Способы задания алгоритмов: На практике наиболее распространены следующие способы задания алгоритмов: — словесная (запись на естественном языке); Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задаётся в произвольном изложении на естественном языке. — язык схем алгоритмов (изображения из графических символов); изображается в виде последовательности связанных между собой функциональных блоков, каждый соответствует выполнению одного или нескольких действий. Такое графическое представление называется блок-схемой. — Специализированные записи (псевдокоды) (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.); (операторы , схемы , рекурсив. функции) Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. не приняты строгие синтаксические правила в псевдокоде обычно имеются некоторые конструкции, есть служебные слова, смысл которых однозначно определён алг название алгоритма (аргументы и результаты) дано условия применимости алгоритма надо цель выполнения алгоритма — Языки программирования Программный способ записи алгоритмов (тексты на языках программирования Алгоритм, предназначенный для исполнения на компьютере, должен быть записан на понятном ему языке. В этом случае язык для записи алгоритмов должен быть формализован. Такой язык принято называть языком программирования, а запись алгоритма на этом языке — программой. |
8 Структурный подход к проектированию алгоритмов и программ Одним из свойств алгоритма является дискретность — возможность расчленения процесса вычислений, предписанных алгоритмом, на отдельные этапы, возможность выделения участков программы с определенной структурой. Можно выделить и наглядно представить графически три простейшие структуры: • последовательность двух или более операций; • выбор направления; • повторение. Любой вычислительный процесс может быть представлен как комбинация этих элементарных алгоритмических структур. Соответственно, вычислительные процессы, выполняемые на ЭВМ по заданной программе, можно разделить на три основных вида: • линейные; • ветвящиеся; • циклические.
Типовые схемы алгоритма:
|
9 теорема о струкоторизации В 60-е годы оператор goto, который позволяет передавать управление в очень широких пределах. Исследование Бома и Джакопини показало, что программы могут быть написаны без использования оператора goto. Теорема о структурировании: любая простая программа (программа с одним входом и одним выходом) может быть преобразована в функционально ей эквивалентную программу, построенную на основе 3 следующих структур: 1. Следования. 2. Если-то-иначе. 3. Цикл с предусловием. и состоящая из тех же предикатов и функциональных узлов, а также функции присваивания значений некоторому счетчики предикатов проверяющих значения счетчика. Доказательство этой теоремы состоит в преобразовании каждой части алгоритма в одну из трех основных структур или их комбинацию так, чтобы неструктурированная часть алгоритма уменьшилась. После достаточного числа таких преобразований оставшаяся неструктурированной часть либо исчезнет, либо станет ненужной. Доказывается, что в результате получится алгоритм, эквивалентный исходному и использующий лишь упомянутые управляющие структуры. |
|
|
|
10 Обращение неструктурных программ в структурированые В основе с.п. лежит одно требование :каждый модуль алгоритма или программы должен иметь один вход и один выход. Логическая структура программы может быть выражена при помощи комбинаций трех структур. 1. Функциональный блок; 2. Конструкция принятия двоичного решения; 3. Конструкции обобщенного цикла. Функциональный блок – это последовательность вычислений или отдельный вычислительный оператор с единственным входом и единственным выходом. Изо
|
11 Метод дублирования процессов Метод дублирования кодов программы, как способ преобразования неструктурированных программ в структурированные рассмотрим на примере. Изображенная на рисунке программа не является структурированной, потому что не удовлетворяет условию “наличия одного входа и одного выхода”, а присутствующие на рисунке стрелки обозначают операторы перехода. Сущность метода дублирования кодов заключается в дублировании модулей исходного алгоритма, в которые можно осуществить вход из нескольких мест. |
12 Метод булевого признака в этом методе требуется введение в программу некоторого признака (FLAG), Начальное значение признака задается в некоторой точке выше цикла; конструкциями типа DO-WHILE осуществляется управление циклом до тех пор, пока названный признак сохраняет заданное значение; и наконец, некоторыми условиями внутри цикла определяется момент смены значения признака. Таким образом, программа представляется в форме: . . . . . . FLAG = 0 . . . . . . WHILE FLAG = 0 DO BEGIN . . . . . . IF X = Y THEN FLAG=I . . . . . . END
|
13 Программирование. Общие понятия Программирование - процесс создания последовательности действий для получения ожидаемого результата. Программа - это последовательность команд, понятных компьютеру. Требования, предъявляемые к программе 1. Минимальные требования к компьютеру, на котором работает программа. 2. Ясность входных и выходных данных и простота программы. 3. Минимальное время создания программы и простота ее изменения. 4. Минимальное время работы программы, минимум занимаемой памяти и минимум использованных в программе операторов. Свойства программ: Выполнимость - возможность выполнения программы на данном типе компьютеров. Мобильность - возможность переноса программы на другой тип компьютеров. Правильность программы - правильность результатов, получаемых с помощью данной программы. Эффективность - минимум времени выполнения, минимум машинной памяти и других ресурсов компьютера.
|
14 Основные этапы решения задач на ЭВМ. 1. Постановка задачи: • сбор информации о задаче; • формулировка условия задачи; • определение конечных целей решения задачи; • определение формы выдачи результатов; • описание данных (их типов, диапазонов величин, структуры и т. п.). 2. Анализ и исследование задачи, модели: • анализ существующих аналогов; • анализ технических и программных средств; • разработка математической модели; • разработка структур данных. 3. Разработка алгоритма: • выбор метода проектирования алгоритма; • выбор формы записи алгоритма (блок-схемы, псевдокод и др.); • выбор тестов и метода тестирования; • проектирование алгоритма. 4. Программирование: • выбор языка программирования; • уточнение способов организации данных; • запись алгоритма на выбранном языке программирования. 5. Тестирование и отладка: • синтаксическая отладка; • отладка семантики и логической структуры; • тестовые расчеты и анализ результатов тестирования; • совершенствование программы. 6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5. 7. Сопровождение программы: • доработка программы для решения конкретных задач; • составление документации к решенной задаче, к математической модели, к алгоритму, к программе, к набору тестов, к использованию.
|
15 Состав языков программирования: алфавит, синтаксис, семантика. Основные символы языка— буквы, цифры и специальные символы — составляют его алфавит. Описание каждого элемента языка задается его синтаксисом и семантикой. Синтаксические определения устанавливают правила построения элементов языка. Семантика определяет смысл и правила использования тех элементов языка, для которых были даны синтаксические определения. |
16 Типы и структуры данных. В языке Паскаль существуют скалярные и структурированные типы данных. К скалярным типам относятся стандартные типы и типы, определяемые пользователем. Иерархия типов в языке Паскаль такая:
Тип определяет множество допустимых значений, которые может тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет формат внутреннего представления данных в памяти ПК.
|
||
18 Векторы и Алгебра векторов. Вектор – упорядочная система «n» - элементов. Вектор в программировании— одномерный массив. Длиной (модулем, абсолютной величиной) вектора называется расстояние между его начальной и конечной точками. Вектор—это элемент векторного пространства. С точки зрения математики, после выбора базиса пространства, вектор представляет собой набор величин (координат вектора), которые меняются строго определённым образом при изменении базиса и системы координат, транспонированием Нулевым вектором называется вектор, все элементы которого раны нулю. Он обозначается 0. Два вектора одинаковой размерности N можно перемножить. Норма вектора Скалярное произведение вектора самого на себя называется скалярным квадратом. Эта величина определяет квадрат длины вектора x. Скалярное произведение определяет и угол φ между двумя векторами x и yЕсли вектора ортогональны, то cosφ = 0 и φ = π/2, а если они колинеарны, то cosφ = 1 и φ = 0.
|
19 Конструктор-селектор вектора в различных языках программирования Описание массива в Паскале. В языке Паскаль тип массива задается с использованием специального слова array (англ. – массив), и его объявление в программе выглядит следующим образом: Type < имя _ типа >= array [ I ] of T; Вот, например, объявление двух типов: vector в виде массива Паскаля из 10 целых чисел и stroka в виде массива из 256 символов: Type Vector=array [1..10] of integer; Stroka=array [0..255] of char; В языке С++ vector<int> myVector; // Пустой вектор из элементов типа int vector<float> myVector(10) // Вектор из 10-и элементов типа float vector<char> myVector(5, ' ') // Вектор, состоящий из 5-и пробелов Обрещение к элементам вектора myVector [i]
|
20 Матрицы и матричное исчисление. Матрица – двумерный масив Array [1..10,1..10] of real a [ i , j ] Простейшие операции с матрицами
|
21 конструктор-селектор вектора в разных языках программирования На языка Pascal var a: array[1..10] of integer; {одномерный массив(матрица)}
На языке C++ int Matrix[a][b] = { //при а и b равное 2 (), () };
|
22 Множества и алгебра множеств
Множество есть совокупность различных элементов, мыслимая как единое целое Задаётся перечислением тех объектов которые входят в множества. В Турбо Паскале множество может содержать от 0 до 255 элементов |
23 Операции над множествами и их свойства Принадлежность элемента множеству: Где a - элемент и A-- множество Объединение множеств:. Пересечение множеств: . Разность множеств:A\B. Симметрическая разность множеств:. Дополнение множества: . Если предположим, что множество A является подмножеством некоторого универсального множества U тогда определяется операция дополнения: Вхождение одного множества в другое множество:. Не вхождение одного множества в другое множество:.
|
24 Множественный тип данных. Множественный тип данных – состоит из нескольких значений базового типа. Var<идентификатор>: Set Of <базовый тип> Var A,D: Set Of Byte; Определение. Под множеством в Паскале понимается конечная совокупность элементов, принадлежащих некоторому базовому типу. Некоторые моменты математического аппарата этой теории реализованы в Паскале через множественный тип данных. В отличие от элементов массива элементы множества не пронумерованы, не упорядочены. Каждый отдельный элемент множества не идентифицируется, и с ним нельзя выполнить какие-либо действия. Действия могут выполняться только над множеством в целом. Конструктор множества. Конкретные значения множества задаются с помощью конструктора множества, представляющего собой список элементов, заключенный в квадратные скобки.
|
25 Символьный тип данных Символьный тип (Char) Символьный тип (Сhar) — простой тип данных, предназначенный для хранения одного символа в определённой кодировке. Символьная константа может записываться в тексте программы тремя способами: – как один символ, заключенный в апострофы, например:'A' – с помощью конструкции вида #K, где K – код соответствующего символа, при этом значение K должно находиться в пределах 0…255; – с помощью конструкции вида ^C, где C – код соответствующего управляющего символа, при этом значение C должно быть на 64 больше кода управляющего символа. К величинам символьного типа применимы все операции отношения. Для величин символьного типа определены две функции преобразования Ord(C), Chr(K). Первая функция определяет порядковый номер символа С в наборе символов, вторая определяет по порядковому номеру К символ, стоящий на К-м месте в наборе символов. Порядковый номер имеет целый тип. К аргументам символьного типа применяются функции, которые определяют предыдущий и последующий символы: Pred(C), Succ(C), Pred('F') = 'E', Succ('Y') = 'Z'.
|
26 Строковый тип операция конкатенации Строка — это последовательность символов. Каждый символ занимает 1 байт памяти (код ASCII). Количество символов в строке называется ее длиной. Длина строки может находиться в диапазоне от 0 до 255. Строковые величины могут быть константами и переменными. Особенностью строки в Turbo Pascal является то, что с ней можно работать как с массивом символов, с одной стороны, и как с единым объектом, — с другой.
Var <идентификатор> :string[<максимальная длина строки>];
Конкатена́ция (сцепле́ние) — операция склеивания объектов линейной структуры, обычно строк. Например, конкатенация слов «микро» и «мир» даст слово «микромир». (пример s:=concat(s1,s2))
|
27 Функции и процедуры над строковыми данными. length(s) определить длину s copy(s1) копировать значение s1 concat(s1,s2) объединить строки s1 и s2 delete(s,n,k) удалить символы (s – откуда, n – начиная с какого, k – сколько) insert(k,s,n) вставить текст (k – что, s – куда, n – после какого символа) pos(k,s) найти номер символа (k – какого, s – где)
|
28 математическая модель комбинированного типа данных При работе с массивами основное ограничение заключается в том, что каждый элемент должен иметь один и тот же тип. Однако при решении многих задач возникает необходимость хранить и обрабатывать совокупности данных различного типа как единое целое. Комбинированный тип данных — это составной тип данных, содержащий набор элементов разных типов. Составляющие запись элементы называются ее полями. В записи каждое поле имеет свое собственное имя. Чтобы описать запись, необходимо указать ее имя, имена объектов, составляющих запись и их типы. Общий вид такой: Туре <имя записи> = Record <поле 1>:<ТИП 1>; <поле 2>:<тип 2>; …………………….. <поле п>:<тип п> Type date=Record Dyear: 1583..3000; Dmonth: 1..12; Dday:1 ..31; End |
29 Записи вариантные записи. Часто бывает удобно в пределах одной записи иметь различную информацию в зависимости от конкретного значения некоторого поля. Комбинированный тип помимо фиксированного списка полей может содержать вариантную часть, предполагающую несколько вариантов структуры этого типа. Это означает, что разные переменные, относящиеся к одному и тому же типу, могут иметь отличающуюся структуру. Вариантная часть содержит несколько альтернатив, в каждой из которых в круглых скобках задается список полей, присущих данному варианту. Списку предшествует метка, являющаяся конкретным значением поля, которое служит критерием выбора вариантов. Type VR = Record s: string; Case byte of { Безымянный селектор } 1: (i: integer); { или значение типа Integer } 2: (f: double); { или значение типа Double, причем оба значения, i и f начинаются по одному и тому же адресу, хотя и имеют разную длину } end; Синтаксис определения вариантной части <вариантная часть>::= case <поле признака> <имя типа> of <вариант>{;<вариант>} <вариант>::=<список меток варианта>:(<список полей>) _ <пусто> <список меток варианта>::=<метка варианта>{;<метка варианта>} <метка варианта>::=<константа> <поле признака>::=<имя>: <пусто>
|
30 Синтаксические диаграммы комбинированного типа данных.
Синтаксис записей, содержащих вариантную часть (записей с вариантами), мы определим ниже. Комбинированный тип (запись) определяет структуру данных, состоящую из фик- сированного числа компонент, называемых полями записи. Поля записи могут быть раз- личного вида. В определении типа записи задается имя и тип каждого поля записи. Тип записи определяется в разделе типов, а переменные этого типа – в разделе переменных в соот- ветствии со следующими определениями: <комбинированный тип>::= RECORD < список полей > END < список полей >::= < фиксированная часть > < фиксированная часть >;< вариантная часть > < вариантная часть > < фиксированная часть >::= < секция записи > {,< секция записи >} < секция записи >::= < имя поля >{,< имя поля >}:< тип > < пусто > Синтаксис записей, содержащих вариантную часть (записей с вариантами), мы определим ниже. Различные синтаксические диаграммы могут определять один и тот же синтаксис: Запись может входить в состав данных более сложной структуры. Можно говорить, например, о массивах и файлах, состоящих из записей. Запись может быть полем дру- гой записи. 33 Иерархическая модель данных ИМД базируется на двух формах – графическая и табличная. Вершина – сущность, дуги – отношение Иерархическая модель данных — представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней. Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами. Иерархическая БД состоит из упорядоченного набора деревьев; более точно, из упорядоченного набора нескольких экземпляров одного типа дерева. Тип дерева состоит из одного «корневого» типа записи и упорядоченного набора из нуля или более типов поддеревьев (каждое из которых является некоторым типом дерева). Тип дерева в целом представляет собой иерархически организованный набор типов записи.
|
31 Селектор записи И пример использования данного поля-селектора: var R: VR; R.i := 10; { <--- устанавливаем целочисленное значение в 10 } R.style := stInteger; { <--- и ставим соотв. признак } { Теперь, анализируя поле-селектор, можно точно сказать, какое именно значение было сохранено - целочисленное, или вещественное, и корректно работать с данными (к примеру, формат вывода для целочисленных и вещественных значений различен, выбираем правильный): } case R.style of stInteger: writeln('В записи хранится целое число: ', R.i:5); stDouble: writeln('В записи - вещественное значение: ', R.f:10:5); end; ... тип селектора может быть любым, главное условие - чтобы он был перечислимым, и чтобы его емкость была не меньше числа вариантов в записи... Например, селектор типа Boolean, = 2 Type VR = Record s: string; Case Boolean of { Безымянный селектор } False: (i: integer); True: (f: double); end; , т.е. метки должны быть того же типа, что и селектор...
|
32 понятие модели данных. Модель данных - формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта: а) структуры: методы описания типов и логических структур данных в базе данных; б) манипуляции: методы манипулирования данными; в) целостности: методы описания и поддержки целостности базы данных. Аспект структуры определяет, что из себя логически представляет база данных. Аспект манипуляции определяет способы перехода между состояниями базы данных (то есть способы модификации данных) и способы извлечения данных из базы данных. Аспект целостности определяет средства описаний корректных состояний базы данных. Модель данных — это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы — поведение данных. Каждая БД и СУБД строится на основе некоторой явной или неявной модели данных.
|
36 Реляционная алгебра. Основные операции Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных. Реляционная алгебра — замкнутая система операций над отношениями в реляционной модели данных.
|
37 Понятие базы данных База данных- набор сведений, хранящихся некоторым упорядоченным способом. Иными словами, база данных - это хранилище данных. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных (СУБД). Система управления базами данных - это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д. В общем СУБД - это система, позволяющая создавать базы данных и манипулировать сведениями из них. А осуществляет этот доступ к данным СУБД посредством специального языка - SQL. SQL - язык структурированных запросов, основной задачей которого является предоставление простого способа считывания и записи информации в базу данных.
|
38 Архитектура банка данных Архитектура представлена тремя уровнями:
Внутренний уровень близок к физическим структурам хранимой информации. Внутренний уровень учитывает методы доступа операционной системы для манипулирования данными на физическом уровне, что в снижает независимость операций обработки данных от технических средств, Внешний уровень является уровнем пользователей СУБД, т.к. он является уровнем восприятия каждого пользователя, для каждого пользователя создается свой внешний уровень (схема - модель с соответствующим языком описания данных). Типичным воплощением внешнего уровня является использование представлений (VIEW) в языке SQL. Концептуальный уровень является обобщением локальных представлений пользователей, т.е. является общим глобальным описанием предметной области в терминах (концептах) конкретной СУБД. Важно отметить, что концептуальный уровень исполняет роль некоторого стандарта пользователей, согласуя их представление о предметной области в единое целое. Банк данных создается для удовлетворения информационных потребностей пользователя.
|
void __fastcall TForm1::Button1Click(TObject *Sender) { Memo1->Clear(); int i,d,a; double s,e,x; s=0; i=1; d=1; a=atoi(Edit1->Text.c_str()); if (a==0) { a=1; ShowMessage("Ошибка: альфа должна быть больше 0"); Edit1->Text="1"; } AnsiString q; q="0,"+Edit2 -> Text; e=q.ToDouble(); do { x=(1/pow(i,a))*d; s=s+x; d=-d; i=i+1; } while(abs(x)>e); Memo1->Lines->Add(s); }
|
|
|