Архитектура микроЭВМ

Общие сведения о микроЭВМ. Двоичная арифметика. Разрядные сетки. Программирование линейных и разветвляющихся вычислительных процессов. Обработка и использование массивов в вычислениях. Функции и подпрограммы пользователя. Графические средства языка BASIC.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 26.10.2013
Размер файла 818,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Для пропуска строк используется оператор печати без списка: (пустой оператор):

PRINT

Вместо оператора PRINT можно использовать знак «?»

4.3 Вывод информации на печатающее устройство

Для вывода информации на печатающее устройство используется оператор LPRINT.

LPRINT {список},

где cписок такой же, как в п.4.2 простой заменой в программе оператора PRINT

4.4 Операторы задания начальных значений и ввода данных

К этим операторам относятся DATA-READ. Общая структура оператора задания начальных значений:

DATA <элементы данных>,

где DATA - ключевое слово "данные", вместо угловых скобок перечисляются константы (числовые и строковые).

Пример.

10 DATA 1, 2, 3.2

20 DATA 4.2, 5.1, “студент”

Перед началом работы все операторы задания начальных значений просматриваются и формируется блок данных в порядке возрастания их номеров (для рассмотренного примера блок данных: 1, 2, 3.2, 4.2, 5.1, “студент”). Блок данных устанавливается указателем блока данных на первое данное.

Оператор DАТА является описательным и может размещаться в любом месте программы.

Оператор DАТА игнорируется до тех пор, пока в программе не встретится оператор ввода данных. Его структура:

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

где READ - ключевое слово "читать" или "ввести".

Пример.

20 READ А, В

40 READ С, D, Е , F$

Как только в программе встретится оператор ввода с наименьшим номером (20-я строка), из блока данных, сформированного выше, начинают считываться данные, а специальный указатель блока перемещается на следующее данное. Оператор ввода 40-й строки считает все данные - блок данных закрывается. Количество данных в операторе или операторах DATA должно быть не меньше количества переменных в списке или списках операторов READ. В противном случае на экране выводится сообщение об ошибке.

Рассмотренные операторы создают определенные преимущества при большом количестве исходных данных.

4.5 Оператор восстановления блока данных

Структура оператора восстановления блока данных:

RESTORE

где RESTORE - ключевое слово "восстановить".

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

Задание 1

1. Составить схему алгоритма для вычисления функции (функций), приведенных в табл.4.1.

2. Написать программу на языке BASIC для линейного вычислительного процесса согласно схеме алгоритма с использованием операторов присваивания.

3. Произвести расчеты на микроЭВМ.

4. Распечатать листинг программы.

5. Исходные данные, промежуточные и окончательные результаты вывести на экран монитора и на печатающее устройство.

3адание 2.

1. Выполнить пп.3-5 задания 1, используя операторы DATA-READ для ввода в программу исходных данных путем редактирования исходной программы.

Таблица 4.1. Список заданий

Вариант

Вычислить

Переменные

1

Высота треугольника:

2

Центр тяжести стержня:

3

Среднеквадратичную погрешность АЦП: , где ,

4

Медианы треугольника:

5

Координаты точки деления:

6

Значения функций:

7

Корни уравнения (действительные и разные):

8

Значение функции:

9

где

10

Координат точки делят отрезок в отношении m/n

, где

5. Программирование разветвляющихся вычислительных процессов

5.1 Разветвляющийся процесс

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

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

В разветвляющейся программе одна последовательность операторов заменяется на другую последовательность.

При программировании разветвляющихся процессов используются логические выражения.

Логическое выражение - это конструкция, состоящая в общем случае из арифметических выражений, выражений отношения, логических функций, логических констант (TRUE и FALSE) и скобок. Результатом вычисления логического выражения является одна из логических констант.

5.2 Выражения отношений

Выражения отношений - это конструкция, состоящая из двух арифметических выражений, соединенных знаком отношения (больше, меньше и др.). Запись знаков на языке BASIC близка математической записи (см. табл. 5.1).

Таблица 5.1. Выражения отношений

Математическая запись

Запись на языке БЭЙСИК

<

<

<=

>

>

>=

=

=

?

< >

Выражение отношения имеет два значения: TRUE (“истина”) или FALSE (“ложь”).

5.3 Логические функции

В языках BASIC используются следующие логические функции: конъюнкция (операция «И», условное обозначение «?»), дизъюнкция (операция «ИЛИ», условное обозначение «?»), отрицание (операция «НЕ», условное обозначение «?») и операция сложения по модулю (исключающее «ИЛИ», условное обозначение «?»). В алгебре логики логические функции характеризуются таблицами истинности, которые отражены в таблицах 5.2 - 5.5, где 0 - ложь, 1 - истина.

Таблица 5.2. C = A ? B Таблица 5.3. C = A B

A

B

C

A

B

C

0

0

0

0

0

0

1

0

0

1

0

1

0

1

0

0

1

1

1

1

1

1

1

1

Таблица 5.4. B = ?A Таблица 5.5. C = A B

A

B

A

B

C

0

1

0

0

0

1

0

1

0

1

0

1

