Автор |
Сообщение |
29.06.2012 12:46:19
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Игорь Коршунов:
Алексей Белоглазов:
Задача из контрольной http://dl.gsu.by/task.jsp?nid=914942&cid=813.
Пишет,что тест не проходит. Хотя в Винтере прогнал - всё нормально.
int mas[5];
int __out __bits(8) srd;
void main(){
int min = mas[0], max = mas[0];
for(int i = 1; i < 5; i++){
if(mas[i] > max)
max = mas[i];
if(mas[i] < min)
min = mas[i];
}
srd = (max+min)/2;
}
Неправильно объявлен входной массив.
Правильно так:
int __bits(8) mas[5];
|
29.06.2012 13:32:01
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Игорь Коршунов:
Алексей Белоглазов:
В задаче http://dl.gsu.by/task.jsp?nid=918597&cid=813 пишет, что не найден контакт x.
int __bits(16) x;
int __bits(16) y;
int __bits(16) res;
void main() {
if(x*y>=80)
res = 5*y-4*x;
else
res = 8*y+10*x;
}
В программе не объявлены входные/выходные контакты.
Должно быть так:
int __in __bits(16) x;
int __in __bits(16) y;
int __out __bits(16) res;
|
29.06.2012 13:34:48
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Игорь Коршунов:
Михаил Пасенко:
Индивидуальные задания\Проектирование цифровых устройств\Вычислить выражение\26 - "Cумма" 44739
Программа не проходит тесты, а вручную всё нормально
unsigned __in __bits(8) x;
unsigned __out __bits(8) y;
void main() {
if (((x&128 == 128) && (x&1 == 1))) {
y=(~x);
} else {
y=x;
}
}
В программе неправильно записано условное выражение, т.к. == выполняется раньше чем &.
Программа будет инвертировать все числа кроме нуля.
|
29.06.2012 14:15:14
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Игорь Коршунов:
Алексей Белоглазов:
Тоже самое. http://dl.gsu.by/task.jsp?nid=918468&cid=813
Локально тесты проходят.
На данный момент оператор return завершает работу схемы. Чтобы проходили последующие тесты нужно исправить программу так, чтобы в ней не было этого оператора.
|
30.06.2012 11:28:14
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Игорь Коршунов:
Иван Огнев:
Экзамен\Индивидуальные задания\Сконвертированные задания на проектирование по программе\Делители\6 - "Схема по программе 81523" 81523 TaskConverter 2009 Февраль 01
Неизвестна размерность входных и выходных параметров
По умолчанию тип int имеет разрядность 32 бита.
|
28.09.2012 11:01:22
Тема: Re:Вопросы по C-MPA
|
Евгений Картавых
Темы: 2
Сообщений: 49
Мой профиль
|
Экзамен\Контроль практики\Проектирование\3\HLCCAD\5 - "Сравнение двух сумм" 41751 Семченко Андрей, ПМ-44, май 2006
http://dl.gsu.by/task.jsp?nid=997849&cid=836
unsigned __in __bits(4) a_1 = 8;
unsigned __in __bits(4) a_2 = 8;
unsigned __in __bits(1) a_3 = 0;
unsigned __in __bits(4) b_1 = 8;
unsigned __in __bits(4) b_2 = 9;
unsigned __in __bits(1) b_3 = 0;
unsigned __out __bits(1) cmp1 = 0;
unsigned __out __bits(1) cmp2 = 0;
unsigned __out __bits(1) cmp3 = 0;
void main() {
unsigned sum1 = a_1 + a_2 + a_3;
unsigned sum2 = b_1 + b_2 + b_3;
if (sum1 > sum2)
cmp1 = 1;
else if (sum1 == sum2)
cmp2 = 1;
else
cmp3 = 1;
}
В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
______________________
xxx: I just saw a red-black squirrel!
yyy: Was it in a red-black tree?
|
01.10.2012 14:53:25
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Евгений Картавых:
Экзамен\Контроль практики\Проектирование\3\HLCCAD\5 - "Сравнение двух сумм" 41751 Семченко Андрей, ПМ-44, май 2006
http://dl.gsu.by/task.jsp?nid=997849&cid=836
unsigned __in __bits(4) a_1 = 8;
unsigned __in __bits(4) a_2 = 8;
unsigned __in __bits(1) a_3 = 0;
unsigned __in __bits(4) b_1 = 8;
unsigned __in __bits(4) b_2 = 9;
unsigned __in __bits(1) b_3 = 0;
unsigned __out __bits(1) cmp1 = 0;
unsigned __out __bits(1) cmp2 = 0;
unsigned __out __bits(1) cmp3 = 0;
void main() {
unsigned sum1 = a_1 + a_2 + a_3;
unsigned sum2 = b_1 + b_2 + b_3;
if (sum1 > sum2)
cmp1 = 1;
else if (sum1 == sum2)
cmp2 = 1;
else
cmp3 = 1;
}
В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
В программе прописана инициализация входных контактов.
|
05.10.2012 12:48:31
Тема: Re:Вопросы по C-MPA
|
Максим Пузиков
Темы: 0
Сообщений: 31
Мой профиль
|
Экзамен\Контроль практики\Проектирование\4\Проектирование в HLCCAD\8 - "Четвёрки" 42928 Родионов Кирилл, ПОИТ-27, апрель 2006
http://dl.gsu.by/task.jsp?nid=997879&cid=836
unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;
unsigned __out __bits(3) OUT_0;
void main()
{
unsigned __bits(3) kol=0;
unsigned __bits(1) in0;
unsigned __bits(1) in01;
unsigned __bits(1) in1;
unsigned __bits(1) in11;
for (int i=0;i<7;i++)
{
in0=IN_0>>i;
in01=IN_0>>i+1;
in1=IN_1>>i;
in11=IN_1>>i+1;
if (in0==1&&in01==1&&in1==0&&in11==0)
kol++;
}
OUT_0=kol;
}
В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
|
05.10.2012 13:03:40
Тема: Re:Вопросы по C-MPA
|
Максим Пузиков
Темы: 0
Сообщений: 31
Мой профиль
|
Игорь Коршунов:
Если возникают какие-то проблемы с использованием C-MPA, то спрашивайте здесь.
"Решение проходит в Winter-е, но не проходит в HLCCAD":
1. Возьмите тесты из HLCCAD и подключите в Winter - прогоните программу на них.
В Winter тесты с HLCCAD не подошли
ничего не произошло когда загрузил эти тесты в Winter
|
08.10.2012 15:01:58
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Максим Пузиков:
Игорь Коршунов:
Если возникают какие-то проблемы с использованием C-MPA, то спрашивайте здесь.
"Решение проходит в Winter-е, но не проходит в HLCCAD":
1. Возьмите тесты из HLCCAD и подключите в Winter - прогоните программу на них.
В Winter тесты с HLCCAD не подошли
ничего не произошло когда загрузил эти тесты в Winter
Тесты нужно переделать в формат пригодный для WInter.
|
08.10.2012 15:17:02
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Максим Пузиков:
Экзамен\Контроль практики\Проектирование\4\Проектирование в HLCCAD\8 - "Четвёрки" 42928 Родионов Кирилл, ПОИТ-27, апрель 2006
http://dl.gsu.by/task.jsp?nid=997879&cid=836
unsigned __in __bits(8) IN_0;
unsigned __in __bits(8) IN_1;
unsigned __out __bits(3) OUT_0;
void main()
{
unsigned __bits(3) kol=0;
unsigned __bits(1) in0;
unsigned __bits(1) in01;
unsigned __bits(1) in1;
unsigned __bits(1) in11;
for (int i=0;i<7;i++)
{
in0=IN_0>>i;
in01=IN_0>>i+1;
in1=IN_1>>i;
in11=IN_1>>i+1;
if (in0==1&&in01==1&&in1==0&&in11==0)
kol++;
}
OUT_0=kol;
}
В Си решение выдаёт правильный ответ, когда перевожу схему в HLCCAD, сгенерированная схема ответ выдаёт неправильный.
Схема не успевает отработать т.к. программа составлена неэффективно. Нужно уменьшить число сдвигов и сравнений.
|
22.11.2012 17:36:14
Тема: Re:Вопросы по C-MPA
|
Евгений Картавых
Темы: 2
Сообщений: 49
Мой профиль
|
Дзунович, Картавых ПО-31
unsigned __in __bits(72) a;
unsigned __in __bits(24) k;
unsigned __in __bits(24) x;
unsigned __out __bits(24) y;
void main() {
unsigned __bits(8) A[9];
for (int i = 0; i < 9; i++) {
A[i] = (a >> i*8) && 0xF;
}
unsigned __bits(8) K[3];
for (i = 0; i < 3; i++) {
K[i] = (k >> i*8) && 0xF;
}
unsigned __bits(8) X[3];
for (i = 0; i < 3; i++) {
X[i] = (x >> i*8) && 0xF;
}
unsigned __bits(8) Y[3];
for (i = 0; i < 3; i++) {
Y[i] = K[i];
for (int j = 0; j < 3; j++) {
Y[i] += X[i*3 + j] * A[i*3 + j];
}
}
y = Y[0] + (Y[1] << 8) + (Y[2] << 16);
}
Винтер при попытке компиляции этого кода вылетает. Когда генерируем схему из кода, HLCCAD вылетает тоже.
______________________
xxx: I just saw a red-black squirrel!
yyy: Was it in a red-black tree?
|
23.11.2012 10:03:12
Тема: Re:Вопросы по C-MPA
|
Игорь Коршунов
Темы: 7
Сообщений: 2198
Мой профиль
|
Евгений Картавых:
Дзунович, Картавых ПО-31
unsigned __in __bits(72) a;
unsigned __in __bits(24) k;
unsigned __in __bits(24) x;
unsigned __out __bits(24) y;
void main() {
unsigned __bits(8) A[9];
for (int i = 0; i < 9; i++) {
A[i] = (a >> i*8) && 0xF;
}
unsigned __bits(8) K[3];
for (i = 0; i < 3; i++) {
K[i] = (k >> i*8) && 0xF;
}
unsigned __bits(8) X[3];
for (i = 0; i < 3; i++) {
X[i] = (x >> i*8) && 0xF;
}
unsigned __bits(8) Y[3];
for (i = 0; i < 3; i++) {
Y[i] = K[i];
for (int j = 0; j < 3; j++) {
Y[i] += X[i*3 + j] * A[i*3 + j];
}
}
y = Y[0] + (Y[1] << 8) + (Y[2] << 16);
}
Винтер при попытке компиляции этого кода вылетает. Когда генерируем схему из кода, HLCCAD вылетает тоже.
Компилятор генерирует некорректный код. Пока ошибка не исправлена можно вместо
y = Y[0] + (Y[1] << 8) + (Y[2] << 16);
писать так:
unsigned __bits(8) y1 = Y[1];
unsigned __bits(8) y2 = Y[2];
y = Y[0] + (y1 << 8) + (y2 << 16);
Но схема по такой программе синтезироваться не будет, т.к. используются массивы.
|
04.02.2013 15:24:30
Тема: Re:Вопросы по C-MPA
|
Василий Писпанен
Темы: 0
Сообщений: 76
Мой профиль
|
Добрый день
C-MPA, простая программа по задаче http://dl.gsu.by/task.jsp?nid=1110210&cid=860
int __in __bits(16) a;
int __in __bits(16) b;
int __in __bits(8) c;
int __in __bits(8) d;
unsigned __out __bits(16) RES;
void main()
{
if (a*d<0){
RES=a/b+c-d*a;
} else {
RES=b-(c+a/d)*b;
}
}
Программа проходит тесты, но в Winter не компилируется:
[Ошибка]2.mpc: Функция main() не определена
|
04.02.2013 17:11:14
Тема: Re:Вопросы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49900
Мой профиль
|
Вася ты забыл написать что под Linux работаешь - возможно в этом и проблема.
|
|