[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 15, 16, 17, 18, 19, ... 24, 25, 26
Автор Сообщение
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Татьяна Коновалова:

Здравствуйте! Я можно увидеть секретный тест по этой задаче?

Зачет\Индивидуальные задания\Сконвертированные задания на программирование\Условные вычисления\16 - "Простые операции" 80909 Хруцкий Дмитрий, ПОИТ-27, май 2006

http://dl.gsu.by/task.jsp?nid=1390305&cid=947 

Основной тест дополнен.
Анна Пискунова

Темы: 0
Сообщений: 40

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1390285&cid=947

Объясните пожалуйста, почему пишет, что не проходит тест:
[test 5]: Тест не прошел: res dec[1]: 40.

Вот текст самой программы:

unsigned __in __bits(4) a0;

unsigned __out __bits(8) res;

void main() {
	res = (a0 + 5) * 2;
}


Казалось бы ничего сложного, но в чем проблема?
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Анна Пискунова:

Задача http://dl.gsu.by/task.jsp?nid=1390285&cid=947

Объясните пожалуйста, почему пишет, что не проходит тест:
[test 5]: Тест не прошел: res dec[1]: 40.

Вот текст самой программы:

unsigned __in __bits(4) a0;

unsigned __out __bits(8) res;

void main() {
	res = (a0 + 5) * 2;
}


Казалось бы ничего сложного, но в чем проблема? 


Происходит переполнение, т.к. a0 4 бита. Чтобы переполнения не было можно писать например так:

unsigned __in __bits(4) a0;
unsigned __out __bits(8) res;

void main()
{
	unsigned __bits(8) tmp = a0;
	res = (tmp + 5) * 2;
}

Анна Пискунова

Темы: 0
Сообщений: 40

Мой профиль
Спасибо большое. Премного благодарна.


Игорь Коршунов:


Анна Пискунова:

Задача http://dl.gsu.by/task.jsp?nid=1390285&cid=947

Объясните пожалуйста, почему пишет, что не проходит тест:
[test 5]: Тест не прошел: res dec[1]: 40.

Вот текст самой программы:

unsigned __in __bits(4) a0;

unsigned __out __bits(8) res;

void main() {
	res = (a0 + 5) * 2;
}


Казалось бы ничего сложного, но в чем проблема? 


Происходит переполнение, т.к. a0 4 бита. Чтобы переполнения не было можно писать например так:

unsigned __in __bits(4) a0;
unsigned __out __bits(8) res;

void main()
{
	unsigned __bits(8) tmp = a0;
	res = (tmp + 5) * 2;
}

 
Александр Соболев

Темы: 0
Сообщений: 28

Мой профиль
Решение проходит в отладчике, но не проходит тестирование

Задча: http://dl.gsu.by/task.jsp?nid=1398901&cid=948

Не проходит 3-й тест:
[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0

A dec[1]: 3
B dec[1]: 3
C dec[1]: 3

Z dec[1]: 9

Текст программы:
unsigned __in __bits(2) A;
unsigned __in __bits(2) B;
unsigned __in __bits(2) C;

unsigned __out __bits(4) Z;

void main(){
	Z=A+B+C;
}

Александр Соболев

Темы: 0
Сообщений: 28

Мой профиль


Александр Соболев:

Решение проходит в отладчике, но не проходит тестирование

Задча: http://dl.gsu.by/task.jsp?nid=1398901&cid=948

Не проходит 3-й тест:
[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0

A dec[1]: 3
B dec[1]: 3
C dec[1]: 3

Z dec[1]: 9

Текст программы:
unsigned __in __bits(2) A;
unsigned __in __bits(2) B;
unsigned __in __bits(2) C;

unsigned __out __bits(4) Z;

void main(){
	Z=A+B+C;
}
 

Вопрос снят.
Рабочее решение:
unsigned __in __bits(2) A;
unsigned __in __bits(2) B;
unsigned __in __bits(2) C;

unsigned __out __bits(4) Z;

void main(){
	unsigned a=A,b=B,c=C;
	Z=a+b+c;
}

Дмитрий Тарасюк

Темы: 0
Сообщений: 42

Мой профиль
Тарасюк Дмитрий ПМ-41
Для задачи http://dl.gsu.by/task.jsp?nid=1398940&cid=948
не проходят тесты 3 и 5.
При разбитие решения на дейсвия и проходе отладчиком увидел странности:
1)
z-16 bit
q-8 bit
Для такого действия:
z=(~q);
в z оказывается все биты конвертированными.
q=10000001
z после присваивания 1111111101111110.
2) при выполнения дейсвия
z=q|1;
оно обрабатывает всего 7 битов.
пример
q=01111110
z= 00000000 01111111.

вот полный код программы, который не проходит тесты.

unsigned __in __bits(8) a;
unsigned __in __bits(8) b;
unsigned __out __bits(16) res;
void main(){
unsigned __bits(8) q=a;
unsigned __bits(8) w=b;
unsigned __bits(16) z=0;
if(w>0){
 z=(~q);
 q=q|1;
 z<<=8;
 z+=w;
}
else{
 z=~q;
 z=z|0;
 z<<=8;
 z+=w;
}
res=z;
}

задачу после решил, но по страннностям решил отписатся.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Дмитрий Тарасюк:


При разбитие решения на дейсвия и проходе отладчиком увидел странности:
1)
z-16 bit
q-8 bit
Для такого действия:
z=(~q);
в z оказывается все биты конвертированными.
q=10000001
z после присваивания 1111111101111110.
2) при выполнения дейсвия
z=q|1;
оно обрабатывает всего 7 битов.
пример
q=01111110
z= 00000000 01111111.
 


