Методические указания к выполнению контрольной работы по дисциплине «Информатика» Новочеркасск 2007
Вид материала | Методические указания |
- Методические указания по выполнению контрольной работы по курсу, 260.49kb.
- Методические указания по выполнению контрольной работы по дисциплине «биржевое дело», 156.97kb.
- Методические указания и задания к выполнению контрольной работы по дисциплине, 246.08kb.
- Методические указания по выполнению контрольной работы №2 по дисциплине Информатика, 278.17kb.
- Методические указания по изучению дисциплины и выполнению контрольной работы Для студентов, 403.35kb.
- Методические указания к выполнению контрольной работы по дисциплине «Материаловедение», 319.29kb.
- Методические указания по выполнению контрольной работы №1 по дисциплине Информатика, 390.61kb.
- Методические указания по выполнению контрольной работы для самостоятельной работы студентов,, 601.04kb.
- Методические указания к изучению дисциплины и выполнению контрольной работы для студентов, 196.81kb.
- Методические указания по выполнению контрольной работы, варианты контрольной работы, 238.53kb.
Формализация (математическая постановка). На этом этапе все объекты задачи описываются на языке математики, выбирается форма хранения данных, составляются все необходимые формулы.
3. ОСНОВЫ ПРОГРАММИРОВАНИЯ
Из десятков языков программирования Basic остается самым простым в изучении со времени его создания (1964 г.), кроме того, он имеется практически на всех ПЭВМ.
Создание Microsoft QuickBASIC (QB) в середине 80-х годов произвело настоящую революцию в мире BASIC, результатом которой было то, что сегодня QB стал стандартом для языка BASIC.
QuickBASIC является не просто языком программирования. Это интегрированная программная среда, содержащая в себе редактор текста, систему помощи, диагностики и индикации ошибок, компилятор и ряд других модулей. QuickBASIC позволяет создавать быстродействующие программы для обработки числовой, текстовой и графической информации.
3.1. Азбука языка Qbasic
QB представляет собой конструктор для построения программ. Он обеспечивает вас набором основных элементов языка, которые могут быть соединены между собой бесконечным числом способов для создания любого программного продукта.
Любой язык начинается с алфавита. Алфавит Basic включает в себя три группы символов:
буквенные символы - 26 букв латинского алфавита от А до Z (строчные и прописные) и буквы русского алфавита для записи комментариев и символьных констант;
цифровые символы - цифры от 0 до 9;
специальные символы (+,*,>,%,#,$, и другие).
Из символов языка образуют слова, которые можно разделить на две группы:
зарезервированные слова, имеющие фиксированный смысл и начертание (stop, end, print, if и другие);
слова пользователя (идентификаторы), которые выбираются программистом и представляют собой любую последовательность букв и цифр, начинающуюся с буквы (Ablx, y0, tok и др.).
Программы на языке QuickBASIC обрабатывают два типа данных: константы и переменные. Переменные могут изменять свои значения в процессе выполнения программы, а значения констант фиксируются и не изменяются. Рассмотрим два типа констант: символьные (строковые) и числовые.
Строка представляет собой последовательность символов, заключенных в двойные кавычки.
Например, "R=2m", "3.14159", "Скорость v=25 м/с" и т.д. Самая короткая строка не содержит никаких символов и называется пустой или нулевой строкой.
Числовая константа может быть целого и вещественного типа. Самыми простыми числами в QuickBASIC являются целые числа.
Вещественные константы записываются в виде десятичной дроби (с фиксированной точкой).
Например, 1.65, 9.,-.25 (ноль целых можно опускать). Допускается запись чисел с указанием порядка (с плавающей точкой) для представления очень больших или очень малых чисел.
В этой форме число записывается в виде ±mE±р, где т - мантисса со знаком числа, а р - порядок числа со знаком (знак плюс можно опускать).
Например, заряд электрона может быть представлен константой
-1.60206Е-19.
Имя переменной (идентификатор) выбирается по определенному правилу: оно должно начинаться с буквы и может содержать любое количество букв и цифр. В QuickBASIC существуют зарезервированные слова, которые нельзя использовать в качестве имен переменных (они служат для записи команд и операторов).
Тип переменной может быть определен последним символом идентификатора. Например, % - для целого типа, $ - для символьных переменных. Если имя переменной не оканчивается одним из специальных символов, определяющих се тип, то по умолчанию считается, что такой идентификатор обозначает числовую переменную обычной точности.
Присвоение значений переменным может быть осуществлено с помощью оператора присваивания.
Например, pi=3.14159
а$="ток"
n%=51
В QuickBASIC рассматриваются стандартные (встроенные) функции и функции пользователя. Каждой стандартной функции соответствует ключевое слово, после которого в круглых скобках указываются ее аргументы.
Рассмотрим математические функции и их обозначения:
| SQR(x) | | EXP (x) |
sinx | SIN(x) | Lnx | LOG (x) |
cosx | COS(x) | | ABS (x) |
tgx | TAN(x) | arctgx | ATN(x) |
Аргументом функции может быть произвольное арифметическое выражение. Например, sqr(x+5). Аргументы тригонометрических функций должны быть заданы в радианах. Функция atn(x) вычисляет при заданном значении х угол в радианах в интервале от -/2 до .
Для вычисления arcsinx, arccosx, arcctgx пользуются известными соотношениями:
arcctgx=/2–arctgx;
arcsin x = arctg;
arccosx=arcsinx.
Для вычисления логарифмов с любым основанием используют известную формулу перехода: logаb = lnb/lna.
Для преобразования данных одного типа в другой используют функции:
INT(x) - наибольшее целое, не превосходящее х (целая часть числа);
FIX(x) – усечение числа х до целого;
CINT(x) - округление аргумента до целого.
Например, INT (-2.6)=-3,
INT(2.6)=2,
FIX (-2.6)=-2,
FIX (4.9)=4,
CINT (4.9)=5.
Если среди встроенных функций пользователь не найдет нужной ему, то он может сам определить свои функции. Это делается с помощью оператора DEF, после которого должно быть указано имя функции, начинающееся обязательно с букв FN. Оставшаяся часть имени может представлять собой любое допустимое имя переменной. За именем идет список параметров, заключенный в скобки. В правой части оператора записывается выражение, определяющее какие действия производит данная функция.
Например, функции для вычисления логарифма числа х по основанию b нет среди стандартных функций, но она может быть определена пользователем
DEF FNlg(x,b)=LOG(x)/LOG(b).
Переменные х и а, которые указываются в списке параметров в определении функции, называются формальными параметрами. При вызове функции каждый формальный параметр заменяется некоторым конкретным значением (фактическим параметром). Формальные и фактические параметры должны быть согласованы по количеству и типу. В качестве примера функций, которые часто используются при решении различных задач, можно указать функции:
DEF FNmin(a,b)=(a+b-ABS(a-b))/2;
DEF FNmax(a,b)=(a+b+ABS(a-b))/2,
которые вычисляют минимальное и максимальное значения из двух чисел а и b.
Над константами, переменными и функциями можно производить арифметические, строковые, логические операции и операции сравнения (отношения). Выполнение каждого типа операций приводит к соответствующему выражению.
Арифметические выражения - выражения, содержащие следующие знаки операций:
| возведение в степень | * | умножение | + | сложение |
\ | деление нацело | / | деление | - | вычитание |
Порядок выполнения действий определяется установленным приоритетом операций:
- вычисление значений функций;
- возведение в степень;
- умножение и деление;
- сложение и вычитание.
Стандартный порядок выполнения операций может быть изменен с помощью круглых скобок.
Примеры записи арифметических выражений:
Математическая запись | Запись на Basic |
asinx + bcos2x | A*SIN(x) + B*COS(2*x) |
-2ab/c + a/bc | -2*A*В/С + A/B/C |
Деление нацело выполняется как обычное деление, только значения делимого и делителя округляется до целых чисел, а дробная часть результата отбрасывается (не округляется).
Например, 10\4=2, 25.75\б.98=3 (26\7=3).
Выражения сравнения позволяют сравнивать два значения и устанавливать, выполняется ли между ними заданное соотношение.
Допустимы следующие шесть типов отношений:
-
=
равно
>
больше
< >
не равно
<
меньше
<=
меньше или равно
>=
больше или равно
Они имеют одинаковый приоритет, т.е. при наличии в одном выражении нескольких операций отношения они выполняются слева направо, если в выражении нет скобок.
Результат сравнения при выполнении операций отношения может оказаться истинным (true) или ложным (false).
Например,
a > b+3 истинно при а=19 и b=2 и ложно при а=2 и b=19;
х2<0 всегда ложно.
Выражения с операциями отношения используются для проверки выполнения некоторых условий и при сравнении величин.
Логические выражения определяют специальные логические операции:
NOT (логическое отрицание "НЕ");
AND (логическое умножение "И");
OR (логическое сложение "ИЛИ"),
которые перечислены в порядке убывания приоритета.
Результаты выполнения логических операций при соответствующих значениях переменных true (1) или false (0) даны в таблице истинности.
Таблица 1
Таблица истинности
A | B | NOT A | A AND B | A OR B |
1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 | 0 |
Если в одном выражении встречаются арифметические операции, операции отношения и логические операции, то они выполняются в порядке их перечисления.
Например, логическое выражение
AND y>0
будет истинно, если точка (х,у) принадлежит полукругу.
Иногда удобно присвоить имя не одной переменной, а целой группе или, как говорят, массиву переменных.
Пусть, например, задана числовая последовательность с общим членом . Тогда каждому натуральному п (номеру члена) соответствует число - член последовательности. Так, а1 =5, а2=7 и т.д.
В Basic такую последовательность задают массивом Аn)=2*n+3, а для обращения к отдельному элементу массива достаточно после его имени написать в скобках его порядковый номер (индекс).
Так, А(1)=5, А(2)=7.
Элемент массива - это переменная с индексом.
Количество индексов у массива определяет его размерность. Рассмотренный массив А, представляющий строку, - это одномерный массив. Если рассматривать числовые таблицы (матрицы), то положение числа в ней будет определяться двумя числами (номер строки и номер столбца).
Такие массивы называются двумерными.
Например, В(2,5) - элемент двумерного массива, расположенный во второй строке и пятом столбце. В памяти ЭВМ двумерные массивы располагаются по строкам. По умолчанию нумерация элементов массива в QBASIC начинается с нуля.
Правила образования имен массивов те же, что и для простых переменных. Все элементы одного массива должны иметь один и тот же тип.
Объявление имени и типа массива, а также количества его элементов, осуществляется оператором DIM (размерность).
Например, оператор
DIM AS(55), N%(2,4)
указывает, что в программе будут использоваться массивы:
- одномерный с именем AS, состоящий из 56 элементов обычной точности, пронумерованных от 0 до 55;
- двумерный с именем N, состоящий из 15 целых чисел, расположенных в трех строках (нулевой, первой и второй) и пяти столбцах (нулевом - четвертом).
Чтобы порядковый номер (индекс) элемента массива начинался с 1, необходимо перед оператором DIM записать оператор
OPTION BASE 1.
В качестве индексов массивов могут употребляться любые арифметические выражения.
Например, B(i+l,2*j-l).
Если значение арифметического выражения содержит дробную часть, то при определении индекса она отбрасывается. Появление отрицательного значения индекса вызывает сообщение об ошибке.
3.2. Простейшие операторы языка
Программа на QuickBASIC представляет собой последовательность строк, в которых записываются операторы или их метки. Операторы являются теми "кирпичиками", из которых строится программа. Каждый из них содержит указание, что надо выполнить в данный момент. В строке может быть ни одного, один или несколько операторов, разделенных двоеточиями.
Часто программы содержат различного рода комментарии, представляющие собой любой текст, начинающийся одиночной кавычкой. Этот текст может помещаться в отдельной строке или в строке с операторами.
Например, R=1.56: pi=3.14159
- площадь круга S=pi*R2
- длина окружности L=2*pi*R
«Метка» оператора располагается в отдельной строке. Она служит для идентификации оператора, следующего непосредственно за ней. Метка может начинаться с буквы и состоять из любого количества букв и цифр. За меткой должно следовать двоеточие.
Например,
х = РI/n+1.2
Ml:
Y=SIN(2*x)+SQR(x)
Z=l-2*y/x
Основными элементами любой программы являются операторы. Оператор присваивания является самым распространенным оператором в любой программе вычислительного характера и служит для присваивания переменной значения выражения.
Он имеет вид: V = E,
где V - переменная, Е - выражение.
Например:
pi=3.14159
N=51
M=M+1
B(i)= 1-(2*I-1 )3
К моменту выполнения оператора присваивания значения всех переменных, входящих в правую часть, должны быть определены. Выполнение этого оператора заключается в том, что вычисленное значение выражения в правой части оператора присваивается переменной левой части. В этом его отличие от математического знака равенства (в математике равенство М=М+1 не имеет смысла).
Переменная и присваиваемое ей значение должны совпадать по типу. Если это условие не выполняется, то будет выдано сообщение об ошибке.
Оператор присваивания является наиболее распространенным средством однократного присвоения значения переменной. Однако он оказывается неудобным в случае присваивания значений большому числу переменных. Для этой цели служат операторы READ и DATA. В первом записывают имена переменных, значения которых определяет оператор DATA, т.е.
READ <список переменных>
DATA <список конcтант>
Оператор DATA может содержать любые допустимые числовые или строковые константы, заключаемые в кавычки.
Например,
DATA 7, 3.14159, "PROGRAM", 1E-2
READ k%, pi, t$, В
Выполнение этих операторов эквивалентно следующим присваиваниям:
k%=7, pi=3.14159, t$-PROGRAM, В=1Е-2
Оператор DATA может находиться в любом месте программы. В одной программе может быть несколько операторов DATA. В BASIC существует еще один способ ввода исходных данных - ввод значений переменных с клавиатуры с помощью оператора
INPUT <список переменных>
Например,
INPUT A, N%, XS
Выполняя оператор INPUT, ЭВМ выводит па экран дисплея знак вопроса. Появление этого знака означает, что пользователь программы должен ввести с клавиатуры значение каждой переменной, отделив их друг от друга запятыми. После набора последнего значения следует нажать клавишу ENTER.
Оператор INPUT позволяет выводить некоторое наводящее сообщение. Текст этого сообщения должен указываться в операторе INPUT в пиле строковой константы, заключенной в кавычки и отделяется от имени переменной точкой с занятой.
Например, оператор:
INPUT "Скорость равна"; v
обеспечит появление на экране сообщения: Скорость равна ?
Если вместо точки с запятой поставить запятую, то знак вопроса не выводится на экран. После того как пользователь нажимает клавишу ENTER, отмечая окончание ввода, производится проверка правильности вводимого сообщения. Если количество набранных пользователем значений больше или меньше числа переменных оператора INPUT, то выдается сообщение " ? Redo from start" ("Повторите ввод"). После этого сообщения осуществляется повторный ввод всех значений с самого начала строки. Операторов INPUT может быть сколь угодно много и размещаться они могут в любом месте программы.
Вывод информации осуществляется оператором
PRINT <выводной список>
Значения, выводимые на экран, зависят от элементов списка:
- если в качестве элемента указана константа, то при выполнении оператора PRINT она будет напечатана на экране дисплея;
- если в качестве элемента указана переменная, то на экране будет напечатано се значение;
- если в качестве элемента указано арифметическое выражение, то на терминале будет напечатан его результат.
Текст в списке оператора PRINT используется для печати заголовков и пояснений. Такой текст заключается в кавычки и может состоять из произвольной последовательности символов BASIC (включая и русский алфавит). При выполнении оператора PRINT этот текст будет напечатан на экране дисплея без кавычек.
Например,
PRINT А, b, 125; 1+SIN(X)2
PRINT "Значение функции";У
В операторе PRINT может отсутствовать список. В этом случае на экран выводится пустая строка.
В качестве разделителей в списке оператора PRINT используется точка с запятой и запятая. Если два значения разделены в операторе PRINT точкой с запятой, то они выводятся непосредственно друг за другом. При заполнении строки экрана (их на экране 25 и каждая из них содержит 80 символов) вывод будет продолжен на следующей строке.
Если список завершается запятой или точкой с запятой, то следущий оператор PRINT начинает вывод в той же строке. В противном случае следующий оператор PRINT начинает вывод с крайней левой позиции следующей строки.
Например, строка печати после выполнения операторов
х%=1
PRINT "x";x%;
PRINT " у=";1-2*х% ;
будет иметь вид: х= 1 у= -1
При использовании в операторе PRINT в качестве разделителя запятой значения выводятся в так называемом зонном формате. При этом экран разделяется на 5 зон печати по 14 позиций каждая, и печать элемента выводного списка осуществляется с начала следующей зоны.
Например, при выполнении оператора
PRINT "Аргумент",Х,"Функция",Х2
при Х%=2 будет выведено
Аргумент 2 Функция 4
Перед выводом результатов на экран дисплея обычно используют оператор CLS, который очищает экран. При этом курсор перемещается в левый верхний угол первой строки.
При выводе информации с помощью оператора PRINT пользователь лишен возможности изменять стандартную форму выводимых данных. В ряде случаев такой порядок может не удовлетворять пользователя. В QB имеется специальный оператор PRINT USING, организующий вывод значений числовых и строковых переменных по специальным форматам. Общая форма оператора имеет вид
PRINT USING "формат"; <список>
Параметр «формат» состоит из специальных символов форматирования и показывает, как следует вывести на печать список, который формируется точно так же как и в операторе PRINT.
Старые соглашения, принятые для оператора PRINT по использованию разделительной запятой и точки с запятой, в операторе PRINT USING не действуют. При выводе числовых значений обычно используются следующие числовые форматы:
# - вывод одного разряда выводимого значения;
. - вывод в заданной позиции десятичной точки.
Если количество позиций, указанное для дробной части, недостаточно, то число округляется. Для отрицательных чисел необходимо предусмотреть место под знак числа.
Например, операторы
PRINT USING "##.##";56.746
PRINT USING "###.##";-25.3412
выводят на экран значения
56.75
-25.34
Если выводимые данные не помещаются и заданное форматом поле, то для обозначения ошибки перед числом печатается знак %, а затем - выводимое значение без соблюдения формата. Кроме того, если при округлении для числа потребуется больше позиций, чем отведено, то перед округленным числом также будет выведен знак %.
Например, при выполнении операторов
PRINT USING "##.##"; 126.94
PRINT USING "#.##";9.9999
будет напечатано
%126.94
%10
Шаблон, задаваемый в операторе PRINT USING, может содержать любые символы, которые при использовании этого шаблона будут выводиться в том виде, как они записаны.
Например, выполнение оператором S=457.82
PRINT USING "Сумма равна ###.##";S
приведет к появлению на экране строки
Сумма равна 457.82
0>