Алгоритм загрузки компьютера информатика

Алгоритмы. Свойства и способы описания алгоритма. Компьютер как исполнитель команд. Программный принцип работы компьютера

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

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

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

  • 1. Достать ключ.
  • 2. Вставить ключ в замочную скважину.
  • 3. Повернуть ключ 2 раза против часовой стрелки.
  • 4. Вынуть ключ.

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

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

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

  • 1. Дискретность (прерывность, раздельность) — алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов (этапов).
  • 2. Определенность — каждый шаг алгоритма должен быть четким и однозначным. Выполнение алгоритма носит механический характер и не требует никаких дополнительных сведений о решаемой задаче.
  • 3. Результативность — алгоритм должен приводить к решению задачи за конечное число шагов.
  • 4. Массовость — алгоритм решения разрабатывается в общем, виде, т.е. он должен быть применим для решения некоторого класса задач, различающихся лишь исходными данными.

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

  • — словесный;
  • — графический;
  • — табличный;
  • — формульный.

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

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

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

Блок-схема линейного алгоритма

Рис. 17. Блок-схема линейного алгоритма

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

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

  • — линейный;
  • — разветвляющийся;
  • — циклический.

Рассмотрим каждый из них.

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

На рис. 17 операторы имеют обозначение — Рь Р2, Р„.

Блок-схема разветвляющегося алгоритма

Рис. 18. Блок-схема разветвляющегося алгоритма

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

«ДА» — если условие верно (истинно), и «НЕТ» — если условие неверно (ложно).

На рис. 18 операторы имеют обозначение — Рь Р2.

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

На рис. 19 операторы имеют обозначение — Рь Рп

Ni, N2— границы, в которых изменяется параметр цикла.

Блок-схема циклического алгоритма

Рис. 19. Блок-схема циклического алгоритма

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

Согласно принципам Джона фон Неймана, программа во время ее исполнения и данные, которые она обрабатывает, находятся в оперативной памяти (принцип хранимой в памяти программы). Процессор исполняет программу в соответствии с алгоритмом и выполняет все команды от начала до конца.

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

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

Например, в данном фрагменте программы:

значение 4 загружается в регистр АХ, значение 9 — в DX, затем два значения складываются, а результат сохраняется в регистре АХ.

В дальнейшем тенденция облегчения для человека процесса создания программ оставалась доминирующей. В результате были разработаны языки высокого уровня, в которых программные конструкции похожи на фразы английского языка. Примером языка высокого уровня служит Microsoft Visual Basic .NET, с которым мы познакомимся в дальнейшем.

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

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

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

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

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

Алгоритм

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

Следует отметить, что большинство редакторов (например, Microsoft Office Word, Excel) имеют встроенные средства программирования, освоив которые можно значительно расширить свои возможности.

Появление алгоритмов связывают с зарождением математики. Более 1000 лет назад (в 825 году) ученый из города Хорезма Абдулла (или Абу Джафар) Мухаммед бен Муса аль-Хорезми создал книгу по математике, в которой описал способы выполнения арифметических действий над многозначными числами. Само слово алгоритм возникло в Европе после перевода на латынь книги этого математика.

Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.

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

1. Достать ключ из кармана.

2. Вставить ключ в замочную скважину.

3. Повернуть ключ два раза против часовой стрелки.

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

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

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

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

3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);

4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными);

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

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

1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке);

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

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

Для более наглядного представления алгоритма широко используется графическая форма — блок-схема, которая составляется из стандартных графических объектов.

Данные и величины

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

Рис. 3.1. Уровни данных относительно программы

Например, при решении квадратного уравнения: ах 2 + Ьх + с = 0 исходными данными являются коэффициенты а, b, с; результатами — корни уравнения х1, х2; промежуточными данными — дискриминант уравнения: D = b 2 — 4ас.

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

У всякой величины имеются три основных свойства: имя, значение и тип. На уровне команд процессора величина идентифицируется адресом ячейки памяти, в которой она хранится. В алгоритмах и языках программирования величины делятся на константы и переменные. Константа — неизменная величина, и в алгоритме она представляется собственным значением, например: 15, 34.7, ‘к’, true. Переменные величины могут изменять свои значения в ходе выполнения программы и представляются символическими именами — идентификаторами, например: X, S2, cod15. Любая константа или переменная занимают ячейку памяти, а значение этих величин определяется двоичным кодом в этой ячейке.

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

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

Таблица 3.1

Типы констант определяются по контексту (т. е. по форме записи в тексте), а типы переменных устанавливаются в описаниях переменных.

Есть еще один вариант классификации данных: классификация по структуре. Данные делятся на простые и структурированные. Для простых величин (их еще называют скалярными) справедливо утверждение: одна величина — одно значение. Для структурированных: одна величина — множество значений.

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

Компьютер — исполнитель алгоритмов. Как известно, всякий алгоритм (программа) составляется для конкретного исполнителя, в рамках его системы команд. О каком же исполнителе идет речь в теме «Программирование обработки информации»? Ответ очевиден: исполнителем является компьютер. Точнее говоря, исполнителем является комплекс: компьютер + система программирования (СП). Программист составляет программу на том языке, на который ориентирована СП. Схематически это изображено на рис. 3.2, где входным языком исполнителя является язык программирования Паскаль.

Рис. 3.2. Взаимодействие программиста с компьютером

  • присваивания;
  • ввода;
  • вывода;
  • обращения к вспомогательному алгоритму (подпрограмме);
  • цикла;
  • ветвления.

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

Этапы решения задачи на компьютере

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

Решение задачи с использованием компьютера включает в себя этапы, показанные на рис. 2.1.

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

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

Для этого требуется:

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

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

На четвёртом этапе алгоритм записывается на одном из языков программирования. Вы учитесь записывать программы на языке Паскаль.

На пятом этапе осуществляется отладка и тестирование программы. Этап отладки и тестирования также называют компьютерным экспериментом.

Отладка программы — это процесс проверки работоспособности программы и исправления обнаруженных при этом ошибок. Ошибки могут быть связаны с нарушением правил записи программы на конкретном языке программирования. Их программисту помогает найти используемая система программирования; она выдаёт на экран сообщения о выявленных ошибках.

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

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

Заключение

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

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

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

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo.ru

Эта статья относится к рубрикам:

Комментарии и отзывы (7)

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

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

Все программирование в принципе построено на алгоритмах.

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

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

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

— «Так значит, товарищ Орлов, Вы уверены в том что эта группа имеет огнестрельное оружие? Давайте продумаем алгоритм, как будем действовать при задержании».

Я бы не сказал, что бесконечный цикл в программировании нужно избегать, тут всё от задумки программиста зависит. Если мы хотим, чтобы программа начиналась снова и снова, то тут и нужен бесконечный цикл, а выход из него можно предусмотреть с помощью ветвления if и else и оператора break.

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

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

Блок-схема — это слишком общий алгоритм, с его помощью можно понять лишь самую общую логику работы программы. Для написания программы этой схемы недостаточно.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector