Компьютерная реализация работы данного алгоритма или программы посредством эвм

Обновлено: 08.07.2024

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

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

Слово алгоритм появилось в результате искажения (после перевода на европейские языки) имени выдающего математика IX века Аль –Хорезми, которым были описаны правила выполнения основных арифметических действий в десятичной системе счисления. Понятие алгоритма возникло и используется ранее, чем появление ЭВМ.

Основные свойства алгоритма:

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

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

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

Например: решение уравнения ах2+вх+с=0 в области действительных чисел может быть найдено по формуле:

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

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

Под алгоритмизацией понимают процесс разработки алгоритма решения какой-либо задачи.

Формы (способы) записи алгоритмов:

1. Словесный способ алгоритма – содержание последовательных шагов вычислений задается в произвольной форме на естественном языке. Например:

1. Прочитать заданное значение х.

2. Умножить х на 8.

3. Из результата второго действия (шага) извлечь квадратный корень.

4. К результату третьего действия прибавить 1.

5. Умножить х на 3.

6. Результат пятого действия разделить на результат четвертого действия.

7. Записать значение результата у.

Недостатки: низкая наглядность и слабая формализация. Этим способом можно описывать алгоритмы с произвольной степенью детализации.

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

1. Если Х0, то перейти к шагу 2, в противном случае перейти к шагу 3.

2. Положить S= +D. Перейти к шагу 4.

3. Положить S=X-A. Перейти к шагу 4.

4. Принять S за искомый результат и остановиться.

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

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

B- ввод исходных данных

A- арифметический оператор

Операторы имеют номера-индексы в соответствии с порядком их исследования. Логический оператор записывается как функция, аргументом которой служит проверяемое условие P (i=N) или P(? ?o)и т.д.

Операторы выполняются последовательно, которые могут нарушить логические операторы и безусловные операторы передачи управления. Если окажется, что проверяемое условие истинно, то очередным становится оператор, стоящий справа от логического оператора, в противном случае, когда логическое условие не соблюдается, оператор – приемник указывается стрелкой. Отсутствие передачи управления от оператора слева к соседнему оператору справа обозначается точкой с запятой (;). Алгоритм завершается оператором останова.

Операторная схема алгоритма сопровождается схемой счета.

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

Символ-оператор Содержание оператора
В1Р2 А3А4П5Я6 Ввод исходных данныхПроверка выполнения логического условия (X0)Вычисление значения Вычисление значения S= X-AПечать вычисленного значения SОстанов
Операторная схема выглядит следующим образом B1 P2 (х0) А3; А4 П5 Я6

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

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

Основные виды блоков:

5. Псевдокод или структурно-стилизованный способ записи алгоритма основан на формализованном представлении предписаний. Разновидность: алгоритмический язык в русской нотации. Это например:

Важнейшая особенность – близость к алгоязыкам программирования.

6. Язык программирования используется для записи алгоритмов в виде, непосредственно доступном ЭВМ.

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

Языки программирования высокого уровня: ФОРТРАН, БЕЙСИК, КОБОЛ, АЛГОЛ, ПАСКАЛЬ, СИ, ПЛ/1 и др.

На языке Бейсик это выглядит следующим образом:

10 INPUT «Исх. данные», Х, D, А

20 IF X0 THEN 5 O

60 PRINT «Результат=», S

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

3. элемент расчета;

4. конец алгоритма.

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


Информация по каждому типу однозначно определяет:

1) структуру хранения данных указанного типа, т ,e. выделение памяти и представление данных в ней, с одной стороны, и интерпретирование двоичного представления, с другой;

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

3) множество допустимых операций, которые применимы к объекту описываемого типа.

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

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

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

-Числовые. Хранятся числа. Могут применяться обычные арифметические операции.

-Целочисленные: со знаком, то есть могут принимать как положительные, так и отрицательные значения; и без знака, то есть могут принимать только неотрицательные значения.

