Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция по информатике.doc
Скачиваний:
24
Добавлен:
02.05.2014
Размер:
911.87 Кб
Скачать

Базовые понятия информатики. Понятие «Информатика» и «Информация» 6

Информация 7

Знание 10

Информационные технологии 11

Понятие алгоритма. Свойства и классы алгоритмов. Формы представления алгоритмов 12

Понятие алгоритма. Базовые алгоритмические структуры 16

Представление данных в памяти персонального компьютера. 19

Принципы обработки программных кодов 23

Компиляторы 24

Интерпретатор 24

Язык С. История развития. Основные свойства языка 26

Отличительные особенности языка C 26

Элементы языка C 28

Базовые типы данных 34

Структура программы на C++ 37

Директива #include 38

Использование void 39

Инструкция return 39

Описание переменных 40

Обработка данных. Операторы 41

Арифметические операторы 41

Приоритет операторов и порядок вычислений 42

Используемые алгоритмы обработки данных 45

Аккумуляторы 46

Преобразования типов данных 47

Функции языка C++ 49

Декларации и дефиниции функций 49

Формальные и фактические параметры. Вызов функций 50

Возврат функцией значений 50

Переменные в функциях 51

Автоматические (локальные) переменные 51

Внешние (глобальные) переменные 52

Статические переменные 53

Передача параметров по значению 54

Передача параметров по ссылке 55

Значения параметров по умолчанию 56

Перегрузка функций 57

Рекурсия 58

Встроенные функции 59

Обработка символьных данных 61

Вывод в C/C++ 61

Функция puts() 61

Функция putchar() 62

Функция printf() 62

Выбор правильных средств вывода информации 65

Вывод в Си++ 66

Ввод в C/C++ 66

Функция gets() 66

Функция getchar() 68

Функция scanf() 68

Выбор соответствующих средств ввода данных 70

Ввод в Си++ 71

Управляющие структуры 71

Структуры выбора (if / else) 71

Структуры выбора (switch/case/default) 73

Структуры повторения (циклы) 75

Использование цикла for 75

Использование цикла do...while (постусловие) 76

Использование цикла while (предусловие) 77

Операторы передачи управления 77

Оператор безусловного перехода goto 77

Оператор break 78

Оператор continue 78

Препроцессор языка Си 78

Массивы 80

Объявление переменной массива 80

Использование индексной переменной 81

Если ваши программы используют массив, обычной операцией является использование индексной переменной для обращения к элементам массива. 81

Каждый раз, когда цикл for увеличивает переменную i, программа может обратиться к следующему элементу массива. 81

Инициализация массива при объявлении 81

Как вы уже знаете, C++ позволяет вашим программам инициализировать переменные при объявлении. То же верно и для массивов. При объявлении массива вы можете указать первоначальные значения, поместив их между левой и правой фигурными скобками, следующими за знаком равенства. Например, следующий оператор инициализирует массив values: 81

Если вы не указываете первоначальное значение для какого-либо элемента массива, большинство компиляторов C++ будут инициализировать такой элемент нулем. Например, следующее объявление инициализирует первые три из пяти элементов массива: 81

Программа не инициализирует элементы values[3] и values[4]. В зависимости от вашего компилятора, эти элементы могут содержать значение 0. 82

Если вы не указываете размер массива, который вы инициализируете при объявлении, C++ распределит достаточно памяти, чтобы вместить все определяемые элементы. Например, следующее объявление создает массив, способный хранить четыре целочисленных значения: 82

Передача массивов в функции 82

Ваши программы будут передавать массивы в функции точно так же, как и любые другие переменные. Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. 82

Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр, например number_of_elements, который содержит количество элементов в массиве: 82

Следующая программа ARRAYFUN.CPP передает массивы в функцию show_array, которая использует цикл for для вывода значений массивов: 82

Как видите, программа просто передает массив в функцию по имени, а также указывает параметр, который сообщает функции количество элементов, содержащихся в массиве: 82

Следующая программа GETARRAY.CPP использует функцию get_values, чтобы присвоить три значения массиву numbers: 82

Как видите, программа передает массив в функцию по имени. Функция в свою очередь присваивает массиву элементы. 83

Функция sizeof 83

Оператор sizeof определяет размер памяти, выделяемый под переменную определенного типа. С его помощью можно также определять объем памяти, выделяемый под массив или какой-либо из его элементов. 83

Использование констант при объявлении массивов 83

При работе с массивами необходимо указать размер массива. 83

Предположим, мы хотим изменить программу, увеличив размер массива до 10 значений; в этом случае нам придется изменить не только объявление массива, но и границу цикла for. Альтернативой этому является объявление массива с использованием константы. 83

Теперь, если понадобится изменить размер массива, можно просто изменить значение константы ARRA Y_SIZE; в этом случае автоматически изменится как верхняя граница цикла обработки массива, так и размер самого массива. 84

