Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по программированию.docx
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
51.62 Кб
Скачать
  1. Способы записи алгоритма.

К основным способам описания алгоритмов можно отнести следующие:

o       словесный (на естественном языке); недостаток – отсутствие строгой формализации и наглядности представления вычислительного процесса.

o       формульно-словесный – основан на задании инструкций о выполнении конкретных действий с использованием математических символов и выражений в сочетании со словесными пояснениями;

o       табличный – предполагает представление алгоритма в виде таблицы решений и обычно носит вспомогательный характер;

o       графический – использует элементы блок-схем.

Блок-схемой называется графическое изображение структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых при этом операций.

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

  1. Классификация языков программирования. Языки программирования высокого уровня.

Современное состояние языков программирования можно пред­ставить в виде следующей классификации.

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

Первым шагом в развитии процедурных языков программирования было появление проблемно-ориентированных языков. В этом названии нашел отражение тот факт, что при их разработке идут не «от машины», а «от задачи». При этом стремятся максимально полно учесть специфику класса задач, для решения которых данный язык предполагается исполь­зовать. Например, для многих научно-технических задач характерны объ­емные расчеты по сложным формулам; поэтому в ориентированных на такие задачи языках вводят удобные средства их записи. Использование понятий, терминов, символов, привычных для специалистов соответству­ющей области знаний, облегчает им изучение языка, упрощает процесс составления и отладки программы.

Разнообразие классов задач, решаемых на ЭВМ, привело к тому, что на сегодняшний день разработано уже несколько сотен алгоритмических языков. Правда, широкое распространение и международное признание получили лишь 10—15 из них. В первую очередь следует отметить

Fortran (FORmula TRANslation) - первый язык, созданный в начале 50-х гг. в США фирмой IBM и Algol (ALGOrithmic Language), разработанный группой зарубежных специалистов в 1960 г.,— компилируемые языки, предназначенные для решения научно-технических задач;

Cobol (COmmon Business Oriented Language — общепринятый де­ловой язык) — компилируемый язык для решения экономических задач. Разработан в США в 1958—1960 гг. На этом языке создано много приложений, некоторые из них активно эксплуатируются и сейчас. Достаточно сказать, что одной из высокооплачиваемых категорией граждан в США являются программисты на Коболе.

Basic (Beginners All-purpose Symbolic Instruction Code - универсальный символический код для начинающих) — для решения неболь­ших вычислительных задач в диалоговом режиме. В 1964 г. сотрудники математического факультета Дартмутского колледжа Томас Курц и Джон Кемени создали специали­зированный язык программирования, который состоял из простых английских слов. Он получил самое широкое распространение. Популярность Бейсика объясняется как простотой его освоения, так и наличием достаточно мощных универсальных средств, пригодных для решения научных, технических и экономических задач, а также задач бытового характера, игровых и т.д. Согласно концепциям, за­ложенным в Бейсике, в нем широко распространены различные пра­вила умолчания, что считается плохим тоном в большинстве языков программирования подобного типа. Возникло множество версий язы­ка, зачастую мало совместимых друг с другом. Однако, зная одну из версий, можно без особого труда освоить любую другую. Бейсик ак­тивно поглощает многие концепции и новинки из других языков. Первоначально интерактивный режим осуществлялся с использова­нием интерпретатора, в настоящее время для этого языка имеются также и компиляторы.

В принципе каждый из этих языков можно использовать для решения задач не «своего» класса, но, как правило, это оказывается не слишком удобным.

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

PL/1 (Programming Language One) - первый многоцелевой универсальный язык, разра­ботан в США фирмой IBM в 1963—1966 гг.

Pascal. Созданный как учебный язык программирования в 1968—1971 гг. Никлаусом Виртом в Высшей технической школе (ЕТН) в Цюрихе (Швейцария), он был назван в честь французского ма­тематика и философа Блеза Паскаля (1623—1662). Лингвистическая концепция Паскаля пропагандирует системный подход, выражающийся, в частности, в расчленении крупных задач на меньшие по сложности и размеру, легко поддающиеся решению.