1

1

1

0

На языке BASIC логические функции записываются следующим образом:

C = A ? B C = A AND B

C = A B C = A OR B

B = ?A B = NOT A

C = A B C = A XOR B

5.4 Приоритет выполнения всех операций

С учетом рассмотренных выражений отношений и логических функций приоритет выполнения всех операций без скобок следующий:

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

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

3. Умножение/деление в том порядке, в котором они встречаются в выражении.

4. Сложение/вычитание в том порядке, в котором они встречаются в выражении.

5. Выражения отношений.

6. Логическая операция NOT.

7. Логическая операция AND.

8. Логические операции OR и XOR.

5.5 Операторы безусловного перехода

Синтаксическая структура оператора безусловного перехода:

GOTO <нсi>,

где GOTO - ключевое слово “ИДТИ К”; угловая скобка содержит номер строки, которой передается управление без всякого условия.

В строке может использоваться либо один, либо последним.

Пример. 50 GOTO 120

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

5.6 Оператор условного перехода

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

Имеется 3 синтаксических конструкции IF: IF-THEN, IF-THEN-ELSE и IF-THEN-IF. Последняя конструкция выделена, так как до версии GB она была запрещена.

Синтаксические структуры выглядят следующим образом:

а) IF <условие> THEN ;

б) IF <условие> THEN ELSE ;

в) IF <условие> THEN IF <условие> THEN ;

где IF - ключевое слово «если»; THEN - служебное слово «тогда»; оператор может быть любым, что позволяет использовать конструкцию в); нс - номер строки; ELSE - служебное слово «иначе».

В QB и TB может использоваться и «нс», и метка как в виде цифры или символа(символов), после которой ставится «:».

В каждой из конструкций IF сначала вычисляется заданное условие: TRUE или FALSE. Если «истина», то выполняется конструкция после THEN; если «ложь», то управление передается на следующую строку (в программе для конструкции а) или управление передается конструкции после ELSE.

С помощью конструкции в) можно программировать сдвоенные неравенства.

Пример: Запрограммировать выражение a<b<c.

Решение: IF a < b THEN IF b < c THEN…

Зная логические функции, это неравенство можно запрограммировать проще: IF a<b AND b<c THEN…

Пример.

70 IF A > B THEN IF A < D THEN 120

80 X = A * 3 - C

120 X = A

Оператор в строке 120 выполняется только при условии попадания А в зону: B<A<D; в противном случае выполняется оператор в строке 80.

Оператор IF может записываться с другими операторами в строке, но если в его составе есть операторы безусловного перехода (GOTO, GOSUB, <нсj>), то он должен быть в строке последним.

В языке БЭЙСИК имеется оператор для организации нескольких ветвлений из одной точки программы. Это арифметический оператор ON

5.7 Оператор ON

Оператор ON означает «переключатель». Этот оператор удобно использовать для передачи управления в «к» точек программы пользователя. Его синтаксическая структура:

ON <E> ,

где ON - ключевое слово переключатель; E - арифметическое выражение, которое должно принимать последовательность целых значений 1, 2, 3, …, k.

Переключатель может передавать управление либо через GOTO в разные точки программы, либо через GOSUB к различным подпрограммам.

В зависимости от значения, которое принимает арифметическое выражение, управление передается к порядковому номеру записанных строк нс1…нсk, в соответствии со значением Е.

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

Работу оператора ON можно проиллюстрировать на задаче решения квадратного уравнения в общем виде.

Пример. Дано квадратное уравнение . Известно, что корни квадратного уравнения зависят от значения (вернее знака) дискриминанта D, который может быть больше нуля, равен нулю или меньше нуля. Предлагается выбрать в качестве Е следующие выражения:

E = SGN(D) + 2.

При D < 0 E = 1;

D = 0 E = 2;

D > 0 E = 3.

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

30 ON SGN(D) + 2 100,200,300

100 PRINT “Корни комплексные сопряженные”

200 PRINT “Корни действительные равные”

300 PRINT “Корни действительные разные”

Значения параметров строк 100,200,300 взяты произвольно, но их порядковые номера 1,2,3.

5.8 Решение нелинейных уравнений

Иррациональные числа, которые не могут быть корнем никакого алгебраического уравнения с целыми коэффициентами, называют трансцендентными числами. К таким числам относятся корни нелинейных уравнений, которые обычно решаются с помощью операторов IF - GOTO.

Задача в общем виде формируется следующим образом.

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

Известно множество методов вычисления корня уравнения. Все они предлагают приближение к корню по формуле:

,

где

Функция учитывает расчетную формулу метода и исходную функцию .

Обычно значение считают достаточно хорошим приближением к точному значению корня, если выполняется условие:

При вычислении этого неравенства искомое значение корня получается равным , и вычисление прекращается.

Количество циклов приближения неизвестно, поэтому требуется анализ с помощью IF.

Студентам предлагается 3 метода решения нелинейных уравнений: метод простой итерации, метод Ньютона и метод деления пополам (метод бисекций).

5.8.1 Метод простой итерации

Задано: , и .

