VIP STUDY сегодня – это учебный центр, репетиторы которого проводят консультации по написанию самостоятельных работ, таких как:
  • Дипломы
  • Курсовые
  • Рефераты
  • Отчеты по практике
  • Диссертации
Узнать цену

Основные сведения о языках программирования.

Внимание: Акция! Курсовая работа, Реферат или Отчет по практике за 10 рублей!
Только в текущем месяце у Вас есть шанс получить курсовую работу, реферат или отчет по практике за 10 рублей по вашим требованиям и методичке!
Все, что необходимо - это закрепить заявку (внести аванс) за консультацию по написанию предстоящей дипломной работе, ВКР или магистерской диссертации.
Нет ничего страшного, если дипломная работа, магистерская диссертация или диплом ВКР будет защищаться не в этом году.
Вы можете оформить заявку в рамках акции уже сегодня и как только получите задание на дипломную работу, сообщить нам об этом. Оплаченная сумма будет заморожена на необходимый вам период.
В бланке заказа в поле "Дополнительная информация" следует указать "Курсовая, реферат или отчет за 10 рублей"
Не упустите шанс сэкономить несколько тысяч рублей!
Подробности у специалистов нашей компании.
Код работы: K000876
Тема: Основные сведения о языках программирования.
Содержание
Вопросы на стр. 21 и 25?????
Оглавление


ВВЕДЕНИЕ…………………………………………………………...

3
1
Основные сведения о языках программирования
5
1.1
История……………………………………………………………………………………
5
1.2
Стандартизация языков программирования……………………......
 7
1.2.1
Типы данных………………………………………………………....
7
1.2.2
Структуры данных…………………………………………………..
8
1.2.3
Понятие синтаксиса, семантики и прагматики языка программирования ………………………………………………......

11
2
ОБЗОР И АНАЛИЗ ОСОБЕННОСТЕЙ ПРИМЕНЕНИЯ ПРОЦЕДУРНО-ОРИЕНТИРОВАНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ…………………………………………...


13
3
РЕАЛИЗАЦИЯ ПРОГРАММЫ НА ЯЗЫКЕ PASCA ……………..
22

ЗАКЛЮЧЕНИЕ ……………………………………………………...
30

Список использованной литературы ………………………………
32

Приложение ………………………………………………………….
34


