Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 1. Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровняСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте СОДЕРЖАНИЕ
Введение.......................................................................................................... 6 Тема 1. Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня......................................................................................... 7 1.1. Понятие алгоритма и его свойства. Блок-схема алгоритма. Основные алгоритмические конструкции 7 1.2. Программы линейной структуры. Операторы разветвления. Операторы цикла 11 1.3. Понятие о структурном программировании. Модульный принцип программирования. Принципы проектирования программ сверху вниз и снизу вверх. Подпрограммы........................................ 27 1.4. Объектно-ориентированное программирование...................... 33 1.5. Интегрированные среды программирования............................ 36 1.6. Этапы решения задач на компьютере......................................... 39 1.7. Эволюция и классификация языков программирования. Основные понятия языков программирования 42 1.8. Структуры и типы данных языка программирования............ 51 Тесты по теме 1......................................................................................... 60 Тема 2. Локальные и глобальные сети ЭВМ. Методы защиты информации 103 2.1. Сетевые технологии обработки данных.................................. 103 2.2. Основы компьютерной коммуникации. Принципы построения и основные топологии вычислительных сетей, коммуникационное оборудование..................................................... 105 2.3. Сетевой сервис и сетевые стандарты. Программы для работы в сети Интернет 110 2.4. Защита информации в локальных и глобальных компьютерных сетях. Шифрование данных. Электронная подпись 123 Тесты по теме 2....................................................................................... 137 Список литературы............................................................................... 173 Ответы к тестам...................................................................................... 175 Заключение............................................................................................... 178
Данное учебное пособие продолжает курс по базовой информатике для бакалавров технических специальностей. В пособии излагаются разделы современной информатики, связанные с изучением алгоритмизации и основ программирования, а также локальными и глобальными компьютерными сетями. Таким образом, вместе с двумя предыдущими пособиями серии, написанными А.П. Воробьевой и Е.Е. Ершовой, пособие охватывает все основные разделы курса информатики, изучение которых предусмотрено государственными образовательными стандартами. Для контроля усвоения изучаемого теоретического материала предлагаются тесты, ответы к которым приводятся в конце издания. Более глубокие знания можно получить, воспользовавшись рекомендуемой по изучаемым темам литературой.
Тема 1. Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня Эволюция и классификация языков программирования. Основные понятия языков программирования Алгоритм – это точно определенное описание способа решения задачи в виде конечной последовательности действий. Иначе говоря, это описание является формальным Программа – это логически упорядоченная последовательность команд, необходимая для управления компьютером. Программа является фактической реализацией алгоритма на том или ином конкретном языке программирования. Программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом. Написать программу в машинном коде достаточно сложно и поэтому для представления алгоритма в виде, понятном компьютеру, служат языки программирования. Языки программирования - э тоискусственные языки. Они отличаются от естественных ограниченным, достаточно малым числом слов, значение которых понятно компьютеру (транслятору), и строгими правилами записи команд (операторов). Совокупность требований для записи команд образуют синтаксис языка, а смысл каждой команды – семантику языка. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. “Низкий уровень” здесь означает, что операторы близки к машинному коду и ориентированы на конкретный тип процессора. Языком самого низкого уровня является язык Ассемблера, который представляет каждую машинную команду в виде символьных условных обозначений, называемых символьными мнемониками. Перевод программы на языке Ассемблера в машинный язык называется транслитерацией. Программа, написанная на языке низкого уровня, может быть использована только в той операционной среде, в которой она была создана. С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора. Языкипрограммирования высокого уровня ближе и понятнее человеку, чем компьютеру. В программах, созданных на языках высокого уровня, особенности компьютерных систем не учитываются, перенос программ на уровне исходных текстов на другие платформы не создает трудностей, если в них создан транслятор этого языка. Разрабатывать программы на языках высокого уровня проще, а ошибок допускается меньше. Иногда различают языки среднего уровня, позволяющие как эффективно использовать низкоуровневые ассемблерные инструкции, так и пользоваться возможностями языков высокого уровня. В частности, таким языком является C++ - основной язык системного программирования. Языки программирования принято делить на пять поколений. В первое поколение входят языки, созданные в начале 50-х годов XX века. Это были первые языки ассемблера, созданные по принципу " одна инструкция – одна строка". Расцвет второго поколения языков программирования пришелся на конец 50-х – начало 60-х годов. Тогда был разработан символический ассемблер, в котором появилось понятие переменной. Он стал первым полноценным языком программирования. Благодаря его возникновению заметно возросли скорость разработки и надежность программ. Появление третьего поколения языков программирования принято относить к 60-м годам. В это время родились универсальные языки высокого уровня, с их помощью удается решать задачи из любых областей. Такие качества новых языков, как относительная простота, независимость от конкретного компьютера и его операционной системы, возможность использования мощных синтаксических конструкций, позволили резко повысить производительность труда программистов. Подавляющее большинство языков этого поколения успешно применяется и сегодня. С начала 70-х годов по настоящее время продолжается период языков четвертого поколения. Эти языки предназначены для реализации крупных проектов, повышения их надежности и скорости создания. Они обычно ориентированы на специализированные области применения, где хороших результатов можно добиться, используя не универсальные, а проблемно-ориентированные языки, оперирующие конкретными понятиями узкой предметной области. Как правило, в эти языки встраиваются мощные операторы, позволяющие одной строкой описать такую функциональность, для реализации которой в языках младших поколений потребовались бы тысячи строк исходного кода. Рождение языков пятого поколения произошло в середине 90-х годов. К ним относятся также системы автоматического создания прикладных программ с помощью визуальных средств разработки, без знания программирования. Главная идея, которая закладываемая в эти языки,- возможность автоматического формирования результирующего текста на универсальных языках программирования (который потом требуется откомпилировать). Инструкции же вводятся в компьютер в максимально наглядном виде с помощью методов, наиболее удобных для человека, не знакомого с программированием. С точки зрения способа выполнения программы компьютером, языки программирования делятся на компилируемые и интерпретируемые. Транслятор – это программа или техническое средство, выполняющее преобразование программы, представленной на одном из языков программирования, в программу на другом языке, в определенном смысле равносильную первой. Компилятор – это программа, предназначенная для трансляции исходного текста программы с высокоуровневого языка в объектный код. Компилировать означает проводить трансляцию программы с проблемно-ориентированного языка на машинно-ориентированный язык (создание объектного кода) для ее исполнения. Компиляция в программировании – преобразование программы, представленной на одном из языков программирования, в коды на машинно-ориентированном языке, которые принимаются и исполняются непосредственно процессором. Результатом компиляции является объектный файл с необходимыми внешними ссылками для компоновщика. Входной информацией для компилятора является описание алгоритма или программа на языке программирования. На выходе компилятора находится эквивалентное описание алгоритма на машинно-ориентированном языке (объектный код). Программа уже переведена в машинные инструкции, однако еще не полностью готова к выполнению. В объектном файле имеются ссылки на различные системные функции. Даже если в программе явно не упомянута ни одна функция, необходим, по крайней мере, один вызов системной функции – завершение программы и освобождение всех принадлежащих ей ресурсов. Компоновщик – модуль системы программирования или самостоятельная программа, которая собирает результирующую программу из объектных модулей и стандартных библиотечных модулей. Этот процесс называется компоновкой (сборкой), и его результатом является исполняемый файл. Исполняемый файл – это файл, который может быть обработан или выполнен компьютером без предварительной трансляции. Обычно исполняемый файл получается в результате компиляции и компоновки объектных модулей и содержит машинные команды и/или команды операционной системы. Интерпретация программ – процесс непосредственного покомандного выполнения программы без предварительной компиляции, "на лету". Интерпретатор анализирует и тут же выполняет программу покомандно, по мере поступления ее исходного кода на вход интерпретатора. Алгоритм работы простого интерпретатора таков: 1. прочитать инструкцию; 2. проанализировать инструкцию и определить соответствующие действия; 3. выполнить соответствующие действия; 4. если не достигнуто условие завершения программы, прочитать следующую инструкцию и перейти к пункту 2. Интерпретация связана с получением переменными значений в процессе работы программы. Процедура интерпретации не является процессом создания исполняемого файла. Интерпретация не позволяет изменить синтаксис языка – набор правил построения фраз алгоритмического языка, позволяющий определить осмысленные предложения в этом языке. Интерпретация не позволяет изменить семантику (смысл) языка программирования. Обычно при описании семантики в рамках операционного подхода исполнение конструкций языка программирования трактуется с помощью некоторой воображаемой (абстрактной, виртуальной) ЭВМ. В большинстве случаев интерпретируемая программа работает намного медленнее, чем скомпилированная программа, но не требует затрат на компиляцию, что в случае небольших программ может повышать общую производительность. Классификацию основных языков программирования, как компилируемых, так и интерпретируемых, можно представить на схеме таким образом (рис. 14):
Рис. 14. Классификация языков программирования Процедурное программирование, по сути дела, есть отражение фон-Неймановской архитектуры компьютера. Программа, написанная на процедурном языке, представляет собой последовательность команд, определяющих алгоритм решения задачи. Основная идея процедурного программирования - использование памяти для хранения данных. Основная команда - присваивание, с помощью которой определяется и меняется состояние отдельных ячеек памяти компьютера. Программа производит преобразование содержимого памяти, изменяя его от исходного состояния к результирующему. Различают следующие основные языки процедурного программирования: · Фортран – создан в начале 50-х годов 20-го века для программирования научно-технических задач; · Кобол – создан в конце 60-х годов 20-го века для решения задач обработки больших объемов данных, хранящихся на различных носителях данных; · Алгол (1960 год) –многоцелевой расширенный язык программирования. В нем впервые введены понятия "блочная структура программы" и "динамическое распределение памяти". В середине 60-х годов 20-го века был создан специализированный язык программирования для начинающих – BASIC. Он характеризуется простотой освоения и наличием универсальных средств для решения научных, технических и экономических задач, а также задач, например, игровых. Все перечисленные выше языки были ориентированы на различные классы задач, но они в той или иной мере были привязаны к конкретной архитектуре ЭВМ. В 1963-1966 гг. был создан многоцелевой универсальный язык PL-1. Этот язык хорошо приспособлен для исследования и планирования вычислительных процессов, моделирования, решения логических задач, разработки систем математического обеспечения. Язык Паскаль (Pascal, 1968-1971 гг.) - язык процедурного программирования наиболее популярный для персональных компьютеров, который и в настоящее время успешно применяется при обучении программированию. В основу языка Pascal положен подход от общей задачи к частным (более простым и меньшим по объему). К основным принципам, которыми обладает Паскаль, можно отнести: · Структурное программирование, которое основано на использовании подпрограмм и независимых структур данных; · Программирование "сверху-вниз", когда задача делится на простые, самостоятельно решаемые задачи. Затем выстраивается решение исходной задачи полностью сверху вниз. Язык АДА (1979 г.) назван в честь первой программистки Ады Лавлейс - дочери Байрона. Его отличает модульность конструкций. Язык С (Си, начало 70-х годов) также относится к языкам процедурного программирования. Первоначальный его вариант планировался как язык для реализации операционной системы Unix вместо языка Ассемблера. Одной из особенностей языка Си является то, что различия между выражениями и операторами сглаживаются, что приближает его к функциональным языкам программирования. Кроме того, в языке Си отсутствует понятие процедуры, а использование подпрограмм основано на понятии функции, которая может сочетать в себе возможности процедуры. С одной стороны, по набору управляющих конструкций и структур данных его можно отнести к языкам высокого уровня, а с другой – он имеет набор средств прямого обращения к функциональным узлам компьютера, а это означает, что его можно использовать как операционный язык. Рассмотрим другие группы языков программирования. К декларативным языкам программирования относятся функциональные и логические языки. Функциональное программирование - это способ составления программ, в которых единственным действием является вызов функции. В функциональном программировании не используется оперативная память, как место для хранения данных, а, следовательно, не используются промежуточные переменные, операторы присваивания и циклы. Ключевым понятием в функциональных языках является выражение. Программа, написанная на функциональном языке, представляет собой последовательность описания функций и выражений. Выражение вычисляется сведением сложного к простому. Все выражения записываются в виде списков. Первым функциональным языком стал язык Лисп (LISP, LIST Processing- обработка списков), он создан в 1959 г. Этот язык позволяет обрабатывать большие объемы текстовой информации. Логическое программирование - это программирование в терминах математической логики. В 1973 году был создан язык искусственного интеллекта Пролог (Prolog, Programming in Logic). Программа на языке Пролог строится из последовательности фактов и правил, затем формулируется утверждение, которое Пролог пытается доказать с помощью правил. Язык сам ищет решение с помощью методов поиска и сопоставления, которые в нем заложены. Логические программы не отличаются высоким быстродействием, так как процесс их выполнения сводится к построению прямых и обратных цепочек рассуждений разнообразными методами поиска. Языки программирования баз данных. отличаются от алгоритмических языков прежде всего своим функциональным назначением. При работе с базами данных выполняются следующие операции: · создание, преобразование и удаление таблиц в БД; · поиск, отбор, сортировка по запросам пользователя; · добавление новых записей и модификация существующих, удаление записей и др. Для обработки больших массивов информации и выборки записей по определенным признакам был создан структурированный язык запросов SQL (Structured Query Language — "язык структурированных запросов"). Язык SQL – это стандартный язык работы с реляционными (состоящими из таблиц) базами данных. Сегодня в мире ведущие производителями СУБД являются компании Microsoft (SQL Server), IBM (DB2), Oracle, Software AG (Adabas), Informix и Sybase. Практически в каждой СУБД имеется свой встроенный язык работы с БД, являющийся той или иной разновидностью SQL. Так, например, в Oracle имеется встроенный язык PL/SQL, в Informix – INFORMIX 4GL, в Adabas – Natural и т.д. Языки программирования для компьютерных сетей являются интерпретируемыми. Интерпретаторы для них распространяются бесплатно, а сами программы – в исходных текстах. Такие языки называются также языками написания скриптов. · Формат HTML (HyperText Markup Language) – универсальный формат разметки гипертекста, используемый для подготовки Web-документов для Интернета. Язык позволяет форматировать текст, добавлять графические образы, работать с таблицами и организовывать связь одного документа с другим с помощью механизма гиперссылок (см. п. 2.3). В отличие от языков программирования и других форматов разметки, HTML довольно "демократичен", синтаксическая ошибка в разметке обычно не приводит к "зависаниям" или каким-либо сообщениям об ошибках, хотя, разумеется, может вызвать неправильное форматирование документа. · Язык Perl (1980 г.) содержит многочисленные функции работы со строками, массивами, всевозможные средства преобразования данных. · Язык PHP (1995-1997 гг.) обладает средствами доступа к БД и используется создателями динамических сайтов во всем мире. · Язык Tcl/Tk (конец 80-х годов) состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами и позволяет создавать программы с графическим интерфейсом. · Формат VRML (1994 г.) создан для организации виртуальных трехмерных интерфейсов в Интернете. · Формат XML. С 1996 г. идет работа над созданием универсального языка описания структуры документов. В перспективе XML становится заменой как языка HTML, так и других языков разметки. К скриптовым можно отнести также объектно-ориентированные языки Java и язык сценариев Javascript, используемые в программировании для Web. Тесты по теме 1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-12-17; просмотров: 1116; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.198 (0.012 с.) |