Введем обозначения: , , . При использовании метода простой итерации уравнение необходимо решить относительно в общем виде:

Тогда алгоритм решения будет следующим.

1. Задается значение .

2. Вычисляется .

3. Проверяется условие

4. Если условие выполняется (“истина”), то в противном случае и следует повторять цикл с п.2 (через GOTO).

5.8.2 Метод Ньютона

Задано: , и . При использовании этого метода нелинейное уравнение должно быть приведено к виду .

Введем обозначения: - левая часть нелинейного уравнения; - первая производная от ;

.

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

Итак, алгоритм решения.

1. Задаем значение

2. Вычисляется .

3. Вычисляется .

4. Определяется .

5. Проверяется условие

Если условие выполняется, то - искомый корень, в противном случае следует повторить цикл с п.2.

5.8.3 Метод деления пополам

Задано: , и интервал , где существует корень.

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

.

Для перемещения или интервала используется теорема Больцмана-Коши (о существовании корня внутри интервала):

,

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

Алгоритм решения следующий.

1. .

2. Вычисляется .

3. Вычисляется (или ).

4. Анализ . Если , то выход из цикла; в противном случае п.5.

5. Анализ интервала . Если условие выполняется, то выход из цикла; в противном случае надо сдвигать интервал по п.6.

6. Анализируется . Если , то ; в противном случае .

7. Вычисления отправляются к п.1 (через GOTO).

Задание 1.

1. Составить схему алгоритма для вычисления функций, приведенных в таблице 5.6.

2. Написать программу на языке BASIC.

3. Произвести расчеты на микроЭВМ.

4. Распечатать листинг программы.

5. Исходные данные, промежуточные и окончательные результаты вывести на экран монитора и на печатающее устройство.

Задание 2.

1. Составить схему алгоритма для вычисления функций, приведенных в таблице 5.7.

2. Выполнить пп. 2 - 5 задания 1.

Таблица 5.6. Список заданий

Вариант

Функции

Исходные данные

1

2

3

4

5

6

7

8

9

10

Таблица 5.7. Список заданий

Вариант

Функции

Исходные данные

1

причем х - корень нелинейного уравнения ln x - x + 1,8 = 0, которое необходимо решить методом деления пополам с точностью ?.

a = 1

b = 4

c = 3

? = 10-4

Интервал существования корня [1,7; 3,3]

2

причем х - корень нелинейного уравнения x - sin x = 0,25, которое необходимо решить любым методом с точностью ? при начальном значении x0.

a = 2,23

b = 13,12

? = 10-5

x0 = 1,17

3

причем х - корень нелинейного уравнения x = e-x, которое необходимо решить методом Ньютона с точностью ? при начальном значении x0.

a = 3,17

b = 7,51

? = 10-4

x0 = 0

4

причем х - корень нелинейного уравнения x2 - sin 5x = 0, которое необходимо решить методом Ньютона с точностью ? при начальном значении x0.

a = 0,71

b = 2,23

? = 10-3

x0 = 0,58

5

причем х - корень нелинейного уравнения x - sin x = 0,25, которое необходимо решить методом простой итерации с точностью ? при начальном значении x0.

a = 1,21

b = 10,01

? = 10-4

x0 = 1,18

6

причем х - корень нелинейного уравнения x = e-x, которое необходимо решить методом деления пополам с точностью ?.

a = 1,05

b = 10,1

? = 10-5

Интервал существования корня [-1; 1]

7

причем х - корень нелинейного уравнения x - sin2 x = 0,25, которое необходимо решить методом простой итерации с точностью ? при начальном значении x0.

a = 3,01

b = 8,15

? = 10-4

x0 = 1,16

8

причем х - корень нелинейного уравнения x2 - sin 5x = 0, которое необходимо решить методом деления пополам с точностью ?.

a = 2,25

b = 7,15

? = 10-5

x0 = 1,17

9

причем х - корень нелинейного уравнения x3 - cos 2x = 0, которое необходимо решить методом Ньютона с точностью ? при начальном значении x0.

a = 1,75

b = 3,25

? = 10-5

Интервал существования корня [-5; 2]

10

причем х - корень нелинейного уравнения 10x = lnx+ex, которое необходимо решить методом деления пополам с точностью ?.

a = 1,96

b = 1,05

? = 10-5

Интервал существования корня [-2,7; 4,3]

6. Диалоговый режим работы. Программирование циклических процессов

6.1 Диалоговый режим

При программировании на языке GB различают косвенный, непосредственный и диалоговый режим работы.

Чаще всего программы записываются в косвенном режиме - каждая строка начинается с номера. В этом режиме выполнение операторов задерживается до подачи специальной команды RUN.

Операторы могут печататься в строке без номера. Выполнение оператора осуществляется после нажатия клавиши “ENTER” в конце строки. Этот режим называется непосредственным. В этом режиме результат выполнения хранится, а сам оператор теряется. Режим является удобным и может использоваться при редактировании и отладке программ, записанных в косвенном режиме. В любом месте выполнения программы она может быть остановлена, и может быть применим непосредственный режим работы.

