Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 2 семестр / Информатика шпоры часть2.doc
Скачиваний:
21
Добавлен:
01.05.2014
Размер:
397.82 Кб
Скачать

Понятие информации. Носители информ.

Информатика [computer science] – научное направление, занимающееся

изучением законов, методов и способов накапливания, обработки и передачи

информации с помощью ЭВМ и других технических средств. Предметом изучения

информатики являются информационные технологии и их применение для

решения прикладных задач. Информация - Данное понятие

неопределяемо. Поэтому, строго говоря, это понятие можно раскрыть только

через указание процессов, в которых оно участвует. Чаще всего под этим

понятием подразумевают содержательную сторону, отличая его от понятия

«данные», которое, следовательно, отражает собой формальную сторону.

Будем понимать под информацией [information] меру устранения

неопределённости в отношении исхода интересующего нас события.

Тогда под данными [data] будут пониматься объекты любой формы,

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

что данные – это информация, зафиксированная в определённой. Фиксация информации

в виде данных осуществляется с помощью конкретных средств

(языковых, изобразительных, числовых и т.д.) на конкретном физическом носителе.

В зависимости от методов регистрации ин-ии различают магнитные,

бумажные, оптические носители.

Файлы и каталоги

Любые данные, представленные в виде совокупности целых чисел, хранятся

в памяти ЭВМ в виде файлов. Файл [file] – именованная целостная совокупность

данных, причём не имеет значения, каких именно данных. Для файла данные –

это лишь набор целых чисел в двоичной форме, поэтому файл – это просто

последовательность байтов. Для пользователя имеют значение лишь два

признака, которые характеризуют файл как таковой: имя файла и его размер.

Как правило, файлы сортируются пользователем согласно определённым

признакам по группам. Список такой группы называется каталогом [directory].

Таким образом, организуется особая иерархическая структура – дерево

каталогов. Вершина такого дерева называется корневым каталогом [root directory].

Имя корневого каталога всегда строго определено (на рис. 1.6 - C:\) и зависит от

файловой системы

Понятие программы

Решение задачи на ЭВМ – это процесс получения результатных данных на

основе обработки исходных с помощью программы.

Программа [program, routine] – это просто последовательность команд,

понятных ЭВМ, или машинных команд. Машинные команды [computer instruction]

представляют собой целые числа, принимая которые, ЭВМ производит строго

определённые действия. Набор этих команд зависит от конкретной ЭВМ и носит

название машинного языка [computer (machine) language]. Машинные команды,

как и данные, хранятся в файлах, однако, файлу с командами можно передать

управление компьютером. Такие файлы также называют программами.

Понятие алгоритма и алгоритмического языка

Любая программа составлена в соответствии с некоторым алгоритмом.

Алгоритм [algorithm] – это конечный набор предписаний, для которого указано,

как и в какой последовательности эти предписания необходимо применять к

исходным данным задачи, чтобы получить её решение. Алгоритм – это общий

метод решения задачи, конкретное выражение которого будет оформлено в

виде программы. Алгоритм даёт возможность чисто механически решать любую

задачу из некоторого класса однотипных задач. Алгоритм может быть описан

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

алгоритмического языка. Алгоритмический язык [algorithmic language] – система

обозначений, предназначенная для точного описания алгоритмов для ЭВМ и ли

достаточная для автоматического нахождения таких алгоритмов

Машинный язык относится к внутреннему уровню представления обработки

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

случаях. Алгоритмические языки представляют собой внешний уровень и имеют

форму, удобную для восприятия человеком.

Представление и обработка данных

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

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

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

человека (внешнее представление) или для ЭВМ (внутреннее представление).

Во внутреннем представлении данные могут быть описаны в аналоговой

(непрерывной) или цифровой (дискретной) формах. В соответствии с этим

различают аналоговые и цифровые ЭВМ. Практически все используемые ЭВМ в

настоящее время являются цифровыми. Таким образом, любые данные в

современных ЭВМ представляются в виде целых чисел.

Любые виды данных, обрабатываемых на ЭВМ, могут быть сведены к

совокупности простейших форм: набор символов (текст), звук (мелодия),

изображение (фотографии, рисунки, схемы), вещественные и целые числа

(числовая информация).

Каждый такой вид данных должен быть некоторым универсальным образом

представлен в виде набора целых чисел

Процедуры обработки данных также представляются

на внешнем и внутреннем уровне. На внутреннем уровне каждая такая

процедура представляет собой последовательность логических операций с

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

кодируются с помощью средств машинного языка.

На внешнем уровне процедуры представляются в виде алгоритма.

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

Описание переменных. Типы данных

Переменная - это область оперативной памяти, занимающая Несколько

ячеек и имеющая свое имя. Переменная обладает следующими свойствами:

переменная хранит не более 1 значения;

переменная способна хранить значения только одного и того же типа;

