Лекция по "Информатике"

Автор: Пользователь скрыл имя, 03 Марта 2013 в 12:09, лекция

Краткое описание

Информатика как наука сформировалась в середине 90-х годов прошлого столетия. Именно в эти годы в школах и вузах стали изучать дисциплину "Информатика". Сейчас она претендует на звание базовой дисциплины в системе высшего образования и в комплексе с другими классическими дисциплинами (математикой, физикой, химией, естествознанием, биологией, историей) призвана создавать фундамент профессионального образования в вузе.

Файлы: 1 файл

Введение.docx

— 250.87 Кб (Скачать)

Информационные  модели

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

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

В данном курсе информационные модели рассматриваются в разделе  построения баз данных.

Фундаментальные понятия  этих моделей:

объект (нечто, существующее и различимое; например, книга),

атрибут (свойство, характеристика объекта; например, название книги или издание),

значение атрибута (например, “Информатика”).

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

Это определение поясним  примером. Допустим, вы хотите создать  информационную модель своей библиотеки.

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

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

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

    • номер книги;
    • название;
    • фамилию автора;
    • год издания;
    • жанр (научный, исторический, фантастический и т.д.);
    • краткое содержание.

У конкретной книги каждый из этих атрибутов примет то или  иное значение. Например, для книги  № 10: название “Анализ финансовых операций” (текст), год издания 1998 (дата) и т. д.

Таким образом, получится  более или менее полноценная  информационная модель, к которой  уже можно применять компьютерную технологию для поиска нужной информации.

ПОНЯТИЕ АЛГОРИТМА

Широкая известность понятия  алгоритма в наше время обусловлена  развитием и широким применением  электронно-вычислительной техники. Использование  ЭВМ способствовало уяснению того, что разработка алгоритма - необходимый  этап в процессе решения задачи на ЭВМ и что в связи с этим алгоритмы представляют самостоятельную  ценность как интеллектуальные ресурсы  общества.

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

Слово “алгоритм” произошло  от имени среднеазиатского математика аль-Хорезми 
(IX в.) и использовалось в математике для обозначения правил выполнения четырех арифметических действий: сложения, вычитания, умножения и деления. В настоящее время понятие алгоритма используется не только в математике. Его применяют во многих областях человеческой деятельности, например, говорят об алгоритме управления производственным процессом, алгоритме игры в шахматы, алгоритме пользования бытовым прибором, алгоритме поиска пути в лабиринте, алгоритме управления полетом ракеты и т. п.

Для пояснения понятия  “алгоритм” важное значение имеет  определение понятия “исполнитель алгоритма”. Алгоритм формулируется  в расчете на конкретного исполнителя, например человека, особую машину —  автомат и т. д.

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

Алгоритм—понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий для достижения указанной цели или решения поставленной задачи.

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

Свойства  алгоритма:

  1. Результативность  
    Алгоритм имеет некоторое число входных величин — аргументов, задаваемых до начала работы Цель выполнения алгоритма — получение результата (результатов), имеющего вполне определенное отношение к исходным данным. Можно сказать, что алгоритм указывает последовательность действий по переработке исходных данных в результаты.
  2. Массовость (универсальность)

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

  1. Понятность  
    Чтобы алгоритм можно было выполнить, он должен быть понятен исполнителю. Чтобы этот алгоритм мог быть также выполнен человеком, необходимо записать алгоритм на языке, понятном исполнителю. Понятность алгоритма означает знание исполнителя о том, что надо делать для исполнения этого алгоритма. Таким образом, при формулировке алгоритма необходимо учитывать возможности и особенности исполнителя, на которого рассчитан алгоритм.
  2. Конечность (дискретность)

Алгоритм представлен  в виде конечной последовательности шагов. Говорят, что алгоритм имеет дискретную структуру. Следовательно, его исполнение расчленяется на выполнение отдельных его шагов (выполнение каждого очередного шага начинается после завершения предыдущего). Выполнение алгоритма заканчивается после выполнения конечного числа шагов. При выполнении алгоритма некоторые его шаги могут повторяться многократно. В математике существуют вычислительные процедуры, имеющие алгоритмический характер, но не обладающие свойством конечности. Так, можно сформулировать процедуру вычисления числа p . Такая процедура описывает бесконечный процесс и никогда не завершится. Если же прервать ее искусственно, например, ввести условие завершения процесса вычислений вида: “Закончить вычисления после получения п десятичных знаков числа p ”, то получится алгоритм вычисления п десятичных знаков числа p . На этом принципе основано получение многих вычислительных алгоритмов: строится бесконечный, сходящийся к искомому решению процесс. Он обрывается на некотором шаге, и полученное значение принимается за приближенное решение рассматриваемой задачи. При этом точность приближения зависит от числа шагов.

  1. Определенность (точность)