Я так и не понял в чем странности.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Александр Соболев:

Решение проходит в отладчике, но не проходит тестирование

Задча: http://dl.gsu.by/task.jsp?nid=1398901&cid=948

Не проходит 3-й тест:
[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0

A dec[1]: 3
B dec[1]: 3
C dec[1]: 3

Z dec[1]: 9

Текст программы:
unsigned __in __bits(2) A;
unsigned __in __bits(2) B;
unsigned __in __bits(2) C;

unsigned __out __bits(4) Z;

void main(){
	Z=A+B+C;
}
 

При сложении двухбитных переменных происходит переполение.
Игорь Злыденко

Темы: 0
Сообщений: 44

Мой профиль
Задача http://dl.gsu.by/task.jsp?nid=1591529&cid=1021

Не работает подсчет факториала через рекурсивную функцию.

int __in __bits(16) x;
int __in __bits(16) y;
int __in __bits(8) a;
int __in __bits(8) b;
int __out __bits(16) R;

int fact(int n)
{
	if (n  == 1)
		return 1;
	else
		return n * fact(n-1);
}

void main()
{

	if (x >= 1 && x <= 7)
	{
		R = fact(x) + y/(a+b);
	}
	else
	{
		R = fact(7) + x * y/(a-b);
	}
}

Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль


Игорь Злыденко:

Задача http://dl.gsu.by/task.jsp?nid=1591529&cid=1021

Не работает подсчет факториала через рекурсивную функцию.

int __in __bits(16) x;
int __in __bits(16) y;
int __in __bits(8) a;
int __in __bits(8) b;
int __out __bits(16) R;

int fact(int n)
{
	if (n  == 1)
		return 1;
	else
		return n * fact(n-1);
}

void main()
{

	if (x >= 1 && x <= 7)
	{
		R = fact(x) + y/(a+b);
	}
	else
	{
		R = fact(7) + x * y/(a-b);
	}
}
 

Рекурсивные функции не поддерживаются.
Андрей Красников

Темы: 2
Сообщений: 39

Мой профиль
unsigned __in __bits(1) m1;
unsigned __in __bits(1) m2;
unsigned __in __bits(1) start;
unsigned __in __bits(1) C;

unsigned __bits(1) prew;

unsigned __out __bits(4) R;

unsigned __bits(1) nm1;
unsigned __bits(1) nm2;
unsigned __bits(1) nstart;
unsigned __bits(1) nC;

void main(){
	nC=C;
	nm1=m1;
	nm2=m2;
	nstart=start;

	if (nstart) R=0;
	if (prew==0 && nC==1){
		R+=nm1+nm2-1;
	}
	prew=nC;
}


Не могу выполнить задание http://dl.gsu.by/task.jsp?nid=1586267&cid=1021

Код который я написал не проходит 12 тестов. Самое близкое как я мог приблизится это непрохождение 10 тестов. В винтере по отдельности проходит. Помогите разобраться, пожалуйста.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль
Этот вариант программы правильный.

В тестах была небольшая ошибка, я ее исправил.
Игорь Коршунов

Темы: 7
Сообщений: 2186

Мой профиль

Почему программа неправильно вычисляет выражение RES = abs(abs(a)-abs(b))*d/c+sign(a*b*c*d);
 

Дело в том, что в С-МПА нельзя использовать одну и ту же функцию в одном выражении несколько раз (из-за ограничений генератора схем).
Правильно так:
		int ma = abs(a);
		int mb = abs(b);
		int md = abs(ma - mb);
		RES = md*d/c + sign(a*b*c*d);

Михаил Бугаенко

Темы: 0
Сообщений: 13

Мой профиль
Индивидуальные задания->проектирование цифровых систем->непростая арифметика->корректное время
unsigned __in __bits(17) In;

unsigned __out __bits(1) Out;

void main() {
    unsigned __bits(17) x = In;
	unsigned __bits(1) res = 1;
    unsigned __bits(17) hours = x >> 12;
    if (hours > 23) {
        res = 0;
    }
    unsigned __bits(17) minutes = (x % 4096) >> 6;
    if (minutes > 59) {
		res = 0;
    }
    unsigned __bits(17) seconds = x % 128;
    if (seconds > 59) {
		res = 0;
    }
    Out = res;
}


Вроде подставляю в винтере все тестовые значения и все нормально работает, результаты правильные, в hlccad валится вроде как самый первый тест, не могу понять проблему, подскажите, пожалуйста
ссылка - http://dl.gsu.by/task.jsp?nid=1676647&cid=1061
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 15, 16, 17, 18, 19, ... 24, 25, 26
Time:0,047