Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы программирования для студентов технологического профиля. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
121
PRINT USING "### "; 1 При выполнении этой программы выводятся числа:
123
12
1
- . (десятичная точка). Задает местоположение десятичной
точки в шаблоне. Слева от точки располагается целая часть
числа, а справа – дробная, например:
CLS : PRINT USING "##.## "; .789, 10.2
- выводятся числа 0.79 и 10.20 . Для печати числа выделено 2
позиции под целую часть и 2 позиции под дробную (при необходимости числа округляются). Расстояние между выводимыми числами можно регулировать, вставляя пробелы
между левым знаком решетки (#) и знаком двойной кавычки
(");
- ^^^^ (четыре символа возведения в степень). Определяют
экспоненциальную форму представления числа при выводе и
могут быть указаны после цифровых позиций. В заданных
позициях выводится порядок числа в форме mmЕ±nn или
mmD±nn , например:
CLS : PRINT USING " ##.## ^^^^ "; 234.56, 1000, -1236
- выводятся числа 2.35Е+02 1.00Е+03 -1.24Е+03
Если выводимое число не умещается в поле,
определенное шаблоном, перед числом будет выведен знак %,
например:
CLS : PRINT USING "##.## "; 111.22
 - выводится %111.22 .
Если в конце оператора поставить запятую или точку с
запятой, то следующий оператор вывода выводит информацию в той же строке, что и первый оператор вывода.
Оператор STOP
(STOP - остановка)
Формат оператора:
STOP
122
Назначение оператора: прерывает выполнение программы. После выполнения оператора он высвечивается в тексте программы. Продолжение работы программы возможно при нажатии на кл. F5.
Оператор SLEEP
(SLEEP –спячка)
Формат оператора:
SLEEP [(задержка)]
задержка - время в секундах, на которое задерживается
выполнение программы.
Назначение оператора: приостановка выполнения программы
на заданное число секунд, например:
CLS : PRINT ″Пауза на 5 секунд ″: SLEEP(5) : PRINT ″ГОТОВО″
-экран вывода очищается от информации, появляется надпись:
«Пауза на 5 секунд», а затем через 5 секунд - «ГОТОВО».
Если параметр задержка отсутствует или равен нулю, то оператор SLEEP приостанавливает выполнение программы.
Продолжение работы программы осуществляется только после нажатия на любую клавишу клавиатуры.
Оператор DIM для описания типа данных
(DIMension – резервирование места)
Формат оператора:
DIM переменная AS тип [, переменная AS тип ] … Устанавливает тип данных для простых переменных. Различают следующие типы данных:
- Int e g e r -признак целой переменной одинарной точности.
Целая переменная занимает 2 байта и записывается в памяти компьютера точно. Компьютер производит вычисления с
целыми числами абсолютно точно (без погрешностей);
- Lon g -признак целой переменной двойной точности. Такая
переменная занимает 4 байта. Диапазон таких чисел намного больше диапазона переменной одинарной точности.
- Si n g l e - признак вещественной переменной одинарной
точности. Такая переменная занимает 4 ячейки памяти и
записывается в памяти с определенной погрешностью (с точностью до 8 знака после запятой);
123
- D o uble - признак вещественной переменной двойной
xeY
xa
sin
cos
' Программа для табуляция функции Y
1
'Название файла программы: TABL1.bas
2
'Дата составления программы: 7.11.98
3
'Программист: студент гр. 6131-11 Якшина К.Д.
4
CLS
5
DIM x As Integer, pi As Double, a AS Single,
6
pi = 4* atn(1) : ? "pi=" pi
7
INPUT "Введите значение параметра а"; a
8
CLS : PRINT "a="; a
9
FOR x = 0 TO 90 STEP 5
10
x1 = x * pi / 180 : y = SIN(x1) * EXP(-a * cos(x1)
11
PRINT USING "x=## "; x; : PRINT USING "y=##.##"; y
12
NEXT х
13
END
14
точности; Такая переменная занимает 8 ячеек памяти и
записывается в памяти с определенной погрешностью (с точностью до 16 знаков после запятой). Кроме того, диапазон таких чисел намного больше диапазона чисел одинарной
точности .
- S t r in g - п р и з н а к с т р о к о в ой п е р е м е н н о й .
Программа 3.8.1. Протабулировать функцию Y, зависящую от переменной x:
,
где a=0,5; x = [0; 900], (50)
Переменную цикла задать как целую переменную.
Константу
задать двойной точности. Все остальные
переменные задать одинарной точности.
Значение аргумента вывести в градусной форме.
Значение функции вывести с точностью до двух знаков
после запятой.
Реализация программы на Qbasic:
Напомним, что т а б у л я ц и я - это составление таблицы
значений аргумента и функции.
124
Особенность программы в том, что аргумент x принимает
1-4
-шапка программы;
5
-очистка экрана вывода от ненужной информации;
6
-переменная x определяется как целая переменная;
константа задается как константа двойной точности; переменная а задается как переменная одинарной точности
7
-вычисляется значение константы и вычисленное значение выводится на экран;
8
- с помощью оператора INPUT задается значение параметра a;
9
-экран вывода очищается и на пустой экран выводится значение параметра a;
10
-оператором цикла задается начальное, конечное значение аргумента и шаг его изменения в градусах;
11
-значение аргумента преобразовано в радианную форму
и записано в новую переменную х1, т.к. аргументом тригонометрических функций на QBasic могут быть
только радианы. Второй оператор вычисляет значение
функции.
12
-выводится значение аргумента в градусной форме. Для
вывода значений аргумента достаточно двух позиций поля в шаблоне оператора (вывод аргумента в градусной форме). Значение функции округляется до двух знаков после запятой (две позиции поля под целую часть числа
и две позиции под дробную часть.);
13
-конец цикла.
14
-конец выполнения программы
целые значения и поэтому переменную x можно использовать в качестве параметра цикла.
Обсуждение программы:
После запуска программы на экран выводится:
Введите значение параметра а 2 а=2
X=0 Y=0.00
125
X=5 Y=0.07
x
ax
ey sin
'Программа табуляция функции
1
'Название файла программы: TABL3.bas
2
'Дата составления программы: 26.11.98
3
'Программист: студент гр. 6131-11 Шигапова Н.Д.
4
‘ (C)
5
CLS
6
pi = 4 * ATN(1)
7
DIM x, i As Integer
8
READ an, ak, ah, xn, xk, xh
9
a = an
10
FOR i = 1 TO 5
11
? "Параметр a равен"; a
12
FOR x = xn TO xk STEP xh
13
x1= x * pi / 180 : y = SIN(x1) * EXP(- a * x1)
14
PRINT USING "x=## "; x; : PRINT USING "Y=##.##^^^^"; y
15
NEXT x
16
PRINT
17
X=10 Y=0.12
и т.д. Всего будет выведено 19 пар значений аргумента и функции.
Программа 3.8.2. Протабулировать функцию, зависящую от двух параметров:
,
где а= [0; 1 ], (0,25); x= [0; 900 ], (50)
Исходные данные прочитать из блока данных. После заполнения экрана информацией осуществить
приостановку вывода до нажатия любой клавиши.
Значения y и x вывести в отформатированном виде (т.е. по
заданному формату) в одну строчку, используя оператор PRINT
USING: значение аргумента в градусной форме, а значения функции в экспоненциальном виде.
Программа в Qbasic:
126
PRINT "Для продолжения нажмите любую клавишу"
18
SLEEP
19
a = a + ah
20
NEXT i
21
DATA 0, 1, 0.25, 0, 90, 5
22
Обсуждение программы.
1-5
-шапка программы:
5
-знак С от анг. Copyright (авторское право). Наличие этого
знака, даты создания программы и фамилии автора запрещает копирование и использование программы без разрешения автора;
6
-очистка экрана вывода от ненужной информации;
7
-вычисление значения по формуле  4 * ATN (1);
8
-объявление переменных x и i как переменных целого типа.
9
-чтение исходных данных: an, ak, ah - соответственно начальное, конечное и шаг изменения параметра a; xn, xk, xh
- соответственно начальное, конечное и шаг изменения аргумента x;
10
-присваивание текущей переменной a значения an ­начального значения параметра а;
11
-открытие цикла. Параметр i будет изменяется ровно 5 раз.
Начальное значение параметра равно единице, шаг изменения тоже равен единице. Внимание! Если шаг изменения параметра цикла равен единице, то STEP 1 можно не писать;
12
-вывод параметра а на экран;
13
-открытие цикла с параметром цикла - x;
14
-преобразование градусной формы аргумента x в радианную
форму (x1). Вычисление y;
Особенностью программы является то, что параметр a не
является целым числом и его не рекомендуется использовать в качестве параметра цикла. Параметр a принимает значения: 0,
0.25, 0.5 0.75, 1.
Для каждого заданного значения параметра а, аргумент х
изменяется от 0 до 90 градусов.
127
окончание таблицы
15
-вывод x и y. Пустые пробелы в шаблоне первого оператора
определяют расстояние между выводимыми числами. Точка с запятой в конце первого оператора отменяет перевод курсора на новую строку. Значения x выводятся как целые числа. Значения y выводятся в экспоненциальной форме;
16
-конец цикла с параметром x;
17
-вывод пустой строки; Внимание! Оператор PRINT без параметров выводит пустую строку;
18
-вывод сообщения на экран монитора;
19
-задержка выполнения программы на время, пока не будет
нажата любая клавиша. Внимание! Оператор SLEEP без параметров приостанавливает выполнение операторов на неопределенное время;
20
изменение текущей переменной a на величину шага ah;
21
конец цикла с параметром i;
22
-хранение констант, соответствующих исходным данным.
Оператор не являться выполняемым и пропускается. Поскольку других операторов нет, то работа программы завершается.
После запуска программы на экран монитора выводится
значение параметра a и таблица значений x и y:
Параметр a равен 0 X=0 Y=0.00 X=5 Y=0.09 …………………... X=90 Y=1.00
После нажатия на любую клавишу вывод информации
продолжается.
128
Программа 3.8.3. (см. условие Задачи 2.5.2.).
′ Программа для вычисления выражения
1
′ Программист-студент гр. 6131-11 Хальфина А.А.
2
′ Дата разработки программы - 28.01.13
3
′ Имя файла программы Log_12.bas
4
CLS
5
FOR i = 1 TO 3
6
INPUT "Значение аргумента равно"; x
7
IF x > 0 THEN
8
Y = f1(x)
9
ELSE
10
y=f2(x)
11
END IF
12
? "Значение функции равно" y
13
NEXT i
14
END
15
FUNCTION f1(x)
16
f1 = x^2
17
END IF
18
FUNCTION f2(x)
19
f2=SQR(x)
20
END IF
21
Реализация программы на Qbasic:
Обсуждение программы:
Программа состоит из основного модуля (строки 1-15) и
двух модулей типа function (строки 16-18 и строки 19-21).
Использование модулей позволяет упростить основной
модуль программы.
Строки 1-4 –шапка программы. Оператор CLS (строка 5)
очищает экран вывода информации. В строке 6 записан
оператор цикла. Переменная цикла меняется от 1 до 3, т.к.
необходимо вычисления выполнить три раза. В строке 7
129
оператором Input вводится значение аргумента. В строке 8 оператор if проверяет первое условие задачи. Если значение условия Истина передача управления происходит на строку 9. В строке 9 записано имя первого модуля – f1, поэтому передача управления происходит в модуль function (строка 16). В строке
17 вычисляется значение функции и происходит возврат в
основной модуль (строку 9) (туда же передается и вычисленное
значение функции), откуда управление передается в строку 13, в
которой выводится значение функции.
Если значение первого условия Ложь передача
управления происходит на строку 11. В строке 11 записано имя
второго модуля – f2, поэтому передача управления происходит в модуль function (строка 19). В строке 20 вычисляется значение функции и происходит возврат в основной модуль (строка 11),
откуда управление передается в строку 13, в которой выводится
значение функции. Далее оператор Next, увеличивает значение переменной цикла (i), которая становится равной 2. Поскольку значение переменной цикла меньше конечного значения,
происходит передача управления к началу оператора цикла, т.е.
на строку 6 и т.д.
Когда значение переменной цикла станет больше
конечного значения, цикл прекращает свою работу и управление
передается на строку 15 к оператору END, который прекращает работу программы.
3.9 Итерационные программы
В итерационных программах заданная группа операторов
выполнятся какое-то (обычно заранее неизвестное) число раз, пока не выполнится заданное условие.
В таких программах часто используются рекуррентные
вычисления. Рекуррентные вычисления – это такие вычисления,
которые используют результаты предыдущих вычислений для получения новых значений. Для реализации рекуррентных вычислений необходима рекуррентная формула, связывающая результаты предшествующих вычислений с последующими. Такие вычисления требуют особой организации программ и, как
130
правило, применения циклических операторов с проверкой
условия.
Оператор WHILE ... WEND
(WHILE - пока; While END - конец цикла)
Формат оператора:
?WHILE условное выражение
[группа операторов] WEND
yсловное выражение – выражение, результатом проверки
которого может быть значение Тrue или False.
Оператор выполняет группу операторов, до тех пор, пока
значение условного выражения – Тrue; группа операторов выполняется до обнаружения ключевого слова Wend. После этого передача управления происходит к началу оператора WHILE, где снова проверяется условное выражение. Если результат проверки условного выражения False, то выполняется оператор, следующий за ключевым словом Wend.
?Программа 3.9.1. Вычислить сумму чисел от 1 до 10.
?Программа на бейсике:
sum = 0 : i = 1 WHILE i <= 10 sum = sum + i : i = i+1 WEND PRINT SUM
- выводится число 55.
Оператор DO ....LOOP
C проверкой условного выражения в начале цикла:
DO { WHILE / UNTIL } условное выражение
[ группа операторов ]
LOOP
C проверкой условного выражения в конце цикла:
DO
[ группа операторов ]
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]