Основы алгоритмизации и программирования
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Санкт-Петербургский институт машиностроения (ЛМЗ-ВТУЗ)
Кафедра экономики и
РЕФЕРАТ
по дисциплине Информационные технологии управления:
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ
Выполнила студентка группы 2801:
Игнатьева Н.С.
Проверил: Самойлов В.В.
Санкт - Петербург
2011
Содержание
Введение 3
1 Понятие и свойства алгоритма 4
2 Формы представления алгоритмов 6
3 Основные алгоритмические конструкции 9
4 Простые типы данных: переменные и константы 11
4.1 Константы 11
4.2 Переменные 12
5 Структурные типы данных 13
6 Классификация и обзор языков программирования 14
7 Этапы разработки программ 18
Заключение 19
Список используемой литературы 20
Введение
Нам постоянно приходится сталкиваться с множеством различных задач: как быстрее добраться до нужного места, как спланировать отдых в выходные дни. Многие задачи мы решаем автоматически, так как уже привыкли их решать.
Совокупность команд или действий могут быть объединены в систему действий или алгоритм.
Выбранная мною тема довольно актуальна в наше время, поскольку технологический процесс не стоит на одном месте. На данный момент с развитием компьютерных технологий, мы сталкиваемся с огромным количеством новых программ, которые значительно расширяют возможности работы пользователя с персональным компьютером. Каждая такая программа разрабатывается с описания алгоритма действий, которые будут выполняться в ходе работы программы.
По разным оценкам, в настоящее время существует от двух с половиной до десяти тысяч различных языков программирования.
Целью данной работы является раскрыть тему основы алгоритмизации и программирования.
1 Понятие и свойства алгоритма
Алгоритмом называется точное общепринятое предписание, определяющее процесс преобразования исходных данных в искомый результат за конечное число шагов.
Свойства алгоритма:
1. Понятность для исполнителя — исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма.
2. Дискpетность (прерывность, раздельность) — алгоpитм должен пpедставлять пpоцесс pешения задачи как последовательное выполнение пpостых (или pанее опpеделенных) шагов (этапов).
3. Опpеделенность — каждое пpавило алгоpитма должно быть четким, однозначным и не оставлять места для пpоизвола. Благодаpя этому свойству выполнение алгоpитма носит механический хаpактеp и не тpебует никаких дополнительных указаний или сведений о pешаемой задаче.
4. Pезультативность (или конечность) состоит в том, что за конечное число шагов алгоpитм либо должен пpиводить к pешению задачи, либо после конечного числа шагов останавливаться из-за невозможности получить решение с выдачей соответствующего сообщения, либо неограниченно продолжаться в течение времени, отведенного для исполнения алгоритма, с выдачей промежуточных результатов.
5. Массовость означает, что алгоpитм pешения задачи pазpабатывается в общем виде, т.е. он должен быть пpименим для некотоpого класса задач, pазличающихся лишь исходными данными. Пpи этом исходные данные могут выбиpаться из некотоpой области, котоpая называется областью пpименимости алгоpитма.
2 Формы представления алгоритмов
На практике наиболее распространены следующие формы представления алгоритмов:
- словесная (запись на естественном языке);
- графическая (изображения из графических символов);
- псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.);
- программная (тексты на языках программирования). 1
В своей работе подробнее я раскрою информацию о графическом способе записи алгоритма.
Блок-схемой называется наглядное графическое изображение алгоритма, когда отдельные его этапы изображаются при помощи различных геометрических фигур – блоков, а связи между этапами (последовательность выполнения этапов) указываются при помощи стрелок, соединяющих эти фигуры.
Таблица 1 Наиболее часто употребляемые блочные символы
Название символа |
Обозначение и пример заполнения |
Пояснение |
Процесс |
Вычислительное действие или последовательность действий | |
Решение |
Проверка условий | |
Модификация |
Начало цикла | |
Предопределенный процесс |
Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод |
Ввод-вывод в общем виде | |
Пуск-остановка |
Начало, конец алгоритма, вход и выход в подпрограмму | |
Документ |
Вывод результатов |
Блок "процесс" применяется для обозначения действия или последовательности действий, изменяющих значение, форму представления или размещения данных. Для улучшения наглядности схемы несколько отдельных блоков обработки можно объединять в один блок. Представление отдельных операций достаточно свободно.
Блок "решение" используется для обозначения переходов управления по условию. В каждом блоке "решение" должны быть указаны вопрос, условие или сравнение, которые он определяет.
Блок "модификация" используется для организации циклических конструкций. (Слово модификация означает видоизменение, преобразование). Внутри блока записывается параметр цикла, для которого указываются его начальное значение, граничное условие и шаг изменения значения параметра для каждого повторения.
Блок "предопределенный процесс" используется для указания обращений к вспомогательным алгоритмам, существующим автономно в виде некоторых самостоятельных модулей, и для обращений к библиотечным подпрограммам.
3 Основные алгоритмические конструкции
- Линейная структура.
Действия выполняются последовательно друг за другом:
Рис 1
- Структура "ветвление"
Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах:
- Если – то:
Рис 2
- Если – то – иначе:
Рис 3
- Выбор:
Рис 4
- Выбор – иначе:
Рис 5
- Циклическая структура.
В алгоритмическую структуру цикл входит серия команд, выполняющая многократно. Такая последовательность команд называется телом цикла.
Цикл с предусловием:
Рис 6
Цикл с постусловием:
Рис 7
Если условие выхода из цикла никогда не выполняется, то такой цикл называется бесконечным.
4 Простые типы данных: переменные и константы
Реальные данные, которые обрабатывает программа, — это целые и вещественные числа, символы и логические величины. Эти простые типы данных называют базовыми. Все данные, обрабатываемые компьютером, хранятся в ячейках памяти компьютера, каждая из которых имеет свой адрес. Для того чтобы не следить за тем, по какому адресу будут записаны те или иные данные, в языках программирования используется понятие переменной, позволяющее отвлечься от адреса ячейки памяти и обращаться к ней с помощью имени (идентификатора).
4.1 Константы
Константы определяются один раз и не изменяются во время выполнения программы.
Используют следующие типы констант:
- целые и вещественные десятичные числа, например, 25, 6.12, 0.125е10;
- шестнадцатеричные числа - должны начинаться со знака «$», например $64;
- логические константы - true (истина) и false (ложь);
- символьные константы - записываются либо в апострофах, например 'А', либо в виде соответствующих кодов по таблице ASCII, причем в последнем случае перед кодом ставится знак «#», например #65 (этот код соответствует символу А латинское);
- строки символов ~ записываются в апострофах, например 'ABCD';
- конструкторы множеств;
- «нулевой» адрес – nil
Константы используются в двух формах: как литералы и как поименованные константы.
Литерал представляет собой значение константы, записанное непосредственно в программе (например, в выражении 2+5.1*х использованы два литерала «2» и «5.1»).
Поименованные константы объявляются в инструкции раздела описаний const. Обращение к ним осуществляется по имени (идентификатору).
4.2 Переменные
Переменные - поименованные значения, которые могут изменяться в процессе выполнения программы. Их объявление также выполняют в разделе описаний программы, причем при этом указывается не только идентификатор переменной, но и ее тип. Обращение к переменным также осуществляют по идентификатору. Тип переменной определяет возможный набор значений данной переменной, размер ее внутреннего представления и множество операций, которые могут выполняться над переменной.
В соответствии с классификацией типов переменных Borland Pascal различают простые и структурные типы переменных.
Простые (скалярные) типы описывают упорядоченные наборы значений. Они делятся на порядковые и вещественные.
Группа порядковых типов объединяет типы переменных, набор значений которых конечен, группа вещественных типов - типы с условно бесконечным набором значений.2
5 Структурные типы данных
Достаточно часто возникает необходимость программирования обработки однотипных данных: таблиц, текстов, множеств и т.д. Для их представления используют структурные типы данных. В Borland Pascal определены следующие структурные типы данных:
- массивы - для представления однотипных или табличных данных;
- строки - для представления символьной (текстовой) информации;
- множества - для представления абстрактных математических множеств;
- записи - для представления таблиц с данными различных типов.
6 Классификация и обзор языков программирования
Язык программирования — формальная знаковая система, при помощи которой записываются компьютерные программы.
Журналисты сайта eWeek.com провели исследование рынка вакансий и построили свой рейтинг языков программирования:
- Java. Java остаётся доминирующей платформой для разработки приложений. После перехода под руководство компании Oracle, язык продолжает развиваться. Были представлены две новые спецификации, которые будут реализованы в ближайшие несколько лет. Таким образом, перспективы Java весьма радужные.
С. C – один из наиболее популярных языков за многие десятилетия. Он используется для системного программирования, а также для разработки приложений для встраиваемых систем. Несмотря на свой почтенный возраст, С по-прежнему востребован.
C++. C++ это расширенная версия C, предоставляющая программисту доступ к классам. Этот язык быстро стал одним из самых популярных и остаётся таковым по сей день. С++ используется для разработки системного ПО, приложений, драйверов, программ для встраиваемых систем, высокопроизводительных серверных и клиентских приложений, видеоигр и многого другого.
C#. C# (Си-Шарп) был разработан компанией Microsoft в качестве альтернативы Java, и включает в себя лучшие достижения Java, C, C++ и Delphi.
JavaScript. Язык широко используется в сайтостроении для исполнения скриптов на стороне клиента в браузере. Интернет становится всё более мультимедийным, что способствует росту популярности этого языка. Впрочем, он используется и за пределами веба – в PDF-документах, виджетах и даже для разработки расширений для крупных приложений (например, в Adobe Illustrator).
Perl. Perl – интерпретируемый высокоуровневый язык общего назначения, разработанный в 1987 году для Unix-систем.
PHP. PHP используется при разработке са
йтов, для чего изначально и создавал ся.
Visual Basic. VB третьего поколения основан на событиях и встроен в среду разработки Microsoft Visual Studio. Он задумывался как относительно простой в обучении и использовании язык, что и привело его к популярности среди программистов.
Python. Динамический язык, используемый в приложениях различного профиля. Он позволяет быстро писать код.
Ruby. Ruby фокусируется на упрощении разработки и повышении продуктивности. Он обладает элегантным синтаксисом, близким к естественному языку. Ветвь Ruby on Rails набирает популярность среди веб-разработчиков.3
Современное состояние языков программирования можно представить в виде следующей классификации:
Процедурное программирование. Процедурное или императивное (от лат. imperativus — повелительный) программирование есть отражение фон Неймановской архитектуры компьютера. Программа, написанная на этом языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основной командой является команда присвоения, предназначенная для определения и изменения содержимого памяти компьютера. Одним из первых процедурных языков программирования высокого уровня стал Фортран (FORmula TRANslation), созданный в начале 50-х гг. в США фирмой IВМ.
Функциональное программировани
е. Суть функционального (аппликативного) программирования определена А.П. Ершовым как «способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени функции, а единственным правилом композиции — оператор суперпозиции функций. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления». Первым таким языком стал Лисп (LISP, LISt Processing - обработка списков), созданный в 1959 г. Джоном Маккарти. Этот язык ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации. Существенная черта языка — единообразие программных структур и структур данных: все выражения записываются в виде списков.
- Логическое программирование. Создание языка искусственного интеллекта Пролог (PROLOG, PROgramming in LOGic — программирование в терминах логики) в 1973 г. французским ученым Аланом Кольмероэ открыло новую область — логическое или реляционное программирование. Концепция логического программирования базируется на понятии отношение. Логическая программа — это совокупность аксиом и правил, определяющих отношения между объектами и целью. Выполнение программы представляет собой попытку доказательства логического утверждения, построенного из программы по правилам, определенным семантикой используемого языка. Результатом вычислений является вывод следствий из аксиом. Алгоритм логической программы предполагает определение и перечень специфических свойств объектов и отношений между ними, а не определение порядка выполнения отдельных шагов. Это подтверждает декларативный характер логического языка программирования. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска. Программа на языке Пролог, в основу которой положена математическая модель теории исчисления предикатов, строится из последовательности фактов и правил, затем формулируется утверждение, которое Пролог будет пытаться доказать с помощью введенных правил. Пользователь только описывает структуру задачи, а внутренний механизм Пролога сам ищет решение с помощью методов поиска и сопоставления.
- Объектно-ориентированное программирование (ООП). Основой объектно-ориентированного программирования (ООП) является понятие объект. Его суть состоит в том, что объект объединяет в себе структуры данных и характерные только для него процедуры (методы) их обработки. Такой подход полностью меняет стиль программирования, он заключается в отображении физических объектов реального мира на программную среду. Объединение данных и свойственных им процедур обработки в одном объекте, детальная реализация которых остается скрытой для пользователей, называется инкапсуляцией и является одним из важнейших принципов ООП. Пионером данного направления явился язык Смолток (5таlltalк), первоначально предназначенный для реализаций функций машинной графики.
7 Этапы разработки программ
В процессе разработки программ с использованием процедурного подхода можно выделить следующие этапы:
- постановка задачи - определение требований к программному продукту;
- анализ - осуществление формальной постановки задачи и определение методов ее решения;
- проектирование - разработка структуры программного продукта, выбор структур для хранения данных, построение и оценка алгоритмов подпрограмм и определение особенностей взаимодействия программы с вычислительной средой (другими программами, операционной системой и техническими средствами);
- реализация - составление программы на выбранном языке программирования, ее тестирование и отладка.
- модификация - выпуск новых версий программного продукта.4
Заключение
Подведём итоги данной работы.
Алгоритм — точная конечная система правил, определяющая содержание и порядок действий над объектами, строгое выполнение которых дает решение поставленной задачи.
В данном реферате я написала про свойства алгоритма, основные алгоритмические конструкции, более подробно описала графическую форму представления алгоритма. Так же я представила информацию о простых и структурированных типах данных, нашла информацию об основных языках программирования.
Таким образом я раскрыла тему основы алгоритмизации и программирования и тем самым выполнила цель своей работы.
Список используемой литературы
- Иванова Г.С. Основы программирования: Учебник для вузов. – 2-е изд. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 520 с.
- Каймин В.А. Информатика: Учебник для вузов. - М.: Высшее образование, 1998.
- Симонович С.В. и др. Информатика. Базовый курс. - СПб.: Питер, 2001.
- Шауцукова Л.З. Информатика 10-11 класс; - М.: Просвещение, 2000 г
- http://www.oszone.net/14233/
Top_10_programming_languages
1 Шауцукова Л.З. Информатика 10-11
- М.: Просвещение, 2000 г
2 Иванова Г.С. Основы программирования: Учебник для вузов. – 2-е изд.
- М.: Изд-во МГТУ им. Н.Э. Баумана, 2002 г
3 Информация взята с компьютерного информационного портала oszone.net
4 Иванова Г.С. Основы программирования: Учебник для вузов. – 2-е изд.
- М.: Изд-во МГТУ им. Н.Э. Баумана, 2002 г

- Основы анализа денежных потоков
- Основы анализа спроса и предложения
- Основы анализа спроса и предложения
- Основы анализа стоимости ценных бумаг
- Основы анатомии головы и шеи человека для косметологов
- Основы анатомии детского возраста
- Основы антиглобализма
- Основы административного права
- Основы административного права
- Основы административного права
- Основы административного процесса
- Основы административного управления организацией
- Основы административно-правового статуса общественных объединений
- Основы алгоритмизации и программирования