- •1. Основные понятия и методы теории информации. Сигналы, данные, информация. Основные структуры данных.
- •2. Понятие алгоритма и его свойства. Блок-схема алгоритма.
- •3. Виды угроз сетевой безопасности.
- •4. Меры и единицы количества и объема информации
- •Единицы измерения информации.
- •5. Поиск информации в Интернете.
- •Язык запросов поисковой системы
- •6. Позиционные системы счисления.
- •7. Алгоритмизация и программирование. Языки программирования высокого и низкого уровня
- •8. Электронная почта
- •9. Непозиционные системы счисления
- •Отличие позиционной системы счисления от непозиционной
- •Непозиционные системы счисления
- •10. Алгоритмизация и программирование. Языки программирования низкого уровня
- •11. Понятие об электронной цифровой подписи
- •Использование хеш-функций
- •Социальные атаки
- •Управление ключами
- •Хранение закрытого ключа
- •12. Основные понятия алгебры логики
- •13. Эволюция и классификация языков программирования
- •14. Организационное обеспечение электронной цифровой подписи
- •15. Технические средства реализации информационных процессов
- •16. Основные понятия языков программирования
- •1. Классификация языков программирования
- •2. Системы программирования
- •17. Электронная коммерция
- •Виды электронной коммерции
- •18. Понятия и основные виды архитектуры эвм. Принципы работы вычислительной системы
- •2. Классическая архитектура эвм и принципы фон Неймана
- •5. Система команд эвм и способы обращения к данным
- •Этапы решения задачи на эвм
- •Отличительные признаки данной модели электронной коммерции:
7. Алгоритмизация и программирование. Языки программирования высокого и низкого уровня
Задачей предмета «Основы алгоритмизации и программирование» является развитие алгоритмического мышления, формирование знаний о свойствах алгоритмов и приобретение практических навыков разработки программ с использованием языка программирования Паскаль.
Под алгоритмизацией понимают процесс разработки алгоритма решения какой-либо задачи. (Например, разработка алгоритма нахождения наибольшего общего делителя).
Д
ля
того чтобы алгоритм был выполнен на
ЭВМ, он, прежде всего, должен быть записан
с помощью специального языка - языка
программирования. Язык
программирования
используется для записи алгоритма и
последующего перевода этой записи на
язык машинных команд. Процесс записи
алгоритма на выбранном языке в форме
доступной для обработки на ЭВМ называется
программированием,
а результат записи алгоритма на этом
языке, называется программой.
Языки программирования
низкого уровня высокого уровня
Как известно, ЭВМ способна выполнять программу, написанную на машинном языке, который представляет собой последовательность нулей и единиц. Такие программы пишутся на языках программирования низкого уровня.
Язык программирования низкого уровня - это язык программирования, структура команд которого определяется форматом команд и данных машинного языка, а также архитектурой ЭВМ (примером языка программирования низкого уровня является язык Ассемблер (Assembler), который был разработан в 50-е годы XX века).
Однако составлять программы на таком языке - дело очень хлопотное и неблагодарное. Поэтому были созданы языки программирования высокого уровня
Язык программирования высокого уровня - это язык программирования, средства которого допускают описание задачи в наглядном, легко воспринимаемом виде.
Каждый язык высокого уровня определяется системой записи и набором правил, определяющих синтаксис языка.
К языкам программирования высокого уровня, например, относятся:
Basic;
С;
FORTRAN;
Java;
Pascal.
Первые языки программирования были языками низкого уровня. Среди них Short Code, разработанный в 1949 году Джоном Мочли для компьютера BINAC.
Первым языком высокого уровня стал FORTRAN, родителями которого являются корпорация IBM и группа разработчиков во главе с Джоном Бэкусом. Языки высокого уровня были встречены с недоверием. Считалось, что они не позволят добиться той эффективности выполнения программ, которые давали машинные коды. FORTRAN показал, что это не так. Впоследствии Бэкус принял активное участие в разработке другого языка – ALGOL. Этот язык оказался излишне громоздким и не очень удобным.
«Наследником» Turbo Pascal стали Delphi – система быстрой разработки приложений для Microsoft Windows – и Kylix – система быстрой разработки приложений для X Windows System и операционной системы Unix.
Почти одновременно с языком Pascal появился язык C. Он используется как язык системного программирования и как язык программирования вычислений. На основе языка С был создан объектно-ориентированный язык C++, который в свою очередь дал жизнь популярному в настоящее время языку Java.
В настоящее время существует большое количество языков программирования. Это связано с тем, что каждый из языков программирования предназначен для решения определённого круга задач. Нет универсального языка, который бы одинаково подходил для решения всех возможных задач.
Никлаус Вирт создал Паскаль в 1969 году именно для целей обучения. Поначалу никто и не предполагал, что на нём будут писать реальные программы, но язык получился настолько удачным и ясным, что и теперь, спустя десятки лет, и он, и его потомки используются очень широко.
Паскаль обладает рядом несомненных достоинств. Он прост – следовательно, ему легко обучаться и обучать, но при этом он содержит все типы данных и реализует все основные конструкции структурного и объектно-ориентированного программирования, присущие современным языкам высокого уровня. Строгий синтаксис обеспечивает широкую диагностику ошибок, что очень важно для начинающих
Определение: Алгоритм - точный набор инструкций или команд, описывающих порядок действий исполнителя для решения поставленной задачи за конечное время. Некоторые действия алгоритма должны быть выполнены последовательно, некоторые могут быть и независимыми и выполняться одновременно (параллельно). Свойства алгоритмов, требования к алгоритмам: Дискретность - процесс решения задачи является последовательным выполнением простых шагов за конечный отрезок времени.
Детерминированность - в каждый момент времени следующий шаг однозначно определяется состоянием системы. Т.е. алгоритм выдаёт один и тот же результат для одних и тех же исходных данных. Понятность - алгоритм содержит команды, понятные исполнителю (которые входят в его систему команд). Конечность – для корректных исходных данных алгоритм должен успешно завершать работу за конечное число шагов. Массовость - алгоритм должен быть применим к разным наборам исходных данных. Результативность – работа алгоритма должна завершаться определёнными результатами. Алгоритмизация – процесс построения алгоритма. Программирование - процесс создания программного обеспечения с помощью языков программирования. Программирование сочетает в себе элементы искусства, фундаментальных наук (это прежде всего информатика и математика), инженерии, спорта и ремесла. Программирование следует отличать от ремесла кодирования программы
Программирование включает в себя:
Анализ поставленной задачи.
Проектирование/разработку комплекса алгоритмов.
Кодирование – реализация алгоритмов - написание исходного текста программы на языке программирования (исходников).
Компиляцию - преобразование исходников в исполнимый код с помощью компилятора. Тестирование и отладку - выявление и устранение ошибок в программах. Испытания и сдачу программ. Сопровождение программ.
Язык программирования - система, предназначенная для записи компьютерных программ. Язык программирования определяет набор правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением. На сегодняшний день известно более 8500 языков программирования. Языки программирования делятся на: компилируемые
интерпретируемые низкоуровневые
высокоуровневые
Компилятор это специальная программа, которая переводит исходный текст программы с языка программирования высокого уровня в двоичные коды инструкций процессора, которые записываются в отдельный исполнимый файл (например exe-файл). Этот файл может быть запущен как отдельная программа. Интерпретатор выполняет исходный текст программы без предварительной компиляции. При этом программа остаётся на исходном языке и не может быть запущена без интерпретатора. Компилируемые программы работают значительно быстрей интерпретируемых. Интерпретируемые программы обладают большей гибкостью в процессе разработки и допускают запуск на разных компьютерных платформах и операционных системах. Язык программирования низкого уровня – это язык, близкий к программированию в машинных кодах используемого процессора. Общеизвестный пример языка низкого уровня - язык ассемблера. Высокоуровневый язык программирования - язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта высокоуровневых языков - это абстракция, то есть введение конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на низкоуровневом языке программирования очень длинны и сложны для понимания и реализации. Примеры языков высокого уровня: C, C++, Visual Basic, Java, PHP, Delphi, Pascal, Fortran.
Основные модели (парадигмы) программирования:
Императивное программирование
Структурное программирование
Функциональное программирование
Логическое программирование
Объектно-ориентированное программирование
Императивное (процедурное) программирование - это парадигма программирования, которая описывает процесс вычисления в виде последовательности инструкций, которые должен выполнить компьютер. Примеры процедурных языков программирования: Fortran, Basic, Pascal, C. Структурное программирование - методология разработки ПО, в основе которой лежит представление программы в виде иерархической структуры блоков. Каждый блок должен представлять собой одну из трех структур: последовательное выполнение, ветвление и повторение. ^ Функциональное программирование - раздел дискретной математики, в которой процесс вычисления трактуется как вычисление значений функций в математическом понимании последних (в отличие от функций как подпрограмм в процедурном программировании). Примеры функциональных языков программирования: LISP, Haskell, ML. ^ Логическое программирование – парадигма, основанная на автоматическом доказательстве теорем, а также раздел дискретной математики, изучающий принципы логического вывода информации на основе заданных фактов и правил вывода. Логическое программирование основано на теории и аппарате математической логики с использованием математических принципов резолюций. Самым известным языком логического программирования является Prolog. ^ Объектно-ориентированное программирование (ООП) - парадигма программирования, в которой основными концепциями являются понятия объектов и классов. Класс - это описание устройства объектов (как бы теоретическая модель). Объект - это экземпляр класса (как бы физическая реализация). Класс можно сравнить с чертежом, согласно которому создаются объекты. Обычно классы разрабатывают таким образом, чтобы их объекты соответствовали объектам предметной области. ООП есть по сути императивное программирование, дополненное принципом инкапсуляции данных и методов в объект и наследованием. Технология программирования - дисциплина, изучающая технологические процессы программирования и порядок их прохождения. Основные технологии программирования: восходящее программирование
нисходящее программирование
Восходящее программирование (программирование «снизу вверх») - методика разработки программ, при которой крупные блоки собираются из ранее созданных мелких блоков. Восходящее программирование начинается с разработки ключевых процедур и подпрограмм, которые затем постоянно модифицируются. Нисходящее программирование (программирование «сверху вниз») - методика разработки программ, при которой разработка начинается с определения целей решения проблемы, после чего идет последовательная детализация, заканчивающаяся детальной программой. При нисходящем программировании низкоуровневые блоки первоначально реализуются в виде «заглушек», которые с течением времени обретают свою функциональность.
