ГОТОВЫЕ ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ДИССЕРТАЦИИ И РЕФЕРАТЫ

Понятие программы

Автор ошибка
Вуз (город) Москва
Количество страниц 25
Год сдачи 2008
Стоимость (руб.) 500
Содержание Содержание:
Введение 3
1 Что такое программа 4
1.1 Первая в мире программа 4
1.2 Инструменты программирования 6
1.3 Программные библиотеки 7
2 Представление программы в компьютере 8
3 Программа без алгоритма невозможна! 9
3.1 Что такое алгоритм 9
3.2 Способы описания алгоритмов 10
3.3 Структурные схемы алгоритмов 14
4 Этапы подготовки и решения задач на ЭВМ 15
5 Компиляция и интерпретация программ 19
6 Языки программирования 20
7 Стили программирования 22
8 Оценки качества программ 24
9 Правовая охрана программ 28
10 Примеры программ 28
Список использованной литературы 31


Введение

Человеческое общество по мере своего развития прошло этапы овладения веществом, затем энергией, и, наконец, информацией. С самого начала человеческой истории возникла потребность передачи, обработки и хранения информации. Первой попыткой автоматизированной обработки информации стало создание Чарльзом Бэббиджем в середине XIX века механической цифровой аналитической машины. Однако лишь с середины XX века, с момента появления компьютеров начался постепенный переход от индустриального общества к информационному. В информационном обществе главным ресурсом является информация, именно на основе владения информацией можно эффективно и оптимально строить любую деятельность.
Информацию в компьютере обрабатывает процессор, следовательно, последовательность действий, т.е. алгоритм, должен быть записан на языке, «понятном» для процессора, в виде программы.
В данном реферате рассматривается понятие программы для компьютера, этапы разработки программы, различные инструменты, языки, стили программирования, понятия трансляции (компиляции и интерпретации) программ, оценка качества и правовая защита программ.

1 Что такое программа

1.1 Первая в мире программа
Ада Лавлейс, дочь великого английского поэта Джорджа Гордона Байрона и Аннабеллы Байрон,заложила научные основы программирования на вычислительных машинах за столетие до того, как стала развиваться эта наука. В 1841 году Лавлейс занялась переводом статьи Менабреа о машине Чарльза Бэббиджа. Скромные по названию "Примечания переводчика" более чем вдвое превышают текст переведённой статьи (статья Менабреа занимает 20 страниц, а примечания – 50).
В примечаниях Лавлейс указывает, что аналитическая машина представляет собой воплощение науки об операциях и сконструирована специально для действий над абстрактными числами как объектами этих операций; рассматривает запоминающие устройства (склад) аналитической машины как оперативное устройство, позволяющее записывать, стирать, хранить и извлекать любые числа, над которыми можно произвести любую последовательность арифметических операций, причём на всех этапах сохранять промежуточные результаты вычислений. Также приведена программа машинного решения системы двух линейных уравнений с двумя неизвестными. Лавлейс впервые применяет термин "рабочая переменная", эквивалентный современному – "рабочая ячейка".
Эти виды рабочих ячеек выделяются и в современных руководствах по программированию. Лавлейс предлагает при выполнении операции сложения её результат записывать на ту же ячейку памяти, где до этого хранилось одно из слагаемых (делается для экономии памяти). Лавлейс впервые вводит понятие цикла операций, а также понятие цикла циклов.
Машина рассматривается не как устройство, заменяющее человека, а как устройство, способное выполнять работу, превышающую практические возможности человека.
В заключительном примечании дана программа вычисления чисел Бернулли, в которой Лавлейс продемонстрировала возможность программирования на аналитической машине.
Немалое значение для истории науки представляет вопрос: насколько точно и удачно Лавлейс реализовала свою идею – составление машинной программы для решения сравнительно сложной задачи? Проверить вручную подобную программу весьма затруднительно – желателен практический эксперимент на ЭВМ. Такой эксперимент был проведён в СССР в 1978 году на машине БЭСМ-6. Текст программы был закодирован на языке программирования Фортран в Дубне, отладка программы выявила одну ошибку и одну опечатку. И это вполне понятно, так как написать подобную работу без проверки на компьютере и без ошибок невозможно. Ещё один важный пункт – программа Лавлейс обеспечивает экономию памяти.
Мнение Лавлейс о принципиальных возможностях аналитической машины: ”Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить всё то, что мы умеем ей предписать. Она может следовать анализу. Но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы“.
Это высказывание сделано в конце девятнадцатого века, когда не было никаких компьютеров, но даже сегодня по этому вопросу мы остались на том же уровне: компьютеры выполняют написанные программы, но не создают ничего нового. Пока никто не смог создать ЭВМ и программное обеспечение для неё, которое обладало бы творческими возможностями. Однако широко распространились программы с "псевдоинтеллектом", но это результат лишь хорошо продуманного алгоритма.
Основной итог её работы – создание основ программирования на универсальных цифровых вычислительных машинах.
В память об Аде Лавлейс назван разработанный в 1980 году язык АДА – один универсальных языков программирования.