Диалоговый режим обеспечивается использованием оператора INPUT. Грубые ошибки пользователя обнаруживаются программой сразу после нажатия клавиши “ENTER”, другие ошибки - в процессе выполнения программы. При этом следует “подсказка” о типе ошибки.

6.2 Оператор INPUT

Оператор INPUT позволяет создавать универсальные программы, не зависимые от значений исходных данных. Его структура:

нc INPUT <переменные>,

где INPUT - ключевое слово “ввести”; угловые скобки заменяются переменными, которые необходимо ввести оператору при запросе через запятые.

Пример: 90 INPUT А, В, Х

Встретив, этот оператор, BASIC выводит на экран сообщение: “?” (знак вопроса) и ждёт ввода значений переменных. Значения переменных набираются на клавиатуре и отделяются друг от друга запятыми (в конце списка запятая не ставится). Ввод переменных заканчивается нажатием клавиши “ENTER”.

Пример: Пусть А = 0.25, В = 3, С = 4Е-1 для вышерассмотренного примера (строка 90). Тогда после вопроса необходимо печатать так:

? .25, 3, 4Е-1

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

В GB появилась вторая структура, которая объединяет PRINT и первую форму INPUT:

INPUT ”<комментарий >”; <переменные>

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

6.3 Циклические вычислительные процессы

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

Циклические вычислительные процессы можно разделить на три группы: итерационные, циклы с параметром (циклы со счётчиком) и циклы при обработке массивов.

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

6.4 Итерационные циклы

Итерационные циклы тесно связаны с итерационными методами решения уравнений и систем уравнений.

Например, для вычисления корней нелинейных уравнений используется метод простой итерации, метод Ньютона, метод бисекций (деления пополам) и др. Программирование таких процессов осуществляется, как правило, с использованием операторов IF и GOTO.

6.5 Циклы с параметром

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

,

где и - начальное и конечное значения параметра, - шаг изменения. Циклы с параметром при вещественного типа можно свести к циклическому процессу с целого типа:

.

Однако при вещественном значении параметра не всегда возможно получить целое , поэтому следует округлять до целого с учётом анализа условия задачи.

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

В языке BASIC имеются специальные операторы для организации циклов с параметром: FOR - NEXT. Такой цикл называется циклом с управляющей переменной или циклом со встроенным счетчиком.

6.6 Операторы FOR и NEXT

Синтаксическая структура оператора:

нс FOR <переменная> = Е1 ТО Е2 {STEP E3},

где FOR - ключевое слово “для”; Е1 - арифметическое выражение, определяющее начальное значение переменной, которое называется управляющей; ТО - служебное слово “до” (включительно); Е2 - арифметическое выражение, определяющее конечное значение управляющей переменой; STEP - служебное слово “шаг”; Е3 - выражение, определяющее величину шага, то есть приращение. Таким образом, Е1-Е2 представляет область действий управляющей переменной.

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

Операторы цикла записываются вслед за оператором FOR, который является фактически заголовком тела цикла.

Служебное слово STEP указывает величину шага. Оно может опускаться только в том случае, если шаг +1 - во всех остальных случаях STEP необходим.

Оператор NEXT завершает цикл. Его структура:

нс NEXT <управляющая переменная>,

где NEXT - ключевое слово “следующий”. Этот оператор изменяет значение управляющей переменной на величину шага.

Пример1. Вычислить при изменении с шагом 1 на интервале

Пример2. Вычислить с шагом 0.4 значение функции (с параметром) на интервале .

Фрагмент программы:

30 FOR X = -1 TO 1 STEP .4

40 Y = COS(X)

50 NEXT X

6.7 Вложенные циклы

Вложенные циклы организуются с помощью вложенных операторов FOR - NEXT, которые образуют внутренние циклы, и служат для программирования циклов внутри циклов.

Пример. Вычислить причем a и b изменяются на интервале {1 , 5} с шагом 1.

На каждый внешний цикл внутренний отвечает всеми циклами.

В случаях, когда необходимо вывести на экран или печатающее устройство n любых символов, более экономично вместо FOR-NEXT использовать функцию генерации строки:

STRING$(n, <”символ”>),

где n - количество; в качестве символа можно использовать любой символ.

Строки 40-60 выполняются в каждом внешнем цикле 5 раз, всего внешних циклов 5. Количество вычисленных значений у равно 25.

Пересечения циклов не допускается. Организация вложенных циклов осуществляется по различным управляющим переменным. Если программа позволяет, то можно использовать один NEXT:

NEXT B, A

Сначала записывается управляющая переменная внутреннего цикла. Максимальная глубина вложения у многих версий не более восьми.

Циклы обработки массивов рассматриваются в следующем разделе.

6.8 Операторы WHILE - WEND

Операторы WHILE-WEND образуют циклы с предусловием. Они могут использоваться для организации циклов с непредсказуемыми условиями. Такой цикл не требует оператора IF и может применяться при организации итерационных циклов (например, при решении нелинейных уравнений).

Синтаксическая структура такого цикла:

В операторе WHILE (ключевое слово “пока”) вычисляется сначала условие: если “истина”, то выполняются операторы цикла. Как только встречается WEND (ключевое слово “вернуться”) управление передается на оператор WHILE. Это будет повторяться до тех пор, пока условие будет “истина”. При ложном значении управление передается оператору, следующему за WEND.

6.9 Операторы DO - LOOP

Эти операторы есть только в QB и TB. В этих циклах пользователь сам может выбирать вариант проверки условия повторения - в начале цикла (предусловие) или в конце (постусловие) DO - ключевое слово выполнять; LOOP- ключевое слово цикл. Использование WHILE <условие> повторяет цикл пока условие “истина”, а UNTIL <условие> приводит к повторению цикла при ложности условия.

Синтаксическая структура:

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

Задание 1.

1. Составить схему алгоритма для вычисления функций, приведенных в табл. 6.1.

2. Написать программу.

3. Произвести расчёты на микроЭВМ.

4. Распечатать листинг программы.

5. Исходные данные, промежуточные и окончательные результаты вывести на экран и на печатающее устройство.

Таблица 6.1. Список заданий

Вариант

Функция

Исходные данные

1

х = 0,35

а = [0,5 - 2,5]

шаг ?a = 0,5

2

х = 0,54

а = [0,2 - 1]

шаг ?a = 0,2

3

х = 0,7

а = [0,3 - 1,5]

шаг ?a = 0,3

4

х = 0,8

а = [0,4 - 2]

шаг ?a = 0,4

5

х = 1,2

а = [0,1 - 0,5]

шаг ?a = 0,1

6

х = 1,5

а = [1,2 - 2]

шаг ?a = 0,2

7

х = 0,4

а = [0,7 - 1,1]

шаг ?a = 0,1

8

х = 0,3

а = [0,5 - 1,1]

шаг ?a = 0,2

9

х = 0,45

а = [0,7 - 1,9]

шаг ?a = 0,3

10

х = 0,7

а = [1,2 - 2]

шаг ?a = 0,2

Задание 2.

1. Составить схему алгоритма для вычислений функций, приведенных в табл.6.1.

2. Выполнить пп.2-5 задания 1.

Таблица 6.2. Список заданий

Вариант

Исходные данные

1

х = [0,35 - 0,43], шаг ?x = 0,02;

а = [0,5 - 2,5], шаг??a = 0,5;

2

х = [0,54 - 0,58], шаг ?x = 0,1;

а = [0,2 - 1], шаг ?a = 0,2;

3

х = [0,7- 1,9], шаг ?x = 0,3;

а = [0,3 - 1,5], шаг ?a = 0,3;

4

х = [0,8 - 1,3], шаг ?x = 0,1;

а = [0,4 - 2], шаг ?a = 0,4;

5

х = [1,2 - 2], шаг ?x = 0,2;

а = [0,1 - 0,5], шаг ?a = 0,1;

6

х = [1,5 - 1,9], шаг ?x = 0,1;

а = [1,2 - 2], шаг ?a = 0,2;

7

х = [0,4 -1,2], шаг ?x = 0,2;

а = [0,7 - 1,1], шаг ?a = 0,1;

8

х = [0,3 - 0,7], шаг ?x = 0,1;

а = [0,5 - 1,2], шаг ?a = 0,2;

9

х = [0,45 - 0,49], шаг ?x = 0,01;

а = [0,7 - 1,9], шаг ?a = 0,3;

10

х = [0,7 - 1,1], шаг ?x = 0,1;

а = [1,2 - 2], шаг ?a = 0,2;

7. Обработка массивов

7.1 Массивы

Массив - это упорядоченная последовательность величин, идентифициро-ванных одним именем, в которой положение каждого элемента определено индексом.

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

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

Примеры. А(I) - одномерный массив;

В(I,J) - двумерный массив.

Максимальное количество индексов в GB - 255, в QB - 60, в TB - 8. Минимальное значение индекса - 0. Максимальное значение индекса в GB - 16387, в QB и TB - 32767.

7.2 Оператор DIM

При обработке массивов память микроЭВМ резервируется под элементы массива. Предусмотрены два способа резервирования: по умолчанию и с помощью специального оператора DIM. По умолчанию резервируется 10 элементов массива от 0 до 9. При обработке большего количества элементов массива на экране монитора появится сообщение об ошибке.

Оператор DIM используется для описания максимального размера массива.

Структура оператора:

нс DIM <имя> (мн1, мн2),

где DIM - ключевое слово (сокр. от DIMENSION) - “размер”; вместо угловых скобок указывается имя массива, а в круглых скобках максимальный (для одномерного) или максимальные (для двумерного или другой размерности) массивов индексы мн1 и мн2.

Пример. 30 DIM А1(2,3), В(10)

В 30-й строке резервируется место в памяти для 12-ти элементов двумерного и 11-ти элементов одномерного массивов (учитываются нулевые индексы).

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

7.3 Обработка массивов

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

7.4 Ввод массивов

Для ввода или формирования массивов можно использовать операторы DATA - READ или оператор INPUT с использованием операторов циклов.

Пример. Ввести 5 первых элементов массива А(I): 1;2;3;4;5.

