Автор |
Сообщение |
27.03.2012 16:20:49
Тема: Re:Ошибка в установке задачи - 2012
|
Станислав Нестерук
Темы: 0
Сообщений: 39
Мой профиль
|
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\2 - "Умножение" 53774 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914299&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
|
27.03.2012 16:23:49
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Сергей Семенцов:
Вот исходник:
unsigned __in __bits(6) X;
unsigned __in __bits(6) Y;
unsigned __out __bits(1) OUT;
void main(){
unsigned __bits(6) XX = X;
unsigned __bits(6) YY = Y;
YY>>=3;
XX>>=3;
unsigned __bits(3) Y1 = YY;
unsigned __bits(3) X1 = XX;
unsigned __bits(3) Y2 = Y;
unsigned __bits(3) X2 = X;
if ( (X1==Y1) || (X1==Y2) || (X2==Y1) || (X2==Y2) )
OUT = 1;
else
OUT = 0;
}
Промежуточные переменные по 3 бита корректно в Си для TCPU не поддерживаются.
|
27.03.2012 16:24:24
Тема: Re:Ошибка в установке задачи - 2012
|
Станислав Нестерук
Темы: 0
Сообщений: 39
Мой профиль
|
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\3 - "Сумма и умножение" 53775 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914300&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
|
27.03.2012 16:27:20
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Станислав Нестерук:
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\2 - "Умножение" 53774 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914299&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
Исправлено.
|
27.03.2012 16:29:13
Тема: Re:Ошибка в установке задачи - 2012
|
Станислав Нестерук
Темы: 0
Сообщений: 39
Мой профиль
|
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\4 - "Сравнить" 53776 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914301&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
|
27.03.2012 16:30:22
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Станислав Нестерук:
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\3 - "Сумма и умножение" 53775 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914300&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
c - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
Исправлено.
|
27.03.2012 16:34:55
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Станислав Нестерук:
Подготовка к контролю практики\К6. Подводящие упражнения\5. Три ветви\4 - "Сравнить" 53776 Лобан Александр, М-42, февраль 2007
http://dl.gsu.by/task.jsp?nid=914301&cid=813
По условию:
Входные данные:
a - 2 байта
b - 2 байта
Выходные данные:
res - 2 байта
В тестах все переменные по 1-му байту.
Исправлено.
|
27.03.2012 16:37:19
Тема: Re:Ошибка в установке задачи - 2012
|
Sergey Sementsov
Темы: 1
Сообщений: 154
Мой профиль
|
Игорь Коршунов:
Сергей Семенцов:
Вот исходник:
unsigned __in __bits(6) X;
unsigned __in __bits(6) Y;
unsigned __out __bits(1) OUT;
void main(){
unsigned __bits(6) XX = X;
unsigned __bits(6) YY = Y;
YY>>=3;
XX>>=3;
unsigned __bits(3) Y1 = YY;
unsigned __bits(3) X1 = XX;
unsigned __bits(3) Y2 = Y;
unsigned __bits(3) X2 = X;
if ( (X1==Y1) || (X1==Y2) || (X2==Y1) || (X2==Y2) )
OUT = 1;
else
OUT = 0;
}
Промежуточные переменные по 3 бита корректно в Си для TCPU не поддерживаются.
Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.
Будем думать..
|
27.03.2012 16:40:15
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Станислав Нестерук:
Подготовка к контролю практики\К6. Подводящие упражнения\4. Вычислить выражение\7 - "Вычислить выражение" 53754 Кугейко Мария, ПО-12, март 2006
http://dl.gsu.by/task.jsp?nid=914296&cid=813
Размерность переменной res в 5-м тесте должна быть 2 байта.
[5]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0
a sgn[2]: -50
c sgn[2]: 6
b sgn: -5
d sgn: -10
res sgn: 106
Исправлено.
|
27.03.2012 16:42:17
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Сергей Семенцов:
Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.
Будем думать..
3-битные переменные занимают столько же памяти, сколько и 8-битные - 1 байт.
|
27.03.2012 16:44:10
Тема: Re:Ошибка в установке задачи - 2012
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Сергей Семенцов:
У меня не проходит тест, по-моему, 3-й.
Суть в том, что в отладчике всё "хорошо". X2==Y2, но в if() она не попадает, а сразу в else.
В итоге выходная переменная получает неверный результат.
До этого вообще долго делал, чтобы программа в памяти умещалась)) Не получалось долго..
Вместо
unsigned __bits(3) X2 = X;
можно написать
unsigned X2 = X & 3;
|
27.03.2012 16:55:48
Тема: Re:Ошибка в установке задачи - 2012
|
Sergey Sementsov
Темы: 1
Сообщений: 154
Мой профиль
|
Игорь Коршунов:
Сергей Семенцов:
У меня не проходит тест, по-моему, 3-й.
Суть в том, что в отладчике всё "хорошо". X2==Y2, но в if() она не попадает, а сразу в else.
В итоге выходная переменная получает неверный результат.
До этого вообще долго делал, чтобы программа в памяти умещалась)) Не получалось долго..
Вместо
unsigned __bits(3) X2 = X;
можно написать
unsigned X2 = X & 3;
Спасибо большое! Вечером же проверю!
|
27.03.2012 16:56:21
Тема: Re:Ошибка в установке задачи - 2012
|
Sergey Sementsov
Темы: 1
Сообщений: 154
Мой профиль
|
Игорь Коршунов:
Сергей Семенцов:
Делать все переменные 8-ми битовыми придется.
Тогда скорее всего выдаст ошибку о нехватке памяти.
Будем думать..
3-битные переменные занимают столько же памяти, сколько и 8-битные - 1 байт.
|
27.03.2012 17:34:45
Тема: Re:Ошибка в установке задачи - 2012
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Сергей Семенцов:
Игорь Коршунов:
Сергей Семенцов:
Игорь Коршунов:
Алексей Белоглазов:
В задаче http://dl.gsu.by/task.jsp?nid=909290&cid=813 не проходит тест FFFF0000FFFE0001=FFFF0000FFFF0000. Проверяли в калькуляторе, у нас правильный результат.
Команда Семенцов, Белоглазов
Нужно реализовать устройство реализующее инструкцию ММХ упакованного вычитания с насыщением (PSUBUSW), а не простое вычитания.
Суть это инструкции в том, что если a-b<0, то на выход подать 0? Если да, то так и делали.
Все тесты остальны проходит вроде бы как. Может мы не до конца поняли суть это команды?
Суть инструкции в том, что нужно выполнить 4 вычитания одновременно.
Любопытно) Уточним у Михаила Семеновича уже лично тогда..
http://dl/theory.jsp?id=547&cid=672
2) Использование насыщения (например, для слов)
Если операция дает результат, который не укладывается в разрядную
сетку, то имеет место насыщение.
Т.е., если при сложении получили переполнение или вычитание выра-
жается в исчезновении данных, то в качестве результата используется
наибольшее или наименьшее значение для 16-разрядного формата.
Для беззнакового это соответственно FFFFh и 0000h, а для знаково-
го - 7FFFh и 0800h.
Это важно при обработке изображения, где потеря переноса заставля-
ла бы черный пиксел внезапно превратиться в белый.
Упакованное сложение слов с насыщением (PADDSW) .
--------T-------T-------T-------¬
¦ a3 ¦ a2 ¦ a1 ¦ FFFFh ¦
L-------+-------+-------+--------
+ + + +
--------T-------T-------T-------¬
¦ b3 ¦ b2 ¦ b1 ¦ 8000h ¦
L-------+-------+-------+--------
------------------------------------------
--------T-------T-------T-------¬
¦ a3+b3 ¦ a2+b2 ¦ a1+b1 ¦ FFFFh ¦
L-------+-------+-------+--------
|
27.03.2012 18:17:37
Тема: Re:Ошибка в установке задачи - 2012
|
Алексей Белоглазов
Темы: 0
Сообщений: 82
Мой профиль
|
Задание http://dl.gsu.by/task.jsp?nid=916848&cid=813
Пишет: "Эталонная программа не смогла пройти тесты"
В ответ на мой тест
a dec[2]: -6
b dec[2]: -4
c dec: 2
d dec: -1
res dec[2]: -2
|
|