-Вещественные: с запятой (то есть хранятся знак и цифры целой и дробной частей) и с плавающей запятой (то есть число приводится к виду m*2е, где m — мантисса, е — экспонента, причем 1/2

-Символьный тип. Хранит один символ. Могут использоваться различные кодировки.

-Логический тип. Имеет два значения: истина и ложь. Могут применяться логические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом ложь=0, истина=1.

-Множество. В основном совпадает с обычным математическим понятием множества. Допустимы стандартные операции с множествами и проверка на принадлежность элемента множеству. В некоторых языках рассматривается как составной тип.

-Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектор, двумерный массив — матрица.

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

-Запись (структура). Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи. Например, struct в С или record в Pascal.

-Файловый тип. Хранит только однотипные значения, доступ к которым осуществляется только последовательно (файл с произвольным доступом, включённый в некоторые системы программирования, фактически является неявным массивом).

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

Машина Тьюринга (МТ) — абстрактный исполнитель (абстрактная вычислительная машина). была предложена Аланом Тьюрингом в 1936_ходу для формализации понятия алгоритма.

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

Устройство машины Тьюринга

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

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

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

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

Описание машины Тьюринга

Конкретная машина Тьюринга задаётся перечислением элементов множества букв алфавита А, множества состояний Q и набором правил, по которым работает машина. Они имеют вид: qiaj®qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буква аj, то головка переходит в состояние qi1, в ячейку вместо aj записывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку влево (L), на ячейку вправо (R), остаться на месте (N)). Для каждой возможной конфигурацииимеется ровно одно правило. Правил нет только для заключительного состояния, попав в которое машина останавливается. Кроме того, необходимо указать конечное и начальное состояния, начальную конфигурацию на ленте и расположение головки машины.

Варианты машины Тьюринга

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

Алгоритмические (или вычислительные) процессы обработки данных делятся на виды:

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

Каждая операция является самостоятельной, независимой от каких-либо условий.

Линейные вычислительные процессы имеют место при вычислении арифметических выражений.

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

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

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

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

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

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

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

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

[gl] Тема 6. Знакомство с языками программирования. [:]

Статьи к прочтению:

Алгоритмы. Виды и свойства алгоритмов


Похожие статьи:

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

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

1. Системное программное обеспечение (системные программы);

2. Прикладное программное обеспечение (прикладные программы);

3. Инструментальное обеспечение (инструментальные системы).

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

Центральное место среди системных программ занимают операционные системы (англ. operating systems). Операционная система (ОС) – это комплекс программ, предназначенных для управления загрузкой, запуском и выполнением других пользовательских программ, а также для планирования и управления вычислительными ресурсами ЭВМ, т.е. управления работой ПЭВМ с момента включения до момента выключения питания. Она загружается автоматически при включении компьютера, ведет диалог с пользователем, осуществляет управление компьютером, его ресурсами (оперативной памятью, дисковым пространством и т.д.), запускает другие программы на выполнение и обеспечивает пользователю и программам удобный способ общения – интерфейс – с устройствами компьютера. Другими словами, операционная система обеспечивает функционирование и взаимосвязь всех компонентов компьютера, а также предоставляет пользователю доступ к его аппаратным возможностям.

ОС определяет производительность системы, степень защиты данных, выбор программ, с которыми можно работать на компьютере, требования к аппаратным средствам. Примерами ОС являются MS DOS, OS/2, Unix, Windows 9х, Windows XP.

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

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

Для организации более удобного и наглядного интерфейса пользователя с компьютером используются программные оболочки операционных систем – программы, которые позволяют пользователю отличными от предоставляемых ОС средствами (более понятными и эффективными) осуществлять действия по управлению ресурсами компьютера. К числу наиболее популярных оболочек относятся пакеты Norton Commander (Symantec), FAR (File and Archive manageR) (Е.Рошаль).

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

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

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

 программы оптимизации и контроля качества дискового пространства;

 программы восстановления информации, форматирования, защиты данных;

 программы для записи компакт-дисков;

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

 коммуникационные программы, организующие обмен информацией между компьютерами и др.

Некоторые утилиты входят в состав операционной системы, а некоторые поставляются на рынок как самостоятельные программные продукты, например, многофункциональный пакет сервисных утилит Norton Utilities (Symantec).

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

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

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

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

Текстовые редакторы (например, MS Word, Word Perfect, Лексикон);

Табличные процессоры (например, MS Excel, Lotus 1-2-3, Quattro Pro);

Системы динамических презентаций (например, MS Power Point, Freelance Graphics, Harvard Graphics);

Системы управления базами данных (например, MS Access, Oracle, MS SQL Server, Informix);

Графические редакторы (например, Сorel Draw, Adobe Photoshop);

Издательские системы (например, Page Maker, Venture Publisher);