ВВЕДЕНИЕ
     По мере того как развивалась вычислительная техника,появлялись новые разнообразныеметододы программирования. Каждый новый подход давал программистам возможность справится с растущим усложнением программ.
     Развитие компьютерных технологий обусловил процесс создания новых различных знаковых систем для записи алгоритмов, так называемых, языков программирования (ЯП).
     Всё многообразие языков программирования можно подразделить на две группы:
     * языки низкого уровня;
     * языки высокого уровня.
     Большая часть программистов при написании программ используют языки высокого уровня.
     На данный момент во всем мире известны следующие языки высокого программирования: Delphi, Pascal, Java, C++ (С), Fortan, Ассемблер и Алгол. Особое место занимает Pascal. Он популярен среди программистов из-за того, что прост, универсален и удобен в работе. Язык Pascal используют уже больше 30 лет. В настоящее время существуетсемь версий[9].
     Актуальность данной темы заключается в том, чтоЯПпредназначается для достижения двухвзаимосвязанных целей:
     1. Предоставить программисту устройство для задания последовательности действий, требующихся к выполнению.Для достижения этой цели понадобится язык, являющийся "близким к машине", то есть, всеми его основными машинными аспектами можно легко и просто орудоватьявным для программиста способом.
     2. Сформировать концепции, использующиеся программистом, размышляя о том, что делать. Для достижения этой цели понадобится язык, являющийся "близким к решаемой задаче", то есть, чтобы концепции ее решения можно было выражать прямо и лаконично.
     Однако, именно процедурные языки программирования предоставляют возможность программисту определять каждый шаг в процессе решения задачи.
     В качестве объекта исследования,в этой работевыступаютЯП высокого уровня. 
     Предмет исследования курсовой работы –процедурно-ориентированые языки программирования.
     Особенность процедурных языков в том, что при написании кода применяются подпрограммы. Они существуют в любом языке программирования, только имеют разные названия. Например, в языке Pascalсуществуют два вида подпрограмм: процедуры и функции, в С – функции, а в Ассемблере они называются подпрограммами.
     Подпрограмма –это идентифицированная часть программы, которая содержит описание определённого набора действий и к которой можно многократно обратиться из любого места внутри программы. Подпрограммы помогаютзначительно упростить жизнь программистам, посредством улучшения читабельности исходного кода, а также его сокращения, ввиду того, что отдельные фрагменты кода не требуется дублировать [18].
     Оптимизировать работу программиста, сделать программный код наиболее понятным, уменьшить объем памяти, занимаемой программой - все это достигается за счет использования подпрограмм[1].
     В результате, цель данной работы – раскрыть теоретические аспекты рассматриваемой темы, приобрести практические навыки использования процедур и функций на примере реализации конкретной задачи.
     Задачи, которые необходимо выполнить в курсовой работе:
     1.) Изучить основные известные сведения о языках программирования.
     2.) Рассмотреть основны классификации языков программирования.
     3.) Рассмотретьосновные процедурно-ориентированые языки и изучить их особенности.
     4.) Реализовать программу на языке Pascal, которая позволитпродемонстрировать изученные теоретические вопросы на практике.
     Теоретической основой курсовой работы послужили исследования таких ученых как Абрамов В.Г., Трифанов Н.П., Вирт Н., Епашников А.М., Йенсен К., Кнут Д., Миков А.И. и другие
     Курсовая работа состоит из введения, трех глав, заключения и списка литературы.
    1. ОСНОВНЫЕ СВЕДЕНИЯ О ЯЗЫКАХ ПРОГРАММИРОВАНИЯ
     Под языком программирования понимают формальную знаковую систему, предназначенную для записи компьютерных программ. 
     На данный момент существует более 8000 тысяч языков программирования: стандартные, нестандартные, визуальные и эзотерические языки. Некоторые программисты знают до десятка различных языков программирования.
     Для чего нужны языки программирования? Язык программирования обеспечивает взаимодействие человека с компьютером. Он позволяет создавать компьютерные программы, организовать управление различными объектами[11].
     1.1 История
     В 19 веке были изобретены первые программируемые устройства, например, ткацкие станки и механическое пианино. Были написаны инструкции для обеспечения управления этими устройствами. Они являются прототипами предметно-ориентированных языков программирования.
     В 19 веке была написана программа для вычисления чисел БернуллидляаналитическоймашиныЧарльзаБэббиджа, которая могла бы стать первым компьютером, в случае реализации. Эта программа была написана Адой Августой графиней Лавлейс, на языке значимом в те времена.
     В конце 1930-х годов в Советском Союзе А. Чёрч, А. Тьюринг, А. Марковразработали математические абстракции.
     Сороковые годы знаменуются появлением электрических цифровых компьютеров и появлением первого высокоуровневого языка програмирования для электронных вычислительных машин(ЭВМ). Язык был создан немецким инженером К. Цузе и назывался «Plankalk?l»[17].
     В пятидесятые годы программисты,при создании программ, пользовались машинным кодом. Программа представляла собой запись, состоящую из 1 и 0. Такой язык считался языком программирования первого поколения.
     На смену пришли языки программировния второго поколения. Они были ограничены спецификациями конкретных машин, но стали более простыми для применения, за счет символьных обозначений машинных команд (мнемоник) и возможности сопоставления имен адресам в машинной памяти. Представителями языков программирования второго поколения являются языки ассемблера и автокодов. Отметим, что при применении Assambler необходимо переводить программу на язык машинных кодов перед ее выполнением. Для этого разработаны специальные программы, также получившие название ассемблеров. Сохранилась проблема с переносом программы с компьютера одной архитектуры на другую, а также ограничение мышления программиста «низкого уровня» — ячейка, адрес, команда.Чуть позже языки программирования были модифицированы, появилась поддержка макрокоманд.
     Fortran, Lisp, Cobol являются языками программирования третьего поколения. Они стали появляться с середины 1950-х.Отличительными особенностями этих языков является абстрактность, универсальность, отсутствие жесткой зависимости от конкретной аппаратной платформы и используемых на ней машинных команд.Отметим, что программы, написанные на языках программирования третьего поколения, могут исполняться на любых компьютерах, на котором имеется транслятор. Под транслятором понимают  инструмент, который переводит программу на язык машины, после чего она может быть выполнена процессором
     В наше время эти языки до сих пор используются, но в обновленных версиях. Также, каждый из них внес существенный вклад в последующее развитие языков программирования.
     Используемые на сегодняшний день парадигмы языков программирования были разработаны в конце шестидесятых годов:
     * Первый язык, поддерживающий обработку массивов – APL. Оказал существенное влияние нафункциональноепрограммирование;
     * В 1960-х годах был изобретен язык Simula.Включал поддержку объектно-ориентированногопрограммирования(ООП)[12];
     * Язык программирования С разрабатывался с 1969 по 1973 года. Является популярным и в наше время, и выступает основой для ряда последующих языков;
     * 1972 год – создание языка Prolog.Язык логического программирования;
     * 1973 год-реализация расширеннойсистемыполиморфнойтипизации, которая положиланачалотипизированнымязыкамфункциональногопрограммирования.
     У каждого языка существует ряд потомков и практически все современные языки основываваются на одном из них.
     1.2 Стандартизация языков программирования
     Язык программирования может быть представлен в виде набора спецификаций, определяющих его синтаксис и семантику. Существуют международные стандарты для языков программирования. Специализированными организациями проводится регулярное обновление и публикация спецификаций и формальных определений соответствующего языка. В рамках таких комитетов продолжается разработка и модернизация языков программирования и решаются вопросы о расширении или поддержке уже существующих и новых языковых конструкций.
     1.2.1Типы данных
     Все действия, которые мы выполняем, выполняются над предметом или объектом. Мы можем изменять их свойства и возможности. Также и программы для ЭВМ совершают какие-либо действия с определенными объектами(данными).
     Совершенно понятно, что данные различны, другими словами имеют разные типы. Любым типам данных определяется множество значений, которые может принимать переменная или выражение, а также возвращать операция или функция. Каждая операция или функция требует аргументов также фиксированного типа и выдает результат фиксированного типа.
     Тип данных необходим:
     * для определения возможных значений переменных, констант, функций, выражений, принадлежащих к данному типу;
     * для определения внутренней формы представления данных в компьютере;
     * для определения операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.
     Во многих языках программирования необходимо явно описывать тип переменной. Существуют следующие базовые типы данных: целый, вещественный, строковый, логический.
     На рисунке 1 представлены основные типы данных языка C.

