- •Тема 2.4. Базовые алгоритмы и примеры их реализации
- •2.4.1. Понятие базовых алгоритмов
- •2.4.2. Алгоритмы линейной структуры
- •2.4.3. Базовые алгоритмы разветвляющихся структур и примеры их программирования
- •2.4.4. Базовые алгоритмы регулярных циклических структур и примеры их программирования
- •2.4.5. Базовые алгоритмы итеративных циклических структур и примеры их программирования
- •2.4.6. Базовые алгоритмы обработки одномерных массивов
- •2.4.7. Базовые алгоритмы обработки двумерных массивов
- •2.4.8. Контрольные вопросы по теме «Базовые алгоритмы и примеры их реализации»
- •2.4.9. Тестовые задания по теме «Базовые алгоритмы и примеры их реализации»
- •Input a(I)
- •Input a(I)
- •Input a(I)
- •Input a(I)
- •Input a(I , j)
- •Defint k
- •Defint f
- •Defsng a-b,X
2.4.8. Контрольные вопросы по теме «Базовые алгоритмы и примеры их реализации»
Что называется алгоритмом?
Какими основными свойствами должен обладать алгоритм?
Какие существуют способы описания алгоритмов?
Какими графическими символами принято изображать в схемах алгоритма:
операции ввода/вывода данных;
операции над данными;
выбор направления выполнения алгоритма в зависимости от результата выполнения условия;
организацию регулярного цикла;
начало и конец обработки данных;
комментарии к элементам схемы алгоритма?
В чем отличие цикла структуры с предусловием от цикла структуры с постусловием?
Что такое параметр цикла?
В чем отличие регулярной циклической структуры от итеративной циклической структуры?
2.4.9. Тестовые задания по теме «Базовые алгоритмы и примеры их реализации»
Для ввода данных в схемах алгоритма используют фигуру
параллелограмм
ромб
прямоугольник
треугольник
Укажите правильный результат работы встроенной функции INT(x)
при x=-275
-3
-2
-275
-25
Укажите правильный результат выполнения программной строки INT(x - FIX(x)) при x= -825
-1
0
8
-16
Значение переменной Y в результате выполнения следующих операторов
Y = 5
X = 2
Y = (Y – 2 * X) / 2 + Xбудет равно
2,5
0,5
2
5
Операторы в программе, записанные на одной строке, разделяются
двоеточием
запятой
точкой с запятой
нет верного ответа
Укажите правильный результат выполнения следующего фрагмента программы при s=68
…
PRINT”сумма членов”
PRINT”арифметической прогрессии =”
PRINT s
…
сумма членов арифметической прогрессии=68
сумма членов арифметической прогрессии=68
“сумма членов арифметической прогрессии”=68
“сумма членов” “арифметической прогрессии”=68
Укажите правильный результат выполнения следующего фрагмента программы при x=3, y=15
…
PRINT FIX(x*y+7) SPC (10) INT(x*y-7)
…
11 -3
12 -2
11 -2
12 -3
Укажите правильный результат выполнения следующего фрагмента программы
…
DEFINT a-b
DEFSTR p-q
READ a, p, b, q
DATA 3, площадь, 4, прямоугольника
PRINT p SPC (1) q “=” a*b
…
площадь прямоугольника=12
площадь прямоугольника”=”3*4
сообщение об ошибке
3 площадь прямоугольника = 4
Укажите правильный результат выполнения следующего фрагмента программы
…
DEFINT a-d
DEFSNG f
a=4... c=9... f=14
b=INT(c mod a-f)
d=FIX(c mod a –f)
PRINT b, d
…
-1 0
-1 -1
0 0
0 -1
Определите результат работы программы
A = -5 ... В = -6 ... А = А + 2 * В ... В = А ... PRINT A B …
–17 -17
0 -17
–6 -6
нет верного ответа
Логически неверно записанной является последовательность команд
PRINT S ... А = A * 2 ... INPUT A, В ... S = A + B *
А = A * 2 ... INPUT A, В ... S = A + B ... PRINT S
INPUT A, В ... S = A + B ... А = A * 2 ... PRINT S
INPUT A, В ... А = A * 2 ... S = A + B ... PRINT S
Укажите правильный результат выполнения следующего фрагмента программы
…
READ x, y, a, b, c
PRINT a “=” x*y, b “=” c
DATA 125, 7, площадь, результат, 128
…
сообщение об ошибке
площадь=875 результат=128
площадь=125*7 результат=128
площадь”=”875 результат”=”128
Укажите правильный результат выполнения следующего фрагмента программы
…
READ a, b, c, x, y
PRINT “a=”a “b=”b “c=”c x*y
DATA -45, 172, 3, 4
…
сообщение об ошибке
a=-45b=172c=34
“a=” -44 ”b=”172”c=”3 4
a=-45 b=173 c=3 12
Укажите правильный результат выполнения следующего фрагмента программы
…
a= 35... b=4... c=12
d=a*b-c
DEFINT b, d
DEFSNG a, c
PRINT “d=” d
…
d=0 *
d=128
d=13
d=12
Что будет на экране в результате работы фрагмента программы
…
DEFINT n , m
DEFSNG a, t, b
a=24 ... b=29
n=a ... m=b ... t=a + n
PRINT n, m, t
….
2 3 44
2 2 44
24 29 48
3 3 54
Что будет на экране в результате работы фрагмента программы
…
DEFINT n, m, k, l
DEFSNG a, b
a=26 ... b= -26
n=INT(a) ... m=FIX(a)
k=FIX(b) ... l=INT(b)
PRINT n, m, k, l
…
2 2 -2 -3
3 2 -3 -3
2 2 -2 -2
3 2 -2 -3
Что будет на экране в результате работы фрагмента программы
…
DEFINT n, m, c, k, l, i
DEFSNG a, b
READ a, b
DATA 28, 33
c=FIX(a+b)*7
k=c MOD 5 ... l=c\5
i=INT(b) MOD 5
PRINT k, l, i
…
2 8 3
2 8 0
04 8 06
8 2 3
Что будет на экране в результате работы фрагмента программы
…
PRINT “Алгоритмический”
PRINT “ язык”
PRINT “ BASIC”
…
Алгоритмический язык BASIC
Алгоритмический
язык
BASIC
Алгоритмический языкBASIC
“Алгоритмический ””язык””BASIC”
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
X=2... Y=3
IFX>YTHENS=X*YELSES=X+Y
PRINTS
5
6
2
3
Определить, какое значение переменной Y будет присвоено в результате выполнения фрагмента программы
…
X= -1
IF ABS(X+1)>1 THEN Y=1 ELSE Y=ABS(X+1)
…
0
-1
2
1
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
A=2... B=3
IF A<B THEN S=A*B ELSE S=A+B
PRINT S
…
6
1
3
2
Определить, какое значение переменной Y будет присвоено в результате выполнения фрагмента программы
…
X= -1
IF ABS(X) <=1 THEN Y= ABS(X) ELSE Y=SQR(1-X*X)
…
1
0
2
-1
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
C=3... D=3
IF C<D THEN S=C*D ELSE S=C+D
PRINT S
…
6
9
5
3
Разветвляющийся алгоритм может быть
стандартным, вложенным, усеченным
стандартным, вложенным, усеченным, регулярным
стандартным, вложенным, усеченным, итерационным
нет верного ответа
Разветвляющиеся алгоритмические структуры программируются операторами
условного перехода IF, выбораSELECTCASE
условного перехода IF, выбораSELECTCASE, переключателя DO LOOP
условного перехода IF
нет верного ответа
Что будет напечатано в результате выполнения программы
…
READ R
IF R = 0 THEN Y=R*10
IF R > 0 THEN Y=R+10
IF R < 0 THEN Y=R*R/2
PRINT Y
DATA –10
…
50
0
100
–10
Что будет напечатано в результате выполнения программы
…
DEFSNG x - z
READ x, y
DATA 66, 58
IF x>y THEN z=x+y ... x=y
IF x<=y THEN z=x-y
PRINT x, y, z
…
58 58 124
66 58 08
58 58 0
Что будет напечатано в результате выполнения программы
…
DEFINT a – c, z
READ a, b, c
DATA 15, 10, 25
IF a>b AND a<c THEN
z=a
ELSEIF b>c THEN
z=b
ELSE
z=c
END IF
PRINT “z=” z
…
z=15
z=10
z=25
Что будет напечатано в результате выполнения программы
…
DEFINT k - m
READ k, m, l
DATA 5, 15, 10
IF k<m AND m<l THEN
p=k
ELSE
IF k>m OR m>l THEN
p=m
ELSE
p=l
END IF
END IF
PRINT “p=”p
…
p=5
p=10
p=15
Что будет напечатано в результате выполнения программы
…
DEFINT a - d, x
READ a, b, c, d, x
DATA 25, 30, 5, 10, 15
IF a>b AND b>c AND c<d AND d>x THEN
x=a
ELSEIF a<b OR b>c AND c<d OR d>x THEN
x=b
ELSEIF a>b OR b>c OR c<d OR d>x THEN
x=c
ELSE
x=d
END IF
PRINT “x=” x
…
x=25
x=30
x=5
Что будет напечатано в результате выполнения программы
…
DEFINT k - l
READ k, l
DATA 5, 7
IF k<>l THEN
IF k>l THEN
l=k
ELSE
k=l
END IF
ELSE
k=0 ... l=0
END IF
PRINT “k=” k, “l=” l
…
k=5 l=5
k=7 l =7
k=0 l=0
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = 0 ... K = 0
IF N THEN K=K+10
PRINT K
…
0
10
100
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = 0 ... K = 0
IF N THENK=K+1 ELSE K = K- 1
PRINT K
…
-1
0
1
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = 2 ... K = 0
IF N THEN K=K+10 ELSE K=K-1
PRINT K
…
10
0
-1
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = -2 ... K = 0
IF N THEN K=K+1 ELSE K=K-1
PRINT K
…
1
0
-1
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = -2 ... K = 0
SELECT CASE N
CASE 0
K=K+1
CASE ELSE
K=K-1
END SELECT
PRINT K
…
-1
0
1
-2
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = -2 ... K = 0
SELECT CASE N
CASE IS<0
K=K+1
CASE ELSE
K=K-1
END SELECT
PRINT K
…
1
0
-1
-2
сообщение об ошибке
нет верного ответа
Что будет напечатано в результате выполнения программы
…
DEFINT K , N
N = -2 ... K = 0
SELECT CASE N
CASE 0
K=K+10
CASE ELSE
K=K-10
PRINT K
…
сообщение об ошибке 0
10
-2
–10
0
нет верного ответа
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
A=3... B=4
IF A>B THEN
A=A+1
S=A*B
ELSE
B=B+1
S=A+B
END IF
PRINT S
8
12
4
3
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
X=3... Y=4
IF X<3 THEN Y=Y+1 ELSE X=X+1
S=X*Y
PRINT S
…
16
12
15
9
Оператор IF сначала
проверяет свое условное выражение
выполняет операторы из тела программы, идущие после него
подключает процедуры
передает управление на конец программы
Определите условие того, что месяц является зимним...
MES=12 OR MES=1 OR MES=2
MES =12 AND MES =1 AND MES =2
MES =12 AND MES <=3
MES =12 AND (MES =1 OR MES=2)
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
A=3... B=3
IF A<B THEN
S=A*B
S=S+1
ELSE
S=A+B
S=S-1
END IF
PRINT S
…
5
6
8
10
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
X=2... Y=3
IF X>Y THEN S=X*Y ELSE S=X+Y
PRINT S
5
6
2
3
Зимние каникулы начинаются 29 декабря и заканчиваются 10 января. Выберите правильный ответ ... условный оператор должен вывести сообщение ”Каникулы”
IF (MES=12 AND DAY>=29)OR (MES=1 AND DAY<=10)THEN
PRINT”Каникулы”
IF (MES=12 OR DAY>=29) AND (MES=1 OR DAY<=10) THEN
PRINT”Каникулы”
IF (MES=12 AND DAY>=29) OR (MES=1 OR DAY<=10) THEN
PRINT”Каникулы”
IF (MES=12 OR DAY>=29) OR (MES=1 AND DAY<=10) THEN
PRINT”Каникулы”
Определить, какое значение переменной Y будет присвоено в результате выполнения фрагмента программы
…
X= -1
IF ABS(X+1)>1 THEN Y=1 ELSE Y=ABS(X+1)
…
0
-1
2
1
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
A=2... B=3
IF A<B THEN S=A*B ELSE S=A+B
PRINT S
…
6
1
3
2
Определить, какое значение переменной Y будет присвоено в результате выполнения фрагмента программы
…
X= -1
IF ABS(X) <=1 THEN Y= ABS(X) ELSE Y=SQR(1-X*X)
…
1
0
2
-1
Определить, какое значение переменной S будет напечатано в результате выполнения фрагмента программы
…
C=3... D=3
IF C<D THEN S=C*D ELSE S=C+D
PRINT S
…
6
9
5
3
Значение переменной А после выполнения фрагмента программы
…
A=0
FOR B=1 TO 10
A=A+2
NEXT B
…
будет равно
20
21
22
24
Значение переменной M после выполнения фрагмента программы
…
M=0
FOR N=1 TO 3
FOR K=1 TO 2
M=M+1
NEXT K
NEXT N
…
будет равно
6
13
12
нет верного ответа
Значение переменной M после выполнения фрагмента программы
…
M=1
FOR N=1 TO 4
FOR K=1 TO 3
M=M+1
NEXT K , N
…
будет равно
13
21
12
будет сообщение об ошибке
Значение переменной Mпосле выполнения фрагмента программы
…
M=2
FOR N=1 TO 5
FOR K=1 TO 2
M=M+1
NEXT N
NEXT N
…
будет равно
будет сообщение об ошибке*
12
11
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A , I
A=0
FOR I = 1 TO –1
A=A+1
NEXT I
PRINT A
…
0
3
2
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A , I
A=2
FOR I = -1 TO 1 STEP -1
A=A -1
NEXT I
PRINT A
…
2
-1
0
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A , I
A=0
FOR I = -1 TO –1
A=A+1
NEXT I
PRINT A
…
1
3
0
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A , I
A=0
FOR I=1 TO 31
A=A+1
NEXT I
PRINT A
…
31
30
0
нет верного ответа
Для нахождения наименьшего значения числовой функции от аргумента , значение которого изменяется на заданном интервале, за начальное наименьшее значение следует принять
число, близкое к наибольшему числу из диапазона типа данных рассматриваемой функции
число, близкое к наименьшему числу из диапазона типа данных рассматриваемой функции
0
нет верного ответа
Для нахождения наибольшего значения числовой функции от аргумента , значение которого изменяется на заданном интервале, за начальное наибольшее значение следует принять
число, близкое к наименьшему числу из диапазона типа данных рассматриваемой функции
число, близкое к наибольшему числу из диапазона типа данных рассматриваемой функции
0
нет верного ответа
Для нахождения значения произведения числовой функции от аргумента , значение которого изменяется на заданном интервале, за начальное значение произведения следует принять
1
число, близкое к наибольшему числу из диапазона типа данных рассматриваемой функции
число, близкое к наименьшему числу из диапазона типа данных рассматриваемой функции
0
нет верного ответа
Для нахождения значения суммы числовой функции от аргумента , значение которого изменяется на заданном интервале, за начальное значение суммы следует принять
0
число, близкое к наибольшему числу из диапазона типа данных рассматриваемой функции
число, близкое к наименьшему числу из диапазона типа данных рассматриваемой функции
1
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A , I
A=0
FOR I=1 TO 31 STEP -3
A=A+1
NEXT I
PRINT A
…
0
30
31
нет верного ответа
Что будет результатом выполнения фрагмента программы
…
DEFINT A, I - J
A=0
FOR I=1 TO 3
A=A+1
FOR J = 1 TO -1
A=A+1
NEXT J
NEXT I
PRINT A
…
3
9
0
нет верного ответа
будет сообщение об ошибке
Что будет результатом выполнения фрагмента программы
…
DEFINT i, k, h
k=2 ... h=2
FOR i=0 TO -2 STEP -1
k=k + h
NEXT i
PRINT k
…
8
2
6
-4
Что будет результатом выполнения фрагмента программы
…
DEFINT i, s
FOR i=1 TO 5
s =s+3
NEXT i
PRINT “i=”i, ”s=”s
…
i=6 s=15
i=5 s=15
i=5 s=12
i=6 s=18
Что будет результатом выполнения фрагмента программы
…
DEFINT i, s
s=0
FOR i=2 TO 50 STEP 5
s=s+i
IF i=27 THEN EXIT FOR
NEXT i
PRINT s
…
87
50
103
Что будет результатом выполнения фрагмента программы
…
DEFINT i, s
s=15
FOR i=5 TO 15 STEP -2
s=s+1
NEXT i
PRINT s
…
15
25
19
20
18
Что будет результатом выполнения фрагмента программы
…
DEFINT k,s
s=0
FOR k=2 TO -2 STEP -1
s=s+k ... k=k-2
NEXT k
PRINT “s=”s, “k=”k
…
s=-1 k=-4
s=0 k=-3
s=1 k=-2
s=3 k=-1
C использованием итеративных циклических структур можно вычислять
все утверждения верны
значения функции в заданном диапазоне, произведения и суммы с конечным числом слагаемых и сомножителей
произведения и суммы конечных или бесконечных рядов
значения членов конечных и бесконечных рядов
все утверждения неверны
Преобразование итеративного цикла с предусловием в цикл с постусловием
всегда возможно
возможно иногда
невозможно
Преобразование итеративного цикла с постусловием в цикл с предусловием
всегда возможно
возможно иногда
невозможно
Результатом работы фрагмента программы
…
DEFINT N
N=0
DO WHILE N<5
N=N+1
LOOP
PRINT N
…
будет
вывод на экран 5
вывод на экран 6
вывод на экран 0
сообщения об ошибке
нет верного ответа
«зацикливание»
Что будет на экране в результате работы фрагмента программы
…
DEFINT N
N=0
DO UNTIL N<5
N=N+1
LOOP
PRINT N
…
0
6
5
сообщение об ошибке
нет верного ответа
«зацикливание»
Что будет на экране в результате работы фрагмента программы
…
DEFINT N
N=0
DO
PRINT “#”
N=N+1
LOOP UNTIL N
…
1) #
##
ничего не будет
сообщение об ошибке
нет верного ответа
«зацикливание»
Что будет на экране в результате работы фрагмента программы
…
DEFINT N
N=0
DO WHILE N
PRINT “#”
N=N+1
LOOP
…
ничего не будет
#
##
сообщение об ошибке
нет верного ответа
«зацикливание»
Что будет на экране в результате работы фрагмента программы
…
DEFINT N
N=0
DO
PRINT “*”
N=N+1
LOOP WHILE N
…
«зацикливание»#
ничего не будет
*
**
сообщение об ошибке
нет верного ответа
Что будет на экране в результате работы фрагмента программы
…
DEFSNG s
DEFINT i
s=0 : i=0
DO UNTIL i<5
i=i+1 : s=s+1/i
LOOP
PRINT “s=”; s
…
s=0#
s=0.2
s=2.283333
s=2.083333
Что будет на экране в результате работы фрагмента программы
…
DEFSNG s
DEFINT k
s=1 : k=1
DO WHILE k>1
s=s+1/k : k=k-1
LOOP
PRINT “s=”; s
…
s=1*
s=2
Сообщение об ошибке: “Деление на ноль”
Ничего, произойдет “зацикливание”
Что будет на экране в результате работы фрагмента программы
…
DEFSNG s
DEFINT i
s=0 : i=1
DO
s=s+1/i : i=i-1
LOOP UNTIL i<=1
PRINT “s=”; s
…
s=1#
s=0
Сообщение об ошибке: “Деление на ноль”
Ничего, произойдет “зацикливание”
Что будет на экране в результате работы фрагмента программы
…
DEFINT n, s
s=0 : n=123
DO
s=s*10 + n MOD 10
n=n\10
LOOP UNTIL n=0
PRINT “s=”;s,“n=”;n
…
s=321 n=0#
s=123 n=0
s=321 n=123
s=0 n=0
Что будет на экране в результате работы фрагмента программы
…
DEFINT n, s, a
s=0 : n=346
DO
a= n MOD 10
s=s+a
n=n\10
LOOP UNTIL n=0
PRINT “s=”;s,“a=”;a
…
s=13 a=3#
s=10 a=3
s=13 a=6
s=7 a=4
Метод пузырька – это
сортировка методом прямого обмена*
сортировка методом выбора
сортировка методом простого перебора
сортировка методом бинарных вставок
Поиск заданного элемента производится в
в произвольном массиве
в упорядоченном массиве
в неупорядоченном массиве
в списке нет правильного ответа
Выбор максимального и минимального элемента целесообразно проводить
в упорядоченном массиве
в произвольном массиве
в неупорядоченном массиве
в сжатом массиве
В упорядочивании элементов массива по убыванию методом выбора каждый раз происходит выбор
максимального элемента
минимального элемента
соседнего элемента
предыдущего элемента
Определите правильный результат выполнения следующего фрагмента программы
...
DIM A (1 TO 5) AS SINGLE
FOR I=1 TO 5
A (I) =I
NEXT I
PRINT A (I)
…
сообщение об ошибке*
5
6
0
После выполнения следующего фрагмента программы
…
FOR I=1 TO 7
PRINT A (I)
NEXT I
…
массивбудетнапечатан
в столбец*
в строку
в столбец со сдвигом
по диагонали экрана
33 Следующий фрагмент программы
…
FORI=KTON-1
A (I) = A (I+1)
NEXT I
…
выполняет
сжатие массива “сдвигом влево”
сжатие массива “сдвигом вправо”
удаление первых Kэлементов массива
удаление последних N-Kэлементов массива
Следующий фрагмент программы
…
FOR I=1 TO N-1
IF A (I) =0 THEN
FOR J=I TO N-1
A (J) =A (J+1)
NEXT J
N=N-1
END IF
NEXT I
…
удаляет из массива нулевые элементы
перемещает нулевые элементы влево
перемещает нулевые элементы вправо
оставляет все по-прежнему
Что будет на экране после выполнения следующего фрагмента программы
…
FOR i=1 TO 5
a(i)=3-2*i
NEXT i
FOR i=5 TO 1 STEP -1
PRINT a(i) " "
NEXT i
…
1 2 3 4 5
-1 -3 -5 -7
5 4 3 2 1
-7 -5 -3 -1 1
Что подсчитывает следующий фрагмент программы
…
k=0
s=0
FOR i=1 TO 5
IF a(i)=0 THEN k=k+1
IF a(i)<0 THEN s=s+a(i)
NEXT i
…
количество элементов, равных 0, и сумму отрицательных элементов
сумму элементов, меньших 0, и количество положительных элементов
количество всех элементов и сумму положительных элементов
произведение отрицательных элементов и сумму элементов, равных 0
Что выполняет следующий фрагмент программы
…
FOR i=1 TO c STEP 1