Системой программирования называется комплекс программ, предназначенный для автоматизации программирования задач на ЭВМ. Система программирования освобождает проблемного пользователя или прикладного программиста от необходимости написания программ решения своих задач на неудобном для него языке машинных команд, и предоставляют им возможность использовать специальные языки более высокого уровня.
Язык программирования — это формализованный язык описания алгоритмов, используемых для решения различных задач на компьютере.
-Язык высокого уровня — Язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. К языкам высокого уровня относят Фортран, ПЛ/1, Бейсик, Паскаль, Си, Ада и др.
-Язык низкого уровня — Язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код (см. также “ машинный язык “, “ машинно-ориентированный язык “ и “ язык ассемблера “).
Основы Программирования — #1 — Логика. Алгоритмы
Отладка ПС — это деятельность, направленная на обнаружение и исправление ошибок в ПС с использованием процессов выполнения его программ.
Тестирование ПС — это процесс выполнения его программ на некотором наборе данных, для которого заранее известен результат применения или известны правила поведения этих программ.
Транслятор – это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.
Трансляторы бывают двух типов:
интерпретаторы
компиляторы
Интерпретатор — переводит каждую команду программы с одновременным её выполнением и, если обнаруживает ошибку, сообщает о ней и прекращает выполнение программы.
Компилятор — переводит всю программу целиком и в конце работы выдаёт список ошибок, если они обнаружены.
Вопрос №55 Классификация языков программирования
a)Существуют различные классификации языков программирования. По наиболее распространенной классификации все языки программирования делят на языки низкого, высокого и сверхвысокого уровня.
В группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер) Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами
Следующую, существенно более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно-независимы
К языкам сверхвысокого уровня можно отнести лишь Алгол-68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.
Языки программирования подразделяются на операторные и функциональные.
Вопрос №56 Понятие алгоритма.Свойства алгоритма. Виды алгоритмов. Принципы разработки алгоритмов и программ.
Б) Алгоритм – это точный набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время.
В)Алгоритм обладает следующими свойствами:
1. Дискретность. Это свойство состоит в том, что алгоритм должен представлять процесс решения задачи как последовательное выполнение простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, т.е. преобразование исходных данных в результат осуществляется во времени дискретно.
2. Определенность. Каждое правило алгоритма должно быть четким, однозначным.
3. Результативность. Алгоритм должен приводить к решению за конечное число шагов.
4. Массовость. Алгоритм решения задачи разрабатывается в общем виде, т.е. он должен быть применим для некоторого класса задач, различающихся лишь исходными данными.
5. Правильность. Алгоритм правильный, если его выполнение дает правильные результаты решения поставленной задачи.
Г)Виды алгоритмов: линейный,разветвляющийся,циклический,комбинированный.
Д)Существуют два подхода разработки программ и алгоритмов:
57.) Блок-схемы алгоритмов. Основные управляющие структуры (следование, ветвление, повторение). Понятие цикла.
Схе́ма — графическое представление определения, анализа или метода решения задачи, в котором используются символы для отображения операций, данных, потока, оборудования и т. д.[1]
Основные элементы схем алгоритма
Наименование | Обозначение | Функция |
Блок начало-конец (пуск-остановка) | ![]() |
Элемент отображает вход из внешней среды или выход из неё (наиболее частое применение − начало и конец программы). Внутри фигуры записывается соответствующее действие. |
Блок вычислений (вычислительный блок) | ![]() |
Выполнение одной или нескольких операций, обработка данных любого вида (изменение значения данных, формы представления, расположения). Внутри фигуры записывают непосредственно сами операции, например, операцию присваивания: a = 10*b + c. |
Логический блок (блок условия) | ![]() |
Отображает решение или функцию переключательного типа с одним входом и двумя или более альтернативными выходами, из которых только один может быть выбран после вычисления условий, определенных внутри этого элемента. Вход в элемент обозначается линией, входящей обычно в верхнюю вершину элемента. Если выходов два или три, то обычно каждый выход обозначается линией, выходящей из оставшихся вершин (боковых и нижней). Если выходов больше трех, то их следует показывать одной линией, выходящей из вершины (чаще нижней) элемента, которая затем разветвляется. Соответствующие результаты вычислений могут записываться рядом с линиями, отображающими эти пути. Примеры решения: в общем случае − сравнение (три выхода: >, |
Предопределённый процесс | ![]() |
Символ отображает выполнение процесса, состоящего из одной или нескольких операций, который определен в другом месте программы (в подпрограмме, модуле). Внутри символа записывается название процесса и передаваемые в него данные. Например, в программировании − вызов процедуры или функции. |
Данные (ввод-вывод) | ![]() |
Преобразование данных в форму, пригодную для обработки (ввод) или отображения результатов обработки (вывод). Данный символ не определяет носителя данных (для указания типа носителя данных используются специфические символы). |
Граница цикла | ![]() |
Символ состоит из двух частей − соответственно, начало и конец цикла − операции, выполняемые внутри цикла, размещаются между ними. Условия цикла и приращения записываются внутри символа начала или конца цикла − в зависимости от типа организации цикла. Часто для изображения на блок-схеме цикла вместо данного символа используют символ условия, указывая в нём решение, а одну из линий выхода замыкают выше в блок-схеме (перед операциями цикла). |
Соединитель | ![]() |
Символ отображает вход в часть схемы и выход из другой части этой схемы. Используется для обрыва линии и продолжения её в другом месте (для избежания излишних пересечений или слишком длинных линий, а также, если схема состоит из нескольких страниц). Соответствующие соединительные символы должны иметь одинаковое (при том уникальное) обозначение. |
Комментарий | ![]() |
Используется для более подробного описания шага, процесса или группы процессов. Описание помещается со стороны квадратной скобки и охватывается ей по всей высоте. Пунктирная линия идет к описываемому элементу, либо группе элементов (при этом группа выделяется замкнутой пунктирной линией). Также символ комментария следует использовать в тех случаях, когда объём текста, помещаемого внутри некоего символа (например, символ процесса, символ данных и др.), превышает размер самого этого символа. |
Цикл — разновидность управляющей конструкции в высокоуровневых языках программирования, предназначенная для организации многократного исполнения набора инструкций.
Источник: cyberpedia.su
Основные понятия программирования
Программирование — процесс создания компьютерных программ.
В узком смысле под программированием понимается написание инструкций (программ) на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами, а те, кто разрабатывают алгоритмы — алгоритмистами.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Иначе это называется «программная инженерия» («инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.
Программирование для ЭВМ основывается на использовании языков программирования, на которых записывается программа. Чтобы программа могла быть понята и исполнена ЭВМ, требуется специальный инструмент — транслятор. Транслятор — программа или техническое средство, выполняющее трансляцию программы. Трансляция программы — преобразование программы, представленной на одном из языков программирования, в программу на другом языке и, в определённом смысле, равносильную первой.
В зависимости от назначения и / или способа написания программ различают:
- · Прикладное программирование [applicationprogramming] — разработка и отладка программ для конечных пользователей, например бухгалтерских, обработки текстов и т.п.
- · Системное программирование [systemprogramming] — разработка средств общего программного обеспечения, в том числе операционных систем, вспомогательных программ, пакетов программ общесистемного назначения, например: автоматизированных систем управления, систем управления базами данных и т.д.
- · Декларативное (логическое, продукционное) программирование [declarativeprogramming, logicalprogramming] — метод программирования, предназначенный для решения задач искусственного интеллекта. В указанном контексте программа описывает логическую структуру решения задачи, указывая преимущественно, что нужно сделать, не вдаваясь в детали, как это делается. Используются языки программирования типа Пролог.
- · Объектно-ориентированное программирование, объектное программирование, ООП [OOP — Object-OrientedProgramming] — метод программирования, основанный на использовании концепции объекта, абстрагирующего конкретные его реализации в предметной области. При этом данные тесно связываются с выполняемыми над объектами процедурами. Например, круг на экране монитора может рассматриваться как объект, данные о котором характеризуют положение (координаты) центра, величину радиуса, толщину и цвет линии. Процедуры, связанные с этим объектом, — перемещение, изменение размера, стирание и т.д. Объектно-ориентированное программирование разрабатывалось и усовершенствовалось в 1960-1970-х гг. В настоящее время используется в ряде языков программирования высокого уровня (Си++, Java, Смолток, ObjectLisp и др). В начале 90-х гг. была выявлена потребность в выработке единых спецификаций, которые должны позволить программным продуктам различных фирм взаимодействовать друг с другом в общей информационной среде. Решение указанной задачи взяла на себя фирма OMG (США). Выработанная ею идеология «Бизнес-объекта» к 1997 г. получила достаточно широкое распространение при выработке промышленных программных приложений. Основу этой идеологии составляет «Общая архитектура брокера объектных запросов» — COBRA (CommonObjectRequestBrokerArchitecture), центральной частью которой является спецификация на программный продукт (ORB — ObjectRequestBroker), представляющий собой набор доменов или динамических библиотек, обеспечивающих взаимодействие различных программ в распределенной компьютерной среде. Кроме того, фирма OMG разработала спецификации обмена данными между брокерами различных фирм-производителей — GIOP (GeneralInter ORB Protocol), а с той же целью для Internet — HOP (InternetInter ORB Protocol). Поддержкой и развитием бизнес-объектной технологии занимается организованный в рамках OMG специальный комитет — BODTF (BusinessObjectDomainTaskForce). В 1998 г. этим комитетом была выпущена спецификация (BOCA — BusinessObjectComponentArchitecture), регламентирующая построение программных систем из компонент-объектов, созданных на основе технологии CORBA/IIOP. Подробнее см. [407, 423, 434].
- · Параллельное программирование [concurrentprogramming] — разработка программ, обеспечивающих одновременное (параллельное) выполнение операций, связанных с обработкой данных.
- · Процедурное (процедурно-ориентированное) программирование [procedure-orientedprogramming] — метод программирования, в соответствии с которым программы пишутся как перечни последовательно выполняемых команд. При этом используются процедурно-ориентированные языки программирования.
- · Структурное программирование, модульное программирование [structuredprogramming, modularprogramming] — метод написания программ небольшими независимыми частями — модулями, каждый из которых связан с какой-либо процедурой или функцией. При этом результирующая программа организуется в виде совокупности взаимосвязанных по определенным правилам модулей. Это упрощает разработку сложных программных продуктов и их тестирование.
- · Функциональное программирование [functionalprogramming] — метод программирования, основанный на разбиении алгоритма решения задачи на отдельные функциональные модули, а также описании их связей и характера взаимодействия. Для функционального программирования наиболее широко используются языки НОРЕ и ML. Элементы функционального программирования реализуются также другими языками, например Си.
- · Эвристическое программирование [hueristicprogramming] — метод программирования, основанный на моделировании мыслительной деятельности человека. Используется для решения задач, не имеющих строго формализованного алгоритма или связанных с неполнотой исходных данных.
Алгоритм [algorithm] — 1. последовательность действий (операций) и правил их выполнения или команд, предназначенных для решения определенной задачи или группы задач. 2. предписание, определяющее ход вычислительного процесса, связанного с преобразованием данных от некоторого их исходного состояния к требуемому результату. Формальные описания алгоритмов аналогичны представлениям основных частей программ, которые их реализуют, поэтому многое, что относят к описанию конкретных программ, применимо к алгоритму, и наоборот.
Некоторые виды алгоритмов:
Адаптивный алгоритм [adaptivealgorithm] — алгоритм, обладающий свойством настраиваться на условия применения.
Линейный алгоритм [serialalgorithm] — алгоритм, не содержащий ветвей и циклов, все элементы которого выполняются последовательно.
Логический алгоритм [logicalalgorithm] — алгоритм решения логической задачи.
Алгоритм маршрутизации [routingalgorithm] — алгоритм решения задачи определения оптимального пути, по которому будут передаваться данные в коммуникационной сети.
Параллельный алгоритм [parallelalgorithm] — алгоритм, в котором часть или все операции независимы и могут выполняться одновременно (параллельно).
Последовательный алгоритм [sequentialalgorithm] — 1. алгоритм, все действия которого выполняются последовательно. 2. алгоритм обслуживания, реализующий принцип очереди — «первый на входе — первый на выходе» [FIFO — FirstInput — FirstOutput].
Циклический алгоритм [round-robinalgorithm] — алгоритм обслуживания в системах с разделением времени, при котором задача, использовавшая выделенный ей ресурс времени центрального процессора, прерывается и помещается в конец очереди.
Программа [program, routine] — 1.последовательность операций, в том числе нескольких параллельных, выполняемых ЭВМ для достижения поставленной цели или задачи. 2.описание на языке программирования или в машинном коде действий, которые должна выполнить ЭВМ в соответствии с алгоритмом решения конкретной задачи или группы задач (синоним — машинная программа). 3.упорядоченная последовательность команд, подлежащих обработке.
Некоторые понятия, связанные с термином «программа»
Машинная программа [computer (machine) program] — программа, написанная на машинном языке (в машинном коде).
Структура программы [programstructure] — общая схема построения программы, рассматривающая ее составные компоненты (программные блоки) и взаимосвязи между ними.
Спецификация программы, программная спецификация [programspecification] — точная и полная формулировка определенной задачи или группы задач, содержащая сведения, необходимые для построения ее алгоритма (программы) или решения. Содержит описание результата, который должен быть достигнут с помощью конкретной программы, а также того, что для достижения этого результата программа должна делать без упоминания, как достигнут указанный результат.
Верификация программы [programverification] — 1. установление любым корректным методом факта соответствия программы заданным целям ее создания или приобретения — установление правильности программы. 2. формализованный контроль или проверка работоспособности программы.
Отладка программы [debugging] — обнаружение, локализация и устранение ошибок в компьютерной программе.
Отладчик [debugger] — программа, предназначенная для анализа поведения другой программы, обеспечивающая ее трассировку (отслеживание и распечатку выполняемых программой команд, изменений переменных или данных о других событиях, связанных с выполнением программы), останов в указанных точках или, при выполнении указанных условий, просмотр и изменение ячеек памяти, регистров процессора и команд программы.
Трассировка [trace] — метод проверки правильности функционирования программ при их выполнении путем отображения изменений всех значений переменных. Этим достигается сокращение поиска ошибочных команд, из-за которых переменные принимают неверные значения. Трассировка выполняется при помощи ввода в проверяемую программу специальных команд или с использованием специальных сервисных программ.
Тестирование программы [programtesting] — проверка программы в рабочих условиях с некоторым специально созданным (тестовым) массивом данных в целях определения ее работоспособности в соответствии с заданными критериями оценки.
Испытания программы [programverificationandvalidation] — всесторонняя (по формализованным признакам — «Verification» и общей субъективной оценке — «Validation») проверка и тестирование программы при сдаче ее в эксплуатацию или аттестации.
Подпрограмма [subroutine] — небольшая часть программы, связанная с реализацией какой-либо повторяющейся функции, процедуры или операции и вызываемая для выполнения из разных мест программы.
В зависимости от того, являются ли подпрограммы частью разработки использующей их программы или заимствуются из других программ, они подразделяются на внутренние подпрограммы [internalsubroutines] и внешние подпрограммы [externalsubroutines]. В качестве последних могут использоваться и так называемые стандартные подпрограммы или программы [standardsubroutines, standardprograms] — программы, помещенные в библиотеку программ.
Программное обеспечение, ПО [software] — совокупность программных средств, управляющих работой ЭВМ и / или автоматизированной системы, а также документация, необходимая для эксплуатации этих средств. Различают общее и прикладное (специальное) программное обеспечение.
Программная документация [programdocumentation] — комплект документов, содержащих полное описание программы и необходимый состав сведений для ее распространения (в том числе продажи) и использования.
Источник: studwood.net
Тема 5. алгоритмизация и программирование.
Алгоритмизация – это метод описания систем или процессов путем составления алгоритмов их функционирования.
Алгоритмом называется точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату (ГОСТ 19.781- 74).
Понятие алгоритма является центральным понятием информатики. Термин «алгоритм» своим происхождением связан с именем узбекского математика Аль – Хоремзи, который еще в IХ в. сформулировал правила выполнения четырех арифметических действий.
Алгоритм решения задачи имеет ряд обязательных свойств:
— дискретность — разбиение процесса обработки информации на более простые этапы (шаги выполнения), выполнение которых компьютером или человеком не вызывает затруднений;
— определенность алгоритма — однозначность выполнения каждого отдельного шага преобразования информации;
— выполнимость — конечность действий алгоритма решения задач, позволяющая получить желаемый результат при допустимых исходных данных за конечное число шагов;
— массовость — пригодность алгоритма для решения определенного класса задач.
В алгоритме отражаются логика и способ формирования результатов решения с указанием необходимых расчетных формул, логических условий, соотношений для контроля достоверности выходных результатов. В алгоритме обязательно должны быть предусмотрены все ситуации, которые могут возникнуть в процессе решения комплекса задач.
Из известных основных способов представления алгоритмов:
- словесный;
- структурно-стилизованный (псевдокод);
- графический;
- программный.
Форма и размеры блоков, их перечень, наименование, правила выполнения схем определены ГОСТом, Требованиями Единой системы программной документации (ЕСПД) ГОСТ 19.002-80 и ГОСТ 19-003-80.
Программирование (programming) — теоретическая и практическая деятельность, связанная с созданием программ.
Программирование является собирательным понятием и может рассматриваться и как наука и как искусство, на этом основан научно-практический подход к разработке программ. Программа — результат интеллектуального труда, для которого характерно творчество, а оно, как известно, не имеет четких границ. В любой программе присутствует индивидуальность ее разработчика, программа отражает определенную степень искусства программиста. Вместе с тем программирование предполагает и рутинные работы, которые могут и должны иметь строгий регламент выполнения и соответствовать стандартам.
Язык программирования — формальная знаковая система, предназначенная для описания алгоритмов в форме, которая удобна для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
Процесс решения задачи на компьютере — это совместная деятельность человека и ЭВМ. Этот процесс можно представить в виде нескольких последовательных этапов. На долю человека приходятся этапы, связанные с творческой деятельностью — постановкой, алгоритмизацией, программированием задач и анализом результатов, а на долю компьютера — этапы обработки информации в соответствии с разработанным алгоритмом:
1. Постановка задачи; 2. Анализ и исследование задачи, модели; 3. Разработка алгоритма; 4. Программирование; 5. Тестирование и отладка; 6. Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5; 7. Сопровождение программы.
ЭВМ непосредственно выполняет программы на машинном языке программирования данной ЭВМ. При этом программа представляет собой набор отдельных команд компьютера. Эти команды являются достаточно «простыми», например, сложение, умножение, сравнение или пересылка отдельных данных. Каждая команда содержит в себе сведения о том, какая операция должна быть выполнена (код операции), с какими операндами (адреса данных или непосредственно сами данные) выполняются вычисления и куда (адрес) должен быть помещен результат.
Человеку свойственно формулировать и решать задачи в выражениях более общего характера, чем команды ЭВМ. Поэтому с развитием программирования появились языки, ориентированные на более высокий уровень абстракции при описании решаемой на ЭВМ задачи. Эти языки получили название языков высокого уровня. Их теоретическую основу составляют алгоритмические языки, например, Паскаль, Си, Бейсик, Фортран, PL/1.
Каждый язык программирования может быть представлен в виде набора формальных спецификаций, определяющих его синтаксис и семантику
Эти спецификации обычно включают в себя описание:
- Типов и структур данных
- Операционную семантику (алгоритм вычисления конструкций языка)
- Семантические конструкции языка
- Библиотеки примитивов (например, инструкции ввода-вывода)
- Философии, назначения и возможностей языка
Последовательное выполнение операторов в языке программирования означает, что они выполняются в том порядке, как записаны в программе. В Паскале этот порядок подразумевается по умолчанию, если не применены структурные операторы, меняющие его.
Условное выполнение означает, что при определенных условиях должны выполняться одни операторы, а при других условиях — другие. Для организации такого порядка служат условные операторы. Условное выполнение также часто называют ветвлением.
При повторяющемся выполнении некоторые операторы выполняются несколько раз, несмотря на то, что в программе они записаны один раз. Такой рациональный способ записи и выполнения обеспечивается операторами цикла.
Литература: [1], с. 35-49; [3], с. 100-156.
Статьи к прочтению:
- Тема 5. архитектура безопасности
- Тема 5. базы данных. ms access
Основы алгоритмизации и программирование на языке Pascal
Похожие статьи:
Источник: csaa.ru