Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
По алгоритмизации и программированию для↑ Стр 1 из 8Следующая ⇒ Содержание книги
Поиск на нашем сайте
По алгоритмизации и программированию для лабораторных и самостоятельных работ по дисциплине «Информатика» 310200 «Агрономия», 320400 «Агроэкология», 310700 «Зоотехния», 311200 «Технология производства и переработки сельскохозяйственной продукции», 310800 «Ветеринарной медицины», 060500 «Бухгалтерский учет, анализ и аудит», 060800 «Экономика и управление на предприятиях АПК», 062100 «Управление персоналом» Белгород - 2008 УДК 681.3.06(076. 5) ББК 32.973-018 М 54 Методические указания и задания по алгоритмизации и программированию по дисциплине «Информатика» для выполнения лабораторных и самостоятельных работ для студентов всех специальностей/ Белгород: Изд-во БелГСХА, 2008. - 63 с.
Составители: доцент, канд. техн. наук Головкин А.В.; доцент, канд. экон. наук Кравченко Д.П.; ст. преп. Павлова О.В.; ст. преп. Асеева О.В.; ассистент Тюкова Л.Н.
Приведены основные понятия теории алгоритмов и способы записи алгоритмов. Изложены основы программирования на языке Basic базовых конструкций. Приведены вопросы и задания, выполнение которых позволит освоить особенности программирования задач различной степени сложности.
Рецензент: зав. каф. морфологии факультета ВМ, доцент, канд.биол.наук Литвинов Ю.Н.
Рекомендовано к изданию методическим советом финансово-учетного факультета БелГСХА
©Белгородская государственная сельскохозяйственная академия ВВЕДЕНИЕ Способность выполнять и составлять алгоритмы занимает центральное место в компьютерной грамотности и играет важную роль при обработке информации и решении задач. Процесс решения любой задачи является результатом умственных усилий, т.е. последовательностью согласованных операций или шагов, заканчивающихся искомым значением. Составление алгоритма предполагает осознание процесса решения задачи в целом и может быть полезным в любой практической деятельности. АЛГОРИТМИЗАЦИЯ ЗАДАЧ Понятие алгоритма Алгоритм является основой для написания любого вида программ для ЭВМ. Термин алгоритм происходит от латинской формы написания имени узбекского математика IX века Мухаммеда ибн Муссы аль-Хорезми, которым впервые были сформулированы правила выполнения арифметических действий с использованием арабских цифр. Алгоритм представляет собой предписание, однозначно определяющее содержание и последовательность операций, переводящих совокупность исходных данных в искомый результат – решение поставленной задачи. Виды записи алгоритма 1. Словесно-формульный ( на естественном языке ). Представляет собой описание хода решения задачи в виде последовательности действий, сформулированных словесно или в виде математических формул. 2. Графический (представление хода решения задачи в виде стандартных геометрических фигур, или, как говорят, в виде блок-схемы или просто схемы). При этом могут использоваться следующие графические обозначения:
3. Табличный (представление алгоритма в виде таблиц или матриц и расчетных формул).
4. На языке программирования - запись алгоритма на алгоритмическом языке.
Типы алгоритмов 1. Линейный. В линейных алгоритмах действия по обработке информации выполняются последовательно. 2. Разветвляющий. Разветвляющиеся алгоритмы всегда содержат одно или несколько логических условий и, соответственно, несколько ветвей вычислений. Частный случай разветвления – обход. 3. Циклический. Циклические алгоритмы содержат одну или несколько многократно повторяющихся частей. Циклическими вычислениями управляет параметр цикла (управляющая переменная), его начальное значение, конечное значение и характер изменения задаются при описании цикла. 4. Комбинированный. Это наиболее часто встречающийся тип алгоритма, в нем могут присутствовать элементы всех названных выше типов алгоритмов.
Свойства алгоритма § Определенность - каждый шаг алгоритма должен быть точно и однозначно определен. § Массовость - алгоритм должен быть пригоден для решения любой задачи данного типа. § Дискретность - означает возможность разбиения всего алгоритма на части (фрагментирование) и выполнения его по частям. § Инвариантность -означает возможность решения задачи несколькими способами. § Результативность - означает, что, будучи примененным к соответствующему типу задач, алгоритм обязательно приведет к искомому результату. Результатом выполнения алгоритма должна быть одна или несколько выходных величин, зависящих от исходных данных. § Конечность – означает требование нормального завершения алгоритма за конечное количество шагов. Необходимо отметить, что любой алгоритм всегда ориентирован на конкретного исполнителя, поэтому каждое указание алгоритма должно представлять собой команду из системы команд исполнителя. Для решения одной задачи могут быть разработаны несколько алгоритмов. Предпочтительнее (эффективнее) будет тот из них, в котором результат получается наименьшим числом наиболее простых операций. Алгоритм должен быть разработан таким образом, чтобы исполнитель мог его использовать и получать результаты, не вникая в смысл описанных действий. Языки программирования Процесс преобразования математической записи алгоритма в программу действий для компьютера называется программированием. Полученная программа представляет собой запись того же алгоритма в специальных обозначениях, т.е. на алгоритмическом языке. Алгоритмический язык – это совокупность средств и правил для представления алгоритма в виде, воспринимаемом компьютером, и его исполнения. Алгоритмический язык, с одной стороны, близок к обычному языку и читается как обычный текст, с другой стороны, алгоритм включает в себя математическую символику, числа, обозначения величин и функций, знаки операций, скобки и т.д. Различают языки программирования высокого уровня и низкого уровня. Каждая команда языка программирования низкого уровня представляет собой элементарное преобразование данных в регистрах памяти компьютера (сдвиг, поразрядное сравнение и т.п.), поэтому процесс создания программ на языках низкого уровня является весьма трудоемким и требует специальных знаний. Примерами языков программирования низкого уровня являются языки АССЕМБЛЕР, Форт и др. Языки программирования высокого уровня по своей структуре очень похожи на языки общения человека с человеком, они также имеют свой алфавит, синтаксис и семантику. В языке программирования высокого уровня каждая команда представляет собой микропрограмму (набор элементарных операций для ЭВМ), которая вызывается так называемым ключевым словом, поэтому пользователь может не вникать во внутренние преобразования данных при выполнении этой команды, а пользуясь лишь ключевыми словами данного алгоритмического языка. К языкам высокого уровня относятся ФОРТРАН, БЕЙСИК, ПАСКАЛЬ, и др. Ключевые (служебные) слова алгоритмического языка - это слова, смысл и способ употребления которых задан однозначно, раз и навсегда. Их использование делает запись алгоритма более наглядной, а форму представления алгоритма – единообразной. Программа на алгоритмическом языке не может быть непосредственно выполнена на ЭВМ, т.к. ЭВМ выполняет только последовательные элементарные операции из набора машинных команд. Перевод любой команды в соответствующий ей набор элементарных операций осуществляется самой ЭВМ с помощью специальной программы, называемой транслятором, а процесс перевода – трансляцией. Участие человека в этом случае сводится к исправлению так называемых синтаксических ошибок, обнаруженных в ходе трансляции.
ТРАНСЛЯТОРЫ: КОМПИЛЯТОРЫ И ИНТЕРПРЕТАТОРЫ АЛФАВИТ ЯЗЫКА BASIC. Константы В языке Basic используются числовые и символьные константы. Числовые константы записываются в двух формах: с фиксированной точкой (естественной) и с плавающей точкой (полулогарифмической). С фиксированной точкой число представляется последовательностью десятичных цифр со знаком плюс или минус (знак плюс может быть опущен). Для отделения целой части от дробной используется точка. Помимо описанных числовых констант в Basic могут быть использованы двоичные, шестнадцатеричные, восьмеричные константы. Примеры числовых констант с фиксированной точкой: 195, 43.235, +108, -10.31, 0.475, -. 41 (0 целых можно опускать). Примеры записи двоичной и 16-ричной константы: 100100, 17FB. Число с плавающей точкой записывается в виде ± тЕ ± р, где т — мантисса числа, которой предшествует знак плюс или минус; Е — разделитель мантиссы и порядка; р — порядок числа, которому предшествует знак порядка (плюс или минус). Мантисса - число с фиксированной точкой, знак мантиссы определяет знак числа. Число считается нормализованным, если мантисса удовлетворяет условию 0,1 ≤ т < 1. При записи числа с плавающей точкой мантисса обязательна. Порядок может быть только целым. Он определяет положение десятичной точки в числе. Знак плюс в порядке может быть опущен. Примеры: а) Правильные записи чисел -0.052Е-04 (-0.052*10-4) -1Е-17 (-10-17) -.76Е-03 (-0,00076) б) Ошибочные записи чисел: Е5 отсутствует мантисса 1Е отсутствует порядок -10.3Е1.7 порядок не является целым числом +21Е+1200 значение числа находится за пределами допустимого диапазона чисел. Символьная (строковая) константа представляет собой один или несколько символов, заключенных в кавычки. Длина символьной константы не более 256 символов. Примеры символьных констант: «Информатика», «Агропарк»,«БелГСХА», «13-Т», «39-23-06», «1/2».
Переменные В языке Basic используются два типа переменных: числовые, символьные. Числовая переменная обозначается идентификатором и резервирует в памяти место, в котором будет размещаться числовая константа. Для задания типа числовой переменной используются специальные символы объявления: % - целая переменная ! - переменная обычной точности # - переменная двойной точности. Символьные переменные принимают значения символьных констант и резервируют в памяти место для размещения символьных констант. Любое имя переменной, за которой стоит знак $, указывает на символьную переменную. Пример: F$ - символьная переменная, R% — целая переменная. Переменные с индексами Переменные с индексамипредназначены для обозначения элементов массива. С понятием «массив» приходится сталкиваться при решении научно-технических и экономических задач обработки совокупностей большого количества значений. Массив - это множество однотипных элементов, объединённых общим именем и занимающих в памяти компьютера определённую область. Общий идентификатор всех величин, входящих в состав массива, называется идентификатором массива. Им может быть любое принятое в Basic имя переменной. В качестве элементов массива можно использовать любой тип данных, поэтому вполне правомерно существование массивов числовых значений, массивов строк и т.д. Запись переменной с индексом состоит из имени массива и следующего за ним в круглых скобках индекса. Индекс определяет положение элемента в массиве. В эталонном языке Basic используются одномерные и двумерные массивы. В расширенных версиях языка возможно использование массивов с большим числом измерений, причем это число практически ограничивается только емкостью свободной памяти компьютера. Число индексов определяет размерность массива: одномерный, двумерный и т. д. Одномерный массив соответствует вектору, двумерный массив — матрице (таблице). В двумерном массиве первый индекс обозначает номер строки таблицы, второй — номер столбца таблицы. Для каждого массива в программе должен быть указан его максимальный размер, т.е. максимальные значения, которые могут принимать индексы. Это нужно для того, чтобы интерпретатор мог зарезервировать соответствующий объем памяти. Массив описывается зарезервированным словом DIM. Первоначально все элементы описанных массивов имеют нулевые значения. Например, запись DIM A(N) предписывает предоставить N свободных ячеек памяти ЭВМ для одномерного числового массива с именем А. Каждый элемент массива в общем виде описывается как А(I), где I - номер или индекс массива (0<=I<=N). A(I) - значение I-го элемента массива. Индексы элементов массивов принимают значения целых чисел, начиная с 0, т.е. для одномерного массива элементы именуются А(0), А(1), А(2) и т.д. Для задания начального значения индекса используется оператор Option base, содержимым которого является 0 или 1 (по умолчанию начальный индекс массива равен 0). Пример: 10 Option base 1 В этом случае начальное значение индекса следующих в программе массивов будет начинаться с 1. Так, оператор DIM В(2,3) описывает двумерный числовой массив (матрицу) с элементами В(1,1), В(1,2), В(1,3), В(2,1), В(2,2), В(2,3). Если описание массива отсутствует, то под одномерный массив выделяется 10 ячеек памяти. Индекс в общем случае является арифметическим выражением. В момент использования индекс должен иметь положительное целое значение. Для изменения значений индексных переменных используют те же операторы БЕЙСИК, что и в случае простых переменных. Пример: 10 DIM А1(10), МТ(3,4), S$(6) В строке описан массив А1 с максимальным количеством элементов, равным 10 элементов, двумерный массив (матрица) МТ с количеством элементов 3х4 = 12 элементов, символьный массив S$ - 6 элементов. Описание массивов всегда должно предшествовать использованию их элементов в других операторах. Пример: Аlfa (1)=0.5 - первому элементу числового массива с именем Аlfa присваивается значение 0.5; X=В2(10) - переменной Х присваивается значение десятого элемента числового массива с именем В2; S$=S$+С$(5) - строка символов S$ удлиняется на пятый элемент символьного массива С$; TER(2,4) = MIN - элементу двумерного числового массива TER, находящемуся на пересечении 2-й строки и 4-го столбца таблицы присваивается значение переменной MIN. ВЫРАЖЕНИЯ НА ЯЗЫКЕ BASIC Последовательность операций, которые необходимо произвести над данными, чтобы получить требуемое значение, называется выражением. В Basic допустимы выражения двух типов: числовые и строковые. Числовые выражения - выражения, в которых предусматриваются только числовые операции: арифметические, логические, операции отношений и вызов функций. Арифметические операции выполняют действия обычной арифметики. В качестве операндов в них используются константы, простые переменные, переменные с индексами, указатели функций, соединенные знаками арифметических операций и круглыми скобками. Запись выражений производится в одну строку слева направо. Запись подстрочных и надстрочных символов не допускается.
Таблица 1. Арифметические операции
Функция - это заранее определённая операция над данными. В Basic существует два вида функций: встроенные (стандартные) и определённые пользователем (нестандартные). Таблица 2. Встроенные математические функции
Тригонометрические функции, отсутствующие в таблице, определяются по известным математическим формулам, например, ARCSIN(X)=ATN(X/SQR(1-X^2)). При решении задач часто используются и другие функции: 1. RND - имя функции для генерирования так называемых случайных чисел в интервале значений (0,1) с максимальной разрядностью. Интервал, в который попадают сгенерированные числа, может быть изменен. Например, для генерации целых чисел в интервале (0,10) может быть построено следующее выражение: INT(10* RND)+1. Аналогичным образом можно построить функцию для генерирования случайных чисел в любом заданном интервале. RND(1) - генератор случайных чисел, который задаёт случайные числа из интервала от 0 до 1. Случайные числа от 1 до 100могут быть сгенерированы оператором: N=(RND(1)*100+1) 2. INT(числовое выражение) - эта функция основана на операции целочисленного деления, используется для отбрасывания дробной части числа, являющегося результатом деления (INT(14.6) = 15, INT(14.1) =14, INT(-15.2) = -15, INT(-15.8) = -16. Функция INT в свою очередь,может быть использована для того, чтобы генерируемые числа от 1 до 100 были натуральными: N=INT(RND(1)*100+1). FIX(X) - используется для отбрасывания дробной части числа без округления результата, например: FIX(2.5) = 2 или FIX(-3.4) = -3. Функция MOD выполняет деление с округлением результата, как и “\”, но результатом является остаток от целочисленного деления (33 MOD 7 = 5). ОПЕРАЦИИ ОТНОШЕНИЯ Числовые операции отношения Вычисление выражений, содержащих операнды различного типа, осуществляется в следующем порядке: 1) вычисляются значения функций; 2) выполняются арифметические операции с учетом приоритетов; 3) выполняются операции отношения в соответствии с приоритетами; 4) выполняются логические операции в соответствии с приоритетами. Действие операций отношения для числовых аргументов соответствует их математическому пониманию. Результатом этих операций является булевское значение True (истина, да), False (ложь, нет). Простейшим булевским выражением являются отношения, которые представляют собой два арифметических выражения, связанные знаком операции отношения. Список операций отношения приведен в таблице 3. Булевские переменные и выражения называют также логическими.
Таблица 3. Знаки операций
Выражения отношения, являющиеся операндами булевских операций, обязательно заключаются в круглые скобки. При сравнении на равенство двух вещественных чисел рекомендуется ввести погрешность и сравнивать абсолютную величину разности этих двух чисел с величиной веденной погрешности. Например, так: abs(Y - Yl) <= 0.000001.Упражнения 1. Записать следующие числа на языке Basic в режиме с фиксированной точкой и в режиме с плавающей точкой: 0,348 10-3; -3,05; 1,7-10-3; 6,75; 100000. 2. Какие из приведенных записей можно рассматривать как десятичные константы с фиксированной точкой: а) 23 б) 3,14 в) 0ЕЗ г) -1 д) 0,0625 е) +5,76 ж).03 з) 463 3. Указать, какие из приведенных записей можно рассматривать как иден-тификаторы переменной: а)Х5 б) А.4 в) К г) 7К д) А% Б. 4. Записать следующие выражения на языке Basic: ________________ b2 + c2 - a2 c = Ö a2+ b2 – 2 a×b×cosC; A = arccos--------------; B = p-(A+C); S = (a×c×sinB)/2. 2×b×c 5. Указать порядок выполнения операций а) Х > Y + 3 АND Х< 3; б) Х ^ Y /2+7; в) SQR(X) > 7 AND SQR(X) < 1.5
ОПЕРАТОР ПРИСВАИВАНИЯ Оператор присваивания имеет формат: < номер строки> LET <переменная> = <выражение> Действие этого оператора состоит в вычислении значения выражения записанного справа от знака равенства и присвоении этого значения переменной, указанной слева от знака равенства. В операторе присваивания могут использоваться переменные числового и символьного типа, простые и переменные с индексами. Необходимо, чтобы тип переменной совпадал с типом выражения (т.е. числовой переменной присваивается арифметическое выражение, символьной переменной - символьное выражение). Зарезервированное слово LET можно опускать в записи оператора. Например: 10 LET A = 6.3 20 LET В = sin(x^2+1)/(2+a*a*b) 110 M=X(I,J)^2 30 LЕТ A$= " Наименование: Цена: Количество: Стоимость" Под символьным выражением понимается любая последовательность символьных констант, переменных и функций, соединенных с помощью операции конкатенации (+). Операция конкатенации определяет, что два операнда соединяются вместе и образуют новую строку символов, где за последним символом первого операнда сразу же следует первый символ правого операнда. Длина строки, полученной в результате, равна сумме длин операндов. Например: 200 S$=” БелГСХА, “+”2008 год“ В результате выполнения такого оператора присваивания символьная переменная S$ получит значение ” БелГСХА, 2008 год“ В Basic могут использоваться следующие функции над символьными строками: LEFT$(< строка>, N) - выделяет из "строки" подстроку с первого до N-го знака. Здесь и далее над аргументом <cтрока> будем понимать символьное выражение, а аргумент N должен быть целым числом или выражением, принимающим целочисленное значение. Если N равно или больше длины строки, выдается вся строка. Если N=0, выдается пустая строка. Например: функция LEFT$("АВСD", 3) дает результат "АВС". RIGHT$ (<cтрока>, N) - выделяет наиболее правые символы "строки". Если N равно или превышает длину строки, выдается вся строка. Если N=0, выдается пустая строка. Например: функция RIGHT$("ABODE",2) дает строку "DЕ". MID$ (<строка>, N1, N2) - проверяет "строку" и возвращает N2 символов, начиная с позиции NI. Если NI больше, чем строка. MID$ возвращает пустую строку. Например: функция MID$("АВСDЕ", 2, 3) дает результат "BCD". LEN (<строка>) - функция определяет длину строки, то есть возвращает целое число, равное количеству символов в строке. Например: Функция LEN ("ABCDE") дает результат 5. VAL (<строка>) - функция преобразует цифровую строку в числовое значение. Строка может включать цифры, знаки "+", "-", "." и "Е". Если строка содержит другие знаки, то значение функции равно нулю. Например: VAL ("1E3") дает числовое значение 1000. STR$ (<выражение>) - действие функции противоположно действию функции VAL: она преобразует числовое значение в цифровую строку. Например: STR$(9372) дает строку 9372. ASC (<строка>) - функция возвращает код КОИ-7 первого символа указанной строки. Функция ASG ("АВСD") дает значение 65. CHR$ (<выражение>) - функция возвращает символ КОИ-7, код которого равен значению выражения. Выражение должно приводиться к целому числу между 0 и 255. Например: Функция CHR$(65) дает символ А. ОПЕРАТОРЫ УПРАВЛЕНИЯ Условные операторы Условные операторы позволяют, в зависимости от результата проверки некоторого условия, выполнить или не выполнить некоторый оператор, а также передать управление другой строке. Оператор может быть использован в одном из форматов: 1. < номер строки > IF <условие> THEN < номер строки1 > 2. < номер строки > IF <условие> THEN <оператор> 3. < номер строки > IF <условие> THEN <оператор1> ELSE <оператор2> Условие представляет собой логическое выражение. В случае, когда условие принимает значение “истина”, управление передается оператору с номером строки 1 (1-й вариант формата) или выполняется оператор (операторы), записанный после THEN (2-й вариант формата).
После выполнения оператора управление передается оператору с последующим номером строки. В случае невыполнения условия управление также передается оператору с последующим номером строки. Отличие 3-го варианта формата оператора от предыдущих состоит в том, что в случае, когда условие принимает значение“истина”, выполняются действия <оператор1>, иначе действия <оператор2>. После этого управление также передается оператору с последующим номером строки. Операторы цикла
Циклические программы (участки программ) можно записывать, используя операторы IF и GOТО. Но для упрощения процедуры составления циклов и с целью их четкого выделения в программе могут быть использованы специальные операторы FOR … NEXT, WHILE … WEND, DO …LOOP. Оператор FOR, называемый заголовком цикла, всегда предшествует повторяющейся группе операторов, составляющих так называемое тело цикла. Формат оператора FOR: <номер строки> FOR <имя переменной> = <выражение 1> ТО <выражение 2> [ SТЕР <выражение 3>] Имя переменной в операторе FOR называют управляющей переменной или параметром цикла, а <выражение 1>, <выражение 2> и <выражение 3> представляют собой начальное значение параметра цикла, конечное значение параметра цикла и шаг изменения параметра цикла соответственно. Если " STEP <выражение 3> " опущено, то шаг изменения параметра цикла полагается равным 1. Во время выполнения оператора FOR вычисляются или задаются параметры цикла (начальное и конечное значения управляющей переменной, величина шага изменения) и присваивается начальное значение управляющей переменной. Тело цикла начинается вслед за оператором FOR и завершается оператором NEXT, который имеет следующий формат: <номер строки> NEXT [имя переменной] Здесь [имя переменной] соответствует управляющей переменной в заголовке цикла. При выполнении оператора NEXT производится изменение значения управляющей переменной на величину шага и проверка условия окончания цикла. Цикл повторяется до тех пор, пока значение управляющей переменной не станет строго больше (при положительном шаге изменения) или строго меньше (при отрицательное шаге изменения) конечного значения. Можно выйти из цикла и в том случае, если параметр цикла не достигает конечного значения. Для этого используют операторы условного и безусловного перехода. При использовании вложенных циклов (циклов в цикле) требуется, чтобы область действия внутреннего цикла полностью находилась в области действия внешнего цикла. Операторы FOR и NEXTне могут выполняться в операторе IF. С помощью конструкции WHILE … WEND можно реализовывать выполнение ряда операторов до тех пор, пока выполняется определённое условие. WHILE Условие [ Оператор 1] [ … ] [ Оператор N] WEND До тех пор, пока соблюдается условие, последовательно выполняются операторы от 1 до N. Если условие цикла больше не соблюдается, то выполнение программы продолжается, начиная с оператора, следующего за WEND. Если условие цикла WHILE не выполняется с самого начала, то управление сразу же передаётся оператору, расположенному за WEND. ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ Кроме стандартных функций, предназначенных для вычисления математических выражений, в языке Basic допускается употребление функций, определяемых пользователем. Если в программе необходимо несколько раз вычислить одно и то же выражение при различных значениях некоторого параметра, то целесообразно создать "свою" функцию. Описать функцию можно с помощью определяющего оператора DEF, формат которого следующий: <номер строки> DEF FNА (<аргумент>) = <выражение> где FN А - имя функции, состоящее из обязательных букв FN и имени произвольной переменной А. Пример: 10 DEF FNA(X) =SIN(X)^2 -COS(X)^2 Аргумент (Х), употребляемый в описании функции (в операторе DEF), называют формальным параметром функции. Выражение, записываемое в правой части определения функции, может быть произвольным арифметическим выражением, зависящим, как правило, от формального параметра. Однако оно не обязательно должно зависеть от аргумента и может содержать также другие переменные, определенные в программе, которые не являются аргументом, например: 30 DEF FNА(Х) = Х*В + TAN(C/X) Если в программе введено описание функции, то можно обращаться к нему, т.е. употреблять обозначение этой функции (указатель функции) в различных операторах, выражениях и т.п. В указателе функции все формальные параметры должны быть заменены фактическими, например, в программе: 10 DEF FNA(Х) = Х^2 + SIN(Х) 20 А = FNA(2.5) + 2*FNA(3) Формальный параметр Х вначале получает значение 2.5, а затем 3. Фактические параметры могут быть любыми арифметическими выражениями. При обращении к функции сначала вычисляется значение фактического параметра, далее он подставляется вместо формального параметра в описание функции, и вычисляется значение выражения, записанного в правой части определения функции. Это значение является значением указателя функции при данных фактических параметрах. Оператор DEF является неисполнимым оператором и поэтому может размещаться в любой части программы, например, в начале. Пример: Пусть X и Y - натуральные числа. R - остаток от деления X на Y. Выразить R(X,Y), где R функция от X и Y. В этом примере R(X,Y) - функция двух аргументов: R = X - INT(X/Y) * Y - остаток от деления X на Y. Функция должна быть определена следующим образом: DEF FNR(X,Y) = X – Y * INT(X/Y)
ПОДПРОГРАММЫ Операторы GOSUB и RETURN Последовательность повторяющихся в программе операторов может быть оформлена в виде подпрограммы. Подпрограмма на языке БЕЙСИК - это часть программы, которая реализует операции, выполнение которых требуется в нескольких точках программы. Для перехода к подпрограмме используется оператор, имеющий следующий формат: <номер строки> GOSUB <номер строки подпрограммы> где <номер строки подпрограммы> - номер строки подпрограммы, содержащий оператор подпрограммы, с которого начинается ее выполнение (точка входа). При выполнении оператора GOSUB управление передается в точку входа в подпрограмму. Первая строка подпрограммы может начинаться оператором комментария (оператором REM) или любым выполняемым оператором. Подпрограмма обрабатывается интерпретатором до тех пор, пока не встретится оператор RETURN, формат которого следующий: <номер строки> RETURN. Оператор RETURNобуславливаетвозвратуправления оператору, следующемузаоператором GOSUB. БЕЙСИК допускает использование в одной программе нескольких подпрограмм. Подпрограммы могут быть вложенными, то есть одна подпрограмма может осуществить вызов другой подпрограммы. Если при выполнении подпрограммы встречается оператор RETURN, то он вызывает передачу управления тому оператору, который следует после оператора GOSUB, произведшего обращение к этой подпрограмме (в точку возврата). Программа может содержать несколько точек входа, кроме того, подпрограмма может иметь более одного оператора RETURN, причем, как только встречается первый из них, осуществляется выход из подпрограммы. Оператор ON - GOSUB Оператор ON - GOSUB используется (аналогично оператору ON - GOTO) для условной передачи управления одной из нескольких подпрограмм или к одной из нескольких входных точек одной (или нескольких) подпрограмм. Формат оператора: <номер строки> ON <арифметическое выражение> GOSUB <список номеров строк подпрограммы> Во время выполнения оператора ON - GOSUB вычисляется значение арифметического выражения и целая часть этого значения (n) используется в качестве указателя на один из перечисленных номеров строк в списке. В результате происходит передача управления подпрограмме, которая начинается номером строки, находящимся в списке на n - ом месте. Оператор RETURN возвращает управление оператору, следующему за оператором ON - GOSUB.
ОПЕРАТОРЫ ВВОДА - ВЫВОДА Оператор INPUT При выполнении некоторых задач исследовательского или игрового характера возникает необходимость корректировать входные данные по ходу счета в зависимости от получающихся результатов. Для этой цели используют оператор INPUT, формат которого следующий: <номер строки> INPUT <список ввода> Список ввода включает в себя имена переменных (числовых и символьных). Выполняя оператор INPUT, компьютер делает паузу во время выполнения программы, печатает на терминале знак вопроса "?". Пользователь должен набрать на клавиатуре значения переменных, разделяя их запятыми. Количество и тип значений должны соответств
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 330; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.157.155 (0.019 с.) |