Системы автоматизации проектирования (например, BPWin, ERWin);

Электронные словари и системы перевода (например, Prompt, Сократ, Лингво , Контекст);

Системы распознавания текста (например, Fine Reader, Cunei Form).

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

методо-ориентированные ППП, в основе которых лежит реализация математических методов решения задач. К ним относятся, например, системы математической обработки данных (Mathematica, MathCad, Maple), системы статистической обработки данных (Statistica, Stat).;

проблемно-ориентированные ППП предназначены для решения определенной задачи в конкретной предметной области. Например, информационно-правовые системы ЮрЭксперт, ЮрИнформ; пакеты бухгалтерского учета и контроля 1С: Бухгалтерия, Галактика, Анжелика; в области маркетинга –Касатка, Marketing Expert; банковская система СТБанк;

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

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

К инструментальному программному обеспечению относят: системы программирования – для разработки новых программ, например, Паскаль, Бейсик. Обычно они включают: редактор текстов, обеспечивающий создание и редактирование программ на исходном языке программирования (исходных программ), транслятор, а также библиотеки подпрограмм; инструментальные среды для разработки приложений, например, C++, Delphi, Visual Basic, Java, которые включают средства визуального программирования; системы моделирования , например, система имитационного моделирования MatLab, системы моделирования бизнес-процессов BpWin и баз данных ErWin и другие.

Транслятор (англ. translator – переводчик) – это программа-переводчик, которая преобразует программу с языка высокого уровня в программу, состоящую из машинных команд. Трансляторы реализуются в виде компиляторов или интерпретаторов, которые существенно различаются по принципам работы.

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

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

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

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

1) постановку задачи

2) созданиеи алгоритма ее решения

3) реализацию алгоритма на эвм в виде программы

4) отладку программы

Рассмотрим поочередно все эти этапы.

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

2) алгоритм- описание последовательности операций, которые нужно выполнить для решения задачи. Слово "алгоритм" происходит от имени арабского математика Мухаммеда бен Мусы аль-Хорезми, предложившего в IX веке первые алгоритмы решения арифметических задач.

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

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

ТРЕБОВАНИЯ К АГОРИТМАМ:

А) ОТСУТСТВИЕ ОШИБОК.

Б) ОДНОЗНАЧНОСТЬ, Т.Е. ЧЕТКОЕ ПРЕДПИСАНИЕ, ЧТО И КАК ДЕЛАТЬ В КАЖДОЙ КОНКРЕТНОЙ СИТУАЦИИ. Никаких неоднозначностей ("можно сделать так, а можно и так. ") быть не должно. Один из пунктов рассмотренного выше алгоритма перехода улицы звучит неоднозначно- "немного подождать". Понятно, что данный алгоритм ориентирован на человека, а человек поймет, что означает слово "немного", правда каждый по-своему. Для компьютера понятия "немного" не существует, поэтому при создании машинно-ориентированных алгоритмов нужно указывать конкретные величины, например "подождать 3 секунды".

В) УНИВЕРСАЛЬНОСТЬ, Т.Е. ПРИМЕНИМОСТЬ ДАННОГО АЛГОРИТМА К РЕШЕНИЮ ЛЮБОЙ ЗАДАЧИ ДАННОГО ТИПА. Это означает, что если Вы пишите программу для решения квадратного уравнения, использованный в ней алгоритм должен позволить использовать ее для решения любого квадратного уравнения, а если Вы пишите программу для создания мультфильмов, то это нужно делать так, чтобы с ее помощью можно было создавать любые мультфильмы, и т.д. Данное требование- экономическое. Разработка серьезной программы это очень сложный, длительный и трудоемкий процесс, и окупится он только тогда, когда созданная в результате программа будет использоваться многократно. Писать программы, которые будут использоваться только однажды смысла нет. Исключением могут быть только какие-то особые случаи и обучение программированию.

3) О ПРОГРАММЕ, ВЫПОЛНЯЮЩЕЙ ДЕЙСТВИЯ, ПРЕДПИСАННЫЕ АЛГОРИТМОМ, ГОВОРЯТ, ЧТО ОНА РЕАЛИЗУЕТ ДАННЫЙ АЛГОРИТМ НА ЭВМ. Следующим шагом после создания алгоритма является написание реализующей его программы. Основная сложность здесь заключается в том, что программа, как Вы помните, представляет собой набор двоичных кодов - нулей и единиц. Алгоритм же формулируется на естественном человеческом языке- русском, английском, немецком, арабском и.т.д. Понятно, что перевести текст на естественном человеческом языке в набор цифр чрезвычайно сложно:




