Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 1. Алгоритмизация и программирование. Технологии программирования. Языки программирования высокого уровня↑ Стр 1 из 7Следующая ⇒ Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
СОДЕРЖАНИЕ
Введение.......................................................................................................... 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; просмотров: 821; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.194.225 (0.019 с.) |