Задание №1
Перевести десятичное число в систему счисления с основанием “b”.
Число b
3693,3 8
Представим число 3693,3 как 3693 и 0,3
Сначала переводим целую часть числа.
3693 : 8 = 461 (остаток 5)
461 : 8 = 57 (остаток 5)
57 : 8 = 7 (остаток 1)
7 : 8 = 0 (остаток 7)
7155
Переводим дробную часть.
0,3 * 8 = 2,4 (целая часть 2)
0,4 * 8 = 3,2 (целая часть 3)
0,2 * 8 = 1,6 (целая часть 1)
0,231
Теперь сложим целую и дробную часть, получим 7155,231
Проверка:
7*83+1*82+5*81+5*80+2*8-1+3*8-2+1*8-3=> =>3584+64+40+5+2*0,125+3*0,0156+0,0019=3693,2987=3693,3
Задание №2
Перевести исходное 8 – ричное число в десятичное.
b число
8 3235,52
Используем следующую формулу для перевода.
Y= a n-1* bn-1 + a n-2* bn-2 +…+ a1* b1+ a 0* b0 + a-1* b-1+ a-2* b-2 + a-k* b-k…
Где n – количество разрядов целой части b-ичном числе.
k – количество разрядов дробной част b-ичном числе.
b – основание исходной системы счисления.
3*83+2*82+3*81+5*80+5*8-1+2*8-2=1536+128+24+5+0,625+0,03125=1693,66
Задание №3
Осуществить перевод исходного числа, представленного в 8-ричной системы счисления, в 16-ричную систему счисления.
8->16
426,574
Сначала число 426,574 переведем в двоичную систему счисления, а затем двоичное переведем в 16-ричную систему счисления.
, = 100010110,101111100 двоичная система счисления.
Теперь переведем в 16-ричную систему счисления
, = 116,BE
Перевод чисел 0001; 0110; 1011; 1110 по формуле =>
Y=an-1*bn-1+an-2*bn-2+…+a1*b1+a0*b0+a-1*b-1+a-2*b-2+a-k*b-k
Задание №4
Осуществить алгебраическое сложение целых двоичных чисел в обратном коде.
a b
-18 19
Сначала переведем числа в двоичную систему счисления.
18 : 2 = 9 (остаток 0) 9 : 2 = 4 (остаток 1) 4 : 2 = 2 (остаток 0) 2 : 2 = 1 (остаток 0) 1 : 2 = 0 (остаток 1) 10010 т.к. число 18 отрицательное то код примет вид 1.10010, а обратный код числа –18 будет выглядеть 1.01101 19 : 2 = 9 (остаток 1) 9 : 2 = 4 (остаток 1) 4 : 2 = 2 (остаток 0) 2 : 2 = 1 (остаток 0) 1 : 2 = 0 (остаток 1) 10011 обратный код числа 19 совпадет с прямым кодом 10011
Теперь сложим обратные коды чисел.
1.01101
+ 10011
10.00000
т.к. возник перенос из знакового разряда, к результату прибавляем 1
0,00000 + 1 = 0,00001, то есть результатом операции является десятичное число +1.
(-18) + 19 = 1.
35 * 11 = 385
Проверка:
Y=1*28+1*27+0*26+0*25+0*24+0*23+0*22+0*21+1*20; y=256+128+1=385
Задание №6
Сложить два двоичных числа с плавающей запятой.
1-е число 2-е число
мантисса порядок мантисса порядок
0,10011 011 0,11100 001
0,10011*10011 или 0,10011*104;
0,11100*10001 или 0,11100*101;
0,10011*104 + 0,11100*101 = 0,10011*104 + 0,000111*104 =>
=> 0,10011*10011 + 0,000111*10011 = 0,101101*10011;
0,10011
+0,000111
0,1001101
Задание №7.1
Записать по правилам QBasic следующие константы:
1,9; -54; 84526,07; 0,000000094:
Значение Константы. Запись константы.
1,9 +1.9
-54 -54%
84526,07 84526.07
0,000000094 9.4E-8
Задание №7.2
Какие из следующих обозначений допустимы в качестве идентификаторов переменных, и какие не допустимы. Определить, какие из переменных, могут быть использованы в программе, написанной на QBasic, в качестве: а) целочисленной переменной; б) вещественной переменной; в) символьной переменной. Написать программу ввода и вывода значений этих переменных.
bik; 30; L8; 9j; F%; Hs5; d9; S5.
Простые переменные имеют имена, произвольной длинны, в имени используются буквы и цифры, но первым знаком в имени должна быть буква. Тем самым можно отнести к переменным следующие величины: F%, S5, d9, L8, bik.
а) К целочисленной переменной можно отнести следующее обозначение F%.
б) К вещественной переменной можно отнести следующее обозначение S5, d9, L8, Hs5.
в) К символьной переменной из предложенных значений не подходит ни одно.
Программа ввода и вывода переменных:
10 W2$ = “ES”: PRINT W2$
15 F% = 30.3: PRINT K%
20 L8 =.0122: PRINT R4
25 b9 = -48: PRINT v4
30 Hs5 = 5.25: PRINT S6
Задание №8.
Составить программу вычисления и печати значений следующего выражения: /ln(x + y) + [sin (y)]-1/5, для исходных данных, вводимых с клавиатуры.
05 REM Вычисление выражения.
10 CLS
15 PRINT “/ln(x + y) + [sin (y)]^(-1/5)”
20 PRINT “Введите значение переменных Х и У”
25 INPUT x: INPUT y
30 a = 2 * x – y
35 b = LOG (x + y)
40 c = SIN (y * 3.14 / 180)
45 d = c ^ (-1 / 5)
50 e = a / b: IF (a < 0) THEN 60>
55 S = e + d: PRINT “/ln(x + y) + [sin (y)]^(-1/5)=”; S: GOO 65
60 S = e * (-1) + d: GOTO 55
65 END
Задание №9.1
Составить блок схему алгоритма и программу вычисления функции f(x,y).
Значение переменных задать в диалоговом режиме с экрана монитора, значение функции вывести на экран монитора.
yx+1- 5x если x > y; (2x-1)y если x < y; 578 если x = y.>
вывод
05 REM Вычисление функции f(x,y)
10 CLS
15 PRINT “ f(x,y) = (y^(x +1)) – 5x если x > y “
20 PRINT “f(x,y) = (2x – 1)y если x < y”>
25 PRINT “f(x,y) = 578 если x = y”
30 PRINT “Введите значение переменных Х и У”
35 INPUT x: INPUT y
40 IF (x
45 S=(y^(x+1)) – 5*x: PRINT “(y^(x+1))-5x=”;S: GOTO 65
50 IF (x = y) THEN 60
55 Z=(2*x – 1)*y: PRINT “(2x-1)y=”; Z: GOTO 65
60 F=578: PRINT “f(x,y)=”;F
65 END
Задание №9.2
Написать блок-схему алгоритма и программу вычисления. Переменную N задать в диалоговом режиме. На экран вывести значение N и результирующее значение. S = + + + +…+
Алгоритм:
Вывод S
Программа вычисления:
05 REM Вычисление прогрессии.
10 CLS
15 PRINT “Вычисление суммы прогрессии S=1/1+2/3+3/5+4/7+…+N/(2N-1)
20 PRINT “Введите количество членов прогрессии N”
25 INPUT N
30 S=0
35 i = 1
40 S = S + i / (2 * i – 1)
45 IF (i = N) THEN 55
50 i = i + 1: GOTO 40
55 PRINT “Сумма”; N; “членов прогрессии S =”; S
60 END
Задание №10
Вычислить с точностью е бесконечную сумму и указать количество учтенных слагаемых. S= 1 +1/4 +1/9 +…+1/N2
5 REM Вычисление бесконечной суммы с точностью е.
10 CLS
15 PRINT “Вычислить бесконечную сумму прогрессии с точностью е = 0.000 S= 1 +1/4 +1/9 +…+1/N^2”
20 PRINT “Введите количество слагаемых N=”
25 INPUT N
30 S = 0
35 i = 1
40 S = S + 1/i ^ 2
45 IF (i = N) THEN 55
50 i = i +1: GOTO 40
55 PRINT “Суммы”; N; “членов прогрессии S=”;USING “#.###”; S
60 END
Задание №11
Подсчитать количество цифр в тексте. Распечатать все встречающие цифры.
05 REM Подсчет цифр.
10 CLS
15 PRINT “Вычисление цифр в тексте”
20 INPUT "Введите текст"; Stroka$
25 N% = 0
30 FOR I = 1 TO LEN(Stroka$)
35 Pstr$ = MID$(Stroka$, I, 1)
40 IF ASC(Pstr$) > 47 AND ASC(Pstr$) < 58 THEN N% = N% + 1: PRINT Pstr$>
45 NEXT I
50 PRINT "Количество цифр в тексте ="; N%
55 END