Фрагмент программы:

20 DIM А(5)

30 FOR I = 1 TO 5

40 INPUT A(I)

50 NEXT I

Для большинства версий системы INТEL знаки вопроса (?) после команды RUN печатаются в столбик:

? 1

? 2

Аналогично с помощью INPUT производится ввод двумерного массива через организацию вложенных циклов, при этом в памяти микроЭВМ элементы двумерного массива располагаются по строкам: В(0,0); В(0,1); В(0,2);…В(1,0); В(1,1);…

7.5 Вывод массивов

Организация вывода одномерного массива ничем не отличается от организации ввода - только вместо INPUT используется PRINT (для вывода на экран) или LPRINT (для вывода на печатающее устройство).

При выводе двумерных массивов на микроЭВМ между оператором NEXT J (окончание внутреннего цикла) и NEXT I (окончание внешнего цикла) следует употреблять PRINT без списка - для закрытия строки, чтобы матрица распечаталась в привычном виде, а в конце PRINT A(I,J); надо использовать знаки препинания `,'или `;'.

7.6 Использование массивов в вычислениях

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

Алгоритм накопления сумм:

S = 0 - до цикла

S = S + <?> - в цикле

Алгоритм накопления произведений:

P = 1 - до цикла

P = P * <П> - в цикле

Пример. Вычислить

Фрагмент программы:

50 S=0

60 FOR I = 1 TO N

70 S = S + X(I)

80 NEXT I

90 Y=S

В 50-й строке осуществляется подготовка цикла (установка сумматора или накопителя в “нуль”); 60 - 80 строки - тело цикла; в 90-й строке полученное значение присваивается переменной Y.

Алгоритм (схема) Горнера.

Известно, что полином в общем виде записывается следующим образом:

Y=An*X^n+ A(n-1)*X^(n-1)+…A1*X+A0 .

Горнер предложил переиндексировать коэффициенты многочлена:

Y=A1*X^n+ A(n-1)*X^(n-1)+…An*X+A(n+1) .

Далее он предложил разложить многочлен и представить в виде:

Y=(…(A1*X+A2)*X +A3)*X+…A1)*X+A(n+1) .

Исходя из такого представления, он предложил алгоритм, который еще называют схемой Горнера:

-все коэффициенты A1, A2,…,A(n+1) представить в виде элементов массива;

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

-до цикла FOR-NEXT взять значения y=A(1);

-цикл по управляющей переменной организовывать с I=2 до X+1;

-в цикле использовать формулу:

Y=Y*X+A(I) .

Если все значения Y надо сохранить, то Y следует организовать тоже как массив.

7.7 Функция TAB

Дополнительные удобства для размещения выводимой информации создаёт функция TAB.

Структура оператора печати с использованием TAB:

нс PRINT TAB(нпп); {список},

где нпп - номера позиции, которая является целым аргументом функции TAB в диапазоне 0 - 80.

Пример: 50 PRINT TAB(12); A; TAB(25); C

Задание1.

1. Составить схему алгоритма для вычисления функций, приведённых в табл. 7.1.

2. Составить программу для циклического вычислительного процесса с использованием оператора INPUT. Использовать комментарии.

3. Произвести расчёты на микроЭВМ.

4. Распечатать листинг программы.

5. Исходные данные, промежуточные и окончательные результаты расчёта вывести на экран видеотерминала (дисплея) и на печатающее устройство.

Таблица 7.1. Список заданий

Вариант

Функции

Исходные данные

1

2

3

4

5

6

7

8

9

10

Задание 2.

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

2. Выполнить пп. 2 - 6.

8. Использование массивов в вычислениях

Сведения по обработке двумерных массивов содержаться в разделе 7.

Задание 1. Составьте программу решения заданий, приведенных в табл.8.1.

Задание 2. Составьте программу вычисления произведения матриц размером 3х3. Значения матриц приведены в табл.8.2.

При умножении матрицы на матрицу получается матрица. Пусть даны матрицы aij и bij. При вычислении искомой матрицы используется формула . Такую формулу следует реализовать, используя 3 вложенных цикла: по управляющим переменным i, j и k.

Таблица 8.1

Вариант

Задание

Последовательность чисел

1

Из последовательных чисел а1, а2,…,аn выбрать отрицательные элементы, подсчитать их число и переписать их подряд в массив Х.

1.2; 0, 6; -7; 3.8; -4.2; 0; 12; 15; -7; 5; 64; 200; 28; 3; -0.5; 0; 0; 17; 18; -33; 102.

2

Дан ряд чисел Ук(к=1,2,…,n). Выбрать из них положительные числа и найти среди них наибольшее.

-//-

3

Из последовательных чисел а1, а2,…, аn выбрать числа, равные 0, подсчитать их число, а оставшиеся числа напечатать в одну строку.

-//-

4

Дан ряд чисел Хi(i = 1,2,…n). Вычислить сумму элементов с нечетными и четными номерами.

-//-

5

Дан ряд чисел Y(Y1, Y2,…Yn). Найти максимальную компоненту, напечатать ее и ее порядковый номер.

-//-

6