Каждый шаг алгоритма  должен быть четко и недвусмысленно определен и не должен допускать  произвольной трактовки исполнителем. При исполнении алгоритма исполнитель  должен действовать строго в соответствии с его правилами и у него не должно возникать потребности  предпринимать какие-нибудь действия, отличные от предписанных алгоритмом. Иными словами, алгоритм рассчитан на чисто механическое исполнение. Эта очень важная особенность означает, в частности, что если один и тот же алгоритм поручить для исполнения разным исполнителям, то они придут к одному и тому же результату, лишь бы эти исполнители понимали алгоритм. Именно определенность алгоритма дает возможность поручить его исполнение автомату, не обладающему “здравым смыслом”.Таким образом, формулировка алгоритма должна быть так точна, чтобы полностью определять все действия исполнителя.

  1. Эффективность 
    Каждый шаг алгоритма должен быть выполнен точно и за конечное время. В этом смысле говорят, что алгоритм должен быть эффективным, т. е. действия исполнителя на каждом шаге исполнения алгоритма должны быть достаточно простыми, чтобы их можно было выполнить точно и за конечное время. Обычно отдельные указания исполнителю, содержащиеся в каждом шаге алгоритма, называют командами. Таким образом, эффективность алгоритма связана с возможностью выполнения каждой команды за конечное время. Кроме того, эффективность означает, что алгоритм может быть выполнен не просто за конечное, а за разумное конечное время.

Содержательная (аналитическая) теория алгоритмов стала возможной  лишь благодаря фундаментальным  работам математиков в области  логических теорий алгоритмов. Развитие такой теории связано с дальнейшим развитием и расширением формального  понятия алгоритма, которое слишком  сужено в рамках логических теорий. Формальный характер понятия позволит применять к нему математические методы исследования, а его широта должна обеспечить возможность охвата всех типов алгоритмов, с которыми приходится иметь дело на практике.

СРЕДСТВА  ЗАПИСИ АЛГОРИТМОВ

В информатике сложились  вполне определенные традиции в представлении  алгоритмов, рассчитанных на различных  исполнителей. Средства, используемые для записи алгоритмов, в значительной степени определяются тем, для какого исполнителя предназначается алгоритм. Если алгоритм предназначен для исполнителя  — человека, то его запись может  быть не полностью формализована, на первое место здесь выдвигаются  понятность и наглядность, поэтому  для записи таких алгоритмов может  использоваться естественный или графический  язык, лишь бы запись отражала все основные особенности алгоритма. Для записи алгоритмов, предназначенных для  исполнителей — автоматов, необходима формализация, поэтому в таких  случаях применяют специальные  формальные языки.

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

Словесная запись алгоритма

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

Пример словесной формы  записи алгоритма классический алгоритм Евклида для нахождения наибольшего общего делителя двух натуральных чисел:

  1. Если числа равны, то взять первое число в качестве ответа и закончить исполнение алгоритма, иначе перейти к п. 2.
  2. Определить большее из двух чисел.
  3. Заменить большее число на разность большего и меньшего чисел.
  4. Перейти к п. 1.

Команды такого алгоритма  выполняются в естественной последовательности, если не оговорено противного. Так, после второй команды будет выполняться  третья, после третьей - четвертая, а  вот после четвертой команды  необходимо вернуться снова к  выполнению первой команды, так как  это явно оговорено в четвертой  команде. Команды такого типа (команды  перехода) нарушают естественный порядок  выполнения команд алгоритма.

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

Структурные схемы алгоритмов

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

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

Пример структурной  схемы алгоритма Евклида

Для записи внутри блоков команды  используется естественный язык с элементами математической символики. В результате проверки условия возникают два  возможных пути для продолжения  алгоритма. Эти пути изображаются стрелками  со знаками “+” и “-” (иногда пишут также “Да” и “Нет”).

Переход по стрелке со знаком “+” происходит, если условие соблюдено, а переход по стрелке “-”, если условие не соблюдено.

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

Псевдокоды

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

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

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

Информация о работе Лекция по "Информатике"