переменная хранит значение до тех пор, пока в нее не поместят новое значение, при этом предыдущее содержимое переменной стирается;

значение переменной может быть вызвано для использования сколько угодно раз без изменения оригинала;

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

Различные типы данных занимают в оперативной памяти компьютера

разное количество ячеек (емкость одной ячейки- 1 байт). Перед началом

вычислений следует сообщить компьютеру, сколько ячеек памяти надо

зарезервировать под ту или иную переменную. Для этого в блоке "VAR"

раздела описаний программы должны быть описаны все используемые

переменные, то есть должно быть указано имя каждой переменной и типы

данных, которые будут храниться в этих переменных.

В Турбо-Паскале приняты следующие простые типы данных

(типы значений констант и переменных):

Integer- Для хранения значения в переменной типа integer, в оперативной

памяти компьютера отводится 2 байта памяти.

Real- Под значение переменной типа REAL в памяти отводится 6 байт.

Над переменными типа INTEGER и REAL можно выполнять

4 арифметические операции:

+ (сложение);

- (вычитание);

* (умножение);

/ (деление вещественное);

div (целочисленное деление).

ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ в теле процедуры имеют тот же смысл, что

и до входа в процедуру, и их значение может быть изменено процедурой.

Таким образом, с помощью глобальных переменных можно осуществлять

непосредственную связь процедуры с внешним блоком, минуя связь через

параметры. ЛОКАЛЬНЫЕ ПЕРЕМЕННЫЕ описываются в теле процедуры,

их используют в вычислениях внутри процедуры, но не для передачи

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

из процедуры прекращает существование, а при каждом очередном вхождении

в процедуру возникает заново.

Понятие о массиве

При решении задач с использованием большого количества однотипных

упорядоченных данных, часто возникает необходимость объединять ряд

переменных, хранящих значения одинакового типа, в единую структуру,

имеющую общее имя. Для этих целей существуют массивы.

МАССИВ - упорядоченная группа фиксированного количества переменных

одного типа, имеющая общее имя. "Группа переменных" в данном смысле

означает, что каждый элемент массива является переменной, для хранения значения

которой в памяти отводится определенная область. "Упорядоченная"- означает, что

переменные в массиве хранятся не хаотично, а в установленном порядке, по очереди.

"Фиксированное количество" означает, что количество переменных в массиве не

бесконечно, оно ограничено определенным числом (размерностью массива), которое

указывается при описании массива. "Одного типа" - означает, что переменные,

входящие в массив, должны хранить данные одного типа (Real, Integer, Char,

Boolean и т.д.), который называется типом элементов массива. Каждому массиву

дается собственное имя (идентификатор). По аналогии с переменными, значения

элементов массива (переменных, составляющих массив) до выполнения программы

не определены. Значения в элементы массива записываются с помощью оператора

присваивания. Над переменными, составляющими массив (над элементами массива)

можно выполнять те же действия, что и над обычными переменными - присваивать

и считывать значения, преобразовывать значения и сравнивать их. Каждый элемент

массива имеет свое имя, представляющее собой имя массива и стоящие за ним

квадратные скобки, в которых указывается индекс элемента - целое число, равное

порядковому номеру этого элемента в массиве. Таким образом, для ссылки на

отдельный элемент массива используется запись вида: имя массива[индекс].

Двумерные массивы Одномерный массив (вектор) имеет вид таблицы из одной

строки, ячейки которой заполнены значениями. Рассматривая ДВУМЕРНЫЙ массив,

можно провести аналогию с таблицей, имеющей несколько строк и столбцов. Если

отдельный элемент одномерного массива мы обозначали именем массива с индексом

(А[i]), то для обозначения элемента двумерного массива (матрицы) потребуются два

индекса: один - для указания номера строки, другой - для указания номера столбца,

на пересечении которых находится нужный элемент: А[i,j]. Двумерные массивы

описываются сходно с массивами одномерными: Заполнение двумерных массивов

данными и вывод данных из двумерного массива осуществляется с использованием

двух циклов, один из которых вложен в другой. Внутренний цикл перебирает индексы

столбцов, наружный - индексы строк

Операторы ввода-вывода

Операторы ввода-вывода необходимы для ввода в компьютер

данных с клавиатуры либо вывода результатов расчета на экран дисплея.

Для ввода данных используется оператор "Readln", например Readln(A),

где А- имя переменной. Встретив в тексте программы оператор

Readln (имя переменной), компьютер останавливается и ждет, когда с

клавиатуры будет введено значение для указанной переменной и нажата

клавиша ENTER. После этого ячейка оперативной памяти, отведенная для

переменной, будет заполнена введенными данными.Вывод данных на экран

осуществляется операторами Write(A,B,C, ... ,Z), либо Writeln(A,B,C, ... ,Z),