Дан ряд чисел b1,b2,…,bn. Выбрать из них положительные числа и найти среднее арифметическое квадратов этих чисел.

-//-

7

Для массивов а(а12,…аn) вычислить наибольшее и наименьшее значения модуля разности между соседними элементами.

-//-

8

Из последовательности чисел Y1, Y2,…,Yn выбрать элементы, которые делятся на 3. Подсчитать их число и напечатать их порядковые номера.

-//-

9

Из последовательных чисел z1, z2,…,zn выбрать положительные элементы, переписать их подряд в массив Y и найти их произведение.

-//-

10

Дан ряд чисел с12,…,сn. Выбрать из них положительные числа, переписать их подряд в массив Х,

а отрицательные числа переписаться подряд в массив Y. Найти суммы массивов X и Y.

-//-

Таблица 8.2. Список заданий

Вариант

Элементы матрицы А

Элементы матрицы В

1

2

3

4

5

6

7

8

9

10

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

9.1 Функции пользователя

Помимо стандартных функций (см. табл. 3.1) в программе пользователь может определить и далее использовать другие (нестандартные) функции. Для определения функции пользователем используется оператор DEF FN. Его синтаксическая структура:

DEF FNv[тип](X1, X2, …) = E,

где DEF(от DEFINE) - определить; FN(от FUNCTION) - фукция; v - имя функции, которое, вместе с FN и символами %, $ и др., не должно превышать 40; квадратные скобки указывают на возможность выбора типа функции; X1, X2 - простые переменные - формальные аргументы функции; E - арифметическое выражение, по которому вычисляется функция.

Арифметическое выражение в правой части может содержать (но не обязательно) формальные аргументы X1, X2,… другие переменные, общие для всей программы, а также любую комбинацию формальных аргументов в других переменных программы. Оператор DEF FN является описательным и относится к невыполняемым операторам и должен располагаться в программе до первого использования определяемой им функции, целесообразнее в начале программы.

Пример: DEF FNY(X, Y) = A * X ^ 2 + Y ^ 3

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

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

Пример: Вычислить FNY: а) при переменных А и В; б) возвести в 3 степень при X=1, Y=0.

нс Y1 = FNY(A, B)

Y2 = FNY(1, 0) ^ 3

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

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

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

9.2 Подпрограммы пользователя

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

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

Здесь будут рассматриваться внутренние подпрограммы.

Для подпрограмм характерными являются описание и обращение.

Описание внутренней подпрограммы может начинаться с любой строки, но нагляднее (особенно при большом количестве подпрограмм) с комментария, который отражает функциональную сущность подпрограммы. Далее следуют операторы для выполнения подпрограммы. Подпрограмма должна обязательно заканчиваться оператором, который осуществляет возврат в основную программу. Для этого используется оператор со следующей синтаксической структурой:

нс RETURN, где

Return - ключевое слово “вернуться”.

Структура описания подпрограммы :

нс <комментарий>

… операторы

… подпрограммы

RETURN,

Количество операторов RETURN может быть любым.

В QB и TB можно использовать номер строки или метку.

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

GOSUB нс (или метки),

где GOSUB - ключевое слово “идти к”; номер строки или метка указывают, к какой подпрограмме обращается основная программа. Для подпрограмм желательно использовать большие номера, например, начиная с 1000. Подпрограммы располагаются в конце основной программы и должны обязательно отделяться от основной программы оператором STOP для GB, или оператором END для QB и TB.

Правило выполнения подпрограммы:

Когда в основной программе встречается обращение, основная программа передаёт управление подпрограмме. После выполнения подпрограммы управление передаётся снова в основную программу к оператору, следующему за GOSUB, а обращение замещается вычисленным значением или остаётся в подпрограмме, так как область памяти для основной программы и подпрограмм одна и та же, а поэтому все вычисленные в подпрограмме значения доступны для основной программы. Однако при повторном обращении к той же подпрограмме вычисленные значения потеряются. В таком случае после 1-го обращения к подпрограмме вычисленные значения должны сохраняться в основной программе, присвоив их каким-либо переменным.

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

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

Задание 1.

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

Задание 2.

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

Таблица 9.1. Список заданий

Вариант

Вычислить

Данные

1

2

3

4

5

6

7

8

9

10

10. Графические средства языка BASIC

10.1 Передний план, фон и окантовка

На экране монитора можно выделить три области: передний план, фон, окантовка.

Передний план - это область экрана, где располагаются текстовые данные и графические изображения, которые накладываются на фон.

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

Окантовка - окружной фон, но, как правило, она бывает того же цвета, что и сам фон. Поэтому она неразличима. Благодаря наличию окантовки сглаживаются различия между.

10.2 Режимы работы экрана

Экран монитора имеет 2 режима работы: текстовый и графический. Графический режим позволяет рисовать точки, линии, прямоугольники, окружности и рисовать различные фигуры. Итак, экран монитора в графическом режиме представлен точками, которые называются пикселями. Оператор переключения экрана монитора следующий: SCREEN k,

где SCREEN - ключевое слово экран; k = 0…13 - режимы.

Если к = 0, то осущес...