Символьные строки 84

Программисты на C++ широко используют символьные строки для хранения имен пользователей, имен файлов и другой символьной информации. 84

Для объявления символьной строки внутри программы просто объявите массив типа char с количеством элементов, достаточным для хранения требуемых символов. Например, следующее объявление создает переменную символьной строки с именем filename, способную хранить 64 символа (не забывайте, что символ NULL является одним из этих 64 символов): 84

Главное различие между символьными строками и другими типами массивов заключается в том, как C++ указывает последний элемент массива. 84

Программы на C++ представляют конец символьной строки с помощью символа NULL, который в C++ изображается как специальный символ ' '. Когда вы присваиваете символы символьной строке, вы должны поместить символ NULL (' ') после последнего символа в строке. Например, следующая программа ALPHABET. CPP присваивает буквы от А до Я переменной alphabet, используя цикл for. Затем программа добавляет символ NULL в эту переменную и выводит ее с помощью cout. 84

Когда выходной поток cout выводит символьную строку, он по одному выводит символы строки, пока не встретит символ NULL. 84

Как 'А' отличается от "А" 84

При рассмотрении программ на C++ вы можете встретить символы, заключенные в одинарные кавычки (например, 'А') и символы, заключенные в двойные кавычки ("А"). Символ внутри одинарных кавычек представляет собой символьную константу. Компилятор C++ выделяет только один байт памяти для хранения символьной константы. Однако символ в двойных кавычках представляет собой строковую константу — указанный символ и символ NULL (добавляемый компилятором). Таким образом, компилятор будет выделять два байта для символьной строки. 84

В зависимости от потребностей программы может возникнуть необходимость включения в строку знаков кавычек. Предположим, что требуется представить следующую строку: 84

Поскольку в Си двойные кавычки используются для определения строковой константы, необходимо средство, подсказывающее компилятору присутствие кавычек в строке. Для задания кавычки в строке используется последовательность \": 85

Инициализация символьной строки 85

Как вы уже знаете, C++ позволяет вам инициализировать массивы при объявлении. Символьные строки C++ не являются исключением. Для инициализации символьной строки при объявлении укажите требуемую строку внутри двойных кавычек, как показано ниже: 85

Если количество символов, присваиваемое строке, меньше размера массива, большинство компиляторов C++ будут присваивать символы NULL остающимся элементам строкового массива. Как и в случае с массивами других типов, если вы не указываете размер массива, который инициализируете при объявлении, компилятор C++ распределит достаточно памяти для размещения указанных букв и символа NULL: 85

Следующая программа INIT_STR.CPP инициализирует символьную строку при объявлении: 85

Передача строк в функцию 85

Передача символьной строки в функцию подобна передаче любого массива в качестве параметра. Внутри функции вам нужно просто указать тип массива (char) и левую и правую скобки массива. Вам не надо указывать размер строки. Например, следующая программа SHOW_STR.CPP использует функцию show_string для вывода символьной строки на экран: 85

Так как символ NULL указывает конец строки, функция не требует параметр, который задает количество элементов в массиве. Вместо этого функция может определить последний элемент, просто найдя в массиве символ NULL. 86

Вычисление длины строки 86

Известно, что символ NULL рассматривается в функциях Си обычно как символ, обозначающий конец строки. Такие функции, как fgets и cgets, присваивают символ NULL автоматически. В следующей программе SHOW_STR.C функция sets используется для чтения строки символов с клавиатуры, -затем с помощью цикла for выполняется посимвольный вывод содержимого строки до тех пор, пока не будет обнаружен символ NULL: 86

При работе программы со строками многие из выполняемых операций базируются на количестве символов в строке. Для определения в программе количества символов строки большинство Си-компиляторов предоставляет функцию strlen, которая возвращает число символов в заданной строке. Функция strlen имеет следующий формат: 86

Копирование символьных строк 86

При работе со строками часто возникает потребность в копировании одной символьной строки в другую. Для выполнения этой операции большинство Си-компиляторов предоставляет функцию strcpy, с помощью которой символы одной строки (строка-источник) копируются в другую строку (строку-цель): 86

В качестве результата функция strcpy возвращает указатель на начало целевой строки. В следующей программе STRCPY.C демонстрируется использование функции strcpy: 87

Массивы строк 87

Можно организовать массив строк точно так же, как массив данных любого другого типа. Но массив строк, по сути, будет являться уже массивом массивов символов. Массив, элементы которого сами являются массивами, называется двухмерным массивом. 87

Двухмерный массив можно представить себе как таблицу, имеющую ряды и колонки. Такой массив следует определять с двумя индексами, один из которых определяет количество рядов таблицы, а второй устанавливает количество колонок. Ниже приведены инструкции, определяющие массив, имеющий 10 рядов и 20 колонок, то есть содержащий 200 целочисленных переменных: 87

