Помощь в написании студенческих работ
Антистрессовый сервис

Основы программирования

МетодичкаПомощь в написанииУзнать стоимостьмоей работы

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

Основы программирования (реферат, курсовая, диплом, контрольная)

Казанский государственный архитектурно-строительный университет Кафедра прикладной математики МЕТОДИЧЕСКИЕ УКАЗАНИЯ для самостоятельной работы студентов всех специальностей по курсу «Информатика»

Основы программирования Составители:

Ф.Г. Габбасов, И. Н. Гатауллин Казань — 2008

УДК 621.313

Методические указания по курсу «Информатика» для самостоятельной работы студентов всех специальностей. Основы программирования. /Казанский государственный архитектурно-строительный университет; Сост.: Ф. Г. Габбасов, И. Н. Гатауллин. — Казань, 2008. 31 с.

Данные методические указания предназначены для самостоятельной работы студентов всех специальностей и используются при выполнении лабораторных и контрольных работ по курсу «Информатика» на языке QuickBASIC.

Рецензент — Р. Б. Салимов, доктор физ.-мат. наук, профессор

© Казанский государственный архитектурно-строительный университет, 2008 г.

1. НАЧАЛЬНЫЕ СВЕДЕНИЯ

1.1 Назначение и применение ЭВМ

ЭВМ предназначена для автоматической обработки цифровой, алфавитно-цифровой информации. Можно условно выделить три крупные области применения ЭВМ:

1. Информационные системы и средства коммуникации — поиск, обработка, хранение, передача информации, создание банка данных, расширение доступа к образованию, облегчению быта и т. д.

2. Автоматизация и управление различными видами работ человека — автоматизированные системы научных исследований (АСНИ), система автоматизации проектных работ (САПР), автоматизированные системы управления производством (АСУП), гибкие автоматизированные производства (ГАП) и др.

3. Математическое моделирование объектов и процессов разнообразной природы, вычислительный эксперимент.

1.2 Этапы решения задач на ЭВМ

Основными этапами решения задач с применением ЭВМ являются:

1. Постановка задачи и ее математическое описание.

2. Выбор численных методов решения (построение методики решения).

3. Алгоритмизация.

4. Программирование.

5. Отладка программы.

6. Непосредственное решение задачи на ЭВМ.

7. Обработка результатов расчета и их применение.

Разработка алгоритма — необходимый этап в процессе решения задачи на ЭВМ. Алгоритм — конечная последовательность точно определенных действий, приводящих к решению поставленной задачи.

Алгоритмы представляются в виде блок — схемы и в виде операторной записи при помощи символов — операторов или в виде перечисления этапов решения обычным текстом.

Блок-схема — графическое изображение алгоритма в виде последовательности блоков с помощью геометрических фигур. При составлении блок — схем используются следующие геометрические фигуры:

— начало и конец блок-схемы;

— блок ввода и вывода информации;

— блок вычисления арифметических выражений;

— блок проверки условий;

— блок вызова подпрограммы;

— ссылка (перенос блок — схемы на другую страницу).

Примеры алгоритмов смотрите на рисунках 2.1 — 2.7.

2. ОПИСАНИЕ ЯЗЫКА QuickBASIC

2.1 Общая характеристика алгоритмического языка QuickBASIC

Алгоритмический язык QuickBASIC используется преимущественно в режиме диалога человека и ЭВМ.

Программа на QuickBASICе состоит из последовательности строк. В одной строке может содержаться один или несколько операторов, разделенных символом «:» двоеточие.

2.2 Символы языка QuickBASIC

В QuickBASICе используются следующие символы:

1) двадцать шесть заглавных латинских букв A, B, C, D, …, Z;

2) десять арабских цифр 0, 1, 2, …, 8, 9;

3) знаки: «.» точка, «,» запятая, «:» двоеточие, «;» точка с запятой,