где A,B,C, ... ,Z - имена переменных либо выражения. Разница между этими

двумя схожими операторами в следующем: при выполнении оператора Writeln( )

все перечисленные в нем элементы печатаются в одну строку в заданном порядке,

после чего курсор переводится в начало следующей строки. Если после вывода

последнего элемента списка необходимо оставить курсор на той же строке,

следует использовать оператор вывода Write( ).Часто при программировании

необходимо вывести на экран небольшие текстовые сообщения: заголовок

таблицы, пояснение к вводимым или выводимым данным и т.п. Для этого

выводимый текст ограничивается с обеих сторон апострофами и записывается в

оператор вывода: Writeln('Введите исходные данные'); Такой оператор выводит

на экран все символы, заключенные между апострофами, но сами апострофы

не печатаются.Если в операторе вывода числовые переменные отделяются друг

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

одну строку, что затруднит чтение :В данной программе оператор Writeln без

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

отделить ею результат от исходных данных. Стоящий в конце программы

оператор Readln без параметра позволяет программным путем задержать окно

пользователя USER SCREEN до тех пор, пока не будет нажата клавиша ENTER.

Если результаты расчета надо вывести не на экран, а на принтер, то в раздел

описаний программы надо добавить блок Uses, в котором указать имя модуля

PRINTER. Далее, в тех операторах вывода (Write, Writeln), которые должны

выводить данные на бумагу, надо добавить после открывающейся скобки

слово LST, например:

Рекурсия

В Паскале подпрограммы могут обладать свойством рекурсии, то есть в ходе

работы подпрограмма может вызывать сама себя. Различают 2 формы

рекурсии: прямую и косвенную. При прямой рекурсии процедура содержит

оператор обращения к самой себе: A-AПри косвенной рекурсии одна процедура

вызывает другую, которая сама либо посредством других процедур вызывает

исходную процедуру: A-B-AПри выполнении правильно организованного

рекурсивного блока осуществляется многократный последовательный переход

от некоторого текущего уровня организации алгоритма к нижнему уровню до

тех пор, пока не будет найдено условие, при котором рекурсия останавливается.

В этом случае процедура обращается к себе опосредованно, косвенно, путем

вызова другой процедуры, в которой содержится обращение к первой процедуре.

При создании косвенной рекурсии возникает проблема: как описать вызываемую

процедуру. Как известно, в Паскале все переменные, константы, метки, процедуры

должны быть описаны до того, как будут упомянуты в операторах или выражениях,

в противном случае компилятор объявит их имена неизвестными. В косвенной

рекурсии процедура "А" вызывает процедуру "В", которая не описана. Выход из

ситуации в следующем: используется опережающее описание с помощью директивы

FORWARD. Эта директива объявляет только заголовок вызываемой процедуры,

заменяя собой тело процедуры, откладывая описание содержимого

(раздела операторов) на дальнейшее. Местоположение раздела операторов уже

не играет роли, и в нем можно не указывать формальные параметры, а

ограничиться лишь именем подпрограммы:

Оператор перехода. Пустой оператор

В Паскале принят естественный порядок выполнения операторов, т.е. операторы

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

ОПЕРАТОР ПЕРЕХОДА позволяет задавать любой желаемый порядок выполнения

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

с места, помеченного указанной в операторе меткой. Оператор перехода имеет

вид: goto:метка; Любой оператор в программе может быть помечен, т.е. снабжен

меткой, которая предшествует оператору и отделяется от него двоеточием:

МЕТКА : ОПЕРАТОР ; Метка может иметь произвольное имя, в качестве меток

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

метка должна быть описана в блоке LABEL раздела описаний. Если в программе

несколько меток, то в блоке LABEL они приводятся в виде списка, отделяясь друг

от друга запятыми: LABEL 25, 0, Loop, 21, lab1; Порядок перечисления меток в списке

безразличен. При использовании меток необходимо учитывать, что метки, описанные

в подпрограмме (процедуре, функции), локализуются в ней, поэтому переход извне

подпрограммы на метку внутри нее невозможен. Также невозможен переход из

подпрограммы на метку, расположенную в основном блоке программы. Следует помнить,

что частое использование оператора перехода ухудшает наглядность программы,

затрудняет ее понимание и отладку. Еще в марте 1968г. на эту тему была опубликована

историческая статья голландского программиста Эдсгера Дейкстри

"GOTO Statement Considered Harmful" ("о вреде оператора GOTO"). Использование

оператора перехода обосновано лишь в отдельных случаях, например для досрочного

выхода из цикла или перехода в конец программы для окончания ее работы

ПУСТОЙ ОПЕРАТОР не предписывает никаких действий, он представляет собой

пустую последовательность символов (т.е. отсутствие символов). Как и обычные

операторы, пустой оператор может быть помечен меткой. Пустой оператор отделяется

