- •Введение
- •Алгоритмизация задач Понятие алгоритма
- •Виды записи алгоритма
- •Типы алгоритмов
- •Свойства алгоритма
- •Языки программирования
- •Общие сведения о языке программирования бейсик
- •Алфавит языка basic. Идентификаторы, константы, переменные
- •Константы
- •Переменные
- •Переменные с индексами
- •Выражения на языке basic
- •Запись математических выражений на Бейсике
- •Операции отношения Числовые операции отношения
- •При сравнении на равенство двух вещественных чисел рекомендуется ввести погрешность и сравнивать абсолютную величину разности этих двух чисел с величиной веденной погрешности. Например, так:
- •Строковые операции отношения
- •Структура программы. Комментарии в программе
- •Оператор присваивания
- •Операторы управления Операторы перехода и оператор stop
- •Условные операторы
- •Операторы цикла
- •Функции пользователя
- •Подпрограммы Операторы gosub и return
- •Оператор on - gosub
- •Операторы ввода - вывода Операторы read, dата и restore
- •Оператор input
- •Операторы вывода Оператор print
- •Дополнительные возможности оператора print
- •Оператор print using – форматный вывод
- •Средства подготовки и отладки программ Основные директивы интерпретатора
- •Выполнение программы в среде basic
- •Примеры составления типовых программ
- •Обработка одномерных массивов
- •Использование вложенных циклов при работе с индексированной переменной
- •Задания для лабораторных и самостоятельных работ Задание 1. Составить блок-схему алгоритма и программу вычисления функций:
- •Задание 2. Составить блок-схему алгоритма и программу разветвляющегося процесса:
- •Задание 4. Программирование алгоритмов циклической структуры
- •Задание 5. Составление алгоритмов и программ обработки одномерных массивов
- •5.1. Составление простейших алгоритмов обработки одномерных массивов
- •5.2. Решение циклических задач с использованием характерных приемов
- •Задание 6. Составление алгоритмов и программ обработки двумерных массивов
- •Задания для самостоятельной работы
- •2. Выполнить указанное преобразование над элементами массивов:
- •Описание множеств
- •Контрольная работа №1
- •1.Вычислить и вывести на экран значение функции
- •Тестовые задания
- •Список литературы
- •Методические указания и задания по алгоритмизации и программированию по дисциплине «Информатика»
Свойства алгоритма
Определенность - каждый шаг алгоритма должен быть точно и однозначно определен.
Массовость - алгоритм должен быть пригоден для решения любой задачи данного типа.
Дискретность - означает возможность разбиения всего алгоритма на части (фрагментирование) и выполнения его по частям.
Инвариантность - означает возможность решения задачи несколькими способами.
Результативность - означает, что, будучи примененным к соответствующему типу задач, алгоритм обязательно приведет к искомому результату. Результатом выполнения алгоритма должна быть одна или несколько выходных величин, зависящих от исходных данных.
Конечность – означает требование нормального завершения алгоритма за конечное количество шагов.
Необходимо отметить, что любой алгоритм всегда ориентирован на конкретного исполнителя, поэтому каждое указание алгоритма должно представлять собой команду из системы команд исполнителя.
Для решения одной задачи могут быть разработаны несколько алгоритмов.
Предпочтительнее (эффективнее) будет тот из них, в котором результат получается наименьшим числом наиболее простых операций. Алгоритм должен быть разработан таким образом, чтобы исполнитель мог его использовать и получать результаты, не вникая в смысл описанных действий.
Языки программирования
Процесс преобразования математической записи алгоритма в программу действий для компьютера называется программированием. Полученная программа представляет собой запись того же алгоритма в специальных обозначениях, т.е. на алгоритмическом языке.
Алгоритмический язык – это совокупность средств и правил для представления алгоритма в виде, воспринимаемом компьютером, и его исполнения. Алгоритмический язык, с одной стороны, близок к обычному языку и читается как обычный текст, с другой стороны, алгоритм включает в себя математическую символику, числа, обозначения величин и функций, знаки операций, скобки и т.д.
Различают языки программирования высокого уровня и низкого уровня. Каждая команда языка программирования низкого уровня представляет собой элементарное преобразование данных в регистрах памяти компьютера (сдвиг, поразрядное сравнение и т.п.), поэтому процесс создания программ на языках низкого уровня является весьма трудоемким и требует специальных знаний. Примерами языков программирования низкого уровня являются языки АССЕМБЛЕР, Форт и др.
Языки программирования высокого уровня по своей структуре очень похожи на языки общения человека с человеком, они также имеют свой алфавит, синтаксис и семантику.
В языке программирования высокого уровня каждая команда представляет собой микропрограмму (набор элементарных операций для ЭВМ), которая вызывается так называемым ключевым словом, поэтому пользователь может не вникать во внутренние преобразования данных при выполнении этой команды, а пользуясь лишь ключевыми словами данного алгоритмического языка. К языкам высокого уровня относятся ФОРТРАН, БЕЙСИК, ПАСКАЛЬ, и др.
Ключевые (служебные) слова алгоритмического языка - это слова, смысл и способ употребления которых задан однозначно, раз и навсегда. Их использование делает запись алгоритма более наглядной, а форму представления алгоритма – единообразной.
Программа на алгоритмическом языке не может быть непосредственно выполнена на ЭВМ, т.к. ЭВМ выполняет только последовательные элементарные операции из набора машинных команд. Перевод любой команды в соответствующий ей набор элементарных операций осуществляется самой ЭВМ с помощью специальной программы, называемой транслятором, а процесс перевода – трансляцией. Участие человека в этом случае сводится к исправлению так называемых синтаксических ошибок, обнаруженных в ходе трансляции.
ТРАНСЛЯТОРЫ: КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ
Транслятор - в широком смысле - программа, преобразующая текст, написанный на одном языке программирования, в текст на другом языке.
Транслятор - в узком смысле - программа, преобразующая программу, написанную на одном (входном) языке, в программу, представленную на другом (выходном) языке.
Существуют два основных способа реализации языка программирования – интерпретация и компиляция. Соответственно, имеется два типа программ, которые входят в состав систем программирования – интерпретатор и компилятор.
Интерпретатор - транслятор, способный параллельно переводить и выполнять программу, написанную на алгоритмическом языке высокого уровня.
Интерпретатор выполняет синтаксическую проверку, а затем и выполнение последовательно для каждой команды программы. Примером интерпретатора является большинство модификаций языка программирования БЕЙСИК.
Компилятор - программа, преобразующая текст, написанный на алгоритмическом языке, в программу, состоящую из машинных команд. Компилятор создает законченный вариант программы на машинном языке.
Компилятор последовательно преобразует в объектные коды исходный текст программы, записанной на алгоритмическом языке, подключает редактор связей, библиотеку стандартных функций и создает, таким образом, программный модуль, готовый к выполнению. Компиляторы обладают более высоким быстродействием по сравнению с интерпретаторами. Компиляторами являются такие языки программирования высокого уровня, как ФОРТРАН, ПАСКАЛЬ, СИ и др. Большинство современных версий языка программирования БЕЙСИК также являются компиляторами.