1.2 Инструменты программирования
Компьютер работает, подчиняясь командам. .Мы можем вводить эти команды с помощью клавиатуры, примерно так, как это делают на обычном калькуляторе.
Ввели одну команду — посмотрели, как компьютер ее исполнит. Ввели другую — оценили результат, ввели третью... — и т. д. Если каждый день вводить одни и те же команды, это очень быстро надоест, причем надоест тем быстрее, чем больше команд приходится вводить. Три, четыре, пять команд еще можно ввести, надеясь на свою память. Чтобы ввести десять команд, уже нужна шпаргалка. для ввода сотни команд требуется нечеловеческое терпение, а что требуется для ввода миллиона команд, никто не знает, потому что никто такого не пробовал.
А что, если часто повторяющиеся последовательности команд записать на компьютере в виде файла, сохранить его на жестком или гибком диске и поручить машине черпать команды оттуда, не дожидаясь нашего ввода с клавиатуры? Удобно, не правда ли? Вот так и создаются программы. Такой файл с командами (его называют исполнимым файлом) и есть самая настоящая программа. Так что программа — это упорядоченный список команд. Причем непременно упорядоченный. для программы важно не только, какие команды в нее входят, но и в каком порядке они следуют.
Программа – это логически упорядоченная последовательность команд, необходимых для управления компьютером.
Инструментами программиста являются программы. Именно с помощью программ создают новые программы. А как создавали эти инструментальные программы? Ответ очевиден — с помощью других инструментальных программ, хотя и более примитивных. И так далее. Прослеживая историю создания одних программ с помощью других, мы непременно дойдем до «молота и наковальни» — до того момента, когда никаких программ в распоряжении программистов не было, а имели они дело непосредственно с процессором, понимающим только определенный числовой код. Этот код называется машинным кодом. Каждый процессор понимает только свой собственный машинный код. Совокупность кодов, которые понимает и исполняет процессор, называется его системой команд. Из этих команд и состоят компьютерные программы
Инструменты программирования — это на самом деле специальные программы, которые читают то, что написал программист в удобном ему виде, и переводят его записи в тот самый машинный код, необходимый процессору.
1.3 Программные библиотеки
Когда рабочий собирает мотоцикл на заводе, вряд ли ему придет в голову собственноручно выковать болт и нарезать на нем резьбу. Он сделает проще. Протянув руку, он достанет из ящичка такой болт, какой надо. Если понадобится другой болт, он достанет его из другого ящичка. Считайте, что стеллаж с ящичками, в которых лежат заготовленные стандартные узлы и детали, это и есть библиотека.
Аналогично поступает и программист. Девяносто пять процентов большой программы состоит из небольших стандартных подпрограмм (говорят: процедур). Из многих тысяч написанных во всем мире программ редкая программа обходится без стандартных процедур, управляющих вводом данных с клавиатуры или выводом информации на экран. Зачем много раз писать один и тот же код? Существуют библиотечные файлы, из которых извлекают стандартные блоки и используют без какой-либо переделки.
Год от года такие библиотеки наращиваются, становятся все крупнее и крупнее. Поэтому с каждым годом растет производительность труда программистов. Пятнадцать лет назад средний размер компьютерной программы составлял 40—50 Кбайт. Десять лет назад он равнялся сотням Кбайт. Сегодня программисты выпускают программы, в которых исполняемые файлы занимают мегабайты. Без использования библиотек такие программы готовились бы лет двадцать.
Библиотеки процедур бывают стандартными, коммерческими и фирменными. Стандартные библиотеки широко распространены. Каждый программист может их приобрести и использовать. Некоторые компании специально занимаются созданием коммерческих библиотек и. продают их другим компаниям и отдельным программистам. Во многих компаниях (и даже у индивидуальных программистов) за годы работы складываются свои фирменные библиотеки. Фирменные библиотеки не распространяют и не продают. Их тщательно защищают от конкурентов; для компаний, выпускающих программы, это самое ценное имущество.

