Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекция 11(new).doc
Скачиваний:
14
Добавлен:
19.11.2018
Размер:
162.3 Кб
Скачать

2009 г МОК, КазГАСА Информатика Заманова С.К.

Казахская головная архитектурно-строительная академия

Активный раздаточный материал

«Информатика»

ФОЕНП

3 кредита

1-й семестр 2009 – 2010 уч. года

Лекция №11: «Основы алгоритмизации и программирования»

Ассистент профессора

Заманова Сауле Канабековна

Краткое содержание занятия

Рассмотрены основы алгоритмизации и программирования.

Лекцияда алгоритм және бағдарламалау негіздері қарастырылған.

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

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

Машинный код процессора. Процессор компьютера – это большая интегральная микросхема. Команды, поступающие в процессор по его шинам, на самом деле являются электрическими сигналами, но и их тоже можно представить как совокупности нулей и единиц, то есть числами. Разным командам соответствуют разные числа. Поэтому программа, с которой работает процессор, представляет собой последовательность чисел, называемую машинным кодом.

Алгоритм и программа. Управлять компьютером нужно по определенному алгоритму.

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

Текст программы – полное, законченное и детальное описание алгоритма на языке программирования. Затем этот текст программы специальными служебными приложениями, которые называются трансляторами, либо переводится в машинный код, либо исполняется.

Языки программирования – искусственные языки. От естественных они отличаются ограниченным числом “слов”, значение которых понятно транслятору, и очень строгими правилами записи команд (операторов). Совокупность подобных требований образует синтаксис языка программирования, а смысл каждой команды и других конструкций языка — его семантику. Нарушение формы записи программы приводит к тому, что транслятор не может понять назначение оператора и выдает сообщение о синтаксической ошибке, а правильно написанное, но не отвечающее алгоритму использование команд языка приводит к семантическим ошибкам (называемым еще логическими ошибками или ошибками времени выполнения). Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок – отладкой.

Компиляторы и интерпретаторы. С помощью языка программирования создается не готовая программа, а только ее текст, описывающий ранее разработанный алгоритм. Чтобы получить работающую программу, надо этот текст либо автоматически перевести в машинный код (для этого служат программы-компиляторы)' и затем использовать отдельно от исходного текста, либо сразу выполнять команды языка, указанные в тексте программы (этим занимаются программы-интерпретаторы).

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

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

Уровни языков программирования. Разные типы процессоров имеют разные наборы команд.

Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня. В данном случае “низкий уровень” не значит “плохой”. Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора. Языком самого низкого уровня является язык ассемблера, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных условных обозначений, называемых мнемониками.

Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка.

Обзор языков программирования высокого уровня.

  1. FORTRAN (Фортран). Это первый компилируемый язык, созданный Джимом Бэкусом в 50-е годы. Фортран продолжает активно использоваться во многих организациях, имеется стандартная версия HPF(High Performance Fortran) для параллельных суперкомпьютеров со множеством процессоров.

  2. COBOL (Кобол). Это компилируемый язык для применения в экономической области и решения бизнес-задач, разработанный в начале 60-х годов. На этом языке создано очень много приложений, которые активно эксплуатируются и сегодня. Достаточно сказать, что наибольшую зарплату в США получают программисты на Коболе.

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

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

  5. Basic (Бейсик). Он создавался в 60-х годах в качестве учебного языка и очень прост в изучении. Для этого языка имеются и компиляторы, и интерпретаторы, а по популярности он занимает 1 место в мире.

  6. С (Си). Язык был создан в лаборатории Bell и первоначально не рассматривался как массовый. Си во многом похож на Паскаль и имеет дополнительные средства для прямой работы с памятью (указатели). На этом языке в 70-е годы написано множество прикладных и системных программ и ряд известных ОС (Unix).

  7. C++ (Си++). Это объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году.

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

  9. С# (Си Шарп). Был разработан в конце 90-х годов в компании Microsoft под руководством Андерса Хейльсберга. В нем воплотились лучшие идеи Си и Си++, а также достоинства Java.

Языки программирования баз данных.

Сегодня в мире насчитывается три ведущих производителя СУБД: Microsoft (SQL Server), IBM (DB2) и Oracle. Их продукты нацелены на поддержку одновременной работы тысяч пользователей в сети, а базы данных могут храниться в распределенном виде на нескольких серверах. В каждой из этих СУБД реализован собственный диалект SQL, ориентированный на особенности конкретного сервера, поэтому SQL- программы, подготовленные для разных СУБД, друг с другом, как правило, несовместимы.

С появлением ПК были созданы так называемые настольные СУБД. Родоначальником современных языков программирования БД для ПК принято считать СУБД dBase II, язык которой был интерпретируемым. Затем для него были созданы компиляторы, появились СУБД FoxPro и Clipper, поддерживающие диалекты этого языка. Самая распространенная настольная СУБД – Microsoft Access.

Языки программирования для Интернета.

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

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

  2. Perl. Ларри Уолл в 80-х годах разработал язык Perl. Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами. По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, всевозможные средства преобразования данных, управления процессами и др.

  3. РНР. Расмус Лердорф, активно использовавший Perl-скрипты, в 1995 году решил улучшить этот язык, упростив его и дополнив встроенными средствами доступа к базам данных. В результате появилась разработка Personal Contents Page/Forms Interpreter (PHP/FI). Уже через пару лет программы на ее основе использовались на 50 тыс. сайтов.

  4. Tcl/Tk. В конце 80-х годов Джон Аустираут придумал популярный скрипт-язык Tel и библиотеку Tk. В Tel он попытался воплотить видение идеального скрипт-языка, ориентированного на автоматизацию рутинных процессов и состоит из мощных команд, предназначенных для работы с абстрактными нетипизированными объектами, независим от типа системы и позволяет создавать программы с графическим интерфейсом.

  5. VRML. В 1994 году был создан язык VRML для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры (покрытия объектов), создавать свои миры, путешествовать по ним, “облетать” со всех сторон, вращать в любых направлениях, масштабировать, регулировать освещенность и т. д.

  6. XML. В августе 1996 года WWW-консорциум, ответственный за стандарты на Интернет-технологии, приступил к подготовке универсального языка разметки структуры документов, базировавшегося на достаточно давно созданной в IВМ технологии SGML. Новый язык получил название XML. Сегодня он служит основой множества системных, сетевых и прикладных приложений, позволяя представлять в прозрачном для пользователей и программ текстовом виде различные аспекты внутренней структуры иерархически организованных документов.

Основные системы программирования. Из универсальных языков программирования сегодня наиболее популярны следующие:

• Бейсик (Basic) – для освоения требует начальной подготовки (общеобразовательная школа);

• Паскаль (Pascal) – требует специальной подготовки (школы с углубленным изучением предмета и общетехнические вузы);

• Си++ (C++), Ява (Java), Си Шарп (С#) – требуют профессиональной подготовки (специализированные средние и высшие учебные заведения).

Алгоритмическое (модульное) программирование.

Алгоритм – это формальное описание способа решения задачи путем разбиения ее на конечную по времени последовательность действий (элементарных операций).

Свойства алгоритмов: определенность, дискретность, целенаправленность, конечность, массовость.

Порядок выполнения алгоритма:

  1. Действия в алгоритме выполняются в порядке их записи

  2. Нельзя менять местами никакие два действия алгоритма

  3. Нельзя не закончив одного действия переходить к следующему

Для записи алгоритмов используется графический язык – блок-схема

Составление алгоритмов графическим способом подчиняется двум ГОСТам: ГОСТ 19.002-80, соответствует международному стандарту ИСО 2636-73; ГОСТ 19.003-80, соответствует международному стандарту ИСО 1028-73, регламентирующие правила составления блок-схем и использование графических примитивов.

Название

Символ

Выполняемая функция

Блок вычислений

выполняет вычислительное действие или группу действий

Логический блок

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

Блок ввода/вывода

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

вывод данных на печатающее устройство

Начало/конец

начало или конец программы, вход или выход в подпрограмму

Блок модификации

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

Правила построения блок-схем:

  1. Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева направо

  2. Все повороты соединительных линий выполняются по углом 90 градусов.