Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Алгоритмы. Этапы решения задач

Содержание

Этапы решения задачиРабота по решению любой задачи с использованием компьютера делится на следующие этапы:Постановка задачиФормализация задачиПостроение алгоритмаСоставление программы на языке программированияОтладка и тестирование программыПроведение расчетов и анализ полученных результатовЧасто эту последовательность называют технологической цепочкой решения задачи
Алгоритмы* Этапы решения задачиРабота по решению любой задачи с использованием компьютера делится на Этапы решения задачиВторой этап — формализация задачи. Здесь чаще всего задача переводится Понятие алгоритмаСлово «алгоритм» происходит от Algorithmi — латинского написания имени Мухаммеда аль-Хорезми Особенности алгоритмаАлгоритм имеет 5 отличительных особенностей: Конечность (финитивность) - любой алгоритм должен приводить Особенности алгоритмаДля решения практически важных задач требуются не просто алгоритмы, а хорошие Виды данныхПо отношению к программе, данные делятся на исходные, результаты (окончательные данные) Исполнение алгоритмаЭВМ – это устройство для исполнения алгоритмов.Точнее говоря, исполнителем является комплекс Способы представления алгоритмовСловесный (вербальный) – является универсальным, но громоздок и неконкретенС помощью Составные части алгоритмаНезависимо от того, на каком языке программирования будет написана программа, Линейные алгоритмыЛинейный алгоритм - алгоритм, в котором команды исполняются последовательно, одна за Линейные алгоритмыДля описания алгоритмов чаще всего используют язык блок-схем.Эллипсами обозначают начало и Разветвляющиеся алгоритмы Разветвляющийся алгоритм – алгоритм, в котором после проверки условия в Разветвляющиеся алгоритмы* Циклические алгоритмыЦиклический алгоритм - алгоритм, в котором содержится команда повторения, т.е. цикл.Для Циклические алгоритмыВ качестве примера рассмотрим алгоритм нахождения факториала натурального числа:Как правило в Алгоритм Евклида Задача: даны два целых положительных числа m и n. Требуется Алгоритм Евклида *E0. [Гарантировать, что m >= n].  Если m < Языки программирования* Язык программирования Языки программирования – искусственные языки, отличающиеся ограниченным числом «слов», значение Алгоритмический язык Алгоритмический язык программирования — это способ записи алгоритмов решения различных Алгоритмический язык В зависимости от того, какой из целей данный язык программирования Алгоритмический язык Гради Буч:«Возникла тенденция перехода от языков, указывающих компилятору, что делать Машинно-зависимые языкиДля программирования на самых первых компьютерах (ламповых) использовался язык машинных команд Машинно-зависимые языкиЯзыки ассемблерного типа стали понятнее для человека, но менее понятны для Языки высокого уровняЯзыки программирования высокого уровня (алгоритмические языки) являются машинно-независимыми языками. Одна Виды трансляторовРеализовать тот или иной язык программирования на ЭВМ — значит создать Виды трансляторовПри компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст программы Поколения языков программирования I поколение/1954-1958 гг./ - языки ассемблера, простейшие языки высокого Поколения языков программирования II поколение/1959-1961 гг./ - разработаны под конкретные задачиFORTRAN II Поколения языков программирования III поколение/1962-1970 гг./ - «смешение языков» - появление универсальных Поколения языков программирования IV поколение/1970-80-е гг./ - «потерянное поколение» - появляется огромное Поколения языков программирования V поколение/1990-е гг./ - системы автоматического создания прикладных программавтоматическое Топология языков программирования /основные элементы программирования и их взаимодействие/I – начало II Топология языков программирования /основные элементы программирования и их взаимодействие/II – начало III Топология языков программирования /основные элементы программирования и их взаимодействие/III поколениепоявляются модули (некоторая Топология языков программирования /основные элементы программирования и их взаимодействие/IV поколение /Объектно-ориентированные языки/появление Структура алгоритмического языкаВо всяком языке программирования определены способы организации данных и способы Структура алгоритмического языка* ФортранПервыми популярными алгоритмическими языками программирования были появившиеся в 1950-х гг. Фортран, Кобол БейсикВ 1965 г. в Дартмутском университете был разработан язык Бейсик (Basic). По ПаскальВ 1971 г. швейцарский математик Н.Вирт создал язык Паскаль (Pascal), как учебный Си и Си++Язык программирования Си (С) создавался как инструментальный язык для разработки ЛИСП и ПрологЭВМ будущего, пятого поколения называют машинами «искусственного интеллекта». Но прототипы Обзор языков программирования высокого уровня COBOL (Кобол). Это компилируемый язык для применения Обзор языков программирования высокого уровня Algol (Алгол). Компилируемый язык, созданный в 1960 Обзор языков программирования высокого уровня Java (Джава, Ява). Этот язык был создан Обзор языков программирования высокого уровня С# (Си Шарп). В конце 90-х годов Языки программирования для Интернета С активным развитием глобальной сети было создано немало Языки программирования для Интернета VRML. В 1994 году был создан язык VRML Языки программирования для Интернета XML. В августе 1996 года WWW-консорциум, ответственный за Прочие языки программирования PL/I (ПЛ/1). В середине 60-х годов компания IBM решила Прочие языки программирования Smalltalk (Смолток). Работа над этим языком началась в 1970 Прочие языки программирования Ada (Ада). Назван по имени леди Огасты Ады Байрон, Прочие языки программирования Forth (Форт). Результат попытки Чарльза Мура в 70-х годах
Слайды презентации

Слайд 2 Этапы решения задачи
Работа по решению любой задачи с

Этапы решения задачиРабота по решению любой задачи с использованием компьютера делится

использованием компьютера делится на следующие этапы:
Постановка задачи
Формализация задачи
Построение алгоритма
Составление

программы на языке программирования
Отладка и тестирование программы
Проведение расчетов и анализ полученных результатов
Часто эту последовательность называют технологической цепочкой решения задачи на ЭВМ.
На этапе постановки задачи должно быть четко сформулировано, что дано и что требуется найти. Здесь очень важно определить полный набор исходных данных, необходимых для получения решения.

*


Слайд 3 Этапы решения задачи
Второй этап — формализация задачи. Здесь

Этапы решения задачиВторой этап — формализация задачи. Здесь чаще всего задача

чаще всего задача переводится на язык математических формул, уравнений,

отношений.
Третий этап — построение алгоритма.
Возникает впечатление, что опытные программисты часто «пропускают» данный этап, однако это не так, просто третий этап производится исключительно в их сознании.
Однако в учебных целях бывает полезно использовать дополнительные средства алгоритмизации (блок-схемы, псевдокоды), а затем переводить полученный алгоритм на язык программирования.
Четвертый этап – написание программы на выбранном алгоритмическом языке программирования.
На пятом и шестом этапах производится отладка и верификация работы программы и, в итоге, получение требуемых результатов.

*


Слайд 4 Понятие алгоритма
Слово «алгоритм» происходит от Algorithmi — латинского

Понятие алгоритмаСлово «алгоритм» происходит от Algorithmi — латинского написания имени Мухаммеда

написания имени Мухаммеда аль-Хорезми (787 — 850), математика средневекового

Востока, разработавшего десятичную позиционную систему счисления и правилах арифметики многозначных чисел. Именно эти правила в то время называли алгоритмами.
Сейчас понятие «алгоритм стало более общим»:
Алгоритм – это свод конечного числа правил, задающих последовательность выполнения операций при решении задачи.
Совокупность объектов с которыми работает алгоритм называется данными.

*


Слайд 5 Особенности алгоритма
Алгоритм имеет 5 отличительных особенностей:
 Конечность (финитивность) -

Особенности алгоритмаАлгоритм имеет 5 отличительных особенностей: Конечность (финитивность) - любой алгоритм должен

любой алгоритм должен приводить к цели за конечное число

шагов (e.g. исключаются бесконечные циклы);
 Определенность – каждый шаг алгоритма должен быть точно и недвусмысленно определен;
 Алгоритм имеет некоторое количество входных данных;
 Алгоритм обязательно имеет от 1 до нескольких выходных данных;
 Эффективность – все входящие в алгоритм операции можно выполнить точно и за конечный отрезок времени;

*


Слайд 6 Особенности алгоритма
Для решения практически важных задач требуются не

Особенности алгоритмаДля решения практически важных задач требуются не просто алгоритмы, а

просто алгоритмы, а хорошие алгоритмы =>
Критерии качества алгоритма:
время выполнения

– число вызовов каждого шага алгоритма;
переносимость – адаптируемость алгоритма к различным вычислительным системам;
простота и т.д.

*


Слайд 7 Виды данных
По отношению к программе, данные делятся на

Виды данныхПо отношению к программе, данные делятся на исходные, результаты (окончательные

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

процессе вычислений.
Так, например, при решении квадратного уравнения ax2+bx+c=0 исходными данными являются коэффициенты a, b и с, результатами - корни x1 и x2, а к промежуточным данным можно отнести дискриминант D=b2-4ac.

*


Слайд 8 Исполнение алгоритма
ЭВМ – это устройство для исполнения алгоритмов.
Точнее

Исполнение алгоритмаЭВМ – это устройство для исполнения алгоритмов.Точнее говоря, исполнителем является

говоря, исполнителем является комплекс ЭВМ + Система программирования (СП).

Программист составляет программу на том языке, на который ориентирована СП.
Иногда в литературе такой комплекс называют виртуальной ЭВМ. Например, компьютер с работающей системой программирования на Бэйсике называют Бэйсик-машиной; компьютер с работающей системой программирования на Паскале называют Паскаль-машиной и т. п.

*


Слайд 9 Способы представления алгоритмов
Словесный (вербальный) – является универсальным, но

Способы представления алгоритмовСловесный (вербальный) – является универсальным, но громоздок и неконкретенС

громоздок и неконкретен
С помощью блок-схем:




Запись алгоритма на псевдокоде (существенно

уменьшает объем записи). К числу недостатков метода следует отнести отсутствие стандартных команд псевдокода (в отличие от метода блок-схем, где действуют нормы ГОСТа).
Программирование алгоритмов при помощи алгоритмических языков (обладает достоинствами блок-схем и псевдокодов, по большей части лишен их недостатков)







*

Ввод/вывод


Слайд 10 Составные части алгоритма
Независимо от того, на каком языке

Составные части алгоритмаНезависимо от того, на каком языке программирования будет написана

программирования будет написана программа, алгоритм решения любой задачи на

ЭВМ может быть составлен из команд:
присваивания;
ввода;
вывода;
обращения к вспомогательному алгоритму;
цикла;
ветвления.
Далее рассмотрим основные алгоритмические конструкции, возникающие при создании компьютерных программ.

*


Слайд 11 Линейные алгоритмы
Линейный алгоритм - алгоритм, в котором команды

Линейные алгоритмыЛинейный алгоритм - алгоритм, в котором команды исполняются последовательно, одна

исполняются последовательно, одна за другой.
Линейные алгоритмы состоят из операций

ввода, вывода и присвоения.
Пример. Правила деления обыкновенных дробей описаны так:
Числитель первой дроби умножить на знаменатель второй дроби.
Знаменатель первой дроби умножить на числитель второй дроби.
Записать дробь, числитель которой есть результат выполне­ния пункта 1, а знаменатель — результат выполнения пункта 2.


*


Слайд 12 Линейные алгоритмы
Для описания алгоритмов чаще всего используют язык

Линейные алгоритмыДля описания алгоритмов чаще всего используют язык блок-схем.Эллипсами обозначают начало

блок-схем.
Эллипсами обозначают начало и конец программы.
Параллелограммы – операции ввода

и вывода данных.
Прямоугольники – операции присваивания.
Ромбы – ветвления алгоритма.
На рисунке показана блок-схема алгоритма деления дробей.
Вначале задаются входные параметры: a, b, c, и d.
Последовательно вычисляются числитель и знаменатель искомой дроби.
Выводятся числитель m и знаменатель n искомой дроби.

*


Слайд 13 Разветвляющиеся алгоритмы
Разветвляющийся алгоритм – алгоритм, в котором

Разветвляющиеся алгоритмы Разветвляющийся алгоритм – алгоритм, в котором после проверки условия

после проверки условия в разных ситуациях исполняются разные наборы

команд.
Пример, алгоритм решения квадратного уравнения
ax2+bx+c=0
Исходными данными являются коэффициенты a, b и с, решением - корни x1 и x2, вычисляемые по формуле:




Построим блок-схему данного алгоритма с учетом всех частных случаев:

*


Слайд 14 Разветвляющиеся алгоритмы
*

Разветвляющиеся алгоритмы*

Слайд 15 Циклические алгоритмы
Циклический алгоритм - алгоритм, в котором содержится

Циклические алгоритмыЦиклический алгоритм - алгоритм, в котором содержится команда повторения, т.е.

команда повторения, т.е. цикл.
Для окончания циклического вычисления необходима проверка

некоторого логического условия.
Логическое условие может находится перед или после тела цикла. Соответственно такие циклы носят названия цикла с предусловием и цикла с постусловием

*


Слайд 16 Циклические алгоритмы
В качестве примера рассмотрим алгоритм нахождения факториала

Циклические алгоритмыВ качестве примера рассмотрим алгоритм нахождения факториала натурального числа:Как правило

натурального числа:



Как правило в создаваемых программах присутствуют алгоритмические участки

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

*


Слайд 17 Алгоритм Евклида
Задача: даны два целых положительных числа m

Алгоритм Евклида Задача: даны два целых положительных числа m и n.

и n. Требуется найти их наибольший общий делитель, т.е.

наибольшее целое положительное число, которое нацело делит оба числа m и n.
E1. [Нахождение остатка] Разделим m на n, и пусть остаток от деления будет равен r (где 0<=rE2. [Сравнение с нулем] Если r=0, то выполнение алгоритма прекращается; n – искомое значение.
E3. [Замещение] Присвоить m:=n, n:=r и вернуться к шагу E1.

*


Слайд 18 Алгоритм Евклида
*
E0. [Гарантировать, что m >= n].

Алгоритм Евклида *E0. [Гарантировать, что m >= n]. Если m <

Если m < n, то выполнить взаимный обмен m

↔ n.

Слайд 19 Языки программирования
*

Языки программирования*

Слайд 20 Язык программирования
Языки программирования – искусственные языки, отличающиеся ограниченным

Язык программирования Языки программирования – искусственные языки, отличающиеся ограниченным числом «слов»,

числом «слов», значение которых понятно транслятору/ компилятору и строгими

правилами записи команд (операторов).
Совокупность подобных требований образует синтаксис языка, а смысл каждой конкретной команды и других конструкций языка – его семантику.
Цели языка программирования:
Язык программирования как инструмент проектирования.
Язык программирования как средство человеческого восприятия.
Язык программирования как средство управления компьютером.

*


Слайд 21 Алгоритмический язык
Алгоритмический язык программирования — это способ записи

Алгоритмический язык Алгоритмический язык программирования — это способ записи алгоритмов решения

алгоритмов решения различных задач на ЭВМ в понятной для

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

*


Слайд 22 Алгоритмический язык
В зависимости от того, какой из целей

Алгоритмический язык В зависимости от того, какой из целей данный язык

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

уровня и языки высокого уровня:
языки низкого уровня (императивные языки) – ориентированы на конкретный тип процессора, их операторы близки к машинному коду;
языки высокого уровня (декларативные языки) – языки, описывающие ключевые абстракции предметной области.

*


Слайд 23 Алгоритмический язык
Гради Буч:
«Возникла тенденция перехода от языков, указывающих

Алгоритмический язык Гради Буч:«Возникла тенденция перехода от языков, указывающих компилятору, что

компилятору, что делать (императивные языки) к языкам, описывающим ключевые

абстракции предметной области (декларативные языки)».

*


Слайд 24 Машинно-зависимые языки
Для программирования на самых первых компьютерах (ламповых)

Машинно-зависимые языкиДля программирования на самых первых компьютерах (ламповых) использовался язык машинных

использовался язык машинных команд (машинные коды).
Программирование в машинных кодах

было процессом очень длительным и трудоемким. Программист должен знать числовые коды всех машинных команд, должен сам распределять память под команды программы и данные.
Развитие компьютерной техники и усложнение программного обеспечения привело к необходимости создания первых языков программирования, в которых переменные величины стали изображаться символическими именами, а числовые коды операций заменились на словесные обозначения, которые легче запомнить.
Такие языки получили название языков низкого уровня (автокодов, ассемблеров), т.к. программирование на них сводилось, в конечном итоге, к более удобной записи машинных команд.
Данные языки разрабатывались под конкретный тип (архитектуру) ЭВМ, поэтому носят название машинно-зависимых.

*


Слайд 25 Машинно-зависимые языки
Языки ассемблерного типа стали понятнее для человека,

Машинно-зависимые языкиЯзыки ассемблерного типа стали понятнее для человека, но менее понятны

но менее понятны для компьютера.
Чтобы компьютер мог исполнять программы

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

*


Слайд 26 Языки высокого уровня
Языки программирования высокого уровня (алгоритмические языки)

Языки высокого уровняЯзыки программирования высокого уровня (алгоритмические языки) являются машинно-независимыми языками.

являются машинно-независимыми языками. Одна и та же программа на

таком языке может быть выполнена на ЭВМ разных типов, оснащенных соответствующим транслятором.
Форма записи программ на языке высокого уровня по сравнению с ассемблерами еще ближе к традиционной математической форме, к естественному языку.
При работе на языке высокого уровня программисту не надо задумываться об особенностях обработки информации на ЭВМ.
Язык высокого уровня представляет собой особым образом кодифицированную запись алгоритма. Такой язык для компьютера еще менее понятен, чем ассемблер.
За удаленность от машинных кодов приходится расплачиваться производительностью. Так ассемблеры на 10-15 %, а языки высокого уровня в 2-4 раза менее эффективны, чем машинные коды.

*


Слайд 27 Виды трансляторов
Реализовать тот или иной язык программирования на

Виды трансляторовРеализовать тот или иной язык программирования на ЭВМ — значит

ЭВМ — значит создать транслятор с этого языка для

данной ЭВМ.
Существуют два принципиально различных метода трансляции. Они называются соответственно интерпретация и компиляция.
Транслятор, работающий методом интерпретации, называется интерпретатором, по принципу компиляции - компилятором.
Интерпретатор в течение всего времени работы программы находится во внутренней памяти. Интерпретатор в последовательности выполнения алгоритма «читает» очередной оператор программы, переводит его в команды и тут же выполняет эти команды. Затем переходит к переводу и выполнению следующего оператора. При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одной и той же команды она снова будет транслироваться.

*


Слайд 28 Виды трансляторов
При компиляции в память ЭВМ загружается программа-компилятор.

Виды трансляторовПри компиляции в память ЭВМ загружается программа-компилятор. Она воспринимает текст

Она воспринимает текст программы как исходную информацию.
После завершения

компиляции получается программа на языке машинных команд. Затем в памяти остается только программа на языке машинных кодов, которая выполняется, и получаются требуемые результаты.
При интерпретации, поскольку трансляция и выполнение совмещены, программа на ЭВМ проходит в один этап.
При компиляции исполнение программы разбивается на два этапа: трансляцию и выполнение.
Откомпилированная программа выполняется быстрее, чем интерпретируемая. Поэтому использование компиляторов удобнее для больших программ, требующих быстрого счета. Программы на Паскале, Си, Фортране всегда компилируются. Бейсик, а также современные математические прикладные пакеты: Maple, Mathematica, MathCad чаще всего реализованы через интерпретатор.


*


Слайд 29 Поколения языков программирования
I поколение
/1954-1958 гг./ - языки

Поколения языков программирования I поколение/1954-1958 гг./ - языки ассемблера, простейшие языки

ассемблера, простейшие языки высокого уровня

принцип «одна строка – одна

инструкция»;
впервые появились простейшие операции (+,-, := и т.д.), математические формулы;
большинство из языков первого поколения «мертвы», но некоторые используются в специфических программных системах и для специфических задач (например, язык FORTRAN);

П: FORTRAN I, ALGOL – 58, Flowmatic, IPL V.

*


Слайд 30 Поколения языков программирования
II поколение
/1959-1961 гг./ - разработаны

Поколения языков программирования II поколение/1959-1961 гг./ - разработаны под конкретные задачиFORTRAN

под конкретные задачи

FORTRAN II – появляются подпрограммы, раздельная компиляция;
Algol

– 60 – типы данных, блочная структура, составной оператор;
COBOL – язык работы с данными (операции с файлами и т.д.);
LISP – возможность работы со списками, появление указателей.

*


Слайд 31 Поколения языков программирования
III поколение
/1962-1970 гг./ - «смешение

Поколения языков программирования III поколение/1962-1970 гг./ - «смешение языков» - появление

языков» - появление универсальных языков высокого уровня

независимость от конкретного

компьютера;
возможность использования мощных синтаксических конструкций;
понятная большинству пользователей структура;
применимость к задачам любой сложности и любой предметной области;
появление первой версии языка Pascal (на основе ALGOL-68), языка С;
появление языка Simula – прародителя всех современных объектно-ориентированных языков (появляется понятие классов и объектов, абстрактных данных).

*


Слайд 32 Поколения языков программирования
IV поколение
/1970-80-е гг./ - «потерянное

Поколения языков программирования IV поколение/1970-80-е гг./ - «потерянное поколение» - появляется

поколение» - появляется огромное количество языков-потомков Simula, большинство из

которых «мертвы»

встраиваются мощные операторы, для реализации которых на языках младших поколений потребовались бы тысячи строк исходного кода;
Object Pascal, C++ - результат «смешения» соответствующих языков и Simula, в результате чего в эти языки вошло понятие объектного программирования.

*


Слайд 33 Поколения языков программирования
V поколение
/1990-е гг./ - системы

Поколения языков программирования V поколение/1990-е гг./ - системы автоматического создания прикладных

автоматического создания прикладных программ

автоматическое формирование результирующего текста на универсальных

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

*


Слайд 34 Топология языков программирования /основные элементы программирования и их взаимодействие/
I

Топология языков программирования /основные элементы программирования и их взаимодействие/I – начало

– начало II поколения






наличие одной общей (глобальной) области данных,

к которой обращаются подпрограммы;
отсутствие контроля за типами данных (ошибка типов возникает лишь в момент выполнения).

*


Слайд 35 Топология языков программирования /основные элементы программирования и их взаимодействие/
II

Топология языков программирования /основные элементы программирования и их взаимодействие/II – начало

– начало III поколения








вложенность подпрограмм;
появляется механизм передачи аргументов.
*


Слайд 36 Топология языков программирования /основные элементы программирования и их взаимодействие/
III

Топология языков программирования /основные элементы программирования и их взаимодействие/III поколениепоявляются модули

поколение





появляются модули (некоторая группа подпрограмм);
появление локальных данных модуля (недоступны

другим модулям);
обращение подпрограмм как к данным модуля, так и к области глобальных данных.

*


Слайд 37 Топология языков программирования /основные элементы программирования и их взаимодействие/
IV

Топология языков программирования /основные элементы программирования и их взаимодействие/IV поколение /Объектно-ориентированные

поколение /Объектно-ориентированные языки/







появление модулей, состоящих из логически связанных классов

и объектов, полей и методов;
отсутствие глобальной области данных.

*


Слайд 38 Структура алгоритмического языка
Во всяком языке программирования определены способы

Структура алгоритмического языкаВо всяком языке программирования определены способы организации данных и

организации данных и способы организации действий над данными.
Кроме

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

*


Слайд 39 Структура алгоритмического языка
*

Структура алгоритмического языка*

Слайд 40 Фортран
Первыми популярными алгоритмическими языками программирования были появившиеся в

ФортранПервыми популярными алгоритмическими языками программирования были появившиеся в 1950-х гг. Фортран,

1950-х гг. Фортран, Кобол и Алгол.
Фортран (Fortran) —

первый алгоритмический язык программирования, созданный ещё в 1954 году фирмой IBM. Его название является аббревиатурой от FORmula TRANslator, т.е. транслятор формул.
Фортран широко использовался в основном для научных и инженерных вычислений. Он используется и по сей день в силу большого количества написанных на нём программ, изменять и, тем более, переписывать которые нет смысла.
Большое количество языков программирования появилось в 1960 - 1970-х гг. За всю историю ЭВМ их было создано более тысячи. Но распространились и выдержали испытание временем немногие.

*


Слайд 41 Бейсик
В 1965 г. в Дартмутском университете был разработан

БейсикВ 1965 г. в Дартмутском университете был разработан язык Бейсик (Basic).

язык Бейсик (Basic).
По замыслу авторов это простой язык,

легко изучаемый, предназначенный для программирования несложных расчетных задач.
Ближе всего Бейсик к Фортрану, поэтому он и многие похожие языки иногда называют «фортраноподобными».
Наибольшее распространение Бейсик получил на микроЭВМ и персональных компьютерах.
В 80-х годах этим языком заинтересовалась фирма Microsoft, выпустившая очень популярный транслятор QBasic (Quick Basic), а затем и революционную для своего времени визуальную среду Visual Basic, у которой до сих пор немало поклонников среди непрофессиональных программистов.

*


Слайд 42 Паскаль
В 1971 г. швейцарский математик Н.Вирт создал язык

ПаскальВ 1971 г. швейцарский математик Н.Вирт создал язык Паскаль (Pascal), как

Паскаль (Pascal), как учебный язык структурного программирования.
Наибольший успех в

распространении этого языка обеспечили персональные компьютеры. Фирма Borland International, Inc разработала один из самых популярных трансляторов этого языка - Турбо Паскаль (Turbo Pascal).
Турбо Паскаль и его более поздняя версия Object Pascal, ставшая основой визуальной среды программирования Delphi стали очень популярным языком для профессионального программирования прикладных задач, таких как научные расчеты и оболочки управления базами данных.
Параллельно в последние годы активно развивается свободный кроссплатформенный транслятор Free Pascal.

*


Слайд 43 Си и Си++
Язык программирования Си (С) создавался как

Си и Си++Язык программирования Си (С) создавался как инструментальный язык для

инструментальный язык для разработки операционных систем, трансляторов, баз данных

и других системных и прикладных программ.
Так же как и Паскаль, Си - это язык структурного программирования, но, в отличие от Паскаля, в нем заложены возможности непосредственного обращения к некоторым машинным командам, к определенным участкам памяти компьютера.
Язык Си до сих пор является основополагающим языком unix-подобных операционных систем.
На основе языка С был создан язык Си++ (С++) ставший основным языком профессионального системного программирования.
Важным преимуществом С и С++ является их стандартизированность.

*


Слайд 44 ЛИСП и Пролог
ЭВМ будущего, пятого поколения называют машинами

ЛИСП и ПрологЭВМ будущего, пятого поколения называют машинами «искусственного интеллекта». Но

«искусственного интеллекта». Но прототипы языков для этих машин были

созданы существенно раньше их физического появления. Это языки ЛИСП и Пролог.
ЛИСП появился в 1965 г. Язык ЛИСП основан на понятии рекурсивно определенных функций. С его помощью на ЭВМ можно моделировать достаточно сложные процессы, в частности интеллектуальную деятельность людей. В настоящее время активно применяется в математических пакетах символьных вычислений.
Язык Пролог разработан во Франции в 1972 г. также для решения проблемы «искусственного интеллекта». Пролог позволяет в формальном виде описывать различные утверждения, логику рассуждений и заставляет ЭВМ давать ответы на заданные вопросы.
Интерес к этому языку то возрастает, то затихает, однако на его основе и сейчас создаются новые разработки.

*


Слайд 45 Обзор языков программирования высокого уровня
COBOL (Кобол). Это компилируемый

Обзор языков программирования высокого уровня COBOL (Кобол). Это компилируемый язык для

язык для применения в экономической области и решения бизнес-задач,

разработанный в начале 60-х годов. Он отличается большой «многословностью» — его операторы иногда выглядят как обычные английские фразы. В Коболе были реализованы очень мощные средства работы с большими объемами данных, хранящимися на различных внешних носителях. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в США получают программисты на Коболе.

*


Слайд 46 Обзор языков программирования высокого уровня
Algol (Алгол). Компилируемый язык,

Обзор языков программирования высокого уровня Algol (Алгол). Компилируемый язык, созданный в

созданный в 1960 году. Он был призван заменить Фортран,

но из-за более сложной структуры не получил широкого распространения. В 1968 году была создана версия Алгол 68, по своим возможностям и сегодня опережающая многие языки программирования, однако из-за отсутствия достаточно эффективных компьютеров для нее не удалось своевременно создать хорошие компиляторы.

*


Слайд 47 Обзор языков программирования высокого уровня
Java (Джава, Ява). Этот

Обзор языков программирования высокого уровня Java (Джава, Ява). Этот язык был

язык был создан компанией Sun в начале 90-х годов

на основе Си++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей. Но главная особенность этого языка — компиляция не в машинный код, а в платформно-независимый байт-код (каждая команда занимает один байт). Этот байт-код может выполняться с помощью интерпретатора — виртуальной Java-машины JVM(Java Virtual Machine), версии которой созданы сегодня для любых платформ. Благодаря наличию множества Java-машин программы на Java можно переносить не только на уровне исходных текстов, но и на уровне двоичного байт-кода, поэтому по популярности язык Java сегодня занимает второе место в мире после Бейсика.
Особое внимание в развитии этого языка уделяется двум направлениям: поддержке всевозможных мобильных устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini) и созданию платформно-независимых программных модулей, способных работать на серверах в глобальных и локальных сетях с различными операционными системами (технология Java Beans). Пока основной недостаток этого языка — невысокое быстродействие, так как язык Java интерпретируемый.

*


Слайд 48 Обзор языков программирования высокого уровня
С# (Си Шарп). В

Обзор языков программирования высокого уровня С# (Си Шарп). В конце 90-х

конце 90-х годов в компании Microsoft под руководством Андерса

Хейльсберга был разработан язык С#. В нем воплотились лучшие идеи Си и Си++, а также достоинства Java. Правда, С#, как и другие технологии Microsoft, ориентирован на платформу Windows. Однако формально он не отличается от прочих универсальных языков, а корпорация даже планирует его стандартизацию. Язык С# предназначен для быстрой разработки .NET-приложений, и его реализация в системе Microsoft Visual Studio .NET содержит множество особенностей, привязывающих С# к внутренней архитектуре Windows и платформы .NET.

*


Слайд 49 Языки программирования для Интернета
С активным развитием глобальной сети

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

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

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

HTML. Общеизвестный язык для оформления документов. Он очень прост и содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц. Все Wei-страницы написаны на языке HTML или используют его расширения.

*


Слайд 50 Языки программирования для Интернета
VRML. В 1994 году был

Языки программирования для Интернета VRML. В 1994 году был создан язык

создан язык VRML для организации виртуальных трехмерных интерфейсов в

Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры (покрытия объектов), создавать свои миры, путешествовать по ним, «облетать» со всех сторон, вращать в любых направлениях, масштабировать, регулировать освещенность и т.д.

*


Слайд 51 Языки программирования для Интернета
XML. В августе 1996 года

Языки программирования для Интернета XML. В августе 1996 года WWW-консорциум, ответственный

WWW-консорциум, ответственный за стандарты на Интернет-технологии, приступил к подготовке

универсального языка разметки структуры документов, базировавшегося на достаточно давно созданной в IBM технологии SGML. Новый язык получил название XML. Сегодня он служит основой множества системных, сетевых и прикладных приложений, позволяя представлять в прозрачном для пользователей и программ текстовом виде различные аспекты внутренней структуры иерархически организованных документов. В недалеком будущем он может стать заменой HTML.

*


Слайд 52 Прочие языки программирования
PL/I (ПЛ/1). В середине 60-х годов

Прочие языки программирования PL/I (ПЛ/1). В середине 60-х годов компания IBM

компания IBM решила взять все лучшее из языков Фортран,

Кобол и Алгол. В результате в 1964 году на свет появился новый компилируемый язык программирования, который получил название Programming Language One. В этом языке было реализовано множество уникальных решений, полезность которых удается оценить только спустя 33 года, в эпоху крупных программных систем. По своим возможностям ПЛ/1 значительно мощнее многих других языков (Си, Паскаля). Например, в ПЛ/1 присутствует уникальная возможность указания точности вычислений — ее нет даже у Си++ и Явы. Этот язык и сегодня продолжает поддерживаться компанией IBM.

*


Слайд 53 Прочие языки программирования
Smalltalk (Смолток). Работа над этим языком

Прочие языки программирования Smalltalk (Смолток). Работа над этим языком началась в

началась в 1970 году в исследовательской лаборатории корпорации XEROX,

а закончились спустя 10 лет, воплотившись в окончательном варианте интерпретатора SMALLTALK-80. Данный язык оригинален тем, что его синтаксис очень компактен и базируется исключительно на понятии объекта. В этом языке отсутствуют операторы или данные. Все, что входит в Смолток, является объектами, а сами объекты общаются друг с другом исключительно с помощью сообщений (например, появление выражения 1+1 вызывает посылку объекту I сообщения «+», то есть «прибавить», с параметром 1, который считается не числом-константой, а тоже объектом). Больше никаких управляющих структур, за исключением «оператора» ветвления (на самом деле функции, принадлежащей стандартному объекту), в языке нет, хотя их можно очень просто смоделировать. Сегодня версия Visual Age for Smalltalk активно развивается компанией IBM.

*


Слайд 54 Прочие языки программирования
Ada (Ада). Назван по имени леди

Прочие языки программирования Ada (Ада). Назван по имени леди Огасты Ады

Огасты Ады Байрон, дочери английского поэта Байрона и его

отдаленной родственницы Анабеллы Милбэнк. В 1980 году сотни экспертов Министерства обороны США отобрали из 17 вариантов именно этот язык, разработанный небольшой группой под руководством Жана Ишбиа. Он удовлетворил на то время все требования Пентагона, а к сегодняшнему дню в его развитие вложены десятки миллиардов долларов. Структура самого языка похожа на Паскаль. В нем имеются средства строгого разграничения доступа к различным уровням спецификаций, доведена до предела мощность управляющих конструкций.

*


  • Имя файла: algoritmy-etapy-resheniya-zadach.pptx
  • Количество просмотров: 138
  • Количество скачиваний: 0