В связи с этим в данный процесс вводится промежуточный этап - разработка текста программы:

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

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

К ЯЗЫКАМ ВЫСОКОГО УРОВНЯ ОТНОСЯТСЯ: ФОРТРАН, БЕЙСИК, ПАСКАЛЬ, СИ, АЛГОЛ, АЛМИР, АДА, СИ++, DELPHI, JAVA и сотни других.

Старейшим языком программирования высокого уровня является ФОРТРАН (англ. FORmula TRANslation, перевод формул). Он был создан группой программистов американской фирмы IBM под руководством Джона Бекуса в 1957 году. Несколько позже в Европе был разработан язык АЛГОЛ (англ.ALGOrythmic Language, алгоритмический язык). Эти языки послужили основой для других новых языков программирования. Так, язык БЕЙСИК (англ. basic, базовый, или Beginner's All-purpose Symbolic Instruction Code, многоцелевой язык символических команд для начинающих) был создан Джоном Кемени в США в 1965 году. Он представляет собой упрощенную версию ФОРТРАНА, который оказался сложным для большинства пользователей из-за своей избыточности. Язык АЛГОЛ послужил основой для не менее популярного языка ПАСКАЛЯ, созданного в 1969 году швейцарским математиком Никласом Виртом. ПАСКАЛЬ не сложнее Бейсика, но в него изначально были заложены более широкие возможности. Дальнейшее развитие язык ПАСКАЛЬ получил в виде системы программирования DELPHI. На Украине в 1965 году на базе АЛГОЛА был создан язык АЛМИР, отличавшийся использованием символики на основе русского, а не английского языка. Этот язык считается первым в мире языком программирования на основе национального языка (Native Language).

Язык СИ, в котором использованы элементы ПАСКАЛЯ, был создан в 1972 году в американской фирме Bell Laboratories под руководством Дениса Ритчи. Название языка СИ связано с тем, что наиболее удачной оказалась его третья версия ( СИ- третья буква английского алфавита). СИ считается наиболее эффективным среди языков программирования высокого уровня. С одной стороны он не намного сложнее ПАСКАЛЯ или ФОРТРАНА, но с другой обладает возможностями, присущими языкам программирования низкого уровня. Поэтому СИ иногда называют языком программирования среднего уровня и используют как при написании прикладных программ, так и при разработке системных. Дальнейшим развитием языка СИ стали языки СИ++ и JAVA.

К ЯЗЫКАМ НИЗКОГО УРОВНЯ ОТНОЯТСЯ АССЕМБЛЕР И АВТОКОД. Ассемблер, как язык низкого уровня, фактически состоит из набора команд данной машины, записанных в виде сокращений на английском языке. Автокод- вариант ассемблера на основе русского языка.

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

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

4) отладка программы - исправление в ней ошибок и тщательное ее тестирование.

Программирование - это процесс создания программы для решения задачи с помощь.

Программирование - это процесс создания программы для решения задачи с помощью ЭВМ

Программы и данные Программное обеспечение – это не только собственно программы, но и данные, с которыми работают эти программы. Данные и программы хранятся на дисках, в отдельных файлах. Часто объем данных во много раз превышает размер программ. Содержание

Программное обеспечение (ПО) ПО – это совокупность программ, хранящихся на устройствах долговременной памяти компьютера и предназначенных для массового использования. Использование компьютера человеком происходит по схеме: Содержание ЗАДАЧА ВЫБОР И ИНИЦИАЛИЗАЦИЯ ПРОГРАММЫ РАБОТА

Программные средства (ПО, Soft)

Основные этапы технологического процесса решения задач с помощью ЭВМ 1 этап: Постановка задачи и выбор метода решения (формальное математическое описание алгоритма) 2 этап: Определение и описание входных и выходных данных, необходимых для решения задач. 3 этап: Разработка алгоритма решения задач. 4 этап: Кодирование описания данных и алгоритма (составление программы на выбранном языке программирования). 5 этап: Отладка и тестирование программы с целью её проверки и доведения её в соответствии с поставленной задачей. 6 этап: Выполнение и поддержка программы (создание новых версий в зависимости от новой техники).

