Главная страница
Навигация по странице:

  • II.III . Свойства алгоритмов Свойство

  • Определенность (детерминированность)

  • Результативность (конечность)

  • II.V. Виды алгоритмов

  • II.VI. Исполнитель алгоритмов

  • III.II . Семантические ошибки

  • реферат по алгоритмам. Строить информационные структуры для описания объектов и средств


    Скачать 0.78 Mb.
    НазваниеСтроить информационные структуры для описания объектов и средств
    Дата22.09.2020
    Размер0.78 Mb.
    Формат файлаdocx
    Имя файлареферат по алгоритмам.docx
    ТипДокументы
    #139103

    титульник

    оглавление

    I.Введение

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

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

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

    • строить информационные структуры для описания объектов и средств;

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

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

    • своевременно обращаться к ЭВМ при решении задач из любой области;

    • формировать навыки анализа информации, умение структурировать ее.

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

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

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

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

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

    II. Алгоритмы

    II.I. Понятие алгоритмов

    Одним из фундаментальных понятий в информатике является понятие алгоритма. Чтобы понять смысл этого понятия, требуется его всесторонний анализ. Что такое алгоритм? Для ответа на этот вопрос сделаем экскурс в историю.

    Происхождение самого термина «алгоритм» связано с математикой, или скорее с алгеброй, потому что именно там оно появляется впервые. Любопытно то обстоятельство, что слова алгебра и алгоритм обязаны своим возникновением имени одного человека – арабского математика Аль Хорезми (787 – ок. 850), после которого осталось несколько трактатов и среди них один был посвящен арифметике, а другой - алгебре. В обеих книгах широко используются разнообразные алгоритмы, а сам термин алгоритм есть искаженное произнесение имени Аль Хорезми (dixit algorizmi – «так сказал Аль Хорезми»). Название же книги по алгебре – Китат аль-мухтассар ибн хасаб аль-габр в’алуккабала – привело к введению слова алгебра для обозначения соответствующего раздела математики.

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

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

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

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

    Таким образом, алгоритм – это последовательность действий для решения поставленной задачи. Решение любой задачи можно разложить на последовательность простых операций. Чтобы выполнить алгоритм на компьютере, нужно написать его в виде программы.

    Данное выше определение алгоритма нельзя считать строгим – не вполне ясно, что такое «точное предписание» или «последовательность действий, обеспечивающая получение требуемого результата». Поэтому обычно формулируют несколько общих свойств алгоритмов, позволяющих отличать алгоритмы от других инструкций.

    II.II. Наглядное представление алгоритмов

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

    1) Алгоритм Г, примененный ко всякому «условию» («начальному состоянию») А из некоторого множества Θ (Г) («области применимости» алгоритма Г), дает «решение» («заключительное состояние») В.

    2) Алгоритмический процесс расчленяется на отдельные шаги заранее ограниченной сложности; каждый шаг состоит в «непосредственной переработке» возникшего к этому шагу состояния S в состояние S* = ΩГ (S).

    3) Процесс переработки A0 = A в A1 = ΩГ (A0), A1 в A2 = ΩГ (A1), A2 в A3 = ΩГ (A2) и т. д. продолжается до тех пор, пока либо не произойдет безрезультатная остановка (если оператор ΩГ не определен для получившегося состояния), либо не появится сигнал о получении «решения». При этом не исключается возможность неограниченного продолжения процесса (если никогда не появится сигнал о решении).

    4) Непосредственная переработка S в S* = ΩГ (S) производится лишь на основании информации о виде заранее ограниченной «активной части» состояния S и затрагивается лишь эту активную часть.

    Предполагается строгое определение, отображающее эти наглядные представления в точных математических терминах.

    Состояния изображаются топологическими комплексами специального вида. Активная часть состояния образуется из всех элементов комплекса, удаленный на расстояние не более заданного от некоторой начальной вершины. Оператор ΩГ задается конечным набором правил. Каждое из этих правил имеет вид Ui → Wi; его применение состоит в том, что если активная часть комплекса S есть Ui, то, чтобы получить S* = ΩГ (S), следует Ui заменить на Wi, оставив неизменным S \ Ui.

    Устанавливается эквивалентность между понятием алгоритма (в смысле предложенного определения) и понятием частично рекурсивной функции.

    II.III. Свойства алгоритмов

    Свойство

    Его особенность

    Дискретность (прерывность, раздельность)

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

    Определенность (детерминированность)

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

    Результативность (конечность)

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

    Массовость

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

    Понятность

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

    II.IV. Способы представления алгоритмов

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

    Способы представления алгоритмов:

    • словесная запись (на естественном языке);

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

    • блок–схема (графическое изображение);

    Алгоритм представляется с помощью специальных значков (геометрических фигур) — блоков;

    • формальные алгоритмические языки.

    Для записи алгоритма используется специальная система обозначений (искусственный язык, называемый алгоритмическим);

    • псевдокод;

    Запись алгоритма на основе синтеза алгоритмического и обычного языков. Базовые структуры алгоритма записываются строго с помощью элементов некоторого базового алгоритмического языка;

    • матричное представление алгоритма.

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

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

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

    Решение.

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

    Шаг 2. Знаменатель первой дроби умножить на числитель второй дроби.

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

    Описанный алгоритм применим к любым двум обыкновенным дробям. В результате его выполнения будут получены выходные данные — результат деления двух дробей (исходных данных).

    Формальные исполнители алгоритма

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

    Программы на языке произвольного формального исполнителя могут состоять только из элементарных команд, которые входят в его систему (которые исполнитель «понимает»).

    Исполнитель может иметь свою среду (например, систему координат, клеточное поле и др.). Среда исполнителя — это совокупность объектов, над которыми он может выполнять определенные действия (команды), и связей между этими объектами. Алгоритмы в этой среде выполняются исполнителем по шагам.

    Пример: Исполнитель Крот имеет следующую систему команд:

    вперед k — продвижение на указанное число шагов вперед;

    поворот s — поворот на s градусов по часовой стрелке;

    повторить m [команда1 … командаN] — повторить m раз серию указанных команд.

    Какой след оставит за собой исполнитель после выполнения следующей последовательности команд?

    Повторить 5 [вперед 10 поворот 72]

    Решение. Команда вынуждает исполнителя 5 раз повторить набор действий: пройти 10 шагов вперед и повернуть на 72° по часовой стрелке. Так как поворот происходит на один и тот же угол, то за весь путь исполнитель повернет на 5 х 72° = 360°. Поскольку все отрезки пути одинаковой длины и сумма внешних углов любого многоугольника составляет 360°, то в результате будет оставлен след в форме правильного пятиугольника со стороной в 10 шагов исполнителя.

    Заметим, что если увеличить количество повторов серии команд, то исполнитель будет повторно передвигаться по тем же отрезкам (произойдет повторное движение по тому же пятиугольнику).



    Блок–схема

    Блок–схема — наглядный способ представления алгоритма. Блок–схема отображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Определенному типу действия соответствует определенная геометрическая фигура блока. Линии, соединяющие блоки, определяют очередность выполнения действий. По умолчанию блоки соединяются сверху вниз и слева направо. Если последовательность выполнения блоков должна быть иной, используются направленные линии (стрелки).

    Основные элементы блок–схемы алгоритма:



    Общий вид блок–схемы алгоритма:



    Алгоритм целочисленных преобразований представлен в виде фрагмента блок–схемы. Знаком := в нем обозначен оператор присваивания некоторого значения указанной переменной. Запись X := 1 означает, что переменная Х принимает значение 1.

    Новый пример: определить результат работы алгоритма для исходных данных Х = 7, Y = 12.



    Решение.

    Блок ввода данных определит исходные значения переменных Х и Y (7 и 12 соответственно).

    1. В первом условном блоке осуществляется сравнение значений Х и Y. Поскольку условие, записанное в блоке, неверно (7 < 12), происходит переход по линии «нет».

    2. Во втором условном блоке выполняется второе сравнение, которое для исходных данных оказывается верным. Происходит переход по линии «да».

    3. Вычисляется результат выполнения алгоритма: X := 0, Y := 1.

    Ответ: X := 0, Y := 1.

    Алгоритмические языки

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

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

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

    Псевдокод

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

    Служебные слова учебного алгоритмического языка:

    Матричный способ

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



    II.V. Виды алгоритмов:

    1. Прикладные алгоритмы - предназначены для решения определённых прикладных задач.

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

    1. Рекурсивные алгоритмы- алгоритмы, вызывающие сами себя до тех пор, пока не будет достигнуто некоторое условие возвращения.

    2. Начиная с конца XX — начала XXI века активно разрабатываются параллельные алгоритмы- предназначены для вычислительных машин, способных выполнять несколько операций одновременно, о которых подробно рассказывается в рукописи Воеводина «Параллельные вычисления».

    II.VI. Исполнитель алгоритмов

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

    Исполнителя характеризуют:

    • Каждый исполнитель работает или обитает в определенных условиях, среде; и может выполнять определенный набор действий.

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

    • Команды алгоритма выполняются одна за другой.

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

    • Среда (или обстановка) - «место обитания» исполнителя.

    • Система команд.

    Каждый исполнитель может выполнять команды только из некоторого строго заданного списка-системы команд исполнителя. Для каждой команды должны быть заданы условия применимости (в каких состояниях среды может быть выполнена команда) и описаны результаты выполнения команды. После вызова команды исполнитель совершает соответствующее элементарное действие.

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

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

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

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

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

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

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

    III. Алгоритмический язык

    III.I. Синтаксис, семантика, прагматика

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

    Для создания, проверки и преобразования программ, построения систем программирования, а также для многих других нужд нам необходимо если не определение, то хотя бы описание алгоритмического языка. При этом требуются точные описания как текстов, так и их интерпретации. Рассмотрим существующие варианты.

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

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

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

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

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

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

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

    Таким образом, мы видим, что каждый язык имеет три стороны: синтаксис (второй вариант), семантика (третий вариант), прагматика (первый вариант).



    Синтаксис (англ. syntax, от греч. syntaxis- построение, порядок)- раздел грамматики, изучающий способы организации слов в словосочетаниях и предложениях, а также типы предложений, их значения и условия использования в текстах.

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

    Ошибки, возникающие при написании программы и касающиеся только синтаксиса, выявляются при синтаксическом анализе, осуществляемом транслятором.

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

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

    • особенности вычислительной машины и среды вычислений;

    • особенности принятой схемы реализации языка;

    • обеспечение эффективности вычислений;

    • ориентацию на специфику пользователей.

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

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

    Семантика (англ. semantics, от греч. semantikos- обозначающий) - часть определенного языка, касающаяся указания смысла и действия текста, составленного в соответствии с синтаксическими правилами этого языка.

    Семантика - смысл каждой синтаксической конструкции в языке или системе.

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

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

    Хотя семантические ошибки могут даже не сообщаться подпрограммами контроля ошибок среды программирования они будут причиной неправильной работы программы.

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

    Машинный язык - такой язык, который компьютер воспринимает непосредственно, то есть это язык машинных команд данной модели компьютера. А мы уже знаем, что ЭВМ "понимают" только язык двоичных знаков: нулей и единиц.

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

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

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

    Именно такие языки и ориентированы на описание алгоритмов. Поэтому их еще называют алгоритмическими языками.

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

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

    III.II. Семантические ошибки

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

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

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

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

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

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

    IV.Заключение

    На основании вышеизложенного сделаем краткие выводы.

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

    Таким образом, алгоритм — это четкая последовательность действий, направленная на достижение поставленной цели или решения задачи.

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

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

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

    Исполнителя характеризуют: среда; элементарные действия; система команд; отказы.

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

    V. Источники

    1. Колмогоров А.Н. «Теория информации и теория алгоритмов»/ под ред. академика Прохорова Ю.В. – Москва «Наука», 1987. – 303 с.

    2. Воеводин В.В. «Параллельные вычисления»/ Воеводин В.В, Воеводин Вл.В. – Санкт-Петербург «БХВ-Петербург», 2002. – 608 с.

    3. Поляков В.С. «Построение формального описания технологического процесса в матрично-предикатной форме»/ Поляков В.С., Поляков С.В., Федченков П.В. - Волгоград Известия ВолгГТУ. Серия «Прогрессивные технологии в машиностроении», 2013. – 108 с.

    4. Валов А.В. «Численные методы решение уравнений для инженеров»/ Валов А.В. – Челябинск Издательский центр ЮУрГУ, 2012. – 108 с.

    5. [Интернет-ресурс]: «Синтаксис, семантика, прагматика»/ Интернет-статья с ресурса «stgeneralinguist»/ ссылка доступа:

    https://www.sites.google.com/site/stgeneralinguist/znakovyj-aspekt-azyka/semantika-sintaktika-pragmatika

    1. [Интернет-ресурс]: «Лекция 4. Синтаксис, семантика, прагматика»/ Интернет-статья с ресурса «ИНТУИТ. Национальный открытый институт»/ ссылка доступа:

    https://www.intuit.ru/studies/courses/40/40/lecture/1188

    1. [Интернет-ресурс]: «Алгоритм. Свойства алгоритмов. Блок-схемы. Алгоритмические языки»/ Интернет-статья с ресурса «УчительПро»/ ссылка доступа:

    https://uchitel.pro/алгоритм-свойства-алгоритмов/#Formalnye_ispolniteli_algoritma

    1. [Интернет-ресурс]: «Способы представления алгоритмов»/ Интернет-статья с ресурса «Студопедия»/ ссылка доступа:

    https://studopedia.ru/19_343383_sposobi-predstavleniya-algoritmov.html


    написать администратору сайта