Представим себе каждый элемент как целое число, занимающее собственную клеточку в таблице 10х20. Элемент table[0][0] находится в левом верхнем углу таблицы, а элемент table[0][1] занимает соседнюю клетку справа в том же ряду. 87

Определяя массив строк, также необходимо использовать два индекса. Первый определяет максимальное количество строк в массиве, а второй указывает максимальную длину каждой строки. Таким образом, определение 87

задает десять строковых переменных names длиной не больше 19 символов в каждой. 87

Если вы хотите задавать строки путем ввода значений отдельных символов, следует использовать вложенные циклы. Внешний цикл будет повторяться 10 раз, по одному на каждую строку, а внутренний должен иметь 19 повторов для ввода значений одной строки. 87

Для того чтобы ввести символ в строку, необходимо использовать оба индекса: 87

Первый индекс указывает номер нужной строки внутри массива, а второй определяет позицию символа внутри строки. 87

Расположение матриц в памяти 87

Двумерный массив можно инициировать так: 87

Матрица хранится в памяти построчно, т.е. самый правый индекс в наборе индексов массива меняется наиболее быстро. 88

Например, для массива char aCh[2][4] будет выделено восемь байтов памяти, в которых в следующем порядке будут размещены элементы массива: 88

Трехмерный массив 88

При размещении трехмерного массива char aс[3][2][3] память под элементы этого массива будет выделяться последовательно в соответствии со следующими значениями индексов: 88

Общий объем выделяемой под массив памяти определяется как произведение всех размерностей массива (общее число элементов), умноженное на длину типа данных массива. 88

Базовые понятия информатики. Понятие «Информатика» и «Информация»

Информатика — это комплексная, техническая наука, которая изучает и систематизирует законы и приемы создания, сохранения, воспроизведения, получения, обработки и передачи данных средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ними.

Термин "информатика" происходит от французского слова Informatique и образован из двух слов: информация и автоматика. Термин информация произошел от латинского слова informatio — разъяснение, осведомление.

Появление информатики обусловлено возникновением и распространением новой технологии сбора, обработки и передачи информации, связанной с фиксацией данных на машинных носителях.

Предмет информатики как науки составляют:

  • аппаратное обеспечение средств вычислительной техники;

  • программное обеспечение средств вычислительной техники;

  • средства взаимодействия аппаратного и программного обеспечения;

  • средства взаимодействия человека с аппаратными и программными средствами.

Средства взаимодействия в информатике принято называть интерфейсом. Поэтому средства взаимодействия аппаратного и программного обеспечения иногда называют также программно-аппаратным интерфейсом, а средства взаимодействия человека с аппаратными и программными средствами — интерфейсом пользователя.

Задачи информатики как науки составляют:

  • изучить структуру, общие свойства информации, исследовать законы и методы создания, преобразования, накопления, передачи и использования информации.

  • систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Цель систематизации состоит в том, чтобы выделять, внедрять и развивать передовые, более эффективные технологии автоматизации этапов работы с данными, а также методически обеспечивать новые технологические исследования.

В рамках информатики, как технической науки можно сформулировать понятия информации, информационной системы и информационной технологии.

Можно сказать, что решение каждой задачи с помощью вычислительной машины включает запись информации в память, извлечение информации из памяти и манипулирование информацией.

Данные (data)— это такое же первоначальное понятие, как, скажем, в математике "точка": попытка дать определение начальным понятиям приводит к необходимости дополнительно определять использованные термины. Итак, будем считать, что данные — это любой набор символов и представляемых ими записей, изображений, сигналов как носителей информации, рассматриваемый безотносительно к их содержательному смыслу.

Пример данных:

812, 930, 944.

(для человека это ничего не значит, если нет объяснения, что обозначают эти цифры).

01000001 01101100 01101100 01100001

(для человека это ничего не значит, но в ASCII – это слово Alla).

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

  • сбор данных — накопление информации с целью обеспечения достаточной полноты для принятия решения;

  • формализация данных — приведение данных, которые поступают из разных источников к единой форме;

  • фильтрация данных — устранение лишних данных, которые не нужны для принятия решений;

  • сортировка данных — приведение в порядок данных за заданным признаком с целью удобства использования;

  • архивация данных — сохранение данных в удобной и доступной форме;

  • защита данных — комплекс мер, направленных на предотвращение потерь, воспроизведения и модификации данных;

  • транспортирование данных — прием и передача данных между отдаленными пользователями информационного процесса. Источник данных принято называть сервером, а потребителя — клиентом;

  • преобразование данных — преобразование данных с одной формы в другую, или с одной структуры в другую, или изменение типа носителя.