Ada - предназначен для со­здания и длительного сопровождения больших программных систем, управления процессами в реальном масштабе времени. Язык АДА сложен для изу­чения. Разработан в мае 1979 г. группой ученых во главе с Жаном Ихбиа. Язык назвали в честь Ады Лавлейс, дочери великого поэта Бай­рона. Она в юности была увлечена идеями Чарльза Бэббиджа и по­могала ему составлять описание машины, а в начале 40-х гг. XIX в. разработала первую в мире программу для вычислительной машины. Язык АДА - прямой наследник Паскаля.

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

С+,

Modula.

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

Декларативные языки построены на описании данных и искомого результата (определяют что надо вычислить, а не как это сделать, в отличие от процедурных). Это языки, в которых операторы представляют собой объявления или высказывания в символьной логике.

В функциональном (аппликативном) программировании программа представляет собой последовательность описаний функций и выражения, которые необходимо вычислить (основаны на теории рекурсивных функций).

Первым таким языком стал Лисп (LISP, LISt Processing — обра­ботка списков), созданный в 1959 г. Джоном Маккарти. Этот язык ориентирован на структуру данных в форме списка и позволяет орга­низовать эффективную обработку больших объемов текстовой ин­формации.

Создание языка искусственного интеллекта Пролог (PROLOG, PROgramming in LOGic — программирование в терминах логики) в 1973 г. французским ученым Аланом Кольмероэ открыло новую об­ласть — логическое или реляционное программирование (ещё языки -Mercury, KLO). Основано на символической логике.

В этих языках указывается, что дано и что требуется получить, а поиск решения возлагается непосредственно на ЭВМ. Это свидетельствует о декларативности языка ло­гического программирования.

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

Объектно-ориентированные языки базируются на одной общей идее; она состоит в стремлении связать данные и процедуры их обработки в единое целое — объект. Его сущность выражается формулой «объект = данные + процедуры (методы)». С этой целью вводятся следующие основные понятия:

Объект - это совокупность свойств (параметров) определенных сущ­ностей и методов их обработки (программных средств).

Свойство характеризует объект и его параметры. Все объекты наде­лены определенными свойствами, которые в совокупности и выделяют (определяют) его.

Методом называют набор допустимых действий над объектом или его свойствами.

Событие — это характеристика изменений состояния объекта.

Классом называют совокупность объектов, характеризующихся об­щностью свойств и применяемых к ним методов обработки. Любой созданный объект становится экземпляром класса.

Существуют различные объектно-ориентированные технологии, кото­рые обеспечивают выполнение важнейших принципов объектного подхо­да: инкапсуляция и наследование.

Инкапсуляция – объединение данных и свойственных им процедур (методов) обработки в одном объекте.

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

В процессе работы с объектами допускается полиморфизм - возмож­ность использования методов с одинаковыми именами для обработ­ки данных разных типов.

К наиболее современным объектно-ориентированным языкам программирования относятся C++ и Java.

C++ - компак­тная компилирующая система, в основе которой лежит язык С, была разработана в начале 80-х гг. в лаборатории Bell корпорации AT&T.

Java – язык интерпретирующего типа, был создан компанией Sun в начале 90-х годов на основе Си++. С января 1995 г. Java получает распространение в Internet. Сегодня Java по популярности зани­мает второе место в мире после Бейсика.

Идеи ООП проникли во многие процедурные языки. Например, в состав интегрированной системы программирования Паскаль (кор­порации Borland International), начиная с версии 5.5, входит специ­альная библиотека ООП Turbo Vision.

С середины 90-х гг. многие объектно-ориентированные языки реализуются как системы визуального программирования. Такие систе­мы имеют интерфейс, позволяющий при составлении текста про­граммы видеть те графические объекты, для которых она пишется. Отличительной особенностью этих систем является наличие в них среды разработки программ из готовых «строительных блоков», по­зволяющих создавать интерфейсную часть программного продукта в диалоговом режиме, практически без написания программных опе­раций. Система берет на себя значительную часть работы по управ­лению компьютером, что делает возможным в простых случаях об­ходиться без особых знаний о деталях ее работы. Она сама пишет значительную часть текста программы: описания объектов, заголов­ки процедур и многое другое. Программисту остается только вписать необходимые строчки, определяющие индивидуальное поведение программы, которые система не в состоянии предвидеть. Но даже в этих случаях система сама указывает место для размещения таких строк. К объектно-ориентированным системам визуального проек­тирования относятся: Visual Basic, Delphi, C++ Builder, Visual C++. Это системы программирования самого высокого уровня.