Подобные документы

  • Структура внешнего интерфейса. Алгоритмы функционирования микроЭВМ, его структурная и функциональная схемы. Формат микрокоманд и разработка микропрограммы. Диаграмма синхроимпульсов при использовании микропроцессора. Временная диаграмма работы микроЭВМ.

    курсовая работа [2,6 M], добавлен 18.06.2012

  • Организация файлов и доступ к ним. Файловые операции. Программирование с использованием встроенных функций ввода-вывода; линейных, разветвляющихся и циклических вычислительных процессов с использованием If-else, оператора выбора Case; массивов и матриц.

    курсовая работа [5,8 M], добавлен 24.05.2014

  • Системы программирования и их графические возможности. Разработка мультимедиа курса, способствующего эффективному усвоению учащимися базовой школы темы "Графические возможности языка программирования" (на примере языков программирования Basic и Pascal).

    дипломная работа [588,3 K], добавлен 29.12.2010

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

    реферат [22,8 K], добавлен 15.03.2004

  • Язык программирования Visual Basic: краткая история возникновения, значение и общая характеристика. Изучение основных свойств Visual Basic, синтаксис языка. Обзор ключевых операторов Visual Basic, пользовательские процедуры и функции данного языка.

    контрольная работа [36,4 K], добавлен 23.07.2014

  • История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.

    контрольная работа [2,3 M], добавлен 04.05.2015

  • Программирование вычислительных процессов на языке FORTRAN для обеспечения взаимодействия системы "Человек-Производство-Природа". Использование массивов для составления циклов подсчета уровня экологического загрязнения, затрат на переработку отходов.

    курсовая работа [2,0 M], добавлен 30.05.2014

  • Общие сведения о языке С++. Операции и выражения, стандартные функции и структура программы. Использование функций при программировании на С++. Основные алгоритмы обработки массивов. Статические и динамические матрицы. Организация ввода-вывода в C++.

    учебное пособие [6,7 M], добавлен 28.03.2014

  • Язык BASIC как семейство высокоуровневых языков программирования. Средства алгоритмического языка программирования и их типы. Способы ввода исходных данных. Особенности оператора условного перехода. Детальная характеристика циклических вычислений.

    реферат [64,4 K], добавлен 02.05.2015

  • Целесообразность применения МП-устройства. Архитектура микропроцессорной системы. Структурная организация БИС ВТ с изолированными шинами. Содержание и возможная направленность микроконтроллера. Обобщенная структура простого встраиваемого микроконтроллера.

    реферат [224,5 K], добавлен 28.04.2011

  • Рождение и развитие Basic. Краткое описание Visual Basic for Applications. Новые возможности Visual Basic 5.0. Пример взаимодействия Excel и Visual Basic. Программирование табличных функций. Встраивание, применение функций. Формы, средства управления OLE.

    реферат [20,7 K], добавлен 11.03.2010

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

    курсовая работа [1,1 M], добавлен 24.11.2013

  • Описание работы ЭВМ при выполнении программы по указанной блок-схеме и исходным данным. Составление линейной программы на языке Basic в виде подпрограммы-функции для вычисления заданной величины. Разработка в ЭТ Excel макроса для указанной функции.

    контрольная работа [765,6 K], добавлен 16.10.2011

  • Характеристика языка программирования С++. Описание классов и методов. Выполнение решения вычислительных процессов по заданным формулам. Создание диалогового приложения. Разработка инструкции пользователя. Операции над одномерными и двумерными массивами.

    дипломная работа [2,0 M], добавлен 16.04.2017

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.

    курсовая работа [67,6 K], добавлен 20.11.2012

  • Основные виды программного обеспечения: системное (операционные, сервисные и диагностические системы, инструментальные средства) и прикладное (текстовые, табличные, математические процессоры, графические редакторы). Классификация операционных систем.

    презентация [282,5 K], добавлен 13.08.2013

  • Написание тестирующей программы для проверки знаний учащихся с помощью языка программирования Visual Basic for Applications (VBA), встроенного в пакет Microsoft Office. Общие сведения о программе, условия ее выполнения, настройка, проверка, выполнение.

    контрольная работа [25,2 K], добавлен 07.06.2010

  • Разработка прикладного программного обеспечения для решения задачи для персонального компьютера. Структура подпрограммы, механизмы передачи параметров и возврат результатов из подпрограммы. Вызов подпрограммы на выполнение. Отладка программы на языке С.

    курсовая работа [818,1 K], добавлен 03.01.2014

  • Основные этапы решения задач на ЭВМ. Элементы управления и пользовательская форма VBA. Ввод и вывод информации. Открытие и закрытие файла. Операторы цикла и подпрограммы. Реализация разветвляющихся алгоритмов в VBA. Типы данных, переменные и константы.

    учебное пособие [1,4 M], добавлен 21.05.2009

  • Векторная компьютерная графика. Графические примитивы. Графические возможности языка программирования Pascal. Методические рекомендации к изучению графики в языке программирования Pascal. Построение графиков функций.

    курсовая работа [28,3 K], добавлен 13.06.2007

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.