Файл: Основы программирования на языке QBasic (Теоретические основы программирования в среде QBASIC).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 104

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Универсальные языки наиболее удобны в использовании, поскольку максимально приближены к естественному человеческому языку, и, конечно, процесс компиляции для них достаточно сложен. Языки этого класса(Basic, Си, Pascal, Ada и др.) объединяет одно - они шаг за шагом последовательно реализуют алгоритм, поэтому их называют алгоритмическими, что представляется не совсем корректным, поскольку любое программирование связанно с реализацией того или иного алгоритма. Более правильным представляется называть эти языки процедурно-ориентированными и также связанную с ними технологию технологией программирования.

Весь процесс реализации конкретной задачи на компьютере, с определённой степенью условности, можно разделить на 10 этапов:

  1. Содержательная постановка задачи.
  2. Математическая постановка задачи.
  3. Формализация математической постановки - выбор метода решения.
  4. Разработка алгоритма решения задачи.
  5. Разработка ПО, реализующего алгоритм.
  6. Отладка ПО (выявление и устранение ошибок).
  7. Тестирование ПО и анализ результатов.
  8. Проведение доработок по итогам тестирования.
  9. Разработка технической документации(инструкций) для пользователей.
  10. Сдача в эксплуатацию.

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


Любая программа выполняется в результате её трансляции-перевода записи операторов на язык компьютера. Каждый оператор в программе после трансляции будет представлен набором кодов команд. Эти команды выполняются в оперативной памяти компьютера.

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

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

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

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

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

Основные операторы, реализующие типовые алгоритмические конструкции. Оператор присваивания. Допустим, есть математическое выражение Y=.

Оператор присваивания на языке Basic будет иметь следующий вид:

Y=SQR(6.25*x^2+2.12*x+0.123)

(1)

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

Оператор ввода данных. Этот оператор размещает данные в оперативной памяти компьютера. Имена переменных, записанных в операторе INPUTв произвольном порядке, получают значения, вводимые с клавиатуры в этом же порядке, т.е. первой переменной соответствует первое введённое значение, второй-второе и т.д. Оператор ввода в языке Basicимеет следующий формат:


INPUT<сообщение>;x1,x2,x3,….,xn.

(2)

Здесьx1,x2,x3,….,xn–имена переменных, которые получают значения, вводимые с клавиатуры в порядке их следования. Иначе их называют списком ввода; сообщение-это текстовая константа, уточняющая, напоминающая человеку о его действиях.

Оператор вывода. Этот оператор предназначен для вывода результатов или на экран монитора или на принтер. Общий вид(формат) оператора вывода в языке Basic таков:

PRINTx1,x2,x3,….,xn

(3)

где x1,x2,x3,….,xn– имена переменных, содержимое которых выводится на экран монитора в порядке их следования. Иначе их называют списком вывода.

Существуют два вида операторов (команд) перехода. Оператор безусловного перехода передаёт управление к другой команде всегда, вне зависимости от каких бы то ни было условий.

Оператор условного перехода передает управление только в случае истинности некоторого условия, а в противном случае-просто игнорируется.

Общий вид (формат) оператора условного перехода в языке Basic таков: IF<условие>THEN<оператор или группа операторов>

[ELSE<оператор или группа операторов>]

В качестве условия могут быть использованы либо операции сравнения (=,<>,>,>=,<,<=), либо логические выражения. Смысл этого оператора состоит в том, что если условие истинно, то выполняется оператор или группа операторов, следующих за словом THEN, а если условие ложно, то выполняется оператор или группа операторов, следующих за словом ELSE(иначе). Для реализации циклических алгоритмических конструкций используется оператор цикла, в языке Basic это «связка» операторов FOR

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

Формат оператора FOR таков:

FORI=IначTOIкон[STEP]

(4)

где I– счётчик цикла;Iнач - начальное значение счётчика цикла; Iкон – конечное значение счётчика цикла; – шаг изменения счётчика цикла.

1.3 Массивы

Многие задачи, решаемые на ПЭВМ, связаны с обработкой больших объёмов информации. В таких случаях данные удобно некоторым образом упорядочивать, т.е. создавать массивы.


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

Существуют одномерные и двумерные массивы.

Одномерный массив- соответствует линейной таблице, его элементы обозначаются переменной с индексом А(1), К3(1).

Двумерный массив-описывает в программе прямоугольную таблицу .

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

С9 (4,5), где первый индекс обозначает № строки, а второй № столбца.

