Широкое внедрение вычислительных машин, информатики, компьютерных технологий в жизнь и профессиональную деятельность современного человека требует от него определенных знаний по информатике. Понятие информации определяется как “знания получаемые в процессе чтения, наблюдения, изучения…”. В кибернетике понятие информация определяется как “новые знания об объекте управления, позволяющие вырабатывать управленческие решения, как мера устранения неопределенности в управленческой системе, как упорядоченное отражение действительности”. Применительно к вычислительным наукам понятие информация определяется как “сведения, представленные в символьной форме”. Таким образом, текст книги, научные данные и формулы, сальдо, поступления и выплаты по банковскому счету, тарифы и сроки платежей, расписание занятий, сообщения радиолокационных станций являются видами информации. Следует отличать понятие “информация” от понятия “данные”. Всякое информационное сообщение несет в себе сведения об управляемом объекте, то есть данные о нем, но не всякое сообщение требует управленческих воздействий, то есть оно не обязательно содержит новые знания - информацию. Процесс наблюдения и отражения реальной действительности представляет собой непрерывное или дискретное получение многочисленных данных о наблюдаемом объекте. Чтобы из этого множества данных получить необходимую для управления информацию, поток данных необходимо обработать по специальному алгоритму. В настоящее время рост потоков информации во всех областях человеческой деятельности так велик, что его часто называют информационным взрывом. В огромном объеме разнообразных сведений очень трудно, а порой невозможно разобраться, отличить нужное от ненужного, найти то, что требуется. Все это приводит к большим потерям времени, финансов и прочих ресурсов. Необходимость в регистрации, обработке, передаче и хранении больших объемов информации, представленной числовыми, символьными, зрительными, речевыми и другими данными, с высокими скоростями потребовала создания помощников человеку в этих вопросах. Такими помощниками и являются современные ЭВМ. Наука, исследующая законы и методы обработки, накопления и передачи информации с помощью ЭВМ называется информатикой. До недавнего времени вычислительные машины обрабатывали только цифровые данные и свое название – ЭВМ (компьютер) – унаследовали от профессии “большого арифмометра”. В связи с этим языки для описания алгоритмов обработки данных (языки программирования) были ориентированы на создание математических моделей в физике, механике, экономике, управлении и т. д. Способность современных компьютеров обрабатывать символьные данные составляет основу всех видов коммуникационных отношений между людьми. Символы или знаки в зрительной, звуковой или других формах общения образуют естественные языки и языки точных наук. Именно способность ЭВМ обрабатывать данные в символьной форме явилась одной из предпосылок того, чтобы говорить об искусственном интеллекте как о свойстве вычислительных машин и их программ решать задачи, традиционно считавшиеся интеллектуальными. Таким образом, была открыта новая область применения компьютеров – возможность их включения в коммуникационные отношения между людьми в качестве инструментов повышения интеллектуальной деятельности, способных анализировать и синтезировать тексты и речь, распознавать зрительные образы и сцены и соответствующим образом реагировать на них. Способность ЭВМ анализировать и синтезировать тексты и речь определяет новый стиль применения вычислительной техники, когда она используется лицами принимающими решения с помощью ЭВМ, без посредничества программистов. Эффективная эксплуатация современных ЭВМ немыслима без оснащения их комплексами специальных программ, облегчающих процесс подготовки задач к решению и организующих прохождение этих задач через машину. Комплекс таких программ принято называть программным обеспечением вычислительной системы. Возможности ЭВМ определяются уровнем развития теории и техники программирования, а также быстродействием процессора и емкостью памяти машины. Лекция 2 Понятие алгоритма Понятие алгоритма является основным при составлении любого вида программ для ЭВМ. Алгоритм – точно определенное правило действий (программа), для которого задано указание, как и в какой последовательности, это правило необходимо применить к исходным данным задачи, чтобы получить ее решение. Примером алгоритма может служить правило нахождения наибольшего общего делителя двух чисел (алгоритм Евклида). Даны два целых положительных числа m и n. Требуется найти их наибольший общий делитель, то есть наибольшее положительное целое число, которое нацело делит как m, так и n. 1 шаг (нахождение остатка). Разделим m на n. Пусть остаток равен r. Имеем 0 £ r < n. 2 шаг (это нуль?). Если r = 0, то алгоритм заканчивается; n – искомое число. 3 шаг (замена). Положите m ¬ n, n ¬ r и возвращайтесь к шагу 1. Формула для нахождения корней квадратного уравнения также является своеобразной формой записи алгоритма. Она указывает, какие арифметические действия и в какой последовательности нужно производить над коэффициентами квадратного уравнения, чтобы получить корни этого уравнения. Теория алгоритмов Теория алгоритмов - раздел математики, в котором изучаются теоретические возможности эффективных процедур вычисления (алгоритмов) и их приложения. Теория алгоритмов является в настоящее время важным и быстроразвивающимся разделом математической логики. Интерес к ней объясняется, с одной стороны, внутренними интересами самой математики (алгоритмические проблемы алгебры, вопросы оснований математики и т.п.), а, с другой - бурным развитием электронной вычислительной техники и теоретической кибернетики. Практические и теоретические вопросы реализации алгоритмов на современных вычислительных машинах являются содержанием такого важного раздела теоретической кибернетики, как программирование. Точные математические понятия, которые в том или ином смысле формализовали интуитивное понятие алгоритма, предложены только в середине 30-х годов нашего столетия. Исторически первые из предложенных понятий можно разделить на два вида. 1. Описывается некоторый класс арифметических функций (вообще говоря, частных), то есть функций от конечного числа натуральных аргументов с натуральными значениями. Эти функции обладают некоторыми эффективными процедурами нахождения значения функции (если оно существует) по заданным значениям аргументов. Функции из этого класса называются частично рекурсивными (ч.р.ф.), а в случае, если ч.р.ф. всюду определены, их называют общерекурсивными. 2. Описываются точные математические понятия машины и вычислимости на машине. Такие понятия машины и вычислимости на машине предложили независимо один от другого Э.Пост и А.Тьюринг. Эти "теоретические вычислительные машины" обычно называют машинами Тьюринга. Оказалось, что класс арифметических функций, для которых существует машина Тьюринга, вычисляющая по значениям аргументов значение функции (если оно существует), совпадает с классом всех ч.р.ф. и наоборот, каждая ч.р.ф. вычислима на подходящей машине Тьюринга. В общих чертах различие между двумя рассмотренными выше видами определений можно сформулировать так: в первом дается точное описание класса вычислимых арифметических функций, во втором - точное описание некоторого класса алгоритмических преобразований (вычислений на машине Тьюринга). Алгоритмический процесс Процесс выполнения алгоритма называется алгоритмическим процессом. Для некоторых исходных данных он заканчивается получением искомого результата после конечного числа шагов. Однако допускаются случаи, в которых процесс выполнения алгоритма для некоторых исходных данных безрезультативно обрывается или продолжается неограниченно. Принято считать, что к этим исходным данным алгоритм не применим. Понятие алгоритма тесно связано с понятием "алгоритмический язык" (на котором задан алгоритм) и понятием "правило выполнения алгоритма" при заданных для него исходных данных. Алгоритмический язык и правило выполнения алгоритма (которое по существу само является алгоритмом и его можно назвать "алгоритмом выполнения алгоритма") естественным образом выделяют определенное семейство алгоритмов. Каждая детерминированная вычислительная машина является автоматом, действия которого можно описать в виде некоторого алгоритма. Такой алгоритм является алгоритмом выполнения программ указанной вычислительной машины. Сами программы можно рассматривать как некоторый класс алгоритмов. При этом алгоритмическим языком является система команд вычислительной машины. Алгоритмический язык Алгоритмический язык - формальный язык, предназначенный для записи алгоритмов. Использование алгоритмического языка основано на возможности формального задания правил конструирования алгоритмов. При формальном описании алгоритмов существенная роль принадлежит выбору способа записи (кодирования) перерабатываемой информации и задания алгоритмических предписаний - элементарных шагов алгоритма, из которых он конструируется. Алгоритмический язык определяется заданием алфавита (или словаря исходных символов), точным описанием его синтаксиса (грамматики) и семантики. Некоторый непустой подалфавит алгоритмического языка используется для кодирования исходной (перерабатываемой) информации. Известно, что даже двухбуквенный алфавит достаточен для кодирования любой информации. Однако указанный алфавит обычно расширяется для возможности более удобного и экономного кодирования. Правила преобразования информации в различных алгоритмах весьма разнообразны и качественно различны. Однако все конкретные алгоритмы могут быть составлены из весьма небольшого числа элементарных предписаний. Наборы предписаний, из которых могут быть построены любые мыслимые алгоритмы, называются алгоритмически полными. Алгоритмический язык называется универсальным, если в нем может быть описан алгоритмически полный набор предписаний (а тем самым любой алгоритм). Задание универсального алгоритмического языка равносильно заданию алгоритмической системы, то есть общего способа записи алгоритмов. Специфика алгоритмического языка выражается, главным образом, в его семантике и заключается в том, что предложения языка должны быть алгоритмами, то есть последовательностями предписаний, при помощи которых осуществляется переработка информации (реализуется алфавитное отображение). В каждом алгоритмическом языке должны быть средства для задания операторов, осуществляющих переработку информации, и операторов перехода (распознавателей), определяющих порядок выполнения этих операторов. Операторы, в свою очередь, могут обозначать последовательности других более элементарных операций. Например, оператор умножения многозначных чисел обозначает последовательность некоторых действий над однозначными числами. Языки, с помощью которых строятся классические системы (нормальные алгоритмы Маркова, рекурсивные функции, машины Тьюринга, машины Поста и др.), несмотря на их универсальность, оказались практически неприемлемыми для описания алгоритмов решения задач при их реализации на ЭВМ. Данное обстоятельство является результатом того, что все эти системы ориентированы на рассмотрение фундаментальных теоретических вопросов теории алгоритмов и уже запись одного сколь-нибудь сложного алгоритма в любой из этих систем представляет собой самостоятельную трудную задачу. В связи с этим решение практических задач с помощью ЭВМ вызвало появление большого числа работ, посвященных созданию так называемых языков программирования, для которых алгоритмические языки служат теоретической основой. Лекция 3 Языки программирования Языки программирования (я. п.) - формальные языки связи человека с цифровой вычислительной машиной, предназначение для описания данных (информации) и алгоритмов (программ) их обработки на вычислительной машине. Язык программирования задается своим синтаксисом и семантикой - множеством правил, определяющих, какой вид фраз можно использовать для задания программ и каково их функциональное значение. Каждый язык программирования посредством своего синтаксиса и семантики определяет некоторый присущий ему процессор (преобразователь), реальный или мыслимый, которым этот язык, в свою очередь, определяется однозначно. Таким образом, программа на данном языке программирования определяет порядок и вид действий, которые должен выполнить соответствующий данному языку процессор при ее реализации. На практике такой процессор состоит из “языкового процессора” и ЭВМ. Программу для вычислительной машины, позволяющую ей "понимать" директивы и предложения входного языка, используемого программистами, мы будем называть "языковым процессором". Вообще говоря, существует два типа таких программ для обработки языков: интерпретаторы и трансляторы. Интерпретатор - это программа, которая допускает в качестве входа исходную программу, записанную на языке программирования называемом исходным языком, и производит пооператорное (покомандное) ее выполнение и соответствующие вычисления, предписываемые этой программой. Транслятор - это программа, которая допускает в качестве входа программу на исходном языке, а в качестве выхода выдает другую версию этой программы, написанную на другом языке, который называется объектным языком. Объектный язык обычно является машинным языком некоторой вычислительной машины, причем в этом случае программу можно сразу же выполнять. Существует довольно условное деление трансляторов на ассемблеры и компиляторы, которые транслируют соответственно языки низкого и высокого уровней. В основе всех процессов обработки языков лежит теория автоматов и формальных языков. Основные требования, предъявляемые к языкам программирования - обеспечение обозримости, определенного удобства в их использовании, и эффективной реализации их процессоров. Возникновение и развитие языков программирования неразрывно связано с развитием ЭВМ и с расширением сферы их применения. Языками программирования являются, например, внутренние машинные языки (то есть языки непосредственной интерпретации ЭВМ, задаваемые системами команд этих ЭВМ), которые явились первыми языками программирования. Существующие в настоящее время языки программирования подразделяют на четыре больших класса: машинно-ориентированные, процедурно-ориентированные, проблемно-ориентированные и объектно-ориентированные. К машинно-ориентированным языкам программирования относятся языки, в которых с одной стороны явно выражена связь с конкретной ЭВМ (структура команд, памяти, внешних устройств и т. д.), а с другой - в язык введены элементы, упрощающие и автоматизирующие процесс программирования (символьное обозначение команд и ячеек памяти, широкое использование привычных для человека обозначений и т. д.). Машинно-ориентированные языки программирования позволяют писать программы, не уступающие по эффективности программам, написанным непосредственно в кодах машины, но в значительной степени облегчают работу по их созданию и отладке. В зависимости от степени связи человека с ЭВМ, машинно-ориентированные я. п. делятся на машинные я. п., автокоды (или ассемблерные языки) и машинно-независимые я. п. (для нескольких машин). Процедурно-ориентированные языки представляют собой следующий более высокий уровень я. п., предназначаемый для различных сфер применения ЭВМ и учитывающих специфику этих применений. Во всяком языке программирования можно выделить две самостоятельные части. Первая из них предназначается для описания объектов перерабатываемой информации (исходных, промежуточных и окончательных результатов), а вторая - набор средств для описания процессов переработки этих данных. В зависимости от ориентации языка указанные части могут быть более или менее развиты. Так, в языках ориентированных на решение научно-технических задач вычислительного характера, первая часть языка, как правило, незначительна и состоит из описания типов числовых данных (целые, вещественные, булевы), иногда дополняемого описанием некоторых других величин (векторных, строчных и др.), а вторая - довольно сильно развита. Другие языки, например, ориентированные на обработку экономических данных, характеризуются более развитым аппаратом, предназначенным для описания перерабатываемой информации, которая, как правило, представляет собой совокупность объектов сложной структуры. Под сложностью структуры данных подразумевается их представление в виде "дерева", количество ярусов которого может практически достичь нескольких десятков и каждый из ярусов может иметь большое количество вершин. Из наиболее ранних зарубежных я. п., ориентированных на класс вычислительных и научных задач, наибольшее распространение получил язык ФОРТРАН. Значение ФОРТРАНА определяется его широким распространением, реализацией на всех более или менее распространенных ЭВМ, а также наличием огромных библиотек, насчитывающих сотни и тысячи программ, описанных на этом языке. Использование процедурно-ориентированных языков явилось мощным толчком к разработке и созданию систем автоматического программирования как транслирующего, так и интерпретирующего типов. Среди языков, выражающих основные понятия проблемы обработки экономической информации, наиболее видное место занимает КОБОЛ. Обширный аппарат этого языка направлен на эффективное использование характерных особенностей современных ЭВМ. КОБОЛ допускает эффективное описание алгоритмов, оперирующих с данными сложной иерархической структуры. Основным понятием в КОБОЛЕ является понятие записи как единицы информации, состоящей в общем случае из структуры данных, включающей числовые (номер, цена, количество и т.д.), нечисловые данные (фамилия, название объекта, шифр и т.п.) и массивы (файлы) записей - упорядоченного их ряда. Записью может быть строка ведомости, наряд на отгрузку и др. Над этими данными могут выполняться сравнительно простые операции, такие как поиск (адресный и ассоциативный по совокупности определенных признаков), пересылка, сортировка, редактирование и др. Расширение сфер использования ЭВМ привело к необходимости решать задачи, компактное описание которых выходит за рамки одного процедурно-ориентированного языка. Попытки использовать процедурно-ориентированные языки для решения задач, выходящих за пределы их ориентации, привели к практически непреодолимым трудностям. Так возникли проблемно-ориентированные я.п., то есть я.п. предназначенные для описания специальных проблем и решения определенного класса задач. Программа работы на таком языке содержит, помимо описания условия задачи, указания решить задачу данного класса. Примерами таких языков являются язык ЛИСП, предназначенный для описания процессов обработки информации, представленной в виде списков, и язык ПРОЛОГ, предназначенный для разработки программ и систем искусственного интеллекта. Языком такого рода является также язык STRESS, предназначенный для описания задач конструирования. Программа на языке STRESS содержит описание общих характеристик системы (размерности, число вершин и др.) и данные, а также указание: решить задачу и представить определенные данные в виде некоторой таблицы. Развитие таких языков имеет весьма важное практическое значение в силу чрезвычайной простоты их использования. Наиболее распространенными языками программирования сегодня являются объектно-ориентированные я.п. Основным понятием в таких языках является объект или класс, который описывается набором свойств (данных) и функций (операций). Между различными объектами могут устанавливаться отношения различного типа, например, А вызывает функции из B, А создает несколько экземпляров В, А включает B в качестве элемента, А – это одно из В и т.д. Таким образом, основной задачей программиста, использующего объектно-ориентированный язык, является определение ключевых понятий прикладной задачи, описание их в виде объектов и в установлении взаимосвязи между ними. Во время дефицита машинного времени к я.п. предъявлялось, как одно из основных, требование возможности построения таких трансляторов с них, которые могли бы составлять эффективные рабочие программы, сравнимые с программами, составляемыми искусными программистами. В настоящее время критерием эффективности использования ЭВМ становится время, затрачиваемое на решение задачи от ее постановки до получения результатов в надлежащей форме. Объектно-ориентированными языками являются C++, последние версии языка PASCAL. В связи с этим перед языками программирования, выдвигается новая цель - упростить программирование, быть может, даже за счет известной потери эффективности использования ЭВМ. Задача оптимизации тем самым отделяется от задачи составления работающей программы. Для реализации обширных средств, представляемых новыми объектно-ориентированными языками, первостепенное значение приобретает задача автоматизации процесса проектирования программ и создания соответствующих систем автоматического программирования, а также проблема построения автоматизированных систем обучения языкам пользователей ЭВМ. Такие системы получили название интегрированной среды разработчика приложений. Наиболее известны такие из них как BORLAND C++, BORLAND DELFI, BORLAND C++ BUILDER, MICROSOFT VISUAL C++, MICROSOFT VISUAL BASIC и другие. Каждая из этих систем включает в себя редактор исходных текстов программ, компилятор, компоновщик, отладчик, библиотеки классов и функций, справочную систему помощи и другие элементы.
Рефераты по информатикеШирокое внедрение вычислительных машин, информатики, компьютерных технологий в жизнь и профессиональную деятельность современного человека требует от
Оценок: 659 (Средняя 5 из 5)
Специалисты RetsCorp работают в digital-сфере более 7 лет. За это время мы разработали более 500+ успешных проектов. Основываясь на своем опыте и знании рынка, мы с уверенностью можем сказать, что будет работать, а что — нет. Заказывая создание лендинга для бизнеса в нашей студии, вы получаете работающие решения, необходимые именно вашему бизнесу.
Сотрудничая с нами, вы будете не клиентом, а нашим партнером. Благодаря этому мы будем развивать ваш бизнес как собственный. Мы так же как и вы заинтересованы в успехе проекта, поскольку ваша успешность будет нашей рекламой.