Рисунок 1 – Основные типы данных
     1.2.2Структуры данных
     Необходимым условием хранения информации в памяти компьютера является возможность преобразования этой самой информации в подходящую для компьютера форму. В том случае, если это условие выполняется, следует определить структуру, пригодную именно для наличествующей информации, ту, которая предоставит требующийся набор возможностей работы с ней.
     Структура данных - способ представления информации, посредством которого совокупность отдельно взятых элементов образует нечто единое, обусловленное их взаимосвязью друг с другом.
     В программировании применяются две большие группы данных:
     1. Статические данные;
     2. Динамические данные.
     Динамическими структурами данных называются структуры данных,памятьпод которые выделяется и освобождается по мере необходимости.
     Динамические структуры данных располагают двумя особенностями:
     1. Предварительно число элементов в структуре не определено;
     2. Элементы динамических структур физически не имеют жесткой линейной упорядоченности. Они могут быть разбросаны по памяти.
     В динамических структурах, в ходе существования, в памяти может изменяться число элементов и характер связей между компонентами. Важно отметить, что при этом не принимается во внимание преобразование содержимого самих элементов данных. Все это приводит к тому, что на этапе создания машинного кода,программа-компилятор не может выделить для всей структуры в целом участок памяти фиксированного размера, а также не может сопоставить с отдельными компонентами структуры конкретные адреса. Чтобы решить эту проблему, применяют метод, который называется - динамическое распределение памяти. Компилятор, в этом случае, выделяет фиксированный объем памяти, для хранения адреса динамически размещаемого элемента, а не самой компоненты [8].
     Динамическая структура данных имеет следующие характеристики:
     * у нее нет имени;
     * ей выделяется память в процессе выполнения программы;
     * число элементов структуры можно не фиксировать;
     * размерность структуры может варьироваться в процессе выполнения программы;
     * в процессе выполнения программы, может видоизменяться характер взаимосвязи между компонентами структуры.