Прежде чем использовать массив, нужно указать компьютеру размер этого массива. Для объявления размера массива, используется оператор DIM. Слово DIM является сокращением слова dimension (размер).

Общая форма записи оператора:

DIM имя массива (I1[,J1]),

имя массива (I2[,J2]),…

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

Глава 2. Особенности программирования в среде QBASIC

Программа, включающая в себя следующие операторы: ввод первого операнда; ввод второго операнда; условный оператор; вывод результата

INPUT “a=”; a

INPUT “b=”; b

IF a>b THEN c=a+b ELSE c=a*b

PRINT “c=”;c

END

Программа запрашивает и вводит с клавиатуры семь целых чисел и выводит на экран сами числа и значения их кубов

FOR i=1 TO 7 STEP 1

INPUT a

PRINT a, a^3

NEXT i

END

Пример обработки массива в цикле

DIM mass(6)

RANDOMIZE TIMER

FOR k=1 TO 6

mass(k)=INT(RND*100)

s=s+mass(k)

PRINT “mass(“;k;”)=”;mass(k)

NEXT k

PRINT “symma=”;s

END

2.1 Выполнение арифметических операций

2.1.1 Найти значение выражения

Программа, работающая в диалоговом режиме

10 INPUT a, b, c

20 d = a

30 IF d = 0 GOTO 60

40 PRINT (c * (a ^ 3 * b) - c ^ 2) * (c ^ 3 / a)

50 END

60 PRINT “no a net 0”

Вывод результата

Да

Нет

Ввод


Конец

Начало

Рисунок 5. Блок-схема

2.1.2 Найти значение выражения

Программа, работающая в диалоговом режиме

10 INPUT a, b, c

20 d = 9 – a^2

30 IF d = 0 GOTO 60

40 PRINT (a^2 + 3 * b ^ 3 * c) – (5 * c / (9 – a^2))

50 END

60PRINT “a not 3”; “a not -3”

70GOTO 10

Вывод результата

Да

Нет

Ввод

Конец

Начало

Рисунок 6. Блок-схема

2.2 Матрица

2.2.1 Вывод элементов матрицы с помощью табуляции

10 CLS

20 DATA 1, 2, 3, 4, 5, 6, 7, 8, 9

30 PRINT “MATRICA A”

40 FOR I =1 TO 3

50 FOR J=1 TO 3

60 READ M (I,J)

70 PRINT TAB (3*J); M (I,J)

80 NEXT J

90 PRINT

100 NEXT I

110 END

Рисунок 7. Вывод матрицы

2.3 Массив

2.3.1 Из элементов двух массивов составить один массив

INPUT "Сколько элементов в массивах"; n, m

DIM x(n), y(m), z(n + m)

a = -9: b = 10

FOR i = 1 TO n: x(i) = INT(a + (b - a) * RND)

PRINT x(i);

NEXT i: PRINT

FOR i = 1 TO m: y(i) = INT(a + (b - a) * RND)

PRINT y(i);

NEXT: PRINT

FOR i = 1 TO n: z(i) = x(i): NEXT

k = 1

FOR i = n + k TO n + m: z(n + k) = y(k): k = k + 1: NEXT

FOR i = 1 TO n + m: PRINT z(i); : NEXT i

Рисунок 8. Массив

2.3 Основы векторного исчисления

2.3.1 Программа нахождения скалярного и векторного произведения векторов, угла между ними

INPUT "BBЕДИТЕ КООРДИНАТЫ ПЕРВОГО ВЕКТОРА"; x1, y1, z1

INPUT "BBЕДИТЕ КООРДИНАТЫ ВТОРОГО ВЕКТОРА "; x2, y2, z2

ska = x1 * x2 + y1 * y2 + z1 * z2

PRINT "СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ = "; ska

x3 = y1 * z2 - z1 * y2

y3 = x1 * z2 - z1 * x2

z3 = x1 * y2 - y1 * x2

PRINT "BEKTOPHOE ПPOUЗBEДEHИE a*b= "; x3, y3, z3

a = (x1 ^ 2 + y1 ^ 2 + z1 ^ 2) ^ (1 / 2)

b = (x2 ^ 2 + y2 ^ 2 + z2 ^ 2) ^ (1 / 2)

ugl = ska / (a * b)

PRINT "КОСИНУСУГЛАМЕЖДУВЕКТОРАМИРАВЕН"; ugl

Начало