- •Информатика. Алгоритмизация
- •Алматы 2009
- •1 Лабораторная работа 1. Создание линейного алгоритма
- •1.1 Составление линейного алгоритма и программы
- •1.2 Варианты заданий и контрольные вопросы
- •Контрольные вопросы
- •2 Лабораторная работа 2. Разветвленный алгоритм. Повторения
- •2.1 Создание разветвленного алгоритма и программы
- •2.2 Варианты заданий и контрольные вопросы
- •Контрольные вопросы
- •3 Лабораторная работа 3. Алгоритм с оператором выбора
- •3.1 Создание алгоритма с оператором выбора
- •3.2 Задания и контрольные вопросы
- •Контрольные вопросы
- •4 Лабораторная работа 4. Циклические алгоритмы
- •4.1 Создание циклических алгоритмов и программ
- •4.2 Задания и контрольные вопросы
- •5 Лабораторная работа 5. Применение циклических алгоритмов
- •5.1 Применение циклов
- •5.2 Задания и контрольные вопросы
- •6 Лабораторная работа 6. Подпрограмма – функция
- •6.1 Создание подпрограмм - функций
- •6.2 Задания и контрольные вопросы
- •7 Лабораторная работа 7. Символьная и строковая информации
- •7.1 Обработка символов
- •7.2 Варианты заданий и контрольные задания
- •Приложение a Элементы блок – схем и клавиатура
- •Клавиатура
- •Приложение б Структура программы и встроенные функции
- •Приложение в Основные элементы языка Turbo Pascal
- •Часто встречающиеся ошибки в программах
- •Список литературы
- •Содержание
- •Информатика. Алгоритмизация
Некоммерческое
акционерное общество
Кафедра
инженерной кибернетики
Методические
указания к
выполнению лабораторных работ
для
студентов всех форм обучения специальности
050718 - Электроэнергетика
к
выполнению лабораторных работ
для
студентов всех форм обучения специальности
050702 –Автоматизация и управлениеИнформатика. Алгоритмизация
Алматы 2009
СОСТАВИТЕЛЬ: В. М. Тарасов. Информатика. Алгоритмизация. Методические указания к выполнению лабораторных работ для студентов всех форм обучения специальности 050718 – Электроэнергетика. -Алматы: АИЭС, 2009. – 36 с.
Представлены методические указания к выполнению лабораторных работ по разделу алгоритмизация дисциплины «Информатика» для студентов всех форм обучения специальности 050718 – Электроэнергетика. Они содержат систематизированные сведения и рекомендации, которые могут быть использованы студентами очного и заочного отделений при выполнении лабораторных работ. Во время лабораторных работ студенты осваивают технологию и практику разработки программ.
Рецензент: канд. тех. наук, профессор Шевяков Ю.В.
Печатается по плану издания некоммерческого акционерного общества «Алматинский институт энергетики и связи» на 2009 год.
©
Введение
Язык Pascal является языком программирования высокого уровня, то есть все операторы составлены из действительных английских слов. Однако математические возможности его ограничены.
Перед выполнением лабораторной работы студент обязан внимательно ознакомиться с ее описанием, изучить предлагаемый теоретический материал, подготовить текст программы для своего варианта. После выполнения очередной работы, студент должен к следующему занятию выполнить отчет, включающий цель работы, текст варианта задания, блок-схему, листинг программы, результаты работы программы и подготовиться к ответам на контрольные вопросы. Вариант задания выдается преподавателем.
Решение задач на ЭВМ включает в себя следующие этапы: математическая формулировка задачи, разработка алгоритма ее решения, написание текста программы и подготовка исходных данных.
Алгоритм– это формальное описание способа решения задачи путем разбиения ее на конечную последовательность действий (этапов), понятных исполнителю. Алгоритм может быть выполнен в графическом виде для человека или в виде программы для ПК. Графический алгоритм выполняется в видеблок – схемы,то есть совокупности геометрических фигур, приведенных в приложении А, и стрелок, указывающих следующее действие. Формулы в блок-схеме записываются на языке математики.
1 Лабораторная работа 1. Создание линейного алгоритма
Цель работы – ознакомление с правилами построения линейных алгоритмов и представление его в виде программы
1.1 Составление линейного алгоритма и программы
1.1.1 Память ПК и типы данных
Данные и результаты вычислений хранятся в ячейках оперативной памяти. Ячейка памяти может представлять собой байт или несколько объединенных байтов. Ячейки памяти нумеруются в двоичной системе. Часть оперативной памяти можно представить в виде схемы, показанной на рисунке 1.1, где нумерация ячеек приведена в шестнадцатеричной системе счисления.
Bukva
b
x
y
a Рисунок
1.1 – Часть оперативной памяти ПК
Однако программисту удобнее иметь дело с именами ячеек памяти, а не с их номерами, поэтому ячейкам присваивают имена (идентификаторы). Имя должно начинаться с буквы и может содержать другие буквы, цифры и символы подчеркивания, написанные слитно. Буквы применяются латинские. Например: Temperatura_vozdukha_v_zdanii. В учебных коротких программахдопустимоприменять короткие имена:a, b, bukva, Slovo, X, Y, Maxи т.д. Имена переменных, применяемые пользователем, не должны совпадать сзарезервированными словами, приведенные в таблице В.1.
Переменные – это ячейки памяти, для хранения данных, например, чисел или символов. Их значение меняется при выполнении программы.
Константыотличаются от переменных тем, что их значения нельзя изменить в ходе выполнения программы.
Тип данныхchar. Минимальная ячейка памяти содержит восемь бит. В каждый бит можно записать целые числа 0 или 1. Поэтому в байт можно записать целые числа от 0 до 255, всего 256 чисел. Этим числам можно придать значения кодов символов. Например, латинской букве А присвоен код 65. При нажатии на клавиатуре символа А, в память компьютера будет записан его код 65. При выводе на экран код 65 будет преобразован в рисунок символа А.
Тип данныхinteger. При использовании двух байт для ячейки памяти, в нее можно записать целые числа от 0 до 65535. Разделив этот диапазон пополам, в него можно записать целые числа от -32768 до +32767.
Тип данных real. Целые числа и числа с плавающей точкой могут быть представлены в различных формах см. таблицу В.2.
Дробные числа в программе записываются в десятичной системе, для отделения дробной части ставится точка: 0, -19, 0.27, 3.1415 и т.д. Дробные числа, можно представить как числа с плавающей запятой (точкой). Пример числа записанного в форме с плавающей запятой: 3.1415 = 3.1415*100 = 0.31415*101 = 0.031415*102 = 31415*10-4. На экран это число может быть выведено в виде 0.0314150000Е+02, такой вид называетсяинженерным форматомчисла. Дробные числа записываются в память ПК в показательной форме: например, в один байт ячейки памяти записывают показатель степени как целое число, в остальные мантиссу тоже как целое число. Помните дробные числа всегда приближенные.
Принятый тип переменной определяет так же и действия, которые можно производить с переменной.
При выполнении арифметических операций с целыми числами результат также должен быть целым, поэтому простое обычное деление целых чисел невозможно. Символы непосредственно нельзя вычитать или умножать.
В программе не имеет значения регистр букв, количество пробелов, поэтому выражения “writeln(Х)” и “WRiteLn (х)” равноценны.
Для записи значений в переменные применяется оператор присваивания «:=». Примеры: а:=12; bukva:=’h’; X:=4.234, Slovo:=’Massiv’.
Структура простейшей программы на Pascal приведена в таблице Б.1. В описательной части задаются имя программы, метки и константы, которые будут использоваться в программе, а также переменные и их типы. Главной частью программы является ее исполнительная часть, то есть последовательность инструкций, которую должен выполнить компьютер. Эти инструкции принято называть выражениями. В них могут быть использованы круглые скобки и встроенные функции см. таблицу Б.2.
В арифметических выражениях должны соблюдаться правила:
два знака арифметических операций не должны стоять рядом;
целый тип, без специального преобразования, не может быть получен после арифметических операций с дробными числами или после функций дающих дробный результат. Например, при вычислении квадратного корня получается дробное число. Хотя на экране оно может выглядеть как целое.
1.1.2 Операторы ввода и вывода
Для вывода значений переменных или сообщений на экран применяются операторы Writeln() или Write(). Суффикс ln обозначает перевод курсора после вывода сообщения на новую строку (аналог клавиши Enter). В скобках указывается пояснительный текст между апострофами, через запятую имена переменных, значения которых выводятся на экран, и формат вывода переменных.
Примеры. Пусть в переменной Х содержится значение 23.174397533756787, а в переменной h значение 4.63847249138556789.
По оператору Writeln (‘Dlina=’,X,’ Vysota=’, h) на экран выйдет сообщение Dlina=2.3147397534E+01 Vysota=4.6384724914E+00.
Русские слова следует писать латинскими буквами с помощью специального кода, который можно посмотреть в приложении Г.
Значение переменной можно вывести в форматированном виде, указав параметры вывода Writeln (‘Dlina=’, X:7:2, Vysota=’, h:6:2). Тогда на экран выйдет сообщение «Dlina= 23.15 Vysota= 4.64». Здесь числа 7 и 6 указывают количество знакомест на экране для вывода значений переменных, число 2 - количество дробных знаков. Округление выполняется.
Для ввода данных при помощи клавиатуры в работающую программу применяют операторы ввода Readln (Х) или Read (х). После набора символов на клавиатуре и нажатия на клавишу Enter, набранные символы по оператору Readln (Х), запоминаются в переменной Х и курсор переходит на следующую строку. Работа оператора Read (Х) более сложная, лучше с ней ознакомиться по литературе.
Внимание! Перед оператором ввода всегда пишется комментарий с помощью оператора Write().
Пример: Write (‘Vvedite znachenie dliny ->’); Readln (x);. Оператор Readln; без аргументов обозначает ожидание нажатия любой клавиши и часто используется для останова программы и просмотра ее результатов.
Оператор присваивания позволяет изменить текущее значение переменной. Вычисляется сначала выражение, стоящее справа от знаков ":=" ("присвоить"), результат присваивается переменной, стоящей в левой части оператора. По выражению Р:= 5*10-2; в переменную Р запишется число 48.
Списки операций и встроенных функций даны в таблицах Б.2 и В.3.
Число представлено как функцияPi. Пример записи: X:=Cos(Pi/4).
Особенности записи математических выражений в программе:
- все выражения пишутся в одну строку, поскольку надстрочных и подстрочных символов не существует;
- все аргументы функций обязательно пишутся в скобках;
- знаки умножения в выражениях ставятся обязательно. Иначе Pascalбудет считать получившийся набор символов именем переменной, для которой не выбран тип и пометит как ошибку в программе.
Для ускорения печати программы, рекомендуется пользоваться специальными клавишами, приведенными в приложении А.
При программировании довольно часто возникают ошибки из-за несоответствия написанных выражений программы правилам, заложенным в язык. Некоторые ошибки приведены в приложении Д.
Любой алгоритм синтезируют из типовых элементов: алгоритмов линейной, разветвляющейся и циклической структуры.
Алгоритм называется линейным, если все операторы в нем выполняются последовательно друг за другом в порядке записи.
1.1.3 Пример линейного алгоритма и программы
Требуется вычислить функцию . Данные - значения переменных A и X ввести с клавиатуры.
Блок – схема алгоритма и текст программы приведены на рисунке 1.2.
Пояснения к программе.
Выражением Uses Crt в программе задействована библиотека, позволяющая форматировать выводимый текст и очищать экран командой ClrScr. Все переменные, участвующие в программе, объявляются в разделе Var ее описательной части. Ввод данных осуществляется с комментарием, поэтому сначала записан оператор Write, а затем Readln. Вывод осуществляется форматным способом.
Комментарии к тексту программы пишутся в фигурных скобках. Транслятор текст, написанный в фигурных скобках, пропускает. Чтобы в программе не было громоздких выражений, сложные выражения разбивают на более простые части. Например, отдельно вычисляют числитель и знаменатель дроби.