Основы программирования
Алгоритм и программа Алгоритм – это точно определенная последовательность действий, которые необходимо выполнить над исходной информацией, чтобы получить решение задачи. Алгоритм – система точно сформулированных правил, определяющая процесс преобразования допустимых исходных данных (входной информации) в желаемый результат (выходную информацию) за конечное число шагов. Алгоритмом называется конечная последовательность предписаний, однозначно определяющих процесс переработки исходных и промежуточных данных в результат решения задачи.
Свойства алгоритма дискретность: состоит из отдельных шагов (команд) понятность: должен включать только команды, известные исполнителю (входящие в СКИ) определенность: при одинаковых исходных данных всегда выдает один и тот же результат конечность: заканчивается за конечное число шагов массовость: может применяться многократно при различных исходных данных корректность: дает верное решение при любых допустимых исходных данных Алгоритм – это четко определенный план действий для исполнителя.
Разработанный программистом алгоритм должен удовлетворять определенным требованиям. Принято выделять следующие семь: наличие ввода исходных данных; наличие вывода результата выполнения; однозначность (компьютер «понимает» только однозначные инструкции); общность – алгоритм предназначен для решения некоторого класса задач; корректность – алгоритм должен давать правильное решение задачи; конечность – решение задачи должно быть получено за конечное число шагов; эффективность – для решения задачи должны использоваться ограниченные ресурсы компьютера (процессорное время, объем оперативной памяти и т. д.).
Элементы блок-схем
Составим блок-схему для алгоритма нахождения корней квадратного уравнения ах 2 + bх + с = 0. Будем полагать, что коэффициенты этого уравнения a, b и с представляют собой вещественные числа. Простейший случай предполагает, что все коэффици енты отличны от нуля. В зависимости от знака дискриминанта квадратного уравнения D =b 2 - 4ac возможны три случая: 1. Если D > 0, то имеются два различных вещественных корня, которые можно вычислить по следующим формулам: 2. Если D = 0, то имеется единственный корень (точнее, двукратный корень): 3. Если D < 0, то вещественных корней нет.
Блок-схема алгоритма нахождения корней квадратного уравнения
Этапы разработки программы В процессе создания любой программы можно выделить несколько этапов: Постановка задачи Анализ, формализованное описание задачи, выбор модели Выбор или разработка алгоритма решения задачи Проектирование общей структуры программы Кодирование программы Отладка и верификация программы Получение результата, его интерпретация и, возможно, последующая модификация модели Публикация или передача заказчику результата работы Сопровождение программы
Языки программирования Языки программирования – это формальные языки специально созданные для общения человека с компьютером. Каждый язык программирования, равно как и «естественный» язык (русский, английский и т.д.), имеет алфавит, словарный запас, свои грамматику и синтаксис, а также семантику. Алфавит – фиксированный для данного языка набор основных символов, допускаемых для составления текста программы на этом языке. Синтаксис – система правил, определяющих допустимые конструкции языка программирования из букв алфавита. Семантика – система правил однозначного толкования отдельных языковых конструкций, позволяющих воспроизвести процесс обработки данных. При описании языка и его применении используют понятия. Понятие подразумевает некоторую синтаксическую конструкцию и определяемые ею свойства программных объектов или процесса обработки данных.
Уровни языков программирования Языки низкого уровня – машинный язык, ассемблер, - предназначены для обращения к процессору и др. устройствам. Для человека неудобны. Переносимости на другие аппаратные платформы нет. По быстродействию и экономности использования ресурсов являются наиболее эффективными. Языки высокого уровня – ближе к человеку. Используют термины решаемых задач и не требуют знания устройства компьютера. Одна команда выполняет множество команд языка низкого уровня. Есть переносимость на другие аппаратные и программные платформы. К таким языкам относятся: Pascal, Delphi, Basic, Fortran, Prolog, Lisp, … Языки среднего уровня – сочетают возможности языков высокого и низкого уровня. Более эффективные, чем языки высокого уровня, для программиста проще, чем языки низкого уровня, но сложнее, чем языки высокого уровня. Относятся: C, C++, C#, Forth…
Фортра́н (Fortran) первый язык программирования высокого уровня, имеющий транслятор. Создан в период с 1954 по 1957 год группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator (переводчик формул). Фортран широко используется в первую очередь для научных и инженерных вычислений. Одно из преимуществ современного Фортрана большое количество написанных на нём программ и библиотек подпрограмм. Среди учёных, например, ходит такая присказка, что любая математическая задача уже имеет решение на Фортране, и, действительно, можно найти среди тысяч фортрановских пакетов и пакет для перемножения матриц, и пакет для решения сложных интегральных уравнений, и многие, многие другие
Алго́л (англ. Algol от англ. algorithmic алгоритмический и англ. language язык) название ряда языков программирования, применяемых при составлении программ для решения научно-технических задач на ЭВМ. Разработан комитетом по языку высокого уровня IFIP в гг. (Алгол-58, Алгол-60); усовершенствован в гг. (Алгол 68). Алгол относится к языкам высокого уровня и позволяет легко переводить алгебраические формулы в программные команды. Алгол был популярен в Европе, в том числе в СССР, в то время как сравнимый с ним язык Фортран был распространён в США и Канаде. Оказал заметное влияние на все разработанные позднее императивные языки программирования в частности, на язык Pascal.
Бе́йсик (от BASIC, сокращение от англ. Beginners All- purpose Symbolic Instruction Code универсальный код символических инструкций для начинающих) семейство высокоуровневых языков программирования. Был разработан в 1963 году профессорами Дартмутского колледжа Томасом Курцем и Джоном Кемени. Язык предназначался для обучения программированию и получил широкое распространение в виде различных диалектов, прежде всего как язык для домашних компьютеров.
Паскаль - язык назван в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля, который создал первую в мире механическую машину, складывающую два числа. Язык Паскаль был создан Никлаусом Виртом в годах после его участия в работе комитета разработки стандарта языка Алгол-68. Он был опубликован в 1970 году Виртом как небольшой и эффективный язык, чтобы способствовать хорошему стилю программирования, использовать структурное программирование и структурированные данные.
Си (англ. C) стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Деннисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был перенесён на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков.
А́да (Ada) язык программирования, созданный в годах в ходе проекта Министерством обороны США с целью разработать единый язык программирования для встроенных систем (то есть систем управления автоматизированными комплексами, функционирующими в реальном времени). Имелись в виду, прежде всего, бортовые системы управления военными объектами (кораблями, самолётами, танками, ракетами, снарядами и т. п.). Перед разработчиками не стояло задачи создать универсальный язык, поэтому решения, принятые авторами Ады, нужно воспринимать в контексте особенностей выбранной предметной области. Язык назван в честь Ады Лавлэйс.
C++ (автор Бьёрн Страуструп) компилируемый статически типизированный язык программирования общего назначения. Поддерживает такие парадигмы программирования как процедурное программирование, модульность, раздельная компиляция, обработка исключений, абстракция данных, типы (объекты), виртуальные функции, объектно-ориентированное программирование, обобщенное программирование, контейнеры и алгоритмы, сочетает свойства как высокоуровневых, так и низкоуровневых языков. Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
Java объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems (в последующем приобретённой компанией Oracle). Приложения Java обычно компилируются в специальный байт-код, поэтому они могут работать на любой виртуальной Java-машине (JVM) вне зависимости от компьютерной архитектуры. Дата официального выпуска 23 мая 1995 года.
Язык программирования Паскаль Текст Паскаль-программы представляет собой последовательность строк, состоящих из символов, образующих алфавит языка. Строки программы завершаются специальными управляющими символами, не входящими в алфавит. Алфавит языка Паскаль состоит из следующих символов: Заглавные и строчные латинские буквы и символ «подчерк»: A, B, C, …, X, Y, Z, a, b, c, …, x, y, z, _ Десять арабских цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Двадцать два специальных символа: + – * / = >
Символы из алфавита языка используются для построения базовых элементов Паскаль-программ – лексем. Лексема – минимальная единица языка, имеющая самостоятельный смысл. В Паскале имеются следующие классы лексем: 1) Служебные (зарезервированные) слова. Это ограниченная группа слов, построенных из букв. Каждое служебное слово представляет собой неделимое образование, смысл которого фиксирован в языке. Служебные слова нельзя использовать в качестве имен, вводимых программистом. Приведем некоторые служебные слова: and, array, begin, case, const, do, else, end, for, goto, if, or, then, to, var и др.
2) Идентификаторы (имена). Идентификаторы вводятся для обозначения в программе переменных, констант, типов, меток, процедур и функций. Идентификаторы вводятся в программу посредством описаний. 3) Изображения. Эта группа лексем обозначает числа, символьные строки и некоторые другие значения. 4) Знаки операций формируются из одного или нескольких специальных символов и предназначены для задания действий по преобразованию данных и вычислению значений. 5) Разделители также формируются из специальных символов и в основном используются для повышения наглядности текстов программ. Примером разделителей могут служить следующие конструкции: ; := (.
Структура программы на языке Паскаль
program korni; var a, b, c : integer; d, x, x1, x2 : real; begin readln(a, b, c);{Вводим значение переменных} d := b*b – 4*a*c; if d>0 then {Проверяем значение дискриминанта} begin {Если условие верно, то имеется два корня} x1 := (-b + sqrt(d))/(2*a); x2 := (-b - sqrt(d))/(2*a); writeln(x1, x2); end else{Иначе...} if d=0 then {Если дискриминант равен нулю, то корень один} begin x := -b/(2*a); writeln(x); end else {Иначе корней нет} writeln(Корней нет); readln; end.
Переменные Переменная – это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы. Значение Имя Поместится? ? Другой тип данных В переменной хранятся данные определенного типа! !
Имена переменных В именах МОЖНО использовать латинские буквы (A-Z) цифры знак подчеркивания _ заглавные и строчные буквы не различаются В именах НЕЛЬЗЯ использовать русские буквы пробелы скобки, знаки +, =, !, ? и др. имя не может начинаться с цифры Какие имена правильные?? AXby R&B 4Wheel Вася PesBarbos TU154 [QuQu] _ABBA A+B
Переменные Типы переменных: integer{ целая } real{ вещественная } и другие… Объявление переменных: var a, b, c: integer; Выделение места в памяти variable – переменная тип – целые список имен переменных
Как записать значение в переменную? a := 5; Оператор присваивания При записи нового значения старое стирается! ! 5 5 Оператор – это команда языка программирова- ния (инструкция). Оператор присваивания – это команда для записи нового значения в переменную.