Объяснение заданий для подготовки
к промежуточной аттестации
Системы счисления:
а) Перевести число 10012 в десятичную систему счисления
( 20=1, 0*а=0, 1*1=1)
3 2 1 0
10012=1*23+0*22+0*21+1*20=1*8+0*4+0*2+1*1= 8+0+0+1=910
б) Перевести число 29610 в Х8 (делим столбиком)
296:8=37
(ост.0) 37:8= 4 29610=4508
(ост.5)
в) Переведём десятичное число 1310 в двоичную систему счисления.
Получили: 1310=11012.
г) Переведём восьмеричное число 154368 в десятичную систему счисления.
4 3 2 1 0
154368=1⋅84+5⋅83+4⋅82+3⋅81+6⋅80=694210
Пример:
Переведём десятичное число 9410 в восьмеричную систему счисления.
9410=1368
Логика
а) A ∨ B, это A + B
A ∧ B (А&В), это А * В
¬A это отрицание ¬0=1 , ¬1=0
б) Вычислить значение выражения:
(1*1=1, 1+1=1, 0+0=0, 0*1=0, 1+0=1) – в логике!!!!
+ * +
(0 V 1) ∧ (1 V 1)
* 1 = 1
+ * * * +
((1 V 0) & (1 & 1)) & (0 V 1)
( 1 * 1 ) * 1
1 * 1 = 1
Алгоритмика и программирование
Сколько раз будет выполнен цикл
for n:=1 to 57 do? – 57 раз (1,2,3,4,…..57)
for n:=1 to 66 do? - 66 раз (1,2,3,4,5,….66)
for i:=5 to 15 do ? -11 раз (5,6,7,8,9,10,11,12,13,14,15) (15-5+1=11)
div – частное (результат от деления)
mod –остаток от деления
4769 : 4 = 1192 (ост. 1)
div mod
z := 55 div 6 z := 55 mod 6
z = 9 z = 1
55:6=9 (ост 1) 55:6=9(ост 1)
Простые циклические алгоритмы
а) Запишите значение переменной s, полученное в результате работы следующей программы
var s,k: integer;
begin
s := 0;
for k := 3 to 7 do
s := s + 6;
writeln(s);
end.
Решение:
Цикл «for k := 3 to 7 do» выполняется пять раз (3,4,5,6,7) (7-3+1). Каждый раз переменная s увеличивается на 6. Поскольку изначально s = 0, после выполнения программы получим: s = 5 · 6 = 30.
Или другое решение:
k | S=0 |
3 | S=0+6=6 |
4 | S=6+6=12 |
5 | S=12+6=18 |
6 | S=18+6=24 |
7 | S=24+6=30 |
б) Запишите значение переменной s, полученное в результате работы следующей программы.
var s,k: integer;
begin
s := 0;
for k := 7 to 12 do
s := s + 11;
writeln(s);
end.
Решение:
Цикл «for k := 7 to 12 do» выполняется шесть раз (7,8,9,10,11,12) (12-7+1). Каждый раз переменная s увеличивается на 11. Поскольку изначально s = 0, после выполнения программы получим: s = 6 · 11 = 66.
Другой вариант решения:
k | S=0 |
7 | S=0+11=11 |
8 | S=11+11=22 |
9 | S=22+11=33 |
10 | S=33+11=44 |
11 | S=44+11=55 |
12 | S=55+11=66 |
s=66, 6 раз выполняется тело программы (вычисления)
d) Дана программа. Определите сколько раз выполняется тело цикла и чему будет равно значение переменной s после выполнения программы?
program pro1;
var s,i:integer;
begin
s:=0;
for i:=9 to 14 do
s:=s+i;
writeln('s=',s);
end.
i | S=0 s=s+i |
9 | S=0+9=9 |
10 | S=9+9=18 |
11 | S=18+9=27 |
12 | S=27+9=36 |
13 | S=36+9=45 |
14 | S=45+9=54 |
6 раз выполняются вычисления, значит 6 раз выполняется тело программы, s=54