2 Представление программы в компьютере
Программы пишут с помощью специальных языков — их называют языками программирования, Естественно, что даже одинаковые программы, написанные на разных языках, выглядят по-разному.
Существуют сотни языков программирования, и у каждого могут быть десятки разных версий. Каждый программист пишет программы на том языке, который ему удобен, и нет языка программирования, считающегося общепринятым.
Список литературы 1. Информатика. Базовый курс. 2-е издание /под ред. С.В. Симоновича/ СПб:Питер,2005
2. С.Симонович, Г. Евсеев. Практическая информатика, «АСТ-ПРЕСС», 1998
3. Леонтьев В.П Новейшая энциклопедия. Компьютерные программы 2008
4. Аверьянов Г.Я., Рошаль А. С. Элементы информатики: Учебное пособие.— М.:МИФИ, 1995.-175 с.
5. Богумирскш Б. С. Руководство пользователя ПЭВМ: в 2-х частях,—Санкт-Петербург: Ассоциация OILCO, 1992. - 735 с.
6. ГОСТ 19.002-80 ЕСПД.
7. ГОСТ 19.003-80 ЕСПД.
8. Дворкин П. Л. Основы информатики и вычислительной техники: Учебное пособие .— Омск.: ОПИ, 1988. -119с.
9. Основы компьютерной грамоты / А. Н.Жигарев, Н. В. Макарова, М. А. Путинцева; Под общ. ред. Н. В. Макаровой. — Л.: Машиностроение, 1987. — 255 с.
10. Программирование. Учебник под ред. Свердлика А. Н., МО СССР, 1992. — 608 с.
11. Ростовцев Ю. Г. Основы построения автоматизированных систем сбора и обработки информации: Учебник. — СПб.: ВИККА им. А. Ф. Можайского, 1992. — 717 с.
12. Трудов Ю. В. Основы построения ЭВМ. Часть 1. Теоретические основы, элементы и узлы ЭВМ: Учебное пособие. - Л.: ВИКИ им. А. Ф. Можайского, 1990. - 216 с.
13. Шафрин Ю. А. Основы компьютерных технологий. Уч. Пособие для 7-11 классов по курсу «Информатика и вычислительная техника». — М.: ABF, 1996. ~ 560 с.
14. Шоу А. Логическое проектирование операционных систем: Пер. с англ. — М.: Мир, 1981.-360 с.
Выдержка из работы В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание. Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу; алгоритм или даже в постановку задачи. Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. Постановка задачи. На данном этапе формулируется цель решения задачи и подробно описывается ее содержание. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается. Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят другие этапы.
Математическое описание задачи. Настоящий этап характеризуется математической формализацией задачи, при которой существующие соотношения между величинами, определяющими результат, выражаются посредством математических формул. Так формируется математическая модель явления с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин. |
Выбор и обоснование метода решения. Модель решения задачи с учетом ее особенностей должна быть доведена до решения при помощи конкретных методов решения. Само по себе математическое описание задачи в большинстве случаев трудно перевести на язык машины. Выбор и использование метода решения задачи позволяет привести решение задачи к конкретным машинным операциям.
Алгоритмизация вычислительного процесса. На данном этапе составляется алгоритм решения задачи согласно действиям, задаваемым выбранным методом решения. Разрабатывается блок-схема алгоритма.
Составление программы. При составлении программы алгоритм решения задачи переводится на конкретный язык программирования. Отладка программы. Отладка заключается в поиске и устранении синтаксических и логических ошибок в программе.
В ходе синтаксического контроля программы транслятором выявляются конструкции и сочетания символов, недопустимые с точки зрения правил их построения или написания, принятых в данном языке. Сообщения об ошибках ЭВМ выдает программисту, при этом вид и форма выдачи подобных сообщений зависят от вида языка и версии используемого транслятора.
После устранения синтаксических ошибок проверяется логика работы программы в процессе ее выполнения с конкретными исходными данными. Решение задачи на ЭВМ и анализ результатов. После отладки программы ее можно использовать для решения прикладной задачи. При этом обычно выполняется многократное решение задачи на ЭВМ для различных наборов исходных данных. Получаемые результаты интерпретируются и анализируются специалистом или пользователем, поставившим задачу.
Разработанная программа длительного использования устанавливается на ЭВМ, как правило, в виде готовой к выполнению машинной программы. К программе прилагается документация, включая инструкцию для пользователя.

