Similar presentations:
Раздел_5_Лекция_8_Сети,_системы_программирования
1.
Сети ЭВМЕлена Андреевна Салтанаева
2. Сети ЭВМ
Компьютерная сеть – это совокупностькомпьютеров
и
различных
устройств,
соединенных с помощью каналов связи в
единую систему, которая обеспечивает
разделение ресурсов и обмен информацией
между компьютерами.
Для создания компьютерных сетей необходимо:
- специальное
оборудование)
аппаратное
обеспечение
(сетевое
- специальное программное
программные средства).
обеспечение
(сетевые
3.
Функциональные элементы компьютерных сетейСервер
(server)
Это
специально
выделенный
высокопроизводительный компьютер, управляющий работой сети
и/или предоставляющий другим компьютерам сети свои ресурсы
(программное обеспечение, сервисы, файлы, устройства) и
отвечающий на запросы клиентов.
Рабочая станция (клиентский компьютер, клиент) Это компьютер
рядового пользователя сети, получающий доступ к ресурсам
сервера (серверов). Каждая рабочая станция обрабатывает свои
локальные файлы и использует свою операционную систему.
Терминал Устройство не предназначено для работы в автономном
режиме (не имеет процессора для обработки команд), но выполняет
операции по вводу команд пользователя, их передаче другому
компьютеру и выдаче готового результата.
Коммуникационное
оборудование
Технические
компьютерных сетей в себя различные функциональные
группы оборудования.
средства
4.
Технические средства компьютерных сетей• средства линий передачи данных (кабель "витая пара",
оптоволоконный и пр.) - реализуют собственно перенос сигнала;
• средства соединения линий передачи с сетевым оборудованием
узлов (сетевые платы) - реализуют ввод-вывод данных с
оконечного оборудования в сеть;
• средства увеличения дистанции передачи данных – репитеры (или
повторители, repeater), модемы и пр. - осуществляют усиление
сигналов или преобразования в форму, удобную для дальнейшей
передачи;
• средства
повышения
емкости
линий
передачи
(мультиплексирования) - позволяют реализовывать несколько
логических каналов в рамках одного физического соединения
путем разделения частот передачи, чередования пакетов во
времени и т.д.;
• средства управления информационными потоками в сети
(коммутации каналов, коммутации пакетов, разветвления линий
передачи) - осуществляют адресацию сообщений. Например,
концентраторы (hub), коммутаторы (switch), мосты (bridge),
маршрутизаторы6 (router), шлюзы (gateway).
5.
Концентратор (англ. Hub) - разветвительное устройство, служащеецентральным звеном в локальных сетях, имеющих топологию "звезда".
Концентратор имеет несколько портов для подключения отдельных
компьютеров и для соединения с другими хабами.
Коммутатор (англ. Switch) - в переводе с англ. означает
переключатель. Это многопортовое устройство, обеспечивающее
высокоскоростную коммутацию пакетов между портами. Встроенное в
него программное обеспечение способно самостоятельно анализировать
содержимое пересылаемых по сети блоков данных и обеспечивать
прямую передачу информации между любыми двумя портами,
независимо от всех остальных портов устройства.
Мост (англ.bridge) - устройство, соединяющее одинаковые сети,
имеющие некоторые физические различия (на физическом и канальном
уровнях).
Маршрутизатор (англ. router) - устройство, соединяющее сети одного
или разных типов по одному протоколу обмена данными.
Маршрутизатор анализирует адрес назначения и направляет данные по
оптимально выбранному маршруту.
6. Среда для передачи данных – проводные технологии - Кабели
Кабель, соединяющий два компонента сети (например, два компьютера),называется сегментом.
Коаксиальный кабель –
скорость передачи до 10 Мбит/с.
Витая пара - скорость
передачи до 100 Мбит/с.
Оптоволоконный кабель –
скорость передачи до 10 Гбит/с.
7.
Среда для передачи данных –беспроводные технологии
Wi-Fi (Wireless Fidelity) — технология обеспечивающая подключение
мобильных пользователей к Интернету.
WiMAX (Worldwide Interoperability for Microwave Access). Технология 2003
года разработана с целью предоставления универсальной беспроводной
связи на больших расстояниях для широкого спектра устройств (от рабочих
станций и портативных компьютеров до мобильных телефонов). Максимальное
расстояние между устройствами может достигать 50 км. К тому же между
источником и приемником может отсутствовать прямая видимость. Мощность
сигнала и большая устойчивость к отражениям позволяют WiMAX работать
даже там, где Wi-Fi бессилен.
Bluetooth производственная спецификация беспроводных персональных
сетей (Wireless personal area network, WPAN). Создан в Швеции, 1994 г.
Bluetooth обеспечивает обмен информацией между такими устройствами, как
персональные компьютеры (настольные, карманные, ноутбуки), мобильные
телефоны, принтеры, цифровые фотоаппараты, мышки, клавиатуры,
джойстики, наушники, гарнитуры на надёжной, бесплатной, повсеместно
доступной радиочастоте для ближней связи. Bluetooth позволяет этим
устройствам сообщаться, когда они находятся в радиусе до 10 м друг от друга
(дальность сильно зависит от преград и помех), даже в разных помещениях.
8.
Подключение компьютеров к передающей средеосуществляется с помощью интерфейсных плат – сетевых
адаптеров (сетевая карта).
Сетевой адаптер
(Network Interface Card, NIC) –
устройство, выполняющее
функции сопряжения ЭВМ с
каналами связи; реализует
ввод-вывод данных с
оконечного оборудования в сеть.
Для передачи цифровой информации по каналу связи
необходимо преобразовать ее в аналоговые сигналы
(модуляция данных), а при приеме информации из канала связи
выполнить обратное действие – преобразовать ее в поток битов
(демодуляция данных). Для этого используется модем.
9. Типы локальных сетей
Компьютер,подключенный
к
вычислительной сети, называется рабочей
станцией или сервером.
Различают сети:
- с одним или несколькими выделенными
серверами
сети
без
выделенных
серверов,
называемые одноранговыми сетями.
10. ЛВС с выделенным сервером
При выборе компьютера на роль файлового серверанеобходимо учитывать следующие факторы:
■ быстродействие процессора;
■ скорость доступа к файлам, размещенным на жестком диске;
■ емкость жесткого диска;
■ объем оперативной памяти;
■ уровень надежности сервера;
■ степень защищенности данных.
11.
Виды серверов:Файловые серверы (file server) – компьютеры с большой емкостью
памяти, предназначенные для хранения данных пользователей сети и
обеспечения доступа к ним;
Серверы баз данных (database server) – компьютеры со специальным
программным обеспечением (СУБД), предназначенные для хранения и
обработки огромных массивов данных;
Сервер прикладных программ (application server) - обеспечивает
выполнение прикладных программ для пользователей, работающих на
своих рабочих станциях;
Сервер резервного копирования данных (backup server) - обеспечивает
создание, хранение и восстановление копий данных, расположенных на
файловых серверах и рабочих станциях;
Серверы печати (print server) – компьютеры со специальным
программным обеспечением, предназначенные для организации
процесса печати).
P.S. все перечисленные типы серверов могут функционировать на
одном выделенном для этих целей компьютере
12.
ПО сетей с выделенным серверомВ сетях с выделенным сервером реализуется
клиент-серверная технология.
На сервере устанавливается серверное ПО:
• серверная операционная система;
• WEB-сервер (организация Интранет-локальная
корпоративная сеть);
• прокси-сервер (обеспечение работы с Интернет
рабочих станций);
• файл-сервер (обеспечение совместного доступа
к файлам) и т.п.
13.
ПО сетей с выделенным серверомНа рабочей станции устанавливается
клиентское ПО:
• операционная система для рабочих станций;
• клиентская часть прикладного ПО и т.п.
14. Одноранговые ЛВС
В одноранговых сетях любой компьютерможет быть и файловым сервером, и
рабочей станцией одновременно.
15. Топология сети
Топология сети:- Шинная.
- Звезда.
- Кольцо.
16. Шинная структура
В случае реализации шиннойкомпьютеры связываются в цепочку.
структуры
Для ее создания надо проложить кабель от одного компьютера к другому, а
затем установить на обоих концах оконечные нагрузки (терминаторы).
все
17.
Достоинства топологии «шина»:Простая и дешевая технология;
Сеть легко можно развивать, добавляя новые разветвления;
Функционирование сети не зависит от состояния отдельной рабочей
станции, поэтому рабочие станции в любое время, без прерывания работы
всей сети, могут быть отключены или подключены к ней.
Недостатки:
При разрыве центрального кабеля вся сеть теряет свою
работоспособность;
Ограничение на число компьютеров, подключаемых к сети, так как при
продвижении по кабелю сигнал ослабляется (для предотвращения этого
используется специальное сетевое оборудование, усиливающее сигнал на
определенных участках шины)
В каждый момент времени передачу может вести только один из
компьютеров. Если передачу одновременно начинают два или больше
компьютеров, то возникают коллизии, ведущие к тому, что данные
приходится передавать вновь. Производительность такой сети при
большом объеме передаваемой информации и числе компьютеров
снижается.
18. Звездообразная архитектура
При звездообразной архитектурев центре сети
необходимо поместить концентратор (hub).
Пакеты данных передаются от каждого узла концентратору, который в
свою очередь пересылает пакеты адресату.
19.
Достоинства топологии «звезда»:наиболее быстродействующая из всех топологий, поскольку передача
данных между рабочими станциями происходит через центральный узел
по отдельным линиям, используемым только этими рабочими станциями;
нарушение соединения между любым компьютером и концентратором
не влияет на остальные узлы сети, так как каждый из них имеет
собственное соединение с концентратором;
функционирование сети не зависит от состояния отдельной рабочей
станции, поэтому РС в любое время, без прерывания работы всей сети,
могут быть отключены или подключены к ней.
Недостатки:
высокие затраты на прокладку кабелей (расходуется больше кабеля,
чем при шинной топологии), особенно когда концентратор
географически расположен не в центре. Концентратор также
представляет собой дополнительную статью расходов;
в случае выхода из строя концентратора нарушается работа всей сети
20. Кольцевая структура
Кольцевая структура используется в сетях Token Ring имало чем отличается от шинной.
Информация по кольцу передается от узла к узлу в одном направлении.
21.
Достоинства топологии «кольцо»:легко локализуются неисправности в кабельных соединениях;
можно присоединить к сети большое количество узлов, чем при использовании
других топологий, так как при просмотре данных каждым узлом происходит
усиление сигнала, а затем отправка следующему компьютеру. В этом случае
потери сигнала меньше, чем при других топологиях;
не существует ограничений на протяженность сети, поэтому кольцо
используется для создания сетей, охватывающих большое географическое
пространство;
из-за отсутствия коллизий сети обладает устойчивостью к перегрузкам.
Недостатки:
прокладка кабелей может быть довольно сложной и дорогостоящей, особенно
если географическое расположение рабочих станций далеко от формы кольца
(например, в линию);
последовательная дисциплина обслуживания узлов сети снижает ее
быстродействие;
выход из строя одного из узлов или разрыв кабеля нарушает целостность
кольца и требует специальных мер для сохранения тракта передачи данных (для
предотвращения этого иногда используется резервный кабель);
подключение новой РС требует выключения сети, так как во время установки
кольцо должно быть разомкнуто.
22. Интернет
Деньрождения
Интернета
Дата
стандартизации протокола связи TCP/IP (1983
год).
TCP/IP – это два протокола, лежащих на разных
уровнях:
■ Протокол TCP – Transmission Control Protocol –
протокол управления передачей данных протокол транспортного уровня.
■ Протокол IP – – Internet Protocol - адресный. Он
принадлежит сетевому уровню и определяет, куда
происходит передача.
23.
Протокол – это набор правил, определяющий характервзаимодействия пользователей и последовательность
выполняемых действий при обмене информацией.
Сетевые протоколы управляют потоком информации
(пакетами
данных)
между
двумя
клиентами
(программами), работающими на одном или разных
компьютерах.
24. Стек протоколов TCP/IP
25.
Пять уровней протоколов:■ Прикладной (верхний уровень) - обеспечивает работу приложений
пользователя.
■ Транспортный - отвечает за надежность передачи данных между
приложениями. Преобразует сообщения в поток пакетов на
передающей стороне и собирает пакеты обратно в сообщения на
принимающей стороне
■ Сетевой - это уровень межсетевого взаимодействия, отвечает за
маршрутизацию сообщений при прохождении по сети. Обеспечивает
передачу пакетов данных из одной подсети в другую. В качестве
протокола используется адресный протокол IP..
■ Канальный - организует передачу данных в имеющейся физической
среде.
■ Физический (нижний уровень) - соответствует уровню доступа к
сети, отвечает за физический интерфейс между устройством и
средой передачи данных. На нем идет работа с характеристиками
передающей среды, природой сигналов, скоростью передачи данных
и т.п.
26.
Система адресации сети ИнтернетДля каждого компьютера устанавливаются два адреса,
которые могут применяться равноценно:
IP-адрес – уникальный цифровой адрес компьютера,
подключенного к сети;
Доменный адрес – символьное имя, используется для
удобства обращения к ресурсам сети.
27.
IP-адрес32-разрядный IP-адрес кодирует номер сети и номер хоста в
сети, т.е. содержит полную информацию, необходимую для
идентификации компьютера.
Привычна точечно-десятичная форма записи, при которой IPадрес для удобства разделяется на четыре блока по 8 бит (1 байт),
каждый из которых записывается в десятичном виде (числом от 0
до 255) и отделяется от других точкой.
Эквивалентные представления одного и того же IP-адреса:
Точечно-десятичная запись 172.20.3.240
Десятичное число
2 886 992 880
Двоичное число
10101100 00010100 00000011
11110000
Шестнадцатиричное число
AC 14 03 F0
28.
DNS-имяКак
и
IP-адрес,
DNS-имя
также
должно
однозначно
идентифицировать компьютер в сети. Система DNS рассматривается
как механизм, используемый для получения по имени компьютера
его IP-адреса.
Для обработки доменных имен используются специальные DNSсерверы, которые осуществляют перевод доменных имен в
связанные с ними IP-адреса.
29.
В доменной системе имен имя делится на несколько уровней, которыеназываются доменами.
Самый левый домен – это имя компьютера, имеющего IP-адрес, затем
имя сети, в которой он находится (домен более высокого уровня).
Самый правый домен – домен верхнего уровня, который включает в
себя домен второго уровня и т.д.
Так в адресе pmik.karelia.ru:
pmik
- имя компьютера (сервер кафедры прикладной математики и
кибернетики);
karelia.ru - имя сети
30. Глобальные сети
Для работы в Интернете необходимо:■ физически подключить компьютер к одному из
узлов Всемирной сети;
■ получить IP-адрес на постоянной или временной
основе;
■ установить
и
обеспечение.
настроить
программное
31. Интернет
Сервисы Интернета:■ Сервис доменных имен - Сервис DNS
■ Электронная почта (E-Mail)
■ Текстовые сообщения в реальном времени (chat) – Сервис
IRC
■ Служба телеконференций (Usenet)
■ Система файловых архивов - Специальный прикладной
протокол (FTP)
■ Гипертекстовая система - WWW. World Wide Web («Всемирная
паутина»)
32.
Широко используемые браузеры33. Адреса Интернет
Адрес URL состоит из трех частей:■
Имя службы, обеспечивающей доступ к ресурсам Интернет.
Например, для WWW прикладным протоколом является протокол HTTP (Hyper Text
Transfer Protocol):
http://…
■
доменное имя компьютера (сервера), на котором хранится данный ресурс:
http://www.ksu.ru
имя службы Интернет
суффикс принадлежности сервера
(домен 3-го уровня)
имя доменного сервера(домен второго уровня)
■
полный путь доступа к файлу на данном компьютере.
Таким образом, адрес файла в сети интернет будет записан в виде:
http://www.ksu.ru/ files/physfac/astro.htm
имена каталогов
имя файла web-страницы
34.
Системыпрограммирования
Елена Андреевна Салтанаева
35. Классификация ПО
Программное обеспечение принято классифицировать поназначению на три группы:
– системное
– прикладное (ППО)
– инструментальное (системы программирования)
36. Технологии программирования
Язык программированияопределенного
формируется
на
основе
алфавита (буквы, цифры, математические символы, а
также операторы)
и строгих правил построения предложений (синтаксиса).
Технология программирования – это система методов,
способов и приемов обработки и выдачи информации.
37. Системы программирования
Уровни языков программирования:■ Язык
программирования,
ориентированный
на
конкретный тип процессора - язык программирования
низкого уровня.
■ Языки программирования высокого уровня - значительно
понятнее человеку.
38. Поколения языков программирования
■Первое поколение языков программирования датируется
началом 1950-х гг. Это низкоуровневые языки – язык машинных
команд и язык ассемблера.
■
Второе поколение – конец 1950-х–начало 1960-х гг. Разработан
символьный ассемблер, в котором появилось понятие
переменной.
■
Третье поколение – 1960-е гг. по настоящее время.
Универсальные языки программирования высокого уровня.
■
Четвертое поколение – с начала 1970-х г.г. до сегодняшнего
времени. Это проблемно-ориентированные языки, оперирующие
конкретными понятиями узкой области.
39. Языки программирования низкого уровня
Язык ассемблера – система обозначений, используемаядля представления программ, записанных в машинном
коде, в удобочитаемой форме.
Как и машинные коды, ассемблер чаще используется
инженерами и системными программистами. На нём
пишут аппаратно-зависимые части ядра операционных
систем, критические по времени или особенностям
реализации
драйвера
различных
периферийных
устройств. Но в последнее время к нему прибегают всё
реже и реже, так как его применение сильно сужает
переносимость программ на другие платформы.
40. Языки программирования высокого уровня
Языки программированиявысокого уровня
Высокоуровневый язык программирования –
язык программирования, разработанный с
расчетом на быстроту и удобство использования
программистом (универсальные алгоритмические
языки третьего поколения).
41.
Парадигма программированияЭто совокупность идей и понятий, определяющих стиль
написания
компьютерных
программированию).
определяющий
Это
программ
способ
организацию
(подход
к
концептуализации,
вычислений
и
структурирование работы, выполняемой компьютером.
Практически все современные языки программирования
в той или иной мере допускают использование
различных парадигм.
42.
Парадигмы программирования43. Императивное программирование
Императивное программирование — программированиеот
"глаголов«.
Программы
представляют
собой
последовательность действий с уловными и безусловными
переходами. Программист мыслит в терминах действий и
выстраивает последовательности действий в более
сложные
макро-действия
(процедуры)
(термин
«императив» означает «приказной порядок»).
Ассемблер, Fortran, Algol, COBOL, Pascal, C, Ada, Smalltalk, C++, Perl,
Python, Java, PHP, Ruby, C#
44. Императивное программирование
Procedure Вскипятить_чайникbegin
Зажечь плиту;
Взять чайник;
Налить в чайник воды;
Поставить на плиту;
Подождать 5 минут;
end
begin
if Чайник не пуст then
Вылить из чайника воду;
Вскипятить_чайник;
end.
45. Декларативное программирование
■ В рамках данного стиля программа представляет собой совокупностьутверждений, описывающих фрагмент предметной области или
сложившуюся ситуацию. Таким образом, описывается результат, а не
методы его достижения.
■ Программист должен описать, что нужно решать. В основе
декларативных языков лежит формализованная человеческая логика.
Человек описывает решаемую задачу, а поиском решения занимается
система программирования.
■ Декларативный подход заключается в том, чтобы описывать
вычисление, используя уравнения, функции, логические выводы и
т. п. Особое внимание в декларативном программировании уделяется
тому, что нужно сделать, а не тому как это нужно сделать.
В качестве примеров декларативных языков обычно приводят HTML и SQL.
46. Декларативное программирование
Области человеческой деятельности:• создание систем искусственного интеллекта;
• автоматическое доказательство теорем;
• разработка экспертных систем и оболочек экспертных систем;
• создание систем поддержки принятия решений;
• разработка систем обработки естественного языка;
• построение планов действий роботов.
Применение декларативного стиля в этих областях позволяет достичь
значительно большей скорости разработки приложений, уменьшить
размер исходного кода, создать более понятные, но сравнению с
императивными языками, программы. Этот подход существенно проще и
прозрачнее формализуется математическими средствами, поэтому
программы легче тестировать и верифицировать.
47.
Парадигмы программирования48. Императивная парадигма Структурное программирование
Структурное программирование – в основе лежит представлениепрограммы в виде иерархической структуры блоков.
Основные положения следующие.
1. Три типа базовых конструкций:
■
линейная цепочка операторов.
■
ветвление, или условный оператор.
■
цикл.
2. Повторяющиеся фрагменты программы (либо не
повторяющиеся, но представляющие собой логически
целостные вычислительные блоки) могут оформляться в виде т.
н. подпрограмм (процедур или функций).
3. Разработка программы ведётся пошагово, методом «сверху
вниз», или «нисходящего проектирования».
49.
Императивная парадигмаНеструктурное программирование
Характерно для наиболее ранних языков программирования.
В основном характеризуется:
•строки как правило нумеруются
•из любого места программы возможен переход к любой строке
Характерной особенностью неструктурного
является сложность реализации рекурсии.
программирования
50.
Парадигмы программирования51. Декларативная парадигма Логическое программирование
Логическоепрограммирование
–
парадигма
программирования, основанная на математической логике —
программы в ней задаются в форме логических утверждений и
правил вывода (автоматическое доказательство теорем).
При логическом программировании реализуется вывод
результата из данных и заданных правил перебора вариантов.
Наиболее известный язык логического программирования — Пролог.
52.
Декларативная парадигмаЛогическое программирование
Логическая программа состоит из предикатов, представляющими собой
функции, вырабатывающие логические значения — любой предикат
содержит вычисления, которые могут быть либо истинными, либо
ложными. При этом результаты вычисления предикат возвращает только
если вычисления истинны.
Предикаты состоят из правил (предложений), описывающих вычисления
и соединённых между собой логическими операторами И/ИЛИ, при этом
логическому И соответствует оператор запятая, а ИЛИ — оператор точка.
53. Декларативная парадигма Логическое программирование
Пример задачи:Как то раз случай свёл в купе астронома, поэта , прозаика и драматурга.
Это были Анисимов, Борисов, Константинов и Дмитриев. Оказалось, что
каждый из них взял с собой книгу написанную одним из пассажиров
этого купе. Анисимов и Борисов углубились в чтение предварительно
обменявшись книгами. Поэт читал пьесу, прозаик — очень молодой
человек, выпустивший свою книгу, говорил что он никогда и ничего не
читал по астрономии. Борисов купил одно из произведений Дмитриева.
Никто из пассажиров не читал свои книги. Что читал каждый из них, кто
кем был?
54.
Парадигмы программирования55. Декларативная парадигма Функциональное программирование
Функциональное программирование –процесс
вычисления
трактуется
как
вычисление
значений
функций
в
математическом понимании последних, а не
как подпрограмм.
Т.е. при вызове функции с одними и теми
же аргументами мы всегда получим
одинаковый результат: выходные данные
зависят только от входных.
56. Декларативная парадигма Функциональное программирование
Функциональное программирование сформировалось врезультате
математической
направленности
при
исследовании в области искусственного интеллекта и
освоении новых направлений в информатике.
Единственной управляющей
вызов функции.
конструкцией
является
В функциональном языке существует некоторое множество
базовых функций, на основе которых строятся все другие
функции, как композиции базовых.
Функция в программировании — фрагмент программного
кода (подпрограмма), к которому можно обратиться из
другого места программы.
57. Функция
В большинстве случаев с функцией связываетсяидентификатор, но многие языки допускают и безымянные
функции. С именем функции неразрывно связан адрес
первой инструкции (оператора), входящей в функцию,
которой передаётся управление при обращении к функции.
После выполнения функции управление возвращается
обратно в адрес возврата — точку программы, где данная
функция была вызвана.
Функция может принимать параметры и должна
возвращать некоторое значение, возможно пустое.
Функции, которые возвращают пустое значение, часто
называют
процедурами.
В
некоторых
языках
программирования объявления функций и процедур имеют
различный синтаксис, в частности, могут использоваться
различные ключевые слова.
58.
Наиболееизвестными
языками
функционального
программирования являются:
•Лисп
•APL — предшественник современных научных вычислительных сред,
таких как MATLAB
•Miranda
•а также специфические R (статистика), Wolfram (символьная
математика), J и K (финансовый анализ), и XSLT (XML).
Такие
широко
распространённые
декларативные
языки
как SQL и Lex/Yacc содержат некоторые элементы функционального
программирования, например, не используют переменных.
Языки работы с электронными таблицами также можно рассматривать
как функциональные, потому что в ячейках электронных таблиц
задаётся массив функций, как правило зависящих лишь от других ячеек,
а при желании смоделировать переменные приходится прибегать к
возможностям императивного языка макросов.
59.
Парадигмы программирования60.
Декларативная парадигмаФункциональное программирование
Аппликативное программирование — один из видов декларативного
программирования, в котором написание программы состоит в
систематическом осуществлении применения одного объекта к другому.
Результатом такого применения вновь является объект, который может
участвовать в применениях как в роли функции, так и в роли аргумента и
так далее. Это делает запись программы математически ясной.
Лисп
Комбинато́рное программи́рование — парадигма программирования,
использующая принципы комбинаторной логики, то есть не требующая
явного упоминания аргументов определяемой функции (программы) и
использующая вместо переменных комбинаторы и композиции.
61.
Парадигмы программирования62. Структурное программирование Процедурное программирование
Процедурное программирование — программирование на императивном языке,при котором последовательно выполняемые операторы можно собрать в
подпрограммы, то есть более крупные целостные единицы кода, с помощью
механизмов самого языка.
Процедурное
программирование
является
отражением
архитектуры
традиционных ЭВМ, которая была предложена Фон Нейманом в 1940-х годах.
Программа на
процедурном
языке программирования
состоит из
последовательности операторов (инструкций), задающих процедуру решения
задачи.
С точки зрения программиста имеются программа и память (первая
последовательно обновляет содержимое последней) - основным является
оператор присваивания, он служит для изменения содержимого областей памяти.
Процедурный язык программирования предоставляет возможность программисту
определять каждый шаг в процессе решения задачи.
Большинство ранних императивных языков программирования, в
числе Фортран, Кобол, Алгол, Бейсик, Си, Паскаль, Форт — процедурные
том
63. Структурное программирование Объектно-ориентированное программирование на основе классов
Основные концепции - понятия «объект» и «класс».Объект – моделирует характеристики и поведение элемента и является
окончательной абстракцией данных.
Класс – подразумевает некоторое поведение и способ представления.
С точки зрения ООП все «действующие лица» программы представляют
собой объекты, каждый из которых является элементом (экземпляром)
какого-либо класса.
Параметры объекта (радиус, координаты, цвет) называются его
свойствами, а процедуры или функции, которые он выполняет в ответ на
какой-либо запрос (поменять цвет, переместиться и т.п.) называются
методами.
Более поздние императивные языки, в частности, реализующие объектную
парадигму (Smalltalk, Ruby, Visual Basic, Python, C++, Java), как правило, не
относят к категории процедурных, поскольку принцип организации блоков
выполнения в подпрограммы в них реализуется на другом уровне
абстракции.
64. Структурное программирование Объектно-ориентированное программирование на основе классов
Основные понятия ООП.1. Абстракция данных.
ОБЪЕКТ
2. Инкапсуляция.
методы
свойства
3. Сокрытие данных.
4. Наследование.
5. Полиморфизм.
Классы
Метод
Rect
r
Round
Draw
Действия
Рисует
прямоугольник
Рисует круг
65.
Структурное программированиеОбъектно-ориентированное
программирование прототипное
Прототипное программирование — стиль объектноориентированного программирования, при котором отсутствует
понятие класса, а наследование производится путём
клонирования существующего экземпляра класса — прототипа.
JavaScript
66.
Парадигмы программирования67. Языки программирования
Наиболее популярные языки программирования:Кроме этих языков, важную роль сыграли такие языки, как
Algol, Cobol и Smalltalk.
68. Компиляторы и интерпретаторы
Транслятор (англ. translator – переводчик) –это программа-переводчик. Она преобразует
программу, написанную на одном из языков
высокого уровня, в программу, состоящую из
машинных команд.
Трансляторы
реализуются
в
компиляторов или интерпретаторов.
виде
69.
КомпиляторКомпилятор — это программа, которая читает
код и создаёт автономную (способную работать
независимо от другого аппаратного или
программного обеспечения) исполняемую
программу, которую процессор понимает
напрямую. При запуске программы весь код
компилируется целиком, создаётся
исполняемый файл и при повторном запуске
компилятор уже не нужен.
70.
КомпиляцияПроцесс компиляции состоит из следующих этапов:
1) Лексический анализ. Последовательность символов исходного
файла преобразуется в последовательность лексем.
2) Синтаксический анализ. Последовательность лексем
преобразуется в дерево разбора.
3) Семантический анализ. Дерево разбора обрабатывается с целью
установления его семантики (смысла) — например, привязка
идентификаторов к их декларациям, типам, проверка
совместимости, определение типов выражений и т. д.
4) Оптимизация. Выполняется удаление излишних конструкций и
упрощение кода с сохранением его смысла.
5) Генерация кода. Из промежуточного представления порождается
объектный код.
Результатом компиляции является объектный код.
71. Работа компилятора
72.
ИнтерпретаторИнтерпретатор — это программа, которая сразу
выполняет код, без предыдущего создания
исполняемого файла. Код интерпретируется
построчно и сразу выполняется, в отличие от
компиляции, где сначала целиком компилируется
весь код, а затем уже выполняется.
Интерпретаторы более гибкие, так как подходят под
любые платформы, где есть интерпретатор, но
менее эффективны при выполнении программы,
потому что процесс интерпретации должен быть
при каждом запуске программы. В отличие от
компиляции, каждый раз, когда вы запускаете
программу интерпретатор заново выполняет весь
процесс.
72
73. Работа интерпретатора
Исходный текстпрограммы
1
выполнение
Команда 1
Команда 2
ИНТЕРПРЕТАТОР
2
выполнение
…….
……………
74. Языки программирования
75. Алгоритмизация и программирование
Алгоритм – это описание последовательности действий,которые необходимо выполнить для решения задачи.
76. Свойства алгоритма:
1) Понятность для исполнителя - т.е. исполнитель алгоритма должензнать, как его выполнять.
2) Дискретность (прерывность, раздельность) - т.е. алгоритм должен
представлять процесс решения задачи как последовательное
выполнение простых или ранее определенных шагов.
3) Определенность - т.е. каждое правило алгоритма должно быть
четким, однозначным и не оставлять места для разночтений.
4) Результативность (или конечность). Это свойство состоит в том, что
алгоритм должен приводить к решению задачи за конечное число
шагов.
5) Массовость - означает, что алгоритм решения задачи
pазpабатывается в общем виде, т.е. он должен быть применим для
некоторого класса задач, различающихся лишь исходными данными.
При этом исходные данные могут выбираться из некоторой области,
которая называетсяобластью применимости алгоритма.
77. Очередность работы
■ Разработать алгоритм.■ Изобразить и описать блок-схему.
■ Составить программу для компьютера.
Программы пишутся с помощью специальных команд
(операторов). Совокупность операторов, а также правил и
методов
обращения
с
ними
составляет
язык
программирования.
78. Формы представления алгоритмов
Наиболее распространенными формами представленияалгоритмов являются:
■ словесная,
■ графическая,
■ псевдокоды,
■ программная.
79.
1) Словесная форма записи представляет собой описание последовательныхэтапов обработки данных на естественном языке (например, на русском).
Пример. Записать алгоритм нахождения наибольшего общего делителя (НОД)
двух натуральных чисел.
Алгоритм: 1) задать два числа;
2) если числа равны, то взять любое из них в качестве ответа и
остановиться, в противном случае продолжить выполнение
алгоритма;
3) определить большее из чисел;
4) заменить большее из чисел разностью большего и меньшего из
чисел;
5) повторить алгоритм с шага 2.
Описанный алгоритм применим к любым натуральным числам и должен
приводить к решению поставленной задачи за конечное число шагов.
80.
2) Графический способ представления алгоритмов являетсяболее компактным и наглядным по сравнению со словесным.
При графическом исполнении алгоритм изображается в виде
последовательности связанных между собой функциональных
блоков, каждый из которых соответствует выполнению одного
из действий. Такое графическое представление называется
схемой алгоритма или блок-схемой.
81. Блок-схема
Блок-схема – это графическое построение, в котором с помощью определенныхгеометрических фигур указаны шаги выполнения алгоритма и связи между ними.
Связь между блоками схемы обозначается линиями со стрелками. Направление
стрелки указывает направление передачи информации и очередность выполнения блоков.
В России согласно ГОСТ 19.701-90 (ИСО 5807-85), приняты обозначения на блоксхемах:
82.
3) Псевдокод представляет собой систему обозначений и правил,предназначенную для единообразной записи алгоритмов. Он
занимает промежуточное место между естественным и
формальным языками.
■ в псевдокоде используются служебные слова и
математическая символика, что приближает запись алгоритма
к общепринятой математической записи.
■ Пример. 1) задать два числа x и y; 2) ЕСЛИ x=y, ТО НОД=x и
КОНЕЦ; 3) ЕСЛИ x>y, ТО x=x-y, ИНАЧЕ y=y-x; 4) ПЕРЕЙТИ в пункт
2.
4) Программная форма представляет собой тексты программ,
написанных на различных языках программирования.
83. Базовые структуры
Косновным
структурам относятся:
■Линейные алгоритмы
■Алгоритмы
разветвляющейся
структурой
■Циклические
алгоритмы
с
84. Линейные алгоритмы
■ Простейшие задачи имеют линейный алгоритм решения. Этоозначает, что он не содержит проверок условий и повторений.
■ Пример 1.Пешеход шел по пересеченной местности. Его скорость
движения по равнине 1 км/ч, в гору —2 км/ч и под гору — 3 км/ч.
Время движения соответственно 1, 2 и 3 ч. Какой путь прошел
пешеход?
85.
■ 1. Ввести v1, v2, v3, t1,t2, t3.
■ 2. S1 := v1 * t1.
■ 3. S2 := v2 * t2.
■ 4. S3 := v3 * t3.
■ 5. S := S1 + S2 + S3.
■ 6. Вывести значение S.
■ 7. Конец.
86. Алгоритм - ветвление
■ Разветвляющимся называется такой алгоритм, в котором взависимости от истинности или ложности заданного условия
выбирается один из нескольких возможных вариантов (путей)
вычислительного процесса. Каждый такой вариант называется
ветвью алгоритма. Возможных вариантов может быть два или три.
■ Ветвление- такая форма организации действий, при которой в
зависимости от выполнения или невыполнения некоторого условия
совершается либо одна, либо другая последовательность действий.
■ Признаком разветвляющегося алгоритма является наличие
операций проверки условия.
87.
■ Условие– это выражение логического типа. Оно можетвключать в себя константы, имена переменных,
арифметические операции, операции отношения,
логические операции, скобки. Условие может быть
истинным или ложным, то есть принимать одно из двух
значений: ИСТИНА или ЛОЖЬ.
88.
■ Простым условием называется выражение, составленное из двухарифметических выражений или двух текстовых величин, связанных
одним из знаков: <,, >, ³, =, ¹. Такое условие часто называют
операцией отношения.
■ Составными условиями называются условия, состоящие из
нескольких простых и соединенные знаками логических операций И,
ИЛИ, НЕ.
ПРИМЕРЫ составных условий.
(A > 5) И (B < 2)
(X = Y) ИЛИ (50 £ C – 1)
89. Вычислить значение функции
■ 1. Ввести x.■ 2. Если x–12, то y:=–x2
■ 3. Если x<0, то y:=x4
■ 4. y := x–2
■ 5. Вывести y
■ 6. Конец
90. Блок-схема алгоритма решения квадратного уравнения
91. Циклы
■ Циклическим называют алгоритм, в котором получение результатаобеспечивается многократным выполнением одних и тех же
операций. Иными словами, циклическим называют алгоритм, в
котором определенная последовательность действий повторяется либо
заданное количество раз, либо до тех пор, пока не выполнится
некоторое условие. Повторяющаяся последовательность действий
называется телом цикла.
92.
■Цикл -такая форма организации действий, при которой
одна и та же последовательность действий (тело цикла)
совершается несколько раз (или ни разу) до тех пор, пока
выполняется некоторое условие.
internet