Автор |
Сообщение |
25.03.2013 15:39:58
Тема: Re:Вопросы по C-MPA
|
Василий Писпанен
Темы: 0
Сообщений: 76
Мой профиль
|
задача http://dl.gsu.by/task.jsp?nid=1097478&cid=860
решение
unsigned __in __bits(64) a;
unsigned __in __bits(64) b;
unsigned __out __bits(64) y;
void main(){
unsigned __bits(64) t = 0;
if ( (a&0xFF) > (b&0xFF) ) t =(a&0xFF) - (b&0xFF);
if ( (a&0xFF00) > (b&0xFF00) ) t +=(a&0xFF00) - (b&0xFF00);
if ( (a&0xFF0000) > (b&0xFF0000) ) t +=(a&0xFF0000) - (b&0xFF0000);
if ( (a&0xFF000000) > (b&0xFF000000) ) t +=(a&0xFF000000) - (b&0xFF000000);
y = t;
}
локально тесты проходит, на сервере нет. в чём ошибка?
|
25.03.2013 15:42:08
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49881
Мой профиль
|
25.03.2013 15:28:45 25.03.2013 15:28:48 Стародубцев Иван, Щурок Илья Архитектура вычислительных систем (М3/ПМ4) - 2013 1. Вычитание с насыщением 0 В этой задаче нельзя использовать генератор МПА psubus.prd DelTA3 at Nit3
25.03.2013 15:27:44 25.03.2013 15:27:51 Стародубцев Иван, Щурок Илья Архитектура вычислительных систем (М3/ПМ4) - 2013 1. Вычитание с насыщением 0 В этой задаче можно сдавать только сгенерированные МПА-проекты psubus.prd DelTA3 at Nit3
Это один и тот же проект.
Сначала они генерировали его по микропрограмме.
Потом решили сделать вручную
(там есть два идентичных задания - одно нужно сделать микропрограммно, другое аппаратно) - удалили сгенерированное, руками сделали, послали и получили верхнее сообщение.
Как бы сделать, чтобы признак генерации удалялся если удалили все сгенерированные элементы?
|
25.03.2013 17:05:52
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Василий Писпанен:
задача http://dl.gsu.by/task.jsp?nid=1097478&cid=860
решение
unsigned __in __bits(64) a;
unsigned __in __bits(64) b;
unsigned __out __bits(64) y;
void main(){
unsigned __bits(64) t = 0;
if ( (a&0xFF) > (b&0xFF) ) t =(a&0xFF) - (b&0xFF);
if ( (a&0xFF00) > (b&0xFF00) ) t +=(a&0xFF00) - (b&0xFF00);
if ( (a&0xFF0000) > (b&0xFF0000) ) t +=(a&0xFF0000) - (b&0xFF0000);
if ( (a&0xFF000000) > (b&0xFF000000) ) t +=(a&0xFF000000) - (b&0xFF000000);
y = t;
}
локально тесты проходит, на сервере нет. в чём ошибка?
Задержки в тестах увеличены.
Но программа не проходит тест:
a = 0xFACE00000000
b = 0xFACE00000000
y = 0x4ACD00000000
|
28.03.2013 12:19:52
Тема: Re:Вопросы по C-MPA
|
Иван Стародубцев
Темы: 2
Сообщений: 72
Мой профиль
|
Что-то странное происходит с задачей Обучение\C-MPA\Обработка битов\К1_9 - "Парный теннис" 44321.
Я написал задачу в CMPA. Конвертирую в HLCCAD. Отправляю - не проходит тесты. Беру тесты и вручную проверяю все на CMPA - все работает. Однако, в HLCCAD всплывают 4 ошибки. В чем заключается проблема?
Код в СМPА:
unsigned __in __bits(3) in_0;
unsigned __in __bits(3) in_1;
unsigned __in __bits(3) in_2;
unsigned __in __bits(3) in_3;
unsigned __out __bits(1) out_0;
unsigned __out __bits(1) out_1;
unsigned __out __bits(1) out_2;
void main()
{
int s1 = 0;
int s2 = 0;
out_0 = 0;
out_1 = 0;
out_2 = 0;
if (in_0 != 0 && in_1 != 0){
s1 = in_0 + in_1;
}
if (in_2 != 0 && in_3 != 0){
s2 = in_2 + in_3;
}
if (s1 > s2)
out_0 = 1;
if (s1 < s2)
out_1 = 1;
if (s1 == s2)
out_2 = 1;
}
|
28.03.2013 12:34:35
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49881
Мой профиль
|
Ты вот здесь
Читал?
В частности
4. Неоднократное занесение значений на выходные контакты. Изменение значений на входных контактах.
http://dl/NForum/posts/topicshow/46.dl?postid=224#224
http://dl/NForum/posts/topicshow/46.dl?postid=1937#1937
http://dl/NForum/posts/topicshow/46.dl?postid=3550#3550
http://dl/NForum/posts/topicshow/46.dl?postid=34228#34228
Возможно проблема и не в этом, но в частности, ты на выходные контакты дважды присваиваешь значения.
out_0 = 0;
...
if (s1 > s2)
out_0 = 1;
...
|
28.03.2013 13:08:50
Тема: Re:Вопросы по C-MPA
|
Иван Стародубцев
Темы: 2
Сообщений: 72
Мой профиль
|
Михаил Долинский:
Возможно проблема и не в этом, но в частности, ты на выходные контакты дважды присваиваешь значения.
out_0 = 0;
...
if (s1 > s2)
out_0 = 1;
...
Проблема оказалась именно в этом.
Такой код проходит все тесты:
unsigned __in __bits(3) in_0;
unsigned __in __bits(3) in_1;
unsigned __in __bits(3) in_2;
unsigned __in __bits(3) in_3;
unsigned __out __bits(1) out_0;
unsigned __out __bits(1) out_1;
unsigned __out __bits(1) out_2;
void main()
{
int s1 = 0;
int s2 = 0;
if (in_0 != 0 && in_1 != 0){
s1 = in_0 + in_1;
}
if (in_2 != 0 && in_3 != 0){
s2 = in_2 + in_3;
}
if (s1 > s2) {
out_0 = 1;
out_1 = 0;
out_2 = 0;
}
if (s1 < s2) {
out_0 = 0;
out_1 = 1;
out_2 = 0;
}
if (s1 == s2) {
out_0 = 0;
out_1 = 0;
out_2 = 1;
}
}
|
28.03.2013 13:40:50
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49881
Мой профиль
|
Спасибо за информацию.
В общем, если ничего не помогает, прочти, наконец, ИНСТРУКЦИЮ
|
29.03.2013 11:13:36
Тема: Re:Вопросы по C-MPA
|
Иван Стародубцев
Темы: 2
Сообщений: 72
Мой профиль
|
Очередная проблема winter/hlccad.
Задача: Экзамен\Контроль практики\Программирование\8\Add-8\Проектирование\2 - "Хоккей" 84571
Мой код:
unsigned __in __bits(16) t1;
unsigned __in __bits(16) t2;
unsigned __out __bits(2) res;
void main()
{
int t,i;
unsigned win=0, stop=0;
unsigned k1=t1,k2=t2;
for (i=0; i<16; i++){
if (((k1 & 1)) && ((k2 & 1) == 0)){
win = 1;
break;
}
if (((k2 & 1)) && ((k1 & 1) == 0)){
win = 2;
break;
}
k1 >>= 1;
k2 >>= 1;
}
res = win;
}
На винтере он проходит все тесты, но на hlccad'e - ни одного.
|
29.03.2013 11:35:18
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Иван Стародубцев:
Очередная проблема winter/hlccad.
Задача: Экзамен\Контроль практики\Программирование\8\Add-8\Проектирование\2 - "Хоккей" 84571
Мой код:
unsigned __in __bits(16) t1;
unsigned __in __bits(16) t2;
unsigned __out __bits(2) res;
void main()
{
int t,i;
unsigned win=0, stop=0;
unsigned k1=t1,k2=t2;
for (i=0; i<16; i++){
if (((k1 & 1)) && ((k2 & 1) == 0)){
win = 1;
break;
}
if (((k2 & 1)) && ((k1 & 1) == 0)){
win = 2;
break;
}
k1 >>= 1;
k2 >>= 1;
}
res = win;
}
На винтере он проходит все тесты, но на hlccad'e - ни одного.
Задержки в тестах увеличены, решения перетестированы.
|
29.03.2013 13:36:49
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49881
Мой профиль
|
Игорь Коршунов:
Максим Шурпо:
http://dl/task.jsp?nid=1115444&cid=860
не работает 34 тест.
int __in __bits(6) IN = 15;
int __out __bits(1) TWO;
int __out __bits(1) THREE;
int __out __bits(1) FOUR;
int __out __bits(1) FIVE;
void main(){
if(IN%2 == 0)
TWO = 1;
else TWO = 0;
if(IN%3 == 0)
THREE = 1;
else THREE = 0;
if(IN%4 == 0)
FOUR = 1;
else FOUR = 0;
if(IN%5 == 0)
FIVE = 1;
else FIVE = 0;
}
Знаковый 6-битный тип не может вместить числа больше 32. В этой задаче нужно использовать тип unsigned.
|
26.04.2013 15:15:28
Тема: Re:Вопросы по C-MPA
|
Никита Лобанов
Темы: 0
Сообщений: 60
Мой профиль
|
Во время написания контрольной возник такой вопрос:
задача - http://dl/task.jsp?nid=1099480&cid=861
код
char in_str[100]="adsd#";
int __out __bits(8) x;
void main()
{
char s[5]= "*-/+=";
int i=0;
int k;
char n=in_str[i];
while(n!='#'){
i++;
n=in_str[i];}
for (k=0;k<i;k++)
if (s[k]==in_str[k])
x=1;
else {x=0;break;}
}
получил на этой строчке - ошибка синтаксиса
char s[5]= "*-/+=";
В чём ошибка?
|
26.04.2013 18:15:25
Тема: Re:Вопросы по C-MPA
|
Никита Лысенко
Темы: 0
Сообщений: 120
Мой профиль
|
быть может, ты одному символу присваиваешь целую строку ?)
|
03.05.2013 09:57:20
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Никита Лобанов:
получил на этой строчке - ошибка синтаксиса
char s[5]= "*-/+=";
В чём ошибка?
Строка занимает 6 байт (в Си в конце строки всегда ставится нулевой байт) и не может быть записана в массив из 5 байт.
|
03.05.2013 10:16:59
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49881
Мой профиль
|
А мы можем выдавать при таких сообщениях адекватный текст?
(примерно то, что ты выше написал)
|
03.05.2013 11:05:44
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Сейчас выдается: "слишком много инициализаторов".
Для случая со строкой, наверное, не всем понятно.
|
|