VBA (Visual Basic for Application) является общей языковой плат­формой для приложений Microsoft Office (Excel, Word, Power Point и др.). VBA соблюдает основной синтаксис и правила программирова­ния языков Бейсик-диалектов. VBA помогает довольно сильно рас­ширить возможности приложений за счет написания макросов — программ, предназначенных для автоматизации выполнения многих операций. Языки программирования баз данных

Языки программирования баз данных

Эти языки отличаются от алгоритмических прежде всего своим функциональным назначением. При работе с базами данных (БД) наиболее часто выполняются следующие операции: создание, преоб­разование, удаление таблиц в БД; поиск, отбор, сортировка по зап­росам пользователя; добавление новых записей или модификация существующих; удаление записей и др. Для обработки больших мас­сивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language). Он был впервые создан фирмой IBM в начале 70-х гг. и затем стал стандартом языка работы с реля­ционными базами данных.

Практически в каждой СУБД имеется свой универсальный язык, ориентированный на ее особенности. Сегодня в мире ведущие про­изводители СУБД: Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Их продукты предназначены для со­вместной параллельной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких сер­верах. В Oracle имеется встроенный язык PL/SQL, в Informix — INFORMIX 4GL, в Adabas - Natural и т.д.

Языки программирования для компьютерных сетей

Появление и активное развитие компьютерных сетей стало при­чиной создания многочисленных версий популярных языков про­граммирования, адаптированных для использования в сети. Отличи­тельные особенности, присущие сетевым языкам: они являются интерпретируемыми. Интерпретаторы для них распространяются бес­платно, а сами программы — в исходных текстах. Такие языки полу­чили название скрипт-языков.

HTML (Hyper Text Markup Language) — универсальный язык разметки гипертекста, используемый для подготовки Web-документов для сети Internet.

Был разработан британским учёным Тимом Бернерсом-Ли приблизительно в 1991—1992 годах в стенах Европейского совета по ядерным исследованиям в Женеве (Швейцария). HTML создавался как язык для обмена научной и технической документацией, пригодный для использования людьми, не являющимися специалистами в области вёрстки. Изначально язык HTML был задуман и создан как средство структурирования и форматирования документов без их привязки к средствам воспроизведения (отображения). В соответствии с командами HTML броузер отображает содержимое документа, команды языка не отображаются. В основе языка HTML лежит механизм гипертекстовых ссылок, обеспечивающий связь одного документа с другим. Все Web-страницы написаны на HTML или используют его расширение.

Perl. В 80-х гг. Ларри Уолл разработал язык Perl, который пред­назначался для эффективной обработки больших текстовых файлов, создания текстовых отчетов и управления задачами. В его состав вхо­дят многочисленные функции работы со строками, массивами, все­возможные средства преобразования данных, управления Процесса­ми, работы с системной информацией и др.

Tcl/Tk. В конце 80-х гг. Джон Аустираут придумал скрипт-язык Tel и библиотеку Tk. Tel — это попытка создания идеального скрипт-языка. Он ориентирован на автоматизацию рутинных операций и состоит из мощных команд, выполняющих обработку нетипизирован-ных объектов.

VRML. Язык моделирования виртуальной реальности. В 1994 г. был создан язык VRML для организации вирту­альных трехмерных интерфейсов в Интернете. Он ориентирован на описание разнообразных трехмерных образов, цвето-теневого освещения в текстовом виде и позволяет создавать различные сценарии миров, путешествовать по ним, «облетать» с разных сторон, вращаться в любых направлениях, масштабировать, управлять освещенностью и многое другое. Сейчас VRML вытесняется форматом X3D.

Языки моделирования

При моделировании систем применяются формальные способы их описания — формальные нотации, с помощью которых можно представить объекты и взаимосвязи между ними в системе. Такие системы называют CASE-системами.