Данному образовательному сайту пришлось несколько раз менять свое имя. С 2011 года доступ к нему обеспечивается по URL
http://educomp.runnet.ru

emc.km.ru (2001-2007) ==> educomp.org.ru (2007-2011) ==> educomp.runnet.ru (2011-...)
Более подробно об истории сайта можно прочитать здесь.


Учебные модели компьютера



Модели (software):

"Е14" (parallel !!!)
"S9PU" (parallel)

Модели (hardware):






Награды сайта
Награды сайта

"Кроха": примеры решения задач для ЭВМ "Кроха-М"

Задачи, разбираемые ниже, дополняют примеры, описанные ранее для "Крохи". Сравнение показывает, что на "Крохе-М" (в отличии от "Крохи") уже можно запрограммировать более или менее реальные задачи.

1. Написать программу вычисления пути, пройденного телом при равноускоренном движении, по формуле

S = V0*T + A*T*T/2

Р Е Ш Е Н И Е

Вычисления будем вести по формулам:

r = V0*T; S = A*T*T/2 + r
АдресКомандаРасшифровкаКомментарий
0000101 1110 1100 1010(14) * (12) ==> (10)V0 * T ==> r
0001101 1101 1100 1011(13) * (12) ==> (11)A * T ==> S
0010101 1011 1100 1011 (11) * (12) ==> (11)S * T ==> S
0011010 1011 1111 1011(11) / (15) ==> (11)S / 2 ==> S
0100001 1011 1010 1011(11) + (10) ==> (11)S + r ==> S
0101111 1100 1011 1011cтоп; вывод (12) и (11)вывод T и S (2 р.)
0110не ис-
0111  поль-
1000  зует-
1001  ся
1010r рабочая ячейка
1011S результат
1100T исход-
1101A   ные
1110V0   данные
1111000 0000 0000 00102константа 2



2. Написать программу нахождения наибольшего из трех чисел.

Р Е Ш Е Н И Е  1

Обозначим исходные числа a, b и c, а результат выведем на экран.
АдресКомандаРасшифровкаКомментарий
0000110 1111 1110 0010если (15)>(14), идти к 2сравнить a и b
0001110 1110 1101 0100если (14)>(13), идти к 4сравнить b и c
0010110 1111 1101 0101если (15)>(13), идти к 5сравнить a и c
0011111 1101 1101 1101cтоп; вывод (13)вывод c
0100111 1110 1110 1110cтоп; вывод (14)вывод b
0101111 1111 1111 1111cтоп; вывод (15)вывод a
0110не
0111 
1000  ис-
1001  поль-
1010  зу-
1011  ет-
1100  ся
1101c исход-
1110b   ные
1111a   данные

Р Е Ш Е Н И Е  2

Обозначим исходные числа a, b и c, а результат - d.
АдресКомандаРасшифровкаКомментарий
0000110 1111 1110 0011если (15)>(14), идти к 3сравнить a и b
0001000 1110 0000 1100(14) ==> (12)b ==> d
0010100 0000 0000 0100безусловный переход к 4обход команды
0011000 1111 0000 1100(15) ==> (12)a ==> d
0100110 1100 1101 0110если (12)>(13), идти к 6сравнить d и c
0101000 1101 0000 1100(13) ==> (12)c ==> d
0110111 1100 1100 1100cтоп; вывод (12)вывод d
0111не
1000  ис-
1001  поль-
1010  зу-
1011  ется
1100d результат
1101c исход-
1110b   ные
1111a   данные



3. Составить программу вычисления выражения Y = 100 / [(X-1) (X-3)]. Предусмотреть проверку значения X.

Р Е Ш Е Н И Е

Если X = 1, договоримся выводить на дисплей три 1, а если X = 3, то три числа 3. Во всех остальных случаях будут выведены X и Y.
АдресКомандаРасшифровкаКомментарий
0000100 1100 1110 0111если (12)=(14), идти к 7сравнить X и 1
0001100 1100 1101 1000если (12)=(13), идти к 8сравнить X и 3
0010011 1100 1110 1010(12) - (14) ==> (10)X - 1 ==> r
0011011 1100 1101 1011(12) - (13) ==> (11)X - 3 ==> Y
0100101 1011 1010 1011(11) * (10) ==> (11)Y * r ==> Y
0101010 1111 1011 1011(15) / (11) ==> (11)100 / Y ==> Y
0110111 1100 1011 1011cтоп; вывод (12), (11)вывод X, Y
0111111 1110 1110 1110cтоп; cтоп; вывод (14)вывод 1
1000111 1101 1101 1101cтоп; cтоп; вывод (13)вывод 3
1001не используется
1010r рабочая ячейка
1011Y результат
1100X аргумент
1101000 0000 0000 00113константа
1110000 0000 0000 00011константа 1
1111000 0000 0110 0100100константа 100



4. Написать программу вычисления n! (сравните с программой задачи N 6 для "Крохи")

Р Е Ш Е Н И Е

Обозначим k рабочую переменную, которая является текущим множителем для факториала и меняется от 1 до n. Начальные значения k и n! программа задает равными 1.

В ячейке 13 формируется значение n + 1, которое является верхней границей цикла (цикл будет выполняться, пока k < n+1 и, следовательно, завершится после умножения на n).
АдресКомандаРасшифровкаКомментарий
0000000 1111 0000 1100(15) ==> (12)1 ==> k
0001000 1111 0000 1101(15) ==> (13)1 ==> n!
0010001 1110 1111 1011(14) + (15) ==> (11)n + 1 ==> r
0011101 1101 1100 1101(13) * (12) ==> (13)n! * k ==> n!
0100001 1100 1111 1100(12) + (15) ==> (11)k + 1 ==> k
0101110 1011 1100 0011если (11)>(12), идти к 3k < r ?
0110111 1110 1101 1101стоп; вывод (14), (13)вывод n, n!
0111не
1000  ис-
1001  поль-
1010  зуется
1011r = n + 1 рабочая ячейка
1100k рабочая ячейка
1101n! результат
1110n исходные данные
1111000 0000 0000 00011константа 1



5. Составить программу вычисления суммы одномерного массива из 5 элементов.

Р Е Ш Е Н И Е

АдресКомандаРасшифровкаКомментарий
0000000 0110 0000 0010(6) ==> (2)начальная команда
0001000 1111 0000 1001(15) ==> (9)0 ==> S
0010не имеет значения[команда формируется программой]
0011001 1000 0010 0010(8) + (2) ==> (2)приращение адреса
0100110 0111 0010 0010если (7)>(2), идти к 2прошли А5?
0101111 1001 1001 1001стоп; вывод (9)вывод S
0110001 1010 1001 1001начальная команда суммирования (элемент А1)
0111001 1111 1001 1001конечная команда суммирования (после А5)
1000000 0001 0000 0000приращение адреса
1001S результат
1010A1 ис-
1011A2   ход-
1100A3   ные
1101A4   дан-
1110A5   ные
1111000 0000 0000 00000константа 0


© Решения составлены и проверены студенткой IV курса ПГПУ Н.А.Михалевой под руководством доцента Е.А.Еремина. Пермь, 1995


Автор сайта - Евгений Александрович Еремин (Пермский государственный педагогический университет). e_eremin@yahoo.com