1. Базовая структура следование. Образуется из последовательности действий, следующих одно за другим:
Школьный алгоритмический язык | Язык блок-схем |
действие 1 действие2 действие n |
2. Базовая структура ветвление. Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран.
Структура ветвление существует в четырех основных вариантах:
· если-то;
· если-то-иначе;
· выбор;
· выбор-иначе.
Школьный алгоритмический язык | Язык блок-схем |
1. если-то | |
если условие то действия все | |
2. если-то-иначе | |
если условие то действия 1 иначе действия 2 все | |
3. выбор | |
Выбор при условие 1: действия 1 при условие 2: действия 2 при условие N: действия Nвсе | |
4. выбор-иначе | |
Выбор при условие 1: действия 1 при условие 2: действия 2 при условие N: действия N иначе действия N+1 все |
Примеры команды если
Школьный алгоритмический язык | Язык блок-схем |
если x > 0 то y := sin(x) все | |
если a > b то a := 2*a; b := 1 иначе b := 2*b все | |
Выбор при n = 1: y := sin(x) при n = 2: y := cos(x) при n = 3: y := 0 се | |
Выбор при a > 5: i := i+1 при a = 0: j := j+1 иначе i := 10; j:=0 все |
3. Базовая структура цикл. Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Основные разновидности циклов представлены в таблице:
Школьный алгоритмический язык | Язык блок-схем |
Цикл типа пока Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока. | |
нц пока условие тело цикла (последовательность действий) кц | |
Цикл типа для. Предписывает выполнять тело цикла для всех значений некоторой переменной (параметра цикла) в заданном диапазоне. | |
нц для i от i1 до i2 тело цикла (последовательность действий) кц |
Примеры команд пока и для
Школьный алгоритмический язык | Язык блок-схем |
нц пока i <= 5 S := S+A[i] i := i+1 кц | |
нц для i от 1 до 5 X[i] := i*i*i Y[i] := X[i]/2 кц |
33 Языки программирования низкого уровня
Сегодня практически все программы создаются с помощью языков программирования. Теоретически программу можно написать и на естественном языке (говорят: программирование на метаязыке), но из-за неоднозначности естественного языка автоматически перевести такую программу в машинный код пока невозможно. Языки программирования - это формальные искусственные языки.
все языки программирования делятся на языки низкого, высокого и сверхвысокого уровня.
Язык низкого уровня - это средство записи инструкций компьютеру простыми приказами-командами на аппаратном уровне. Такой язык отражает структуру данного класса ЭВМ и поэтому иногда называется машинно-ориентированным языком. Пользуясь системой команд, понятной компьютеру, можно описать алгоритм любой сложности. Правда, такая запись для сложных задач будет настолько громоздкой, что у человека будет мало шансов сделать ее безошибочной, так как этот язык мало приспособлен для использования человеком, ведь запись программы на этом языке представляет собой последовательность нулей и единиц.
Существенной особенностью языков программирования низкого уровня является жесткая ориентация на определенный тип аппаратуры (систему команд процессора). В стремлении приспособить язык программирования низкого уровня к человеку разработан язык символического кодирования (автокод или язык ассемблера), структура команд которого определяется форматами команд и данными машинного языка. Программа на таком языке ближе человеку, потому что операторы этого языка - те же команды, но они имеют мнемонические названия, а в качестве операндов используются не конкретные адреса в оперативной памяти, а их символические имена.
Более многочисленную группу составляют языки программирования высокого уровня, средства которых допускают описание задачи в наглядном, легко воспринимаемом виде. Отличительной особенностью этих языков является их ориентация не на систему команд той или иной ЭВМ, а на систему операторов, характерных для записи определенного класса алгоритмов. К языкам программирования этого типа относятся: Бейсик, Фортран, Алгол, Паскаль, Си. Программа на языках высокого уровня записывается системой обозначений, близкой человеку (например, фиксированным набором слов английского языка, имеющих строго определенное назначение). Программу на языке высокого уровня проще понять и значительно легче отладить.
К языкам программирования сверхвысокого уровня можно отнести Алгол-68, при разработке которого сделана попытка формализовать описание языка, приведшая к появлению абстрактной и конкретной программ. Абстрактная программа создается программистом, конкретная - выводится из первой. Предполагается, что при таком подходе принципиально невозможно породить неверную синтаксически (а в идеале и семантически) конкретную программу. Язык APL относят к языкам сверхвысокого уровня за счет введения сверхмощных операций и операторов. Запись программ на таком языке получается компактной.
Наиболее употребительными простыми языками являются PASCAL, C (более сложная версия — C++) и BASIC. Более сложные языки программирования — PL/1, ADA, MODULA-2. Прочие языки высокого уровня: COBOL, FORTRAN, ALGOL и т.д. PROLOG и PLANNER относятся к декларативным языкам программирования (декларативные языки позволяют формулировать сразу цель программы, а алгоритм ее решения строится автоматически).
На первом этапе развития вычислительных машин программы писались на машинном языке. Этот процесс был очень трудоемок, а программа, написанная на машинном языке, имела ряд недостатков. Во-первых, исторически сложилось так, что в мире существует очень много типов компьютеров и, соответственно, много вариантов машинных языков. В результате программа на машинном языке годится только для своего компьютера. Во-вторых, программу на машинном языке трудно читать даже профессионалу. В-третьих, в такой программе очень трудно находить ошибки и описки. Если объем программы превышает критический, программу практически невозможно полностью отладить. В-четвертых, даже если программа доведена до уровня, при котором она полностью отвечает поставленной задаче, малейшие изменения в программе могут вызвать непреодолимые трудности. В-пятых, первые программы на машинном языке требовали однозначного размещения в оперативной памяти самих себя и используемых в них данных.
34 Компоненты образующие алгоритмический язык
Алгоритмический язык (как и любой другой язык) образуют три его составляющие:
алфавит, синтаксис и семантика.
Алфавит — это фиксированный для данного языка набор основных символов, т.е. "букв алфавита", из которых должен состоять любой текст на этом языке — никакие другие символы в тексте не допускаются.
Синтаксис — это правила построения фраз, позволяющие определить, правильно или неправильно написана та или иная фраза. Точнее говоря, синтаксис языка представляет собой набор правил, устанавливающих, какие комбинации символов являются осмысленными предложениями на этом языке.
Семантика определяет смысловое значение предложений языка. Являясь системой правил истолкования отдельных языковых конструкций, семантика устанавливает, какие последовательности действий описываются теми или иными фразами языка и, в конечном итоге, какой алгоритм определен данным текстом на алгоритмическом языке.
35 Классификация программного обеспечения
Под программным обеспечением (Software) понимается совокупность программ, выполняемых вычислительной системой.
К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке ПО:
· технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);
· методы тестирования программ;
· методы доказательства правильности программ;
· анализ качества работы программ;
· документирование программ;
· разработка и использование программных средств, облегчающих процесс проектирования программного обеспечения, и многое другое.
Программное обеспечение - неотъемлемая часть компьютерной системы. Оно является логическим родолжением технических средств. Сфера применения конкректного компьютера определяется созданным для него ПО.
Программное обеспечение современных компьютеров включает миллионы программ - от игровых до научных.
Как классифицируется программное обеспечение?
В первом приближении все программы, работающие на компьютере, можно условно разделить на три категории
· управление ресурсами компьютера;
· создание копий используемой информации;
· проверка работоспособности устройств компьютера;
· выдача справочной информации о компьютере и др.;
1. прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;
2. системные программы, выполняющие различные вспомогательные функции, например: 3. инструментальные программные системы, облегчающие процесс создания новых программ для компьютера. При построении классификации ПО нужно учитывать тот факт, что стремительное развитие вычислительной техники и расширение сферы приложения компьютеров резко ускорили процесс эволюции программного обеспечения.