«» «кавычки, «` «апостроф;

4) знаки арифметических операций: «+» сложение, «-» вычитание,

«*» умножение, «/» деление, «^» возведение в степень;

5) круглые скобки: «(«открывающая скобка, «)» закрывающая скобка;

6) «L-» пробел;

7) знаки операций отношения: «<�» меньше, «>» больше, «>=» больше или равно, «< > «или «> < «не равно, «<= «меньше или равно, «=» равно;

8) знаки: «$» знак доллара, «&» коммерческое «и», «@» коммерческое «эт», «» косая черта слева направо, «%» процент, «#» номер, «?» вопросительный знак, «!» восклицательный знак;

9) буквы русского алфавита «А, Б, В, …, Я».

2.3 Простейшие конструкции языка QuickBASIC

Числа. Для отделения целой части числа от дробной используется точка (см. табл. 2.1).

Таблица 2.1

Примеры записи чисел на QuickBASICе

Число

Запись на QuickBASICе

Тип

Кол-во занимаемой памяти

Диапазон

3,46

3.46

Фиксированная запятая

4 байта

от 10 до 10

0,0058

58Е-4

Плавающая запятая

4 байта

от 10 до 10

15Е 4

Плавающая запятая

4 байта

от 10 до 10

75%

Целый

2 байта

от -32 768 до 32 767

Переменные. Для обозначения переменных в QuicBASICе используются имена, состоящие из буквы и цифр. Первым символом всегда является буква. Например, A, A2, C. В качестве букв используются буквы латинского алфавита. Для целочисленных переменных, значениями которых являются целые числа, к имени добавляется знак % или &, для вещественных переменных обычной точности !, для вещественных переменных двойной точности #, для символьных переменных $. Например, A%, A2%, C%.

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

Таблица 2.2

Стандартные функции

Название функции

Математическое определение

Запись на QuickBASICе

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

Синус

Косинус

Тангенс

Арктангенс

Показательная функция

Натуральный логарифм

Десятичный логарифм

Знак сигнатуры

Абсолютная величина

Квадратный корень

Целая часть числа

Датчик случайных чисел

Число р

sin x

cos x

tg x

arctg x

e

ln x

lg x

|x|

[x]

р

SIN (X)

COS (X)

TAN (X)

ATN (X)

EXP (X)

LOG (X)

LOG (X)/LOG (10)

SGN (X)

ABS (X)

SQR (X)

INT (X)

RND (X)

4*ATN (1)

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

<�значение в радианах> = <�значение в градусах> * р/180.

Для арктангенса значение угла находится в интервале (-р/2; р/2).

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

Arcsin (x) = arctg (x/),

arcos (x) = arctg ()/x),

arcctg (x) = arctg (1/x).

2.4 Арифметические выражения

Для обозначения арифметических операций используются знаки: «+» сложение, «-» вычитание, «*» умножение, «/» деление, «^» возведение в степень, «» деление нацело, MOD остаток от деления.

Если в арифметическом выражении имеется несколько различных арифметических операций, то порядок их выполнения задается правилами приоритета:

1. возведение в степень.

2. умножение, деление.

3. сложение, вычитание.

Примеры записи арифметических выражений

sinx SIN (X3)^2

X^(4/3)

(A3+EXP (2*COS (X)))/(X2-Y3)^(1/3)

2.5 Структура программы на языке QuickBASIC

2.5.1 Программы линейной структуры на языке QuickBASIC

Линейная программа должна состоять из следующих операторов (см. рис. 2.1): ввода данных, присваивания, вывода (печать) результатов расчета. Линейный вычислительный процесс сводится к последовательным вычислениям арифметических выражений, причем последовательность вычислений полностью соответствует порядку записи математических зависимостей в постановке задачи.

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

Для записи комментариев используется оператор REM (REMARK). В этом операторе за словом REM могут быть записаны любые символы QuickBASICа. Включение операторов REM в программу никак не влияет на ее выполнение.

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

Ввод осуществляется одним из двух способов:

— c использованием оператора INPUT;

— c использованием пары операторов DATA, READ.

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

INPUT <�список переменных>

Например: INPUT a, b, c1

Операторы DATA, READ. Оператор READ имеет вид

READ <�список переменных>

Например: READ a, b, c1

Оператор DATA имеет вид

DATA <�список констант>.

Например: DATA 1.6, -8, 1Е-3

Оператор DATA содержит данные, которые при выполнении операторов READ будут вводиться в переменные, перечисленные в списке ввода операторов READ.

Оператор RESTORE. Данные из области DATA можно считывать, повторно используя, оператор RESTORE.

Общий вид оператора

RESTORE <�арифметическое выражение>

Значение целой части арифметического выражения определяет номер данного, с которого начнется повторное считывание. Если арифметическое выражение отсутствует, осуществляется возврат к началу списка.

Пример.

DATA 10.6, 0.1, 15, 1.2

READ A, B, C, D

RESTORE

READ E, F

.. .. .. .

Оператор PRINT. Используется для вывода на экран дисплея результатов вычислений. Общий вид оператора: PRINT <�список>

Список вывода может содержать имена переменных, числа, арифметические выражения и тексты. Если в списке вывода содержатся арифметические выражения, то они сначала вычисляются, а затем выводятся вычисленные значения.

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

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

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

LET V = <�арифметическое выражение>

(LET можно опустить), где V — переменная, которой присваивается значение.

При выполнении оператора присваивания вычисляется выражение в правой части и присваивается переменной в левой части V.

Оператор END. Оператор END указывает на физический конец программы. При выполнении оператора END закрываются все открытые файлы и останавливается выполнение программы.

Пример 1. Вычислить значение функции

где, , m — номер варианта, n — номер группы.

Рис. 2.1 Блок-схема линейного вычислительного процесса

QuickBASIC — программа для примера 1 (см. блок — схему линейного вычислительного процесса на рис. 2.1.):

REM LR-1−1, m=13, n=5

INPUT «M, N»; M, N

X=EXP (-(N/M)^(½))

T=LOG (M/SQR (N))+7.21

Y=(COS (X2-SQR (T))+SIN (X-T^(1/3)))/(SIN (T-X^(¼))^2)+1.731)

PRINT X, T, Y

END

После ввода текста программы в память ЭВМ для ее запуска нужно выбрать меню RUN и в нем команду START или Shift+F5. На экране появится текст M, N? — после чего нужно ввести значения M, N и нажать «Enter». После этого ЭВМ напечатает на экране значения X, T, Y.

Определение нестандартных функций оператором DEF FN.

Общий вид оператора

DEF FNV (<�аргументы>) = <�арифметическое выражение>,

где V — имя функции; <�аргументы> — простые переменные — формальные аргументы функции; <�арифметическое выражение> — формула, по которой вычисляется функция.

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

Оператор DEF FN должен располагаться в программе до первого использования определяемой им функции.

Вычисление функции, описанной оператором DEF FN, осуществляется при обращении к ней при помощи записи указателя функции

FNV (<�арифметические выражения>),

где <�арифметические выражения>, заменяют формальные параметры в арифметическом выражении правой части оператора DEF FN перед вычислением.

Пример 2. Вычислить значение функции

где .

Здесь m — номер варианта, nномер группы.

QuickBASIC — программа для примера 2:

REM LR-1−2, m=13, n=5

DEF fnf (x, y) = cos (x2+y2)

INPUT m, n

z=(fnf (m/n, -2*n)+ fnf (3*(m+n), -5.5*m))/2/(m+n)

PRINT «z=»; z

END

2.5.2 Программы разветвляющейся структуры на языке QuickBASIC

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

Оператор безусловного перехода. Общий вид оператора

GO TO N,

где N метка. Этот оператор передает управление первому оператору в строке с меткой N.

Условные операторы. Условные операторы служат для изменения порядка выполнения операторов в зависимости от какого — либо условия.

Условные операторы могут использоваться для организации циклов и разветвлений.

Общий вид условных операторов

1) IF «условие» THEN (или GO TO) N;

2) IF «условие» THEN «действие»;

3) IF «условие» THEN «действие 1» ELSE «действие 2»;

4) IF «условие 1» THEN

«Блок 1»

ELSE IF «условие 2» THEN

«Блок 2»

.. .

ELSE"Блок K"

ENDIF

где условие имеет вид

(арифметическое выражение 1) и (арифметическое выражение 2)

и — одна из операций отношения <, <=, >, >=, =, <>;

N — метка; действие — любой оператор QuickBASIC

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

Сочетание THEN IF позволяет «вкладывать» условия друг в друга.

Например,

IF Q >= 3.5 THEN IF Q < 7.4 THEN 20

Действие условного оператора заключается в следующем:

если условие удовлетворяется, то в первом случае осуществляется переход к строке с меткой N=20, во втором и в третьем случаях выполняется оператор, следующий за THEN.

Если условие не удовлетворяется, то в первом случае осуществляется переход к оператору, следующему за условным. Во втором случае осуществляется переход к первому оператору следующей строки, т. е. все операторы в строке, следующие за условным оператором, при этом игнорируются. В третьем случае выполняется действие, записанное после ключевого слова ELSE.

Возможна одновременная проверка нескольких условий, соединенных словами:

OR — условие считается выполненным, если выполняется хотя бы одно из проверяемых условий;

AND — условие выполнено, если выполняются все проверяемые условия одновременно;

XOR — условие выполнено, если выполняется ровно одно из двух проверяемых условий.

Пример 3

Вычислить

где

QuickBASIC — программа для примера 3 (см. блок — схему разветвляющегося вычислительного процесса на рис. 2.2):

REM LR-2−1, m=13, n=5

INPUT «m, n=»; m, n

X=3*COS (m/n)

IF X<0 THEN

Y=X2+3*X-7

ELSEIF X>=0 AND X<1 THEN

Y=2*X-1

ELSE

Y=EXP (X)

ENDIF

PRINT «X=»; X, «Y=»; Y

END

Рис. 2.2 Блок — схема разветвляющегося вычислительного процесса

2.5.3 Циклические вычислительные процессы на языке QuickBASIC

Циклическим называется вычислительный процесс, в котором отдельные этапы решения задачи многократно повторяются за счет передачи управления на начало этой группы этапов. Управление количеством повторений этих этапов происходит за счет использования параметра цикла (управляющей переменной).

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

Операторы цикла. Для организации циклов в QuickBASICе применяются операторы FOR и NEXT. Общий вид операторов

FOR V = TO STEP

.. .. .. ... .

NEXT V

где v — любая неиндексированная переменная — управляющая переменная цикла;, , — начальное и конечное значения и шаг изменения управляющей переменной цикла — любые арифметические выражения. Если =1, то конструкцию STEP можно опустить. Операторы, расположенные между операторами FOR и NEXT, образуют тело цикла и выполняются многократно.

Выполнение цикла, образованного операторами FOR и NEXT, заключается в следующем: — переменной V присваивается начальное значение и она сравнивается с конечным значением. Если при положительном шаге удовлетворяется условие ?, или при отрицательном шаге удовлетворяется условие ?, то выполняются операторы, расположенные между операторами FOR и NEXT, и по оператору NEXT осуществляется возврат к началу цикла. Значение V изменяется на, т. е. V=V+, и снова проверяется условие. Если условие удовлетворяется, то тело цикла выполняется повторно. В противном случае происходит выход из цикла и переход к оператору, следующему за NEXT.

Пример.

FOR I = 4 TO 20 STEP 2

PRINT I, I2

NEXT I

END

Оператор PRINT USING. Дает возможность задать точный образ вывода отдельных элементов списка.

Оператор PRINT USING имеет вид

PRINT USING «формат»; <�список>

где формат задает образ распечатки.

При выводе числовых значений предусматривается символ # для каждой выводимой цифры, а также знака числа. Если предполагается вывод с порядком, то для порядка предусматриваются символы ^ ^ ^. Все остальные символы, включая пробелы, обозначают сами себя и выводятся без изменений. Для вывода числа, содержащего дробную часть, в формате задается столько символов #, сколько всего цифра требуется вывести, и точка для отделения цифр целой части от дробной. То есть использование формата позволяет отсечь при печати ненужные цифры. Результат при этом округляется.

Пример.

PRINT USING «#.## ##.#»; 5.629, — 1.1

RUN

5.63 -1.1

Если в формате задан только один образ, то он может использоваться многократно для каждого элемента в списке вывода. При этом вывод каждого следующего элемента будет осуществляться в новую строку.

Использование оператора PRINT USING при выводе массивов позволяет выводить массивы в удобной для восприятия форме.

Пример.

DIM F2(4,4)

P = .5

FOR I=1 TO 4

FOR J=1 TO 4

P=P+1: F2(I, J) = P

PRINT USING «##.##»; F2(I, J);

NEXT J: PRINT

NEXT I: PRINT

END

RUN

1.50 2.50 3.50 4.50

5.50 6.50 7.50 8.50

9.50 10.50 11.50 12.50

13.50 14.50 15.50 16.50

Оператор PRINT осуществляет только возврат каретки перед выводом новой строки.

Пример 4

Составить таблицу значений функции y при изменении значений переменной x на отрезке [-2,2] с шагом h=0,5:

электронный вычислительный алгоритмический язык

Рис. 2.3 Блок-схема циклического вычислительного процесса

QuickBASIC — программа для примера 4 (см. блок-схему циклического вычислительного процесса на рис. 2.3.):

REM LR-3−1, m=13, n=5

INPUT «M, N»; M, N

FOR X=-2 TO 2 STEP 0.5

Y=(EXP (-X)+5*M)/(X+N)

PRINT «X=»; X, «Y=»; Y

NEXT X

END

Пример 5. Составить таблицу значений функции z=f (x;y) при изменении значений переменной x на отрезке [a, b] с шагом h, переменной y на отрезке [c, d] с шагом l:

где a=1, b=2, h=0,2; c=2, d=4, l=0,2.

QuickBASIC — программа для примера 5 (см. блок-схему циклического вычислительного процесса на рис. 2.4):

Рис. 2.4 Блок-схема циклического вычислительного процесса

REM LR-3−2, m=13, n=5

INPUT «M, N»; M, N

PRINT «X/Y «;

FOR Y=2 TO 4 STEP 0.2

PRINT USING «##.##»; Y;

NEXT Y: PRINT

FOR X=1 TO 2 STEP 0.2

PRINT USING «##.##»; X;

FOR Y=2 TO 4 STEP 0.2

Z=(X2-Y2+M)/(X2+Y2)/N

PRINT USING «##.##»; Z;

NEXT Y: PRINT

NEXT X: PRINT

END

Пример 6

Определить произведение

QuickBASIC — программа для примера 6 (см. блок-схему циклического вычислительного процесса на рис. 2.5):

REM LR-3−3, m=13, n=5

INPUT «M, N»; M, N

P=1

FOR K=1 TO 15

P=P*N2/SQR (M*k2+1)

NEXT K

PRINT «P=»; P

END

2.5.4 Обработка массивов данных

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

Рис. 2.5 Блок-схема циклического вычислительного процесса

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

Если нужно присвоить, например, значение 5 третьему элементу массива A, нужно написать A (3) = 5

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

Индекс может быть переменной. Если нужно всем пяти элементам массива A присвоить значение 5, можно написать

FOR I = 1 TO 5

A (I) = 5

NEXT I

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

Например, оператор DIM A (3), B (4,5) описывает два числовых массива: A состоящий из трех элементов и B содержащий 4 строки и 5 столбцов.

В соответствии с оператором DIM в памяти ЭВМ выделяется место для размещения этих массивов. Так, для массива A будут выделены три ячейки памяти, для массива B — двадцать ячеек. Под двумерный массив выделяется линейный участок памяти, в котором массив располагается по строкам.

В QuickBASICе обработка массивов, а также ввод — вывод массивов осуществляется поэлементно.

Например, ввод одномерного массива A, содержащего 10 элементов, можно осуществить при помощи операторов

DIM A (10)

FOR I = 1 TO 10

INPUT A (I)

NEXT I

Ввод двумерного массива B(4,5) можно осуществить при помощи операторов

DIM B (4,5)

FOR I = 1 TO 4

FOR J = 1 TO 5

INPUT B (I, J)

NEXT J

NEXT I

Ввод двумерного массива в приведенной программе осуществляется по строкам.

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

DIM B (4,5)

.. .. ... .

FOR I = 1 TO 4

FOR J = 1 TO 5

PRINT B (I, J);

NEXT J: PRINT

NEXT I: PRINT

.. .. ... .

Пример 7

Даны два массива xi и yi (i=1,10). Составить программу для вычисления

QuickBASIC — программа для примера 7 (блок — схему программы на обработку массивов см. на рис. 2.6):

REM LR-4−1, m=13, n=5

DIM X (10), Y (10)

INPUT «M, N»; M, N

DATA 8.12, -3.54, 7.73, -0.37, -76.8, 99, 54.87, 1.61, 58.3, 9.74

DATA 7.46, 63.74, -5.83, 7.66, -33.8, 3.99, 154.7, 31.22, -9.33, 21.12

FOR I=1 TO 10

READ X (I)

NEXT I

FOR I=1 TO 10

READ Y (I)

NEXT I

S=0

FOR I=1 TO 10

S=S+X (I)^2-N*Y (I)

NEXT I

T=M*S

PRINT «T= «; T

END

Рис. 2.6 Блок-схема программы на обработку массивов

Пример 8

Найти сумму элементов каждой строки массива C(4,5).

QuickBASIC — программа для примера 8 (см. блок — схему циклического вычислительного процесса с применением двумерного массива на рис. 2.7):

REM LR-4−2, m=13, n=5

DIM C (4,5), S (4)

DATA 2, 4, 6, 8, 10

DATA -1, -3.4, -6, 7, 9

DATA -2, -4, 6, -8, -10

DATA 1, 3, 5.1, 12, 15

FOR I = 1 TO 4

FOR J = 1 TO 5

READ C (I, J)

NEXT J, I

FOR I = 1 TO 4

S (I)=0

FOR J = 1 TO 5

S (I) = S (I)+C (I, J)

NEXT J

PRINT S (I);

NEXT I: PRINT

END

Использование операторов OPEN, CLOSE, INPUT # и PRINT #.

Оператор OPEN позволяет открывать файлы для чтения и записи. Общий вид:

OPEN " File.name" FOR { режим } AS { номер }

File.name — имя открываемого файла режим — способ доступа к файлу номер — целое число 1−255, которое потом используется, чтобы определить нужный файл для записи/чтения.

Режимы:

APPEND — последовательная запись в файл, начиная с конца файла, т. е. дополнение;

Рис. 2.7 Блок-схема циклического вычислительного процесса с применением двумерного массива

OUTPUT — перезапись в файл;

INPUT — чтение файла;

BINARY — режим ввода/вывода.

Если вы открыли файл для дополнения, то это делается следующим образом:

OPEN «FILE.TXT» APPEND AS #1

a$="your text here"

w=344,9

PRINT #1, a$

PRINT #1, w

CLOSE #1

В результате программа допишет в файл FILE. TXT две строки, в первой — значение переменной a$, во второй — значение переменной w. Рекомендуется в конце программы ставить CLOSE, тогда она автоматически закрывает все файлы. Если не закрыть файл, то у вас не будет к нему доступа, в нем ничего не изменится и т. д., команда CLOSE закрывает все файлы и проблем не возникнет.

Для чтения из файла используется оператор INPUT #:

OPEN «FILE.TXT» FOR INPUT AS #1

INPUT #1, D$

INPUT #1, R

CLOSE #1

PRINT D$

PRINT R

CLOSE

Еще одно хорошее свойство — команда FREEFILE — указывает следующий свободный номер для файлов, когда у вас открыто несколько файлов и вы думаете какой еще придумать номер — не мучайтесь, пишите:

n=FREEFILE

open «name» for append as #n

close #n

Пример. Найти все массива C(5,5)., большие по модулю 2.

Сформируем файл «data» содержащий элементы массива с помощью оператора PRINT #:

DIM C (5,5)

open «data» for output as #1

FOR I = 1 TO 4

FOR J = 1 TO 5

INPUT X

PRINT #1,X

NEXT J, I

close #1

Для решения нашей задачи элементы массива считываем с файла «data» с помощью оператора INPUT #.

Результаты запишем в файл «rez».

open «data» for input as #2

open «rez» for output as #3

FOR I = 1 TO 5

FOR J = 1 TO 5

INPUT #2, C (I, J)

IF ABS (C (I, J))>2 THEN PRINT #3 C (I, J)

NEXT J, I

CLOSE

END

2.5.5 Подпрограммы

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

1. Блоковая функция пользователя.

DEF FN имя [(список параметров)]

Операторы

FN имя = выражение Операторы

END DEF

QuickBASIC — программа для примера 2:

REM LR-5−1, m=13, n=5

DEF fnf (x, y)

fnf = cos (x2+y2)

END DEF

REM Блоковая функция пользователя

INPUT m, n

x=m/n: y=-2*n: f1=fnf (x, y)

x=3*(m+n): y=-5.5*m: f2=fnf (x, y)

z=(f1+f2)/2/(m+n)

PRINT «z=»; z

END

2. Подпрограмма-функция

FUNCTION имя [(список параметров) STATIC]

[Операторы подпрограммы]

имя = выражение

END FUNCTION

QuickBASIC — программа для примера 2:

FUNCTION f (x, y)

REM LR-5−2, m=13, n=5

f = cos (x2+y2)

END FUNCTION

DECLARE FUNCTION f (x, y)

REM Подпрограмма-функция

INPUT m, n

x=m/n: y=-2*n: f1=f (x, y)

x=3*(m+n): y=-5.5*m: f2=f (x, y)

z=(f1+f2)/2/(m+n)

PRINT «z=»; z

END

3. Подпрограмма общего вида

SUB имя [(список параметров)] [STATIC]

Операторы подпрограммы

END SUB

[CALL] имя подпрограммы [(список аргументов)]

QuickBASIC — программа для примера 2:

SUB c (x, y, f)

REM LR-5−3, m=13, n=5

f = cos (x2+y2)

END SUB

DECLARE SUB c (x, y, f)

REM Подпрограмма общего вида

INPUT m, n

x=m/n: y=-2*n: CALL c (x, y, f1)

x=3*(m+n): y=-5.5*m: CALL c (x, y, f2)

z=(f1+f2)/2/(m+n)

PRINT «z=»; z

END

4. Подпрограмма GO SUB

Обращение к подпрограмме осуществляется оператором GOSUB N

где N — номер строки, с которой начинается подпрограмма.

Подпрограмма размещается в последовательных строках, начиная с N — й. Последним оператором, выполняемым в подпрограмме, должен быть оператор RETURN. По оператору RETURN осуществляется возврат в то место программы, из которого произошло обращение к подпрограмме, а именно к оператору, следующему за GOSUB N. Подпрограмма может содержать обращения к другим подпрограммам.

QuickBASIC — программа для примера 2:

REM LR-5−4, m=13, n=5

INPUT m, n

x=m/n: y=-2*n: GOSUB 1: f1=f

x=3*(m+n): y=-5.5*m: GOSUB 1: f2=f

z=(f1+f2)/2/(m+n)

PRINT «z=»; z

END

1 REM Подпрограмма GOSUB

f = cos (x2+y2)

RETURN

END

Показать весь текст
Заполнить форму текущей работой