Рисунок 2 – Классификация динамических данных

    Как видно из рисунка 2, на котором приведена классификация динамических данных, данные динамической структуры включают в себя файлы, несвязанные и связанные динамические данные.
    Стоит отметить, не смотря на то, что нельзя удалить и вставить элементы в середину файла, в приведенной классификации файлы все равно отнесены к динамическим структурам данных. А все из-за того, что длина файла в процессе работы программы может поменяться, либо увеличиться, либо уменьшиться до нуля.
     1.2.3 Понятие синтаксиса, семантики и прагматики языка программирования
     При разработке любой программы необходимо выполнение следующих шагов:
     1. Создать или отредактировать текст программы;
     2. Скомпилировать, то есть перевести текст программы с языка высокого уровня в машинно-ориентированные коды;
     3. Исполнить откомпилированный файл;
     4. Протестировать программу и выполнить отладку.
     Под компилятором понимают программу, которая выполняет компиляцию.
     Среди этапов компиляции выделяют:
     1. Лексический анализ;
     2. Синтаксический анализ;
     3. Семантический анализ;
     4. Генерация промежуточного кода;
     5. Оптимизация кода;
     6. Генерация результирующего машинного кода. 
     Лексемы – это отдельные составляющие программы. Текст на лексемы разбивается в ходе лексического анализа. Заметим, что особую роль при выделении лексем играет алфавит и правила построения имен, комментариев, констант[15].
     На втором этапе происходит проверка правильности записи операторов в соответствии с правилами языка.
     Те ошибки, которые выявляет компилятор, называют синтаксическими ошибками.
     Систему правил определения поведения отдельных языковых конструкций называют семантикой языка программирования. Семантика необходима для определения смыслового значения предложения языка. Отметим, что компилятор выявляет не все семантические ошибки. Рассмотрим пример, выражение в виде x/y*z не имеет ошибки, но с точки зрения приоритета выполнения операций, является неправильным. Проверка компилятором на соответствие типов и допустимость операндов в операторах происходит в ходе семантического анализа. Попытка изменения значения константы, которая по определению является неизменяемым значением, приведет к семантической ошибке.
     Синтаксис, семантика и прагматика играют важную роль в описании языков программирования. Под прагматикой языка понимают методологию программирования. Другими словами, прагматика языка – это описание методов и приемов, которые позволяют, исходя из постановки задачи, составить программу ее решения. Но существует проблема при описании прагматики языка программирования. Она заключается в том, что существуют задачи, которые не имеют алгоритма решения. Такие задачи называют алгоритмически неразрешимыми.
     Из-за алгоритмически неразрешимых задач, предмет прагматики становится несколько расплывчатым и неопределенным. Кроме того, из-за разнообразия задач, решаемых с помощью компьютера, те рекомендации, которые могут быть даны, либо носят чересчур общий характер, либо наоборот, слишком конкретны, относятся к узкому классу задач. Несмотря на все достижения теории программирования, существует недостаток, который заключается в ориентировке на разработчиков алгоритмических языков и программного обеспечения электронно-вычислительных машин, а не на пользователей. Многие ее рекомендации представляют собой лишь постановки задач, решение которых потребует еще многих лет труда системных программистов, если вообще когда-либо будет достигнуто. Важную роль в приобретении навыков составления программ занимает разбор примеров различной сложности из разных классов задач.
    2. ОБЗОР И АНАЛИЗ ОСОБЕННОСТЕЙ ПРИМЕНЕНИЯ ПРОЦЕДУРНО-ОРИЕНТИРОВАНЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
     Всё многообразие языков программирования подразделяется на:
     * языки низкого уровня; 
     * языки высокого уровня. 
     Большая часть программистов, при написании программ, используют языки высокого уровня. На данный момент, во всем мире известны следующие языки высокого программирования: Delphi, Pascal, Java, C++ (С), Fortan, Ассемблер и Алгол. Особое место занимает Pascal. Он популярен среди программистов из-за того, что прост, универсален и удобен в работе. Язык Pascal используют уже больше 30 лет. В настоящее время существует семь версий. 
     В аппаратно-независимых системах программирования используют ЯП высокого уровня.
     Классификация ЯП высокого уровня [2]:
     ?	проблемно-ориентированные;
     ?	процедурно-ориентированные;
     ?	объектно-ориентированные(ООП).
     Остановимся поподробнее на процедурно-ориентированных языках. Это такие языки, которые служат для записи алгоритмов (процедур) обработки информации.Рассмотрим особенности некоторых языков подробнее, а также перечислим их достоинства и недотатки.
     Для того, чтобы записать процедуры или алгоритмы обработки информации,применяются:
     а) Basic – это универсальный код символических инструкций для начинающих. Его разработали студенты в 1964 году в качестве языка для упрощенного обучения программированию [3].
     
     Преимущества данного языка:
     ?	простой синтаксис, существует возможность освоить этот язык в кратчайшие сроки;
     ?	реализация графического интерфейса очень проста;
     ?	возможность использования WinAPI функций.
     Недостатки:
     ?	поддержка ОС только семейства Windows, Mac OS X, DOS;
     ?	низкая скорость работы;
     ?	нет механизма наследования реализации объектов[ 4].
     б) язык Fortran. Его создал Джон Бэкус для выполнения сложных научных, математических и статистических вычислений. Онприменяется в различных областях, таких как аэрокосмическая или автомобильная промышленность, государственныхорганизациях или научно-исследовательских институтах, также этот язык использует Национальная метеорологическая служба США.
     Примеркода:
     *
     C Hello World на Fortran 77
     C 
     PROGRAM REELECT
     WRITE(UNIT=*, FMT=*)
     'I like Ike'
     END
     Достоинства:
     * наличие множества математических библиотек;
     * встроенные средства обработки массивов;
     * поддержка работы с целыми, вещественными и комплексными числами высокой точности[5,6].
     Недостатки:
     * отсутствуют средства отладки и анализа поведения программы;
     * исходный код очень сложен в понимании.
     ЯП Fortan является узкоспециализированным, который применяется для научных и инженерных вычислений.
     в) язык С был разработан в период с 1969 по 1973 год ДеннисомРитчи в BellLabs. Первоночальное назначение языка - написание операционной системы UNIX[4,10]. В 80-х годах язык был оснащен инструментами объектно-ориентированного программирования и на его основе был изобретен С++.  Этот язык используется в MicrosoftOffice, Adobe PDF Reader и в Firefox.
     Пример кода на С:
     #include
     main()
     {
     puts ("Эта программа написана на языке С");
     }
     Пример кода на C++:
     #include
     using namespace std;
     int main()
     {
     cout<< "С++ эффективен в случае, если ваши знания в программировании намного выше средних" <=A) and (c[i,j]<=B) then
     k:=k+1
     else
              p:=p+1;
     Далее, сравниваются результаты подсчета.
     Полностью функция будет выглядеть следующим образом.
     functionnum(A,B:Real;c:matr;i:integer):Boolean;
     varp,j,k:Integer;
     begin
     p:=0;
     k:=0;
     for j:=1 to h do
     if (c[i,j]>=A) and (c[i,j]<=B) then
     k:=k+1
     else
     p:=p+1;
     if k>p then
     num:=True
     end;
     Так как функцию для проверки условия принадлежности уже создали, остается только создать процедуру для вывода номеров строк на экран ProcedurePrintNum (t:matr).
     Для реализации процедуры, необходимо описать, во-первых, переменную-счетчик для переборастрок
     i:Integer;
     во-вторых, переменные для определения границ отрезка
     A,B:Real;
     Границы отрезка определяет пользователь, поэтому программа просит его ввести отрезок
     write('Введитеотрезок:');
     Read(A,B);
     После ввода отрезка, процедура начинает перебором всех строк матрицы проверять, в каких строках элементов, принадлежащих отрезку [A,B] больше, чем элементов, принадлежащих отрезкам от минус бесконечности до А и от В до плюс бесконечности. Как только процедура нашла такую строку, она выводит ее на экран 
     for i:=1 to h do
     ifnum(A,B,c,i) then
     write(i,' ')
     Полностью процедура по выводу строк матрицы на экран будет выглядеть следующим образом:
     Procedure PrintNum (t:matr);
     var i:Integer;
     A,B:Real;
     begin
     write('Введитеотрезок:');
     Read(A,B);
     for i:=1 to h do
     ifnum(A,B,c,i) then
     write(i,' ')
     end;
     После того, как все процедуры и функции созданы,переходим к созданию тела программы.Оно будет выглядеть следующим образом:
InputMatr(c);
PrintMatr(c);
Writeln;
PrintNum(c);
     Кодпрограммыимеетвид:
     programExample;
const
h=10;
type
telem=integer;
mas=array[1..h] of telem;
matr=array[1..h] of mas;
var
   c:matr;
//-----------------------------
//Процедура ввода матрицы
Procedure InputMatr (var a:matr);
vari,j:Integer;
begin
randomize;
for i:=1 to h do
for j:=1 to h do
a[i,j]:=random(10)-0
end;
//----------------------------
//Процедурапечатиматрицы
Procedure PrintMatr (a:matr);
vari,j:Integer;
begin
for i:=1 to h do
begin
for j:=1 to h do
write(a[i,j],'  ');
writeln
end
end;
//-----------------------------
//Проверка количества элементов, принадлежащих разным отрезкам
functionnum(A,B:Real;c:matr;i:integer):Boolean;
varp,j,k:Integer;
begin
p:=0;
k:=0;
for j:=1 to h do
if (c[i,j]>=A) and (c[i,j]<=B) then
k:=k+1
else
p:=p+1;
if k>p then
num:=True
end;
//-------------------------------
//Печать номеров строк
Procedure PrintNum (t:matr);
var i:Integer;
A,B:Real;
begin
write('Введитеотрезок:');
Read(A,B);
for i:=1 to h do
ifnum(A,B,c,i) then
write(i,' ')
end;
//-------------------------------
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
InputMatr(c);
PrintMatr(c);
Writeln;
PrintNum(c);
Readln;
Readln
end.
     Результат рабо.......................
Для получения полной версии работы нажмите на кнопку "Узнать цену"
Узнать цену Каталог работ

Похожие работы:

Отзывы

Выражаю благодарность репетиторам Vip-study. С вашей помощью удалось решить все открытые вопросы.

Далее
Узнать цену Вашем городе
Выбор города
Принимаем к оплате
Информация
Наши преимущества:

Оформление заказов в любом городе России
Оплата услуг различными способами, в том числе через Сбербанк на расчетный счет Компании
Лучшая цена
Наивысшее качество услуг

Сезон скидок -20%!

Мы рады сообщить, что до конца текущего месяца действует скидка 20% по промокоду Скидка20%