Понятие программы Программа – это форма представления алгоритма для исполнения его компьютером Программа – последовательность инструкций (кодов), предназначенная для исполнения устройством управления вычислительной машины Первые команды составлялись в машинных кодах. Например, команда сложения двух чисел могла выглядеть так: 15 0127 2677 3656 Код операции Номера ячеек ОЗУ Понятнее записать команду так: С = А + В Здесь латинские буквы А ,В ,С обозначают переменные

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

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

Существует два типа программ-посредников, работающих с исходными текстами: Компилятор: - переводит исходный текст в машинный код, - записывает машинный код на диск в форме исполняемого (загрузочного) файла. После этого программа выполняется независимо от исходного текста. Интерпретатор: - интерпретирует каждую инструкцию исходного текста и немедленно ее исполняет, - файл на машинном языке не создается. Замечание. Программа в режиме Интерпретации работает медленнее, но проще для отладки Реализация 2-й задачи

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

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

Основные подходы к программированию Процедурное (процедурно-ориентированное) - в основу положен модульный (структурный) принцип: Программа - это последовательность процедур или функций, т.е. последовательность действий. Языки программирования: Фортран, Паскаль, Си ООП (объектно-ориентированное) - в основу положена концепция объекта: Объект = данные + выполняемые над ними действия (процедуры или функции). Программа – это набор объектов и связей между ними. Языки программирования: С++, Java, ObjectLisp

Структурное программирование: 1- каждая задача разбивается на какие-то цельные завершенные части (модули), 2- программирование ведется исключительно по этим частям - написали часть номер 1, протестировали ее, написали часть номер 2, протестировали ее… 3 - потом все вместе собрали и получили программный продукт.

Структура программы на языках Pascal и C++ С++ Директивы препроцессора Описания глобальных объектов Функции, написанные программистом void main() < >Операторы функции main Pascal Program имя; Uses <список модулей> Раздел описаний Begin Раздел операторов End.

Pascal Заголовок программы начинается с зарезервированного слова Program и содержит имя программы, которое дает сам программист. Подключение модулей начинается с зарезервированного слова Uses и содержит список модулей (библиотек внешних процедур и функций). Раздел описаний состоит из подразделов, в которых объявляются все встречающиеся в программе объекты: метки (Label), константы (Const), типы (Type), переменные (Var), внутренние процедуры (Procedure), внутренние функции (Function). Описания отделяются друг от друга точкой с запятой. Раздел операторов заключается в операторные скобки Begin и End, при этом после End ставится точка. Операторы отделяются друг от друга точкой с запятой.

С++ Директивы препроцессора включают в себя необходимые заголовочные файлы библиотек С++, определения констант, типов и макроопределений, используемых в программе. Глобальные объекты – константы, типы, переменные используются во всех функциях программы, обеспечивая соответствие типов, значений констант и переменных во всей программе. Функции – это особым образом оформленные части программы, которая выполняют действия необходимые программисту. Функция main( ) - главная функция программы. Любая программа на С++ обязательно включает в себя функцию main( ), с которой и начинает свое выполнение. Функция main() запускается операционной системой. Слово void перед именем функции main() означает, что функция main() не возвращает операционной системе никакой информации. Тело функции заключено в фигурные скобки ‘ < >’ . Фигурные скобки ‘ < >’ обозначают начало и конец составного оператора (аналогично begin и end в TurboPascal). Точка с запятой ‘ ; ‘ завершает каждый оператор и каждое описание. Программа может содержать комментарии, их можно вставлять в любое место программы, где допускаются пробелы или в конце строки. В С++ используются два вида комментариев: /* многострочный комментарий */ // однострочный комментарий до конца текущей строки

Среда программирования – это интегрированная среда разработки программ (ИСРП), которая содержит: - редактор текста - для создания и редактирования текста программы на языке высокого уровня, т.е. формирования исходного модуля (например, среды на основе языка Pascal сохраняют файл с расширением .pas; на основе языка С++ с расширением .cpp); - компилятор - для перевода текста программы с языка высокого уровня в машинные коды, т.е. формирование объектного модуля (например, в Pascal .tpu; в С++ .obj); - компоновщик - для подключения объектных кодов стандартных команд и формирования загрузочного модуля (файл с расширением .exe) - загрузчик - для выполнения загрузочного модуля программы.

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

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

Читайте также: