Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
20.04.2023
Размер:
835.44 Кб
Скачать

Практический блок

1.Рассмотреть работу исполнителя Перевозчик

(http://robotlandia.ru/abc3/0101.htm). Определить, что является средой исполнителя, каковы элементарные действия? Записать систему команд, определить в каком случае возможны отказы?

2.Составить алгоритм выдачи книги на абонементе. Записать в словесном и графическом виде, провести сравнительный анализ.

Задания для самостоятельной работы

Изучить главу 14 учебника «Информатика» [8]. Ответить на вопросы:

1.Как можно использовать алгоритмы в библиотечноинформационной деятельности?

2.Как можно использовать алгоритмы в гуманитарной сфере?

3.Приведите различные определения алгоритма. Дайте характеристику их сходства и различия.

4.Как понимается термин «формализация»?

5.Как алгоритм позволяет формализовать информационный процесс? Приведите примеры из профессиональной деятельности.

6.Что такое «исполнитель»? Назовите основные характеристики исполнителя Перевозчик.

7.Перечислите свойства алгоритма. Приведите пример алгоритма из профессиональной сферы и докажите, что все свойства выполняются.

8.Какие различают способы записи алгоритмов?

9.Какие недостатки словесного способа?

10.Какие достоинства и недостатки графического способа?

11.Какие преимущества дают диаграммы Нэйси-Шнейдермана?

12.Что представляет собой псевдокод?

Творческий блок

Опишите основные характеристики исполнителя «Абонемент» (выдача книг). Продемонстрируйте работу исполнителя.

11

Тема 2. Программный способ представления алгоритмов. Языки программирования. Трансляторы. Классификация языков программирования. Основные этапы решения задач с использованием ПК

Теоретический блок

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

Язык программирования – это формализованный язык, предназначенный для описания программ и алгоритмов решения задач на компьютере.

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

Программирование (programming) – теоретическая и практическая деятельность, связанная с созданием программ.

Программирование является собирательным понятием и может рассматриваться и как наука, и как искусство, на этом основан научно-практический подход к разработке программ.

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

Исходный код – текст компьютерной программы, написанной на выбранном языке программирования.

Объектный модуль – последовательность инструкций машинного кода, являющаяся результатом работы компилятора.

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

Исполняемый код – объединённые в загружаемую программу модули объектного кода.

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

12

машинных кодов и наоборот. Любой транслятор выполняет следующие основные задачи:

анализирует транслируемую программу, в частности определяет, содержит ли она синтаксические ошибки;

генерирует выходную программу (её часто называют объектной) на языке машинных команд;

распределяет память для объектной программы.

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

Интерпретатор. Переводит и сразу исполняет инструкции алгоритма последовательно друг за другом. В случае ошибки процесс останавливается, ошибка исправляется, и все начинается сначала.

Компилятор. Переводит исходный код алгоритма в объектные модули, которые собираются при помощи программы сборки в единый модуль. Этот модуль и исполняется.

В зависимости от степени детализации предписаний различают машинно-ориентированные (низкого уровня) и машинно-независимые (высокого уровня) языки программирования.

Языки программирования высокого уровня делятся на процедурные, логические и объектно-ориентированные.

Более подробная классификация представлена в таблице 2.

Таблица 2. Классификация языков программирования

Признак

Виды

 

 

Компилируемые

Языки программирования, исходный код

 

языки

которых преобразуется специальной

выполнения

 

программой в объектные модули,

 

которые затем собираются при помощи

 

программы сборки в единый

 

 

 

 

загруженный модуль. Ассемблер. Си,

 

 

Модула-2, С, С++, Pascal, ObjectPascal

способу

Интерпретируемые

Работают на интерпретаторах Python,

языки

SQL, Basic

 

 

Языки,

В этих языках исходный код программы

По

компилируемые на

компилируется и выполняется как

основе псевдокода

последовательность вызовов программ

 

 

из существующих библиотек

 

 

 

 

 

13

Признак

Виды

 

 

 

Совмещенные языки

В совмещенных языках исходный код

 

 

 

проходит две стадии обработки: на

 

 

 

первой стадии проходит компиляция

 

 

 

исходного кода до уровня

 

 

 

промежуточного языка; на второй стадии

 

 

 

проходит интерпретация

 

 

 

промежуточного кода или докомпиляция

 

 

 

промежуточного кода до выполняемого

 

 

 

машинного кода. Java

фактуПо создания процесса

Языки, создающие

После запуска программы создается

процесс

отдельный процесс выполнения этой

 

программы

 

 

 

 

 

Сценарные языки

Сценарий, или скрипт – это программа,

 

 

 

которую выполняет другая программа

 

 

 

 

 

автономности

Автономные языки

Являются автономным инструментом

степениПо

программирования

для создания программ

Встроенные языки

системы

 

 

Являются частью какой-то системы и

 

 

программирования

позволяют создавать программы,

 

 

 

предназначенные для работы только этой

 

 

 

 

 

отдаленности

Машинно-

Ближе к логике процессора

уровнюПо

ориентированные

вычислительной машины

независимые (языки

языку

 

 

(языки низкого

 

 

 

уровня)

 

 

 

Машинно-

Ближе лингвистически к человеческому

 

 

высокого уровня)

 

 

 

Императивные

Описывают решение задачи как

 

 

(процедурные) языки

последовательность процедур

 

 

Функциональные

Описывают требуемый результат в виде

парадигмам

языки

набора вложенных друг в друга функций

 

Лисп, Common Lisp, Haskell

 

 

 

 

 

Логические языки

Описывают требуемый результат в виде

 

 

 

суммы логических операций. Prolog

По

Объектно-

Способны определять абстрактные типы

ориентированные

данных и реализовывать основные

 

 

 

 

языки

парадигмы объектно-ориентированного

 

 

 

программирования. C++, Java,

 

 

 

ObjectPascal

 

 

 

14

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

Постановка задачи:

сбор информации о задаче;

формулировка условия задачи;

определение конечных целей решения задачи;

определение формы выдачи результатов;

описание данных (их типов, диапазонов величин, структуры

ит.п.).

Анализ и исследование задачи, модели:

анализ существующих аналогов;

анализ технических и программных средств;

разработка математической модели;

разработка структур данных. Разработка алгоритма:

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

выбор формы записи алгоритма (блок-схемы, псевдокод и

др.);

выбор тестов и метода тестирования;

проектирование алгоритма. Программирование:

выбор языка программирования;

уточнение способов организации данных;

запись алгоритма на выбранном языке программирования. Тестирование и отладка:

синтаксическая отладка;

отладка семантики и логической структуры;

тестовые расчёты и анализ результатов тестирования;

совершенствование программы.

15

Анализ результатов решения задачи и уточнение в случае необходимости математической модели с повторным выполнением этапов 2-5.

Сопровождение программы:

доработка программы для решения конкретных задач;

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

Практический блок

Вопросы к семинару по теме «Языки программирования»

1.История возникновения языков программирования.

2.Машинно-ориентированные языки программирования. Ассемблер.

3.Машинно-независимые языки программирования. История появления языков программирования Бейсик и Паскаль.

4.Профессиональная деятельность программистов.

Список литературы:

1.Воройский, Ф.С. Информатика: новый систематизированный толковый словарь-справочник: (введение в современные информационные и телекоммуникационные технологии в терминах и фактах) / Ф.С. Воройский. – 3-е изд., перераб. и доп. – М.: ФИЗМАТЛИТ, 2003. – 760 с.

2.Голицына, О.Л. Языки программирования: учеб. пособие / О.Л. Голицына, Т.Л. Партыка, И.И. Попов. – М.: ФОРУМ: ИНФРА-М, 2014. – 400 с. (Профессиональное образование).

3.Информатика: учебник для бакалавров / под общ. ред. В.В. Трофимова. – М.: Юрайт: ИД Юрайт, 2013. – 917 с.

4.Информатика: Практикум по технологии работы на компьютере / Под ред. Н.В. Макаровой. – М.: Финансы и статистика,

2002.

5.Информатика: Учебник для вузов / Под ред. Н.В. Макаровой.

М.: Финансы и статистика, 2002. – 768 с.: ил.

6.Информатика. Учебник для вузов: стандарт третьего поколения. Гриф УМО МО РФ / Н.В. Макарова, В.Б. Волков. – СПб.:

Питер, 2013. – 574 с.

16

Задания для самостоятельной работы

Для чего предназначен программный способ записи алгоритмов?

Почему программирование является наукой и искусством? Что такое транслятор? Какие бывают трансляторы? Поясните на

примере.

Чем отличаются исходный код, машинный и исполняемый коды?

Что такое язык программирования?

Как классифицируются языки программирования?

Каковы этапы решения задач с помощью компьютера? Какие этапы выполняются без участия компьютера?

Какие существуют два пути для построения компьютерной модели? Приведите примеры решения одной задачи двумя путями.

Какие различают основные базовые алгоритмические конструкции?

Творческий блок

Опишите основные этапы эволюции языков программирования. Дайте краткую характеристику каждому этапу, приведите примеры языков программирования современного этапа (по учебнику Информатика. Учебник для вузов: стандарт третьего поколения. Гриф УМО МО РФ / Н.В. Макарова, В.Б. Волков. – СПб.: Питер, 2013,

глава 19, с. 559-562).

17

Тема 3. Структура языка программирования. Интегрированная среда программирования Turbo Pascal. Структура программы в среде программирования

Turbo Pascal

Теоретический блок

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

Перевод программы с языка ассемблера на машинный язык осуществляется специальной программой, которая называется ассемблером и является, по сути, простейшим транслятором.

Алгоритмический язык (как и любой другой язык) образуют три его составляющие: алфавит, синтаксис и семантика.

Алфавит – это фиксированный для данного языка набор основных символов, т.е. «букв алфавита», из которых должен состоять любой текст на этом языке – никакие другие символы в тексте не допускаются.

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

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

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

1. Имена (идентификаторы) – употребляются для обозначения объектов программы (переменных, массивов, функций и дp.).

18

Идентификатор – это набор символов, который начинается с буквы, он не может включать в себя некоторые специальные символы, его длина не должна превышать 127 символов. Неделимые последовательности знаков алфавита образуют слова, отделенные друг от друга разделителями и несущие определенный смыл в программе. Разделителем может служить пробел, символ конца строки. Набор слов в Pascal можно разделить на три группы: зарезервированные слова, стандартные идентификаторы, идентификаторы пользователя.

Зарезервированные слова являются составной частью языка, имеют фиксированное начертание и раз и навсегда определенный смысл.

Для обозначения заранее определенных разработчиками языка типов данных, констант, функций и процедур служат стандартные идентификаторы.

Для обозначения констант, переменных, процедур и функций, определяемых самим программистом, служат идентификаторы пользователя.

2. Операции. Типы операций:

арифметические операции:

+ ,

, * , / и дp. ;

логические операции:

и

,

или

,

не ;

операции отношения:

<

,

> , <= , >= , = , <> ;

операция сцепки (иначе, «присоединения», «конкатенации»)

символьных значений друг с другом с образованием одной длинной строки; изображается знаком «+».

3. Данные – величины, обрабатываемые программой. Имеется три основных вида данных: константы, переменные и массивы.

Константа – область памяти, адрес (имя), которую можно использовать для получения хранящегося в нем значения. Это данные, которые зафиксированы в тексте программы и не изменяются в процессе её выполнения.

Примеры констант:

числовые: 7.5, 12;

логические: да (истина), нет (ложь);

символьные (содержат ровно один символ): «А» , «+» ;

литерные (содержат произвольное количество символов): «a0», «Мир», «« (пустая строка).

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

19

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

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

4.Выражения – предназначаются для выполнения необходимых вычислений, состоят из констант, переменных, указателей функций (например, exp(x)), объединенных знаками операций.

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

Различают выражения арифметические, логические и строковые.

Арифметические выражения служат для определения одного числового значения. Например, (1+sin(x))/2. Значение этого выражения при x=0 равно 0.5, а при x=p/2 – единице.

Логические выражения описывают некоторые условия, которые могут удовлетворяться или не удовлетворяться. Таким образом, логическое выражение может принимать только два значения – «истина» или «ложь» (да или нет). Рассмотрим в качестве примера логическое выражение x*x + y*y < r*r, определяющее принадлежность точки с координатами (x, y) внутренней области круга радиусом r c центром в начале координат. При x=1, y=1, r=2 значение этого выражения – «истина», а при x=2, y=2, r=1 – «ложь».

Строковые (литерные) выражения, значениями которых являются тексты. В строковые выражения могут входить литерные и строковые константы, литерные и строковые переменные, литерные функции, разделенные знаками операции сцепки. Например, А + В означает присоединение строки В к концу строки А. Если А = «куст»,

аВ = «зеленый», то значение выражения А + В есть «куст зеленый».

5.Операторы (команды). Оператор – это наиболее крупное и содержательное понятие языка: каждый оператор представляет собой законченную фразу языка и определяет некоторый вполне законченный этап обработки данных. В состав операторов входят:

20

Соседние файлы в папке из электронной библиотеки