5 Компиляция и интерпретация программ
ЭВМ непосредственно выполняет программы на машинном языке программирования данной ЭВМ. При этом программа представляет собой набор отдельных команд компьютера. Машинные языки были первыми языками программирования. С развитием программирования появились языки, ориентированные на более высокий уровень абстракции при описании решаемой на ЭВМ задачи. Эти языки получили название языков высокого уровня. Их теоретическую основу составляют алгоритмические языки, например, Паскаль, Си, Бейсик, Фортран, PL/1.
Для перевода программы, написанной на языке высокого уровня, в соответствующую машинную программу используются трансляторы. Различают два вида трансляторов: интерпретаторы и компиляторы.
Интерпретатор обрабатывает текст программы во время работы программы «на ходу».
Компилятор преобразует исходный код в машинный, образуя объектный модуль.

6 Языки программирования
Поколения языков программирования
Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов, когда первые компьютеры только появились на свет. Это был первый язык ассемблера, созданный по принципу одна инструкция — одна строка.
Расцвет второго поколения языков программирования пришелся на конец 50-х,
начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Появление третьего поколения языков программирования принято относить к 60-м годам. В это время родились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Понятная большинству пользователей структура этих языков привлекла к написанию небольших программ (как правило, инженерного или экономического характера) значительное число специалистов из некомпьютерных областей. Подавляющее большинство языков этого поколения успешно применяется и сегодня.
С начала 70-х годов по настоящее время продолжается период языков четвертого поколения Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой на языках младших поколений потребовались тысячи строк исходного кода. Рождение языков пятого поколения произошло в серёдине 90-х годов. К ним относятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования.

Обзор языков программирования высокого уровня.
FORTRAN (Фортран) Это первый компилируемый язык, созданный в 50-е годы COBOL (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. Он отличается большой «многословностью» — его операторы иногда выглядят как обычные английские фразы.
Algol (Алгол). Компилируемый язык, созданный в 1960 году. Он был призван заменить Фортран, но из-за более сложной структуры не получил широкого распространения.
Pascal (Паcкаль). Язык Паскаль, созданный в конце 70-х годов основоположником множества идей современного программирования Никлаусом Виртом, во многом напоминает Алгол, но в нем ужесточен ряд требований к структуре программы и имеются возможности, позволяющие успешно применять его при создании крупных проектов.
Basic (Бейсик) Для этого языка имеются и компиляторы, интерпретаторы, а по популярности он занимает первое место в мире Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении.
С (Си). Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью. На этом языке в 70-е годы написано множество прякладных и системных программ и ряд известных операционных систем (Unix).

7 Стили программирования
Одним из важнейших признаков классификации языков программирования является принадлежность их к одному из стилей, основными из которых являются следующие: процедурный, функциональный, логический и объектно-ориентированный.
Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена фон Нейманом в 40-х годах. Теоретической моделью процедурного программирования служит алгоритмическая система под названием «машина Тьюринга».
Программа на процедурном языке программирования состоит из последовательности операторов (инструкций), задающих процедуру решения задачи. Основным является оператор присваивания, служащий для изменения содержимого областей памяти. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
Выполнение программы сводится к последовательному выполнению операторов с целью преобразования исходного состояния памяти, то есть значений исходных данных, в заключительное, то есть в результаты. Таким образом, с точки зрения программиста имеются программа и память, причем первая последовательно обновляет содержимое последней.