1. Системы счисления и действия в них

реклама
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
Самарский государственный архитектурно-строительный университет
Факультет информационных систем и технологий
Кафедра прикладной математики и вычислительной техники
О.В. Прохорова
ПРАКТИКУМ
по курсу «Информационные технологии. »
Самара 2015
Оглавление
1. Системы счисления и действия в них .................................................................... 3
2. Кодирование и шифрование информации ............................................................ 8
3. Алгебра логики ....................................................................................................... 11
4. Информационно–логические задачи.................................................................... 16
5. Логические схемы ................................................................................................ 25
6. Разработка алгоритмов ........................................................................................ 28
Литература ................................................................................................................. 31
2
1. Системы счисления и действия в них
Задачи
1. Представить число 143 в шестнадцатеричной и двоичной системе
счисления:
Решение.
- Представление в двоичной системе счисления:
143 – 128 = 15.
14310  1 * 2 7  0 * 2 6  0 * 2 5  0 * 2 4  1 * 2 3  1 * 2 2  1 * 21  1 * 2 0  100011112
- Представление в 16- ричной системе счисления:
A
10
B
11
16*8 = 128.
C
12
D
13
E
14
F
15
143-128 = 15.
14310  8 *161  15 *16 0  8F16 .
2. Перевести число 123 из восьмеричной системы счисления в десятичную и
двоичную.
Решение.
1238  1* 8 2  2 * 81  3 * 80  8310  64  19  8310.
1238  1 * 26  0 * 25  1 * 2 4  0 * 23  0 * 2 2  1 * 21  1* 20  10100112.
3. Перевести число 1AB из шестнадцатеричной системы счисления в
десятичную и двоичную.
Решение.
1AB16  1 * 16 2  10 * 161  11 *16 0  256  128  32  8  2  1  42710 .
3
42710  1 * 28  1 * 27  0 * 26  1 * 25  0 * 2 4 
1 * 23  0 * 2 2  1 * 21  1 * 20  1101010112.
4. Перевести число 2BС из шестнадцатеричной системы счисления в
десятичную и двоичную.
Решение.
2 BC16  2 *16 2  11 *161  12 *16 0  70010
70010  512  128  32  16  8  4 
1 * 2 9  0 * 2 8  1 * 2 7  0 * 2 6  1 * 2 5  1 * 2 4  1 * 2 3  1 * 2 2  0 * 21  0 * 2 0 .
70010  10101111002
5. Перевести число A3FD из шестнадцатеричной системы счисления в
десятичную и восьмеричную.
Решение.
A3FD16  10 *16 3  3 *16 2  15 *161  13 *16 0  40960  768  240  13  4198110
4198110  1 * 8 5  2 * 8 4  1 * 8 3  7 * 8 2  7 * 81  5 * 8 0  1217758
6. Перевести число 254 из восьмеричной системы счисления в десятичную и
двоичную.
Решение.
254 8  2 * 8 2  5 * 81  4 * 8 0  128  40  4  17210.
17210  128  32  8  4  1 * 2 7  0 * 2 6  1 * 2 5 
0 * 2 4  1 * 2 3  1 * 2 2  0 * 21  0 * 2 0  10101100 2.
4
7. Перевести число 7СВ из шестнадцатеричной системы счисления в
десятичную и двоичную.
Решение.
7CB16  7 *16 2  12 *161  11 *16 0  1792  192  11  199510.
199510  1024  512  256  128  64  8  2  1 
1 * 210  1 * 2 9  1 * 2 8  1 * 2 7  1 * 2 6  0 * 2 5  0 * 2 4  1 * 2 3  0 * 2 2  1 * 21  1 * 2 0.
199510  111110010112.
8. Перевести число 7DВ из шестнадцатеричной системы счисления в
десятичную и восьмеричную.
Решение.
7 DB16  7 *16 2  13 * 161  11 *16 0  1792  208  11  201110.
201110  1536  448  24  3  3 * 8 3  7 * 8 2  3 * 81  3 * 8 0  37338 .
9. Перевести число 1365 из восьмеричной системы счисления в десятичную
и двоичную.
Решение.
13658  1 * 8 3  3 * 8 2  6 * 81  5 * 8 0  512  192  48  5  75710
75710  512  128  64  32  16  4  1 
1* 2 9  0 * 28  1* 2 7  1* 2 6  1* 2 5 
1 * 2 4  0 * 2 3  1 * 2 2  0 * 21  1 * 2 0  10111101012.
10. Перевести число FFF из шестнадцатеричной системы счисления в
десятичную и двоичную.
Решение.
FFF16  15 *16 2  15 *161  15 *16 0  3840  240  15  409510
5
409510  2048  1024  512  256  128  64  32  16  8  4  2  1 
1 * 211  1 * 210  1 * 2 9  1 * 2 8  1 * 2 7  1 * 2 6  1 * 2 5 
1 * 2 4  1 * 2 3  1 * 2 2  1 * 21  1 * 2 0  1111111111112.
11. Перевести число FFFС из шестнадцатеричной системы счисления в
десятичную и восьмеричную.
Решение.
FFFC16  15 *16 3  15 *16 2  15 *161  12 *16 0  61440  3840  240  12  6553210
6553210  1 * 8 5  7 * 8 4  7 * 8 3  7 * 8 2  7 * 81  4 * 8 0  177774 8
12. Произвести сложение и вычитание двоичных чисел:
а)
1010111101
+ 1110101010
____________
11001100111
б)
11110101011
- 1010101010
____________
10100000001
13. Произвести вычитание двоичных чисел через сложение уменьшаемого с
дополнительным кодом вычитаемого.
11110101011
- 1010101010
Решение.
а) расширим размерность вычитаемого до
добавив нуль слева, получим: 01010101010
размерности уменьшаемого,
6
б) вычислим обратный код к вычитаемому, получим: 10101010101
г) вычислим дополнительный код для вычитаемого, прибавив 1 к младшему
разряду обратного кода, получим: 10101010110.
д) сложим уменьшаемое с полученным дополнительным
вычитаемого, получим:
11110101011
+ 10101010110
____________
1\10100000001. (Старший разряд отбрасывается).
кодом
Что совпало с результатом прямого вычитания предыдущего примера.
7
2. Кодирование и шифрование информации
Задачи
1. Сколько нужно бит (разрядов) для кодировки всех 111 символов на
клавиатуре компьютера?
Решение.
Найдем максимальную и минимальную границы для числа 111 в
степенях 2, получим:
26=64<111<128=27.
Далее произведем действия последовательного вычитания из числа
степеней 2, будем иметь:
111 – 64 = 47 – 32 = 15 - 8 = 7 – 4 = 3 – 2 =1
26
25
1
1
2.
24
23
22
21
20
1
1
1
1
Какой минимальной длины битовая комбинация достаточна для
кодировки слова "Информационный" (без учета кавычек) в ЭВМ по
принципу "один символ – один байт" битовой комбинацией длины?
Решение. Подсчитаем количество букв в слове. Оно равно 14.
Каждая буква в стандарте ASCII кодируется 1 байтом, значит,
минимальной длины битовой строкой для кодирования слова может
быть строка длиной 14*8 =112 бит.
8
3. Сколько различных байтов в ASCII–коде предложения вида
"Информационная технология" (без учета кавычек)?
Решение. Подсчитаем количество символов в предложении. Им будет
число: 14 + 11 = 25. Различные байты соответствуют разным символам
и составим таблицу частоты встречающихся символов в предложении.
Получим:
и
н
ф
о
р
м
а
ц
и
о
н
н
ы
4
4
1
4
1
1
1
1
-
-
-
-
1
т
е
х
н
о
л
о
г
и
и
1
-
1
-
-
1
-
1
-
-
е
2
1
Вычтем из общего числа символов 25 число клеток с повторами,
которые обозначены в таблице “-“, т.е. 25 – 10 = 15.
4. Сколько различных символов в битовом сообщении
1111000101010000111100011001111011010000, закодированном по
принципу "1 байт – 1 символ"?
Решение. Разделим строку на блоки по 8 символов. Получим:
11110001 01010000 11110001 10011110 11010000.
Проверим каждый байт на совпадение. Получим ответ - все символы
различны.
5. Что больше – длина битовой комбинации, необходимой для записи
десятичного числа 212 или количество различных чисел, кодируемых
12 битами?
9
Решение. Больше длина битовой комбинации, необходимой для
записи десятичного числа 212, т.к. в таком представлении присутствует
еще 1 бит, а именно 20, т.е. этому числу требуется 13 бит.
6. Текст ADBCE закодирован как 0001000101000110010000110. Как будет
декодирован текст 000100001100100001100001100101, закодированный
по этому же коду?
Решение. Подсчитаем общее количество символов в строке, разделим
на количество букв, получим длину кода символа: 25\5 = 5. Разделим
строку на 5 блоков по 5 символов и запишем их в таблицу:
A
D
B
C
E
00010
00101
00011
00100
00110
Текст, который нужно декодировать разделим на блоки длиной 5,
получим:
00010 00011 00100 00110 00011 00101
Найдем эти коды в таблице и, используя соответствие кода и символов
восстановим текст. Получим восстановленный текст: ABCEBD.
10
3. Алгебра логики
Задачи
1. Составить таблицу истинности функции
.
Упростить эту функцию и построить таблицу истинности для
полученной после упрощения функции.
Решение.
Упростим функцию, используя свойства дистрибутивности и
идемпотентности, получим:
_______
__
__
__
__
Z  ( x  y  x  y)  x  ( x  y  x  y)  x 
__
__
__
__
__
__
x  y  x  x  y  x  x  y.
Составим таблицу истинности на различных значениях переменных:
x
y


