Алгоритм и программа, языки программирования.pptx
- Количество слайдов: 42
Программа — это упорядоченная последовательность команд. Конечная цель любой компьютерной программы — управление аппаратными средствами. Программная конфигурация - состав программного обеспечения вычислительной системы. Программное обеспечение делится на две части: *системные программы - комплекс программных средств, предназначенных для того, чтобы на вычислительной машине можно было организовать выполнение программ; *прикладные программы - множество тех программ, которые нацелены на решение конкретных задач.
Алгоритм — это точно определенное описание способа решения задачи в виде конечной (по времени) последовательности действий. 825 год - Мухаммед ибн Муса Хорезми (Аль. Хорезми) - Algoritmi de numero Indorum ( «Алгоритмы о счёте индийском» )
* * * Основные свойства алгоритма: Дискретность (разрывность) - каждый алгоритм состоит из отдельных законченных действий. Шагом называется каждое действие алгоритма; Определенность - каждый шаг алгоритма должен быть строго определен и не допускать различных толкований, также строго должен быть определен порядок выполнения отдельных шагов; Массовость - применимость ко всем задачам рассматриваемого типа, при любых исходных данных; Результативность - алгоритм должен завершаться за конечное (может быть очень большое) число шагов; Формальность - любой исполнитель, способный воспринимать и выполнять инструкции алгоритма, действует формально, т. е. лишь строго выполняет инструкции.
Способы записи алгоритма: 1. Словесное описание алгоритма (формальное) на естественном языке в виде последовательности инструкций. Например, любой прибор бытовой техники имеет инструкцию по эксплуатации. Никаких правил составления словесного описания не существует. Не получил широкого распространения, т. к. : * строго не формализуем , т. е. описание не абсолютно полное и не учитывает все возможные ситуации, которые могут возникнуть в ходе решения; * допускает неоднозначность толкования при описании некоторых действий; * страдает многословностью.
2. Псевдокод - описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основные этапы решения задачи; Строгих синтаксических правил для записи псевдокода не существует. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика. Этот способ облегчает запись алгоритма на стадии его проектирования и дает возможность в дальнейшем легко перевести алгоритм в команды формального языка программирования.
*
*
3. Графическое описание алгоритма (блок-схема), где каждый блок обозначает определенное действие. Блоки различаются по своему внешнему виду и назначению. Направление стрелок между блоками задает последовательность действий. Благодаря наглядности, этот способ обеспечивает «читаемость» алгоритма и явно отображает порядок выполнения отдельных команд.
*
Алгоритмические конструкции: *линейной структуры; *разветвляющейся структуры; *циклической структуры.
*
*Блоки располагаются в том порядке, в каком выполняются предписываемые ими действия. Блоки соединены в единую цепь, в которой каждое последующее действие строго и однозначно следует за предыдущим действием. *
*
*
В алгоритмах разветвляющейся структуры происходит разветвление в зависимости от результатов проверки некоторых условий, т. е. исполняется либо одна, либо другая ветвь алгоритма. Ветвление «если-то-иначе» - проверка одного условия, по результатам которой происходит выбор между двумя возможными цепочками дальнейших действий. Ветвление «если-то-иначе» встречается на практике наиболее часто. *
*Вычислить *
Позволяет при соблюдении проверяемого в нем условия выполнить заданную цепочку действий: команды 1…N. При несоблюдении указанного условия команды 1…N пропускаются и сразу начинает выполняться следующая за ветвлением команда N+1.
Позволяет выбрать одну из N имеющихся альтернатив цепочек команд. Для каждой альтернативы сначала проверяется соответствующее ей условие, срабатывает та первая альтернатива, у которой оно выполнится. Если не выполнится ни одно из условий выбора – ни одна из N цепочек команд не с р а б о т а е т , а управление перейдет к следующей после ветвления команде.
Предусматривает проверку условий только у первых N-1 альтернатив, а у последней N-й цепочки команд условие отсутствует. Если не сработает ни одна из первых N-1 альтернатив, то тогда автоматически выполнится N-я цепочка команд. Таким образом, в отличие от ветвления «выбор» , здесь обязательно произойдет срабатывание одной из имеющихся N цепочек команд.
*
Алгоритм циклической структуры обеспечивает повторение операции или группы операций при выполнении некоторого условия, называемого условием цикла. Если повторение продолжается сколь угодно много раз, то говорят о зацикливании алгоритма. При реализации на компьютере зацикливание приводит к необходимости прервать цикл, не дожидаясь его формального завершения. *
*
*
Когда число повторов выполнения тела цикла заранее известно, для отображении цикла удобно использовать блок модификатор, в котором размещается заголовок цикла. В заголовке цикла использованы следующие обозначения: K – имя переменной, выполняющей функцию счетчика числа повторов выполнения тела цикла; k 1 – начальное значение параметра цикла; k 2 – конечное значение параметра цикла; k 3 – шаг изменения параметра цикла после очередного выполнения тела цикла. Если этот параметр не указан, шаг изменения полагается равным 1. *
*
*
Алгоритмы циклической структуры используются при обработке массивов информации. Массив информации совокупность взаимосвязанных данных, подлежащих совместной обработке. *
*
Этапы создания программы: * Постановка задачи - составление точного и понятного словесного описания того, как должна работать будущая программа, что должен делать пользователь в процессе ее работы. * * Составление алгоритма. * * Трансляция текста программы и выполнение ее процессором. Тестирование программы (проверка правильности её работы) и отладка программы (устранение ошибок). * Создание документации, помощи. Программирование - создание текста программы (исходного кода) на языке программирования.
Язык программирования — формализованный, искусственный язык, предназначенный для записи текста программ. Синтаксис и семантика языка строго определены. * Синтаксис языка - совокупность правил записи операторов и команд. * Семантика языка - смысл каждой команды и других конструкций языка.
Чтобы получить работающую программу надо : * либо текст программы автоматически перевести в машинный код, а затем использовать отдельно от исходного текста программы; * либо сразу выполнять команды языка, указанные в тексте программы. Программы - компиляторы переводят текст исходной программы в машинный код (файл с расширением. exe). Программы - интерпретаторы осуществляют пооператорную обработку и выполнение исходной программы.
Машинный код — система команд конкретной вычислительной машины, которая интерпретируется непосредственно микропроцессором или микропрограммами данной вычислительной машины. *Машинный код (двоичное представление): 110110010111 11011001 00011101011 01000000 11101000 10011000 11011100 0000 11011110 10010111 000011011001 11000001 01000000 11010000 11111110 1101 0000 *Машинный код (шестнадцатеричное представление): D 9 EBDC 0 D D 0 97 40 00 D 9 FED 9 E 8 DE C 1 DD 1 D 98 97 40 00
Пример программы в машинном коде: Программа — это список машинных инструкций, выполняемых процессором.
Для алгоритмических языков: постановка задачи алгоритм язык программирования текст программы транслятор (интерпретатор; компилятор) машинный код
Языки программирования: * язык низкого уровня, - язык программирования, предназначенный для определенного типа ЭВМ и отражающий его внутренний машинный код. Ассемблер, CIL, Форт и др. * язык высокого уровня - язык программирования, средства которого обеспечивают описание задачи в наглядном, легко воспринимаемом виде, удобном для программиста. Он не зависит от внутренних машинных кодов ЭВМ любого типа, поэтому программы, написанные на языках высокого уровня, требуют перевода в машинные коды программами транслятора либо интерпретатора. С, C++, C#, Java, Python, PHP (от PHP: Hypertext Preprocessor ), Ruby, Perl, Basic, Delphi, Lisp, Ada и др.
*
Поколения языков программирования: 1. Поколение - начало пятидесятых годов двадцатого века, когда появились первые компьютеры. Ассемблер. 2. Поколение - начало шестидесятых годов прошлого века. Символический ассемблер первый полноценный язык программирования, возросли скорость разработки и надежность программ. 3. Поколение – середина шестидесятых годов прошлого века. Появились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Небольшие программы стали писать специалисты-инженеры, специалисты в экономике.
4. Поколение – с начала 70 -гг. прошлого века. Появились языки, предназначенные для реализации крупных проектов, ориентированные на специализированные области применения. 5. Поколение – с середина 90 -гг. прошлого века. Появились языки для автоматического создания прикладных программ с использованием визуальных средств программирования.
Языки программирования баз данных: При появлении первых баз данных был создан структурированный язык запросов SQL (Structured Query Language) – 1974 г. - для обработки больших массивов информации и выборки записей по определенным признакам. Практически в каждой СУБД кроме поддержки языка SQL имеется также свой уникальный язык, ориентированный на особенности этой СУБД, не переносимый на другие системы. СУБД Oracle - встроенный язык PL/SQL, СУБД Informix – INFORMIXS 4 GL, СУБД Adabas – язык Natural и т. д. С появлением ПК были созданы так называемые настольные СУБД с языком программирования d. Base (диалектами этого языка).
Языки программирования для Интернет: С развитием глобальной сети было создано немало языков программирования, адаптированных специально для Интернет (скрипт-языки). Скрипт-язык интерпретируемый (объектноориентированный) алгоритмический язык, предназначенный для генерации динамических вебстраниц. Их особенность: языки интерпретируемые, интерпретаторы распространяются бесплатно, а программы – в исходных текстах. HTML (Hyper Text Markup Language), XML (е. Xtensible Markup Language) и др.