от других операторов точкой с запятой. Наиболее часто пустой оператор используется

для того, чтобы поместить в программе "точку", на которую должен осуществляться

переход по оператору перехода, но при этом не надо выполнять никаких

дополнительных действий; например, надо просто выйти из программы - для этого

ставим пустой оператор с меткой перед словом end:

Билет № 2

1. Информационные процессы и управление. Обрат¬ная связь

Жизнедеятельность любого организма или нор¬мальное функционирование технического устройства связаны с процессами управления. Процессы управле¬ния включают в себя получение, хранение, преобразо¬вание и передачу информации. В любом процессе управления всегда происходит взаимодействие двух объектов — управляющего и управляемого, которые соединены каналами прямой и обратной связи. По каналу прямой связи передаются управляющие сигналы, а по каналу обратной связи — информация о состоянии управляемого объекта. Модели, описывающие информационные процессы управления в сложных системах, называются инфор¬мационными моделями процессов управления. В компьютере информация хранится во внешней памяти (на гибких или жестких магнитных дисках). В процессе записи информации дисковод обеспечива¬ет запись информации на дискету, т. е. объект Диско¬вод (управляющий объект) изменяет состояние друго¬го объекта Дискеты (управляемого объекта).

Сначала рассмотрим процесс записи информации на гибкую дискету. Чтобы информация могла быть за¬писана, необходимо установить магнитную головку дисковода над определенной концентрической дорож¬кой дискеты. При записи информации на гибкие дис¬кеты не требуется особой точности установки (имеется всего 80 дорожек) и можно не учитывать возможные механические деформации носителя. Управляющий объект (дисковод) просто перемещает магнитную го¬ловку на определенное расстояние вдоль радиуса управляемого объекта (дискеты).

Такой процесс не учитывает состояние управляемо¬го объекта и обеспечивает управление по прямому каналу (от управляющего объекта к управляемому). Подобные системы управления называются разомкнутыми. Информационную модель разомкнутой систе¬мы управления можно наглядно представить с по¬мощью схемы

Управл.объект  Управляемый объект

При записи информации на жесткие диски требует¬ся особая точность установки (на рабочей поверхности носителя имеются тысячи дорожек) и необходимо учи¬тывать механические деформации носителя (напри¬мер, в результате изменения температуры).

В этом случае управляющий объект (система управ¬ления магнитными головками винчестера) получает информацию о реальном положении магнитной голов¬ки по каналу обратной связи и производит необходи¬мые перемещения по прямому каналу управления. Такие системы управления называются замкнуты¬ми. Информационная модель замкнутой системы управления наглядно представлена на схеме

Управляющий  Управляемый

Объект  объект

2. Строковые переменные. Строковые выражения и функции

Строковые переменные. Строковые (символьные) переменные предназначены для хранения и обработ¬ки в программах последовательностей символов. Стро¬ковые переменные задаются именами, определяющи¬ми области памяти, в которых хранятся их значения (последовательности символов). Для хранения строковых переменных требуется одна ячейка на каждый символ. Имя строковой переменной может состоять из раз¬личных символов (латинские и русские буквы, циф¬ры и т. д.), но должно обязательно начинаться с бук¬вы и не включать знак «.» (точка) (например, А или Строка). Рекомендуется для ясности текстов про¬грамм включать в имена переменных особую пристав¬ку, которая обозначает тип переменных — для стро¬ковых переменных приставку str (например, strA и strCTpoKa). Простейший способ задания типа переменной (ее объявления) состоит в приписывании к имени пере¬менной определенного суффикса. Для строковой пере¬менной это суффикс $ (например, А$,Строка$). Чтобы объявить в программе на языке Visual Basic строковую переменную, можно воспользоваться опе¬ратором определения переменной. Например: Dim strA,strCTpoKa As String

Строковые выражения. В состав строковых выраже¬ний могут входить кроме строковых переменных также и строки. Строками являются любые последовательнос¬ти символов, заключенные в кавычки. Например: "информатика", "2000", "2*2"

Над переменными и строками может производиться операция конкатенации, которая состоит в объедине¬нии строки или значения строковых переменных в еди¬ную строку. Операция конкатенации обозначается зна¬ком «+», который не следует путать со знаком сложе¬ния чисел в арифметических выражениях. Пусть, например, строковое выражение будет вклю¬чать в себя строку "ин", строковую переменную strA, значением которой является строка "форма", и строку "тика": "ин" + strA + "тика"

Тогда значением этого строкового выражения будет: "информатика"

Значение функции Mid — это подстрока, которая начинается от позиции символа, заданной числовым аргументом Позиция% и длиной, равной значению чис¬лового аргумента Длина %. Если аргументом функции Mid является строка "информатика", то значение строковой переменной зЬгПодстрока = Mid ("информатика", 3, 5) — строка "форма". Билет № 3