x
y
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
2. Дано выражение:
Z
. Упростить эту функцию и
построить таблицу истинности для полученной после упрощения
функции.
11
Решение. Упростим функцию, используя свойства дистрибутивности,
идемпотентности, поглощения, закон де Моргана, получим:
_______
__
_______
__
__
__
Z  ( x  x  y )  ( y  x  y )  ( x  x  y )  ( y  x  y) 
__
__
__
__
__
__
__
( x  x  y )  ( y  x )  y  x  0  0  x  y  y  x  x  y.
Составим таблицу истинности на различных значениях переменных:
x
y


x
y
0
0
1
1
0
1
1
1
0
1
1
yx
x y
Z
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
__
__
3. Дано выражение:
.
Упростить эту функцию и построить таблицу истинности для
полученной после упрощения функции.
Решение. Упростим функцию, используя закон де Моргана ,свойства
дистрибутивности, идемпотентности, поглощения, получим:
__
__
__
__
______
__
__
Z  (( x  y ) ( x  y ))  ( y  x  y  0)  x  y ) 
__
__
__
__
__
__
__
__
__ __
__
( x  y ) ( y  x  y  x  y )  ( x  y ) ( x  y  x )  0  x  y  x  y.
Составим таблицу истинности на различных значениях переменных:
x
y


