Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

История языков программирования высокого уровня




СОДЕРЖАНИЕ

 

ВВЕДЕНИЕ

1. ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

1.1 Классификация языков программирования

1.2 Язык C

1.3 Язык C++

1.3 Язык Java

1.4 Язык C#

2. ЦИКЛИЧЕСКИЕ КОНСТРУКЦИИ В ЯЗЫКАХ ВЫСОКОГО УРОВНЯ

2.1 Алгоритмическая структура цикла.

2.2 Циклы в языке С.

2.3 Циклы в языке С++.

2.4 Циклы в языке Java.

2.5 Циклы в языке С#

3. ПРИМЕР ПРОГРАММ ЦИКЛИЧЕСКИХ КОНСТРУКЦИЙ НА ЯЗЫКЕ С#

3.1 Программа №1 цикл while

3.2 Программа №2 цикл do-while.

3.3 Программа №3 цикл for.

3.4 Программа №4 цикл foreach

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ


ВВЕДЕНИЕ

 

Создавая программу, программист сталкивается с тем, что часто приходится выполнять одни и те же действия над последовательностью значений. Для решения таких задач, программист использует циклы. Циклические конструкции являются важным компонентом программирования. Программисты редко пишут программы, которые используются только один раз. Большинство из них выполняются многократно, в основном каждый раз делая одни и те же операции, но с достаточными вариациями, в результате чего получаются ценные результаты. Часто непосредственно внутри самой программы используются множество повторений, также с небольшими вариациями. Вышесказанное позволяет сделать вывод, что исследование особенностей циклических конструкций в различных языках программирования остается актуальным, особенно в процессе подготовки специалиста-информатика.

Научная проблема заключена в необходимости совершенствования знаний о циклических конструкциях и в повышении эффективности их практического использования.

Рабочая гипотеза: решение научной проблемы возможно путем изучения и анализа материалов из различных источников и разработки на практике программ с использованием циклов.

Цель работы: изучение циклических конструкций в языках высокого уровня.

Задачи исследования:

- ознакомиться с особенностями некоторых современных языков программирования высокого уровня;

- исследовать циклические конструкции в языках высокого уровня;

- подготовить литературный обзор источников по теме работы;

- написать одну или несколько программ, демонстрирующих использование циклических конструкций в языке С#.

Объект исследования: – языки программирования высокого уровня.

Предмет исследования – циклические конструкции.

Метод исследования заключен в анализе, обобщения литературы и программировании.

Научной новизной является получение новых знаний об использовании циклических конструкций в языках программирования высокого уровня.

Практическая значимость заключается в приобретении навыков по использованию циклических конструкций для написания программ.

Источниковедческая база – библиотека ТФ МГУКИ, интернет.

 


ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ

 

1.1 Классификация языков программирования

 

Язык программирования - это формализованный язык для описания алгоритма решения задач на компьютере. Языки программирования можно разделить на:

- языки программирования низкого уровня;

- языки программирования высокого уровня.

В группу языков низкого уровня входят машинные языки и языки символического кодирования: (Автокод, Ассемблер). Операторы этого языка – это те же машинные команды, но записанные мнемоническими кодами, а в качестве операндов используются не конкретные адреса, а символические имена. Все языки низкого уровня ориентированы на определенный тип компьютера, т.е. являются машинно-зависимыми. Машинно-ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).

К языкам программирования высокого уровня относятся Фортран, Алгол, Кобол, Бейсик, Си, Пролог, С++, С#, JAVA и т.д. Эти языки машинно-независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках. Это и есть основной их недостаток.

Языки программирования высокого уровня отличаются от языков низкого уровня, во-первых, тем, что они используют более строгий контроль, во-вторых, многие детали обрабатываются автоматически, и, в-третьих,программисту для создания своего приложения приходится писать меньшее количество строк.

Кроме того в языках высокого уровня распределением регистров занимается компилятор, так что программистуненадо писать код, обеспечивающий перемещение данных между регистрами и памятью.

Последовательности вызова процедур генерируются автоматически; программисту нет необходимости описывать помещение аргументов функции в стек и их извлечение оттуда.

Для описания структур управления программист может использовать также ключевые слова, какif, while; последовательности машинных команд, соответствующие этим описаниям компилятор генерирует динамически.

Все созданные до настоящего времени языки были связанны друг с другом, причем на каждый новый язык в той или иной форме влияют его предшественники. В процессе такого "перекрестного опыления" средства из одного языка адаптируются другим, удачная новинка интегрируется в существующий контекст, а отжившая конструкция отбрасывается за ненадобностью. Примерно так и происходит эволюция компьютерных языков и развитие искусства программирования. Наиболее известными и популярными языками программирования на сегодняшний день являются: С, С++, Java, С# [1].

 

1.2 Язык C

 

Язык С был разработан в начале 1970-х годов Денисом Ритчи (Dennis Ritchie), работавшим в то время в компании Bell Laboratories. Хотя первоначально язык С создавался для разработки операционных систем и компиляторов, он быстро получил популярность в среде программистов и приобрел дополнительные преимущества благодаря его стандартизации, выполненной Американским институтом национальных стандартов (ANSI — American National Standards Institute).

Язык С сначала рассматривался просто как некоторый шаг вперед по сравнению с машинным языком. По этой причине его синтаксис более краток и выразителен, чем синтаксис других языков высокого уровня, использующих полные слова английского языка для выражения тех языковых конструкций, которые в языке С представляются с помощью специальных символов. Эта лаконичность является одной из причин чрезвычайной популярности языка С, поскольку позволяет программистам эффективно выражать сложные алгоритмы. Часто, краткое представление алгоритма более доступно пониманию, чем его пространное описание [2].

Пример программы на языке С:

/* Программа обработки списка */#include <stdio.h>

#include <string.h>

main()

{

char names[10][9], pivot[9];

int i, j;

/* Ввод имен с клавиатуры */

for(i = 0; i < 10; ++i)

scanf("%s", names[i]);

/* Сортировка списка имен */

for(i = 1; i < 10; ++i)

{ strcpy(pivot,names[i]);

j = i - 1;

while((j>=0) && (strcmp(pivot, names[j]) < 0)

{ strcpy(names[j+1], names[j]); --j;}

strcpy(names[j+1],pivot);}

/* Печать отсортированного списка */

for(i = 0; i < 10; ++i){

printf("%s\n", names[i]);}

 


1.3 Язык C++

 

К концу 1970-х размер проектов стал приближаться к критическому, при превышении которого методика структурного программирования и язык С "опускали руки". Поэтому стали появляться новые подходы к программированию, позволяющие решить эту проблему. Один из них получил название (ООП). Используя ООП, программист мог справляться с программами гораздо большего размера, чем прежде. Но вся беда состояла в том, что С, самый популярный на то время язык, не поддерживал ООП. Желание работать с объектно-ориентированной версией языка С в конце концов и привело к созданию C++. Язык C++ был разработан Бьярни Страуструпом (Bjarne Stroustrup) в компании Bell Laboratories (Муррей Хил, Нью-Джерси), и годом создания считается 1979-й. Первоначально создатель нового языка назвал его "С с классами", но в 1983 году это имя было изменено на C++. C++ полностью включает элементы языка С. Таким образом, С можно считать фундаментом, на котором построен C++. Большинство дополнений, которые Страуструп внес в С, были предназначены для поддержки объектно-ориентированного программирования. По сути, C++ — это объектно-ориентированная версия языка С. Возводя "здание" C++ на фундаменте С, Страуструп обеспечил плавный переход многих программистов на "рельсы" ООП. Вместо необходимости изучать совершенно новый язык, С-программисту достаточно было освоить лишь новые средства, позволяющие использовать преимущества объектно-ориентированной методики.

На протяжении 1980-х годов C++ интенсивно развивался и к началу 1990-х уже был готов для широкого использования. Рост его популярности носил взрывоподобный характер, и к концу этого десятилетия он стал самым широко используемым языком программирования. В наши дни язык C++ по-прежнему имеет неоспоримое превосходство при разработке высокопроизводительных программ системного уровня. Важно понимать, что создание C++ не было попыткой изобрести совершенно новый язык программирования. Это было своего рода усовершенствование и без того очень успешного языка. Такой подход к разработке языков (взять за основу существующий язык и поднять его на новую ступень развития) дал начало тенденции, которая продолжает жить и сегодня [4, 6].

Пример программы на языке С++:

// Программа обработки списка

#include <iostreain.h>

#include <string.h>

const int ListLength = 10;

// Все объекты класса list содержат список имен и три открытых

// метода, которые называются getnames, sortlist и printnames.

class list

{ private:

char names[ListLength][9];

public:

void getnames()

{ int i;

for(i = 0; i< ListLength; *+i)

cin» names[i]; }

void sortlist()

{ int i,j;

char pivot[9];

for(i = 1; i < ListLength; ++i)

{ strcpy(pivot, names[i]);

j = i - 1;

while((j >= 0) && (stremp(pivot, names[j]) < 0))

{ strcpy(names[j+1], names[j]); --j;}

strcpy(names[j+1],pivot); } }

void printnames()

{ int i;

cout «endl;

for(i = 0; i < ListLength; ++i)

cout «names[i] «endl; } }

// Создание объекта с именем namelist и обращение к нему с // требованием ввести несколько имен, отсортировать их, а // затем вывести отсортированный список на экран.void main()

{ list namelist;

namelist.getnames();

namelist.sortlist();

namelist.printnames();

 

1.3 Язык Java

 

Следующей ступенью на лестнице прогресса языков программирования стал язык Java, который первоначально назывался Oak (в переводе с англ. "дуб").

Java — это объектно-ориентированный язык программирования, разработанный компанией Sun Microsystems в начале 90-х годов. Его разработчики много позаимствовали из языков С и C++. Будучи новым языком, Java еще не подвергался стандартизации. Действительно, язык Java все еще находится на стадии эволюции. Однако многие восторженно относятся к этому языку, поскольку он обещает стать стандартом для тех программ, которые известны как "аплеты Java" и которые можно передавать через Internet в виде выполняемых модулей и запускать на любой клиентской машине. Благодаря такой способности статичные по своей природе гипертекстовые документы можно заменить динамичными программами, с которыми пользователь сможет взаимодействовать непосредственно [7].

Пример программы на языке Java:

// Программа обработки списка

import java.io.*

// Все объекты класса list содержат список имен и три открытых

// метода, которые называются getnames, sortlist и printnames.

class list

{ final int ListLength = 10;

private String[] names;

public list()

{ names = new String[ListLength]}

public void getnames{}

{ int i;

Datalnput data = new DatalnputStream(System.in);

for(i = 0; i < ListLength; i++)

{ try(names[i] = data.readLine();

catch(IOException e){};}

public void sortnames()

{ int i,j;String pivot;for(i = 1; i < ListLength; i++)

{ pivot = names[i]);j = i - 1;

while((j >= 0) && (pivot.compareTo(names[j]) < 0))

{ names[j+1]=names[j];j--;}

names[j+1] = pivot;}}

public void printnames()

{ int i;for(d = 0; i < ListLength; i++)

System.out.println(names[i]);}}

// Создание объекта с именем namelist и обращение к нему с// требованием ввести несколько имен, отсортировать их, а// затем вывести отсортированный список на экран.

class sort{ public static void main (String args[])

{ list namelist = new list();

namelist.getnames();

namelist.sortnames();

namelist.printnames(); }}

 

1.4 Язык C#

 

Разработчики Java успешно решили многие проблемы, связанные с переносимостью в среде Internet, но далеко не все. Одна из них — межъязыковая возможность взаимодействия(cross-language interoperability) программных и аппаратных изделийразных поставщиков, или многоязыковое программирование(mixed-language programming).В случае решения этой проблемы программы, написанные на разных языках,могли бы успешно работать одна с другой. Такое взаимодействие необходимо для создания больших систем с распределенным программным обеспечением (ПО), а также для программирования компонентов ПО, поскольку самым ценным является компонент, который можно использовать в широком диапазоне компьютерных языков и операционных сред. Кроме того, в Java не достигнута полная интеграция с платформой Windows. Хотя Java-программы могут выполняться в среде Windows (при условии установки виртуальной машины Java), Java и Windows не являются прочно связанными средами. А поскольку Windows — это наиболее широко используемая операционная система в мире, то отсутствие прямой поддержки Windows — серьезный недостаток Java [13].

Чтобы удовлетворить эти потребности, Microsoft разработала язык С#. С# был создан в конце 1990-х годов и стал частью общей.NET-стратегии Microsoft. Впервые он увидел свет в качестве б-версии в середине 2000 года. Главным архитектором С# был Андерс Хейлсберг (Anders Hejlsberg) — один из ведущих специалистов в области языков программирования, получивший признание во всем мире. Достаточно сказать, что в 1980-х он был автором весьма успешного продукта Turbo Pascal, изящная реализация которого установила стандарт для всех будущих компиляторов. С# непосредственно связан с С, C++ и Java. И это не случайно. Эти три языка — самые популярные и самые любимые языки программирования в мире. Более того, почти все профессиональные программисты сегодня знают С и C++, и большинство знает Java. Поскольку С# построен на прочном, понятном фундаменте, то переход от этих "фундаментальных" языков к "надстройке" происходит без особых усилий со стороны программистов. Так как Андерс Хейлсберг не собирался изобретать свое "колесо", он сосредоточился на введении усовершенствований и новшеств.

"Дедушкой" С# является язык С. От С язык С# унаследовал синтаксис, многие ключевые слова и операторы. Кроме того, С# построен на улучшенной объектной модели, определенной в C++. Если вы знаете С или C++, то с С# вы сразу станете друзьями. С# и Java связаны между собой несколько сложнее. Как упоминалось выше, Java также является потомком С и C++. У него тоже общий с ними синтаксис и сходная объектная модель. Подобно Java C# предназначен для создания переносимого кода. Однако С# — не потомок Java. Скорее С# и Java можно считать двоюродными братьями, имеющими общих предков, но получившими от родителей разные наборы "генов". Связь языков можно изобразить в виде схемы, которая представлена на рисунке 1[12].

 

Рисунок 1 - Схема связи языков программирования

 

Общую связь языков можно увидеть в коде C# программы:

// Определение наименьшего множителя,

// состоящего из одной цифры.

using System;

class Ladder {

public static void Main() {

int num;

for(num = 2; num < 12; num++) {

if((num % 2) == 0)

Console.WriteLine("Наименьший множитель числа " +

num + " равен 2.");

else if((num % 3) == 0)

Console.WriteLine("Наименьший множитель числа " +

num + " равен 3.");

else if((num % 5) == 0)

Console.WriteLine("Наименьший множитель числа " +

num + " равен 5.");

else if((num % 7) == 0)

Console.WriteLine("Наименьший множитель числа " +

num + " равен 7.");

else

Console.WriteLine(num +

" не делится на 2, 3, 5 или 7."); }}

 


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...