x
y
0
0
1
1
1
0
1
1
0
0
__
__
x y
12
1
0
0
1
0
1
1
0
0
0
4.
Подобрать две функции, эквивалентные данной функции, но с
меньшим числом операций и операндов:
.
Решение.



 

 

z  x  y  y  x  x  x  y  ( y  x x )  x  y  ( y  x )  x ) 


   





x  y  (y  x x x)  x  y  y x y  x  x  0  y  x 









x  y  x  x  ( y  x )  x  ( y  x)  x  y .
Из указанных ниже функций отметить (с обоснованием)
5.
эквивалентные между собой функции:
;
o
o
.
o
Указание: упростить и сравнить.
Решение.









z  x  xy  x  y  x  ( xy x )  y  x  ( x  y )  x  y 






x ( x x y x)  y 










x ( x x y x)  y 




x  x  y  x  y  x  y  x  y  x (1  y )  y  x  y.
13






u  x  y y  x y  x  y  ( y  x )  y 






x  y x  y y  x  y .










s  y  y  x  y y  x  y ( y x)  y x y y 







y  x  y  y  ( x  1)  y  x .
6. Из указанных ниже функций отметьте (с обоснованием) эквивалентные
между собой функции:
;
o
o
;
o
;
;
o
.
o
Указание: упростить и сравнить.
Решение.










z  x  y  x  y y  y  y  x  x  y  x  y )  y  ( x  y )  x  y  y









u  ( x  y  y  x)  y  (( x  y )  ( y  x ))  y  x  y  y  y  x  y  x






u  ( x  y  x  y )  y  ( x  y  x  y )  y  0  x  y  0  x  y.
14














s  ( y  x  y  ( y  x  y ))  y  ( x  y )  ( y  ( x  y ))  y  ( x  y )  ( y










y  x  y  y  y  x  y  y  ( x  1)  y .




v  ( y  x  y  ( y  x  y ))  y  ( x  y )  ( y  ( x  y ))  y  ( x  y )  ( y










y  x  y  y  y  x  y  y  ( x  1)  y .
15
4. Информационно–логические задачи
Задачи
1. Найти хотя бы один набор десятичных значащих цифр А, Б, В, Г при
условии, что выполнено равенство
АБАВ + БАБ2 = ГГВ1.
Указание: заметим, что В=9 так как в этом разряде суммы стоит цифра,
которая может получиться лишь при сложении 2 с 9; продолжить
аналогичные рассуждения относительно остальных разрядов.
Решение. Запишем условия решения задачи:
А+Б = Б + А = Г = 8.
В=9.
Г=8.
Одним из наборов чисел А и Б может быть выбран набор: А = Б = 4.
2. Найдите все возможные подходящие варианты наборов цифр для
равенства вида:
ABCD + ECBF = A000C,
где каждой букве соответствует одна десятичная цифра (разным
буквам – разные цифры) и перенос из младшего разряд был. Указание:
заметим, что А=1 так как при сложении старших разрядов слагаемых
16
может переноситься в следующий разряд лишь 1; продолжить
аналогичные рассуждения относительно остальных разрядов.
Решение. Так как А + Е должно равняться 10 вместе с перенесенной
единицей из младшего разряда, т.е. А + Е = 9 и, если учесть, что А
равно 1, то Е = 8. Тогда можно записать:
А + Е + 1 = 10  А= 1, Е = 8;
В + С +1 = 10
D + F = 10 + C.
Имеем 2 уравнения и три неизвестных. Одним из вариантов ответа
может быть вариант: С =3, Д = 4, F = 9, B = 6.
Произведем проверку, получим:
АВСД + ЕСВF = 1634 + 8369 = 10003.
3. X, Y, Z, U, V должны поехать в разные города А, Б, В, Г, Д, Е. X может
ехать только в А, Б, Д; Y может ехать только в А, Б и В; Z может ехать
только в В; U не может ехать никуда, куда может ехать Y; V не может
ехать только Д и Е. Необходимо определить, в каком городе мог быть
каждый из них, если оказалось, что вдвоем они не были ни в одном
городе. Указание: сделать таблицу возможностей поездок, строки
которой пометить именами, а столбцы –городами.
17
Решение.
Путешественники Города {A,Б,В,Г,Д,Е}
Результат
X
А
Б
Д
Д
Y
А
Б
В
А
Z
В
Г

U= Y
__
В
Д
Е
Г
Б
__
V= D E
4.
Брауну, Джонсу и Смиту предъявлено обвинение в соучастии в
ограблении банка. В ходе следствия Браун сказал, что преступники
были на синем "Бьюике", Джонс сказал, что это был черный
"Крайслер", Смит утверждал, что это был "Форд", но не синий. Каждый
указал неправильно либо марку, либо цвет автомобиля. Определить
истинный цвет и истинную марку автомобиля.
Решение.
Рассмотрим простые высказывания вида:
 х = "машина – синяя",
 у = "машина – Бьюик",
 z = "машина – черная",
 u = "машина – Крайслер",
 v = "машина – Форд".
На их основе высказывание Брауна можно записать в виде
сложного логического выражения вида
в виде
, а высказывание Смита – в виде
, высказывание Джонса –
. Так как в каждом
18
из этих выражений одна из переменных принимает значение "истина",
то истинны и дизъюнкции вида:
определению конъюнкции,
. По
. Это
выражение мы взяли из-за однозначности равенства 1 конъюнкции и
неоднозначности (многовариантности) его равенства нулю. Упростим
выражение:
Мы использовали тот факт, что одновременно не могут быть
истинными два высказывания относительно цвета или два
высказывания относительно марки машины. Так как конъюнкция
истинна только тогда, когда
, то заключаем, что
автомобиль был черным "Бьюиком".
5. Студент А — отличник, у Б — пятерка или четверки, у В и Д —
четверки или тройки, у Г — возможны все оценки. Какие оценки у
каждого из них по контрольной работе, если все они получили
различные оценки? Указание: студент А получил пятерку,
следовательно, Б – четверку; продолжить далее рассуждения с учетом
полученных раннее выводов.
Решение.
Введем логические переменные:
X – оценка за контрольную 5.
Y - оценка за контрольную 4.
Z - оценка за контрольную 3.
19
U - оценка за контрольную 2.
K - оценка за контрольную 1.
Введем функцию оценки знаний конкретного студента:
А: Х;
Б: Y  X ;
В: Y  Z ;
Д: Y  Z ;
Г: X  Y  Z  U  K.
На основе введенных логических переменных и функций запишем функцию
того, что каждый студент получил оценку:
f  X  (Y  X )  (Y  Z )  (Y  Z )  ( X  Y  Z  U  K )  1.
Раскрытие скобок на основе законов Булевой алгебры дает ответ:
f  X  (Y  Z )  1.
Что противоречит утверждению, что каждый студент получил оценку
отличную от оценок других студентов. Значит необходимо изменить условия
задачи, например, пусть А может получить 5 или 2, остальное оставим без
изменений. Тогда ответ на поставленный вопрос будет иметь вид:
А получил 2; Б получил 5; В получил 4; Д получил 3; Г получил 1.
20
6. Андрей не может ехать в Малайзию и Китай. Николай хочет ехать
только в Малайзию или Румынию. Геннадий не хочет ехать только в
Уругвай. Сергей согласен ехать лишь в Румынию и Того, а Владимир
может поехать в любую страну, кроме Китая, Уругвая и Того. Может
ли каждый в одиночестве посетить одну из названных стран? Указание:
сделать таблицу возможностей поездок, строки которой пометить
именами, а столбцы – городами.
Решение.
Малайзия Китай
Румыния Уругвай
Того
Результат
Андрей
+
+
_
_
_
Уругвай
Николай
+
_
+
_
_
Румыния
Геннадий
Сергей
Китай
_
_
_
Владимир
+
_
_
+
Того
_
_
Малайзия
Ответ: да.
7. Андрей и Петр — родственники Евгения, Дмитрий — родственник
Николая и Петра. Кому должен приходиться родственником Николай,
чтобы они все были родственниками друг другу? Указание:
рассмотрите все возможные варианты для Николая.
Решение.
Андрей
Петр
Евгений
Андрей
+
Петр
+
Евгений
Дмитрий
Николай
+
Дмитрий
Николай
+
+
+
+
+
21
Построим граф.
Е
А
Е
П
Д
Н
На графе видно, чтобы его замкнуть необходима связка Н с А, т.е. для
ответа на вопрос задачи следует ввести родственные отношения Николая с
Андреем для того, чтобы все названные люди были родственниками друг
другу.
8.
Имеются только вагоны вместимости 23 тонны и 37 тонн. Поезд
из полностью загруженных вагонов с грузом в 883 тонны прибыл на
станцию расцепления. Здесь из его вагонов сформировали и отправили
поезд с 379 тоннами груза (без перегрузки и добавления других
вагонов). Сколько вагонов каждой вместимости осталось в исходном
поезде на станции расцепления? Ответ обосновать минимумом кратких
и утвердительных рассуждений. Указание: необходимо решать
соответствующие уравнения в целых числах, например, 23x+37y=883;
начните с наименьшего возможного значения x (почему?).
Решение.
883т. - 379 т.= 504 т.
504 / 37 = 13 (вагонов по 37 т.) + 1 (вагон по 23 т.).
22
9. Обсуждая свои возможности по поступлению в вуз абитуриенты
Андрей, Борис и Владимир высказали следующие предположения (в
виде сложного высказывания, состоящего из двух простых
высказываний) вида: Андрей — "Я не смогу поступить, а Владимир —
поступит"; Борис — "Владимир не поступит, а Андрей — поступит";
Владимир — "Если я поступлю, то Борис — не поступит или
наоборот". После сдачи экзаменов выяснилось, что каждый высказал
одно верное и одно ложное простое утверждение. а) Кто поступил в
вуз, если не смог поступить лишь один из них? б) Кто поступил в вуз,
если поступил лишь один из них? Указание: выпишите логические
выражения, соответствующие каждому высказыванию и упростите
конъюнкцию, тождественно равную единице (истине).
Решение.
Введем в рассмотрение логические переменные:
x - поступит Андрей.
y - поступит Борис.
z – поступит Владимир.
Запишем логические рассуждения:

Андрей: x  z

Борис: z  x


Владимир: z  y  z  y
Каждое из этих высказываний истинно в одном из событий, значит:
23

x  z  1,

z  x  1,


( z  y )  ( z  y)  1 ,
Логическое умножение этих функций даст ответ на вопросы:




f  ( x  z )  ( z  x)  ( z  y  z  y ) 



( x  z  0  0  z  x)  ( z  y  z  y ) 






0  x  z  y  z  x  y  0  x  z  y  z  x  y  1.
Анализ полученного выражения показывает, что первое слагаемое
отвечает на второй вопрос и ответ на него такой: не поступит Андрей и
не поступит Владимир, а поступит Борис. Второе слагаемое говорит о
том, что поступит Владимир и поступит Андрей, а Борис не поступит,
т.е. отвечает на первый вопрос.
24
5. Логические схемы
Задачи
1. Нарисовать схему одноразрядного сумматора Z=X+Y с учетом
переноса Р. Указание: изобразить все четыре возможных варианта
(состояния) сумматора.
Решение.
X1
X2
Si
Pi
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
Pi-1
x1
1
Pi
&
Si
&
x2
x1
1
x2
2. Нарисовать схему трехразрядного сумматора с учетом переносов.
Указание: изобразить все возможные варианты (состояния) сумматора.
3. Нарисовать схему и найти логическую функцию, эквивалентную
"Черному ящику", если на входе "Черного ящика" имеем x=100 (истина,
ложь, ложь), y=010 (ложь, истина, ложь), а на выходе z=000 (ложь,
25
ложь, ложь). Указание: рассмотреть выходы, соответствующие
каждому "разряду" входов.
4. Нарисовать схему и найти логическую функцию, эквивалентную
"Черному ящику", если на входе "Черного ящика" имеем x=0100,
y=0101, а на выходе z=0000. Указание: рассмотреть выходы для
каждого "разряда" (1 – истина, 0 – ложь).
5. Нарисовать схему и найти логическую функцию, эквивалентную
"Черному ящику", если на входе "Черного ящика" имеем x=10011,
y=01011, а на выходе z=01110. Указание: рассмотреть выходы для
каждого "разряда" (1 – истина, 0 – ложь).
6. Определить логическую функцию, соответствующую схеме (знак
логической операции в прямоугольнике указывает на то, что действует
соответствующая логическая схема – инвертор, дизъюнктор или
конъюнктор):
Указание: написать на каждой "свободной" стрелке соответствующее
логическое выражение.
7. Определите логическую функцию, реализуемую следующей логической
схемой:
26
Указание: написать на каждой "свободной" стрелке соответствующее
ему выражение.
8. Построить логическую схему для функции
. Указание:
последовательность построения – два инвертора, затем конъюнктор,
затем дизъюнктор.
9. Построить логическую схему для функции
. Указание:
последовательность построения ((конъюнктор – инвертор) –
(инвертор – дизъюнктор)) – конъюнктор.
10.Построить наиболее экономную логическую схему для функции
. Указание: перед построением схемы
нужно упростить выражение.
27
6. Разработка алгоритмов
1. Есть массив целых чисел, напишите алгоритм нахождения суммы его четных
чисел.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0.
2.
3.
4.
5.
6.
7.
if (A[i] % 2 = 0) sum = sum +A[i]
i=i+1
Если ( i < n)переход к п. 2.
if (sum = 0) печать: таких трех чисел нет, переход к п.7.
Печать sum.
Конец алгоритма.
2. Есть массив целых чисел, составить алгоритм нахождения суммы трех его
чисел кратных 5.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0, к = 0.
2.
if (A[i] % 5 = 0) sum = sum +A[i]
3. k++
4.
5.
6.
7.
8.
9.
if (k = 3) переход к п. 6.
i=i+1
Если ( i < n)переход к п. 2.
if (k! = 3) печать: таких трех чисел нет, переход к п.7.
Печать sum.
Конец алгоритма.
3. Есть массив целых чисел, составить алгоритм нахождения суммы его
нечетных и отрицательных чисел.
Решение.
1. Инициализация: A[], n, i=0, sum_nech=0, sum_otriz=0.
2. if (A[i] % 2 != 0) sum_nech= sum_nech + A[i].
3. if( A[i] < 0)
sum_otriz = sum_otriz A[i].
4. i = i + 1.
5. if ( i< n) переход к п. 2
6. if ((sum_nech = 0) || ( sum_otriz =0 )) печать: таких чисел нет, переход к п.8
7. Печать sum_nech, sum_otriz.
8. Конец алгоритма.
28
4. Есть массив целых чисел, составить алгоритм нахождения суммы его чисел,
удовлетворяющих условию | ai| < i^2.
Решение.
1. Инициализация: A[], n, i=0, sum=0.
2. Если (A[i] < 0) A[i] = -A[i].
3. if ( A[i] <= i*i) sum = sum + A[i].
4. i = i + 1.
5. if (I < n) переход к п. 2
6. if (sum = 0) печать: таких чисел нет, переход к п.8.
7. Печать sum.
8. Конец алгоритма.
5. Есть массив целых чисел, напишите алгоритм нахождения суммы его четных
чисел и нечетных членов.
Решение.
1. Инициализация: A[], n, i=0, sum1=0, sum1=0.
2. if (A[i] % 2=0) sum1=sum1+A[i]. // сумма четных чисел
3. if (i %2!=0) sum2=sum2 + A[i]. //сумма нечетных членов
4. i = i + 1.
5. if (i<n) переход к п. 2
6. if (sum 1= 0) печать: четных чисел нет, переход к п.8.
7. Печать sum1 и sum2 .
8. Конец алгоритма
6. Есть массив целых чисел, напишите алгоритм нахождения числа и суммы тех
его членов, которые делятся на 5 и не делятся на 7.
Решение.
1. Инициализация: A[], n, i=0, sum=0.
2. if ((A[i] % 5 = 0) & (A[i] % 7 !=0)) sum=sum +A[i].
3. i = i + 1.
4. if (i<n) переход к п. 2
5. if (sum = 0) печать: таких чисел нет, переход к п.7.
6. Печать sum.
7. Конец алгоритма
7. Есть массив целых чисел, напишите алгоритм нахождения произведения
членов массива кратных числу р.
Решение.
1. Инициализация: A[], n, i=0, multy=1.
29
2. if (A[i] % P = 0) multy = multy*A[i].
3. i = i+1
4. if (I < n) переход к п. 2
5. if (multy = 1) печать: таких чисел нет, переход к п.7.
6. Печать multy.
7. Конец алгоритма
8. Есть массив целых чисел. Напишите алгоритм замены в нем нулями членов,
модуль которых при делении на р дает в остатке q.
Решение.
1. Инициализация: A[], n, i = 0, sum = 0, p, q.
2.
if (A[i] % p = q) A[i] = 0.
3.
4.
5.
6.
i=i+1
Если ( i < n)переход к п. 2.
Печать A[].
Конец алгоритма.
30
Литература
1. Информатика. Учебник / О.В. Прохорова – Самара: СГАСУ, 2013. – 106 с.
31
Скачать