[Logo] Форум DL
  [DL]  На главную страницу 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 6, 7, 8, 9, 10, ... 24, 25, 26
Автор Сообщение
Вячеслав Кацубо

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

Мой профиль
Ясно)
Глеб Усольцев

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

Мой профиль
Возникла проблема с задачей 85538 Количество диагоналей (программа).
При проверке на DL возникает ошибка на 4м тесте:
[test 4]: Тест не прошел: r dec[2]: 19700.  

Тем не менее в Winter решение проходит все тесты (тесты взяты с DL).
Код решения:
unsigned __in __bits(8) n;
unsigned __out __bits(16) r;

void main()
{
	r = n*(n-3)/2;
}

Подскажите пожалуйста в чем дело. Заранее спасибо.
Игорь Коршунов

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

Мой профиль


Глеб Усольцев:

Возникла проблема с задачей 85538 Количество диагоналей (программа).
При проверке на DL возникает ошибка на 4м тесте:
[test 4]: Тест не прошел: r dec[2]: 19700.  

Тем не менее в Winter решение проходит все тесты (тесты взяты с DL).
Код решения:
unsigned __in __bits(8) n;
unsigned __out __bits(16) r;

void main()
{
	r = n*(n-3)/2;
}

Подскажите пожалуйста в чем дело. Заранее спасибо. 

Происходит переполнение при умножении 8-битной переменной. Правильно так:
unsigned __in __bits(8) n;
unsigned __out __bits(16) r;

void main()
{
	unsigned __in __bits(16) n16 = n;
	r = n16*(n16-3)/2;
}

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

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

Мой профиль


Глеб Усольцев:


Тем не менее в Winter решение проходит все тесты (тесты взяты с DL).
 

В отчете после каждого теста было сообщение "Тест прошел"?

У меня это решение не проходит 3 теста:
[test 1]: Тест прошел.
[test 2]: Тест прошел.
[test 3]: Тест прошел.
[test 4]: Тест не прошел: r dec[2]: 19700.
[test 5]: Тест прошел.
[test 6]: Тест прошел.
[test 7]: Тест прошел.
[test 8]: Тест прошел.
[test 9]: Тест прошел.
[test 10]: Тест прошел.
[test 11]: Тест не прошел: r dec[2]: 31877.
[test 12]: Тест не прошел: r dec[2]: 31625.
Глеб Усольцев

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

Мой профиль
Разобрался, спасибо за ответ.
На компьютере, на котором я решал задачу стояла старая версия Winter. И в той версии задача с моим решением проходила все тесты без ошибок. Когда обновил Winter, решение перестало проходить 4й тест, как и должно было.
Игорь Коршунов

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

Мой профиль
Еще один пример ошибки с занесением на выход неправильного значения:
int __in __bits(16) a;
int __in __bits(16) b;
int __out __bits(16) res;

void main(){
	res=0;
	if ((a%b)==0) {
		res=b;
	} 
		if ((b%a)==0) {
			res=a;
		} 
	
		
	
}

На выход можно подавать только уже посчитанный результат.
Правильно так:
int __in __bits(16) a;
int __in __bits(16) b;
int __out __bits(16) res;

void main(){
	if ((a%b)==0) {
		res=b;
	} 
	else if ((b%a)==0) {
			res=a;
	} 
	else res = 0;
}

Артем Хоруженко

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

Мой профиль
такой вопрос:
Экзамен\Индивидуальные задания\С-TCPU\Программы по схемам\Логические элементы\10 - "Домино" 83393 Задача Чаетской Ольги
http://dl.gsu.by/task.jsp?nid=917218&cid=813

int __bits(3) x[2];
int __bits(3) y[2];
unsigned __out __bits(1) out=0;
void main(){
if((x[0]==y[0]) || (x[0]==y[1])||(x[1]==y[0])||(x[1]==y[1])) out++;

я в принимаю по массив по 3 бита
и просто сравниваю. В winter все тесты пройдены когда отправляю ошибка в тесте[3]
[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


X dec[1]: 10
Y dec[1]: 29

OUT dec[1]: 0

что не так?
Михаил Пасенко

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

Мой профиль
unsigned __in __bits(16) in=10
unsigned __in __bits(4) s=2;
unsigned __out __bits(16) out;
void main() {
unsigned __bits(16) a=in;
unsigned __bits(16) b=in;
for (int i=0; i<d; i++) {
a=a*2;
}
for (int i=0; i<(16-s); i++) {
b=b/2;
}
out=a^b;
}

При выполнении на шестой строчке выдает ошибку "Деление на ноль"
строчка <unsigned __bits(16) b=in;>
Игорь Коршунов

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

Мой профиль


Артем Хоруженко:

такой вопрос:
Экзамен\Индивидуальные задания\С-TCPU\Программы по схемам\Логические элементы\10 - "Домино" 83393 Задача Чаетской Ольги
http://dl.gsu.by/task.jsp?nid=917218&cid=813

int __bits(3) x[2];
int __bits(3) y[2];
unsigned __out __bits(1) out=0;
void main(){
if((x[0]==y[0]) || (x[0]==y[1])||(x[1]==y[0])||(x[1]==y[1])) out++;

я в принимаю по массив по 3 бита
и просто сравниваю. В winter все тесты пройдены когда отправляю ошибка в тесте[3]
[test 3]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


X dec[1]: 10
Y dec[1]: 29

OUT dec[1]: 0

что не так? 

При таком объявлении будут неправильно инициализироваться входные переменные. Нужно объявлять так:
int __bits(6) x;
int __bits(6) y;

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

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

Мой профиль


Михаил Пасенко:

unsigned __in __bits(16) in=10
unsigned __in __bits(4) s=2;
unsigned __out __bits(16) out;
void main() {
unsigned __bits(16) a=in;
unsigned __bits(16) b=in;
for (int i=0; i<d; i++) {
a=a*2;
}
for (int i=0; i<(16-s); i++) {
b=b/2;
}
out=a^b;
}

При выполнении на шестой строчке выдает ошибку "Деление на ноль"
строчка <unsigned __bits(16) b=in;> 

Чтобы не было проблем WInter нужно запускать через батники.
Артём Котов

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=915659&cid=813
Вот такое решение не проходит на С, но сгенерированный проект с этого исходника проходит все тесты.
Исходник:

unsigned __in __bits(8) n;

unsigned __out __bits(16) r;

void main()
{
	
	r = (n*(n-3))/2; 
}


тест:
[test 4]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


n dec[1]: 200

r dec[2]: 19700
Игорь Коршунов

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

Мой профиль


Артём Котов:

http://dl.gsu.by/task.jsp?nid=915659&cid=813
Вот такое решение не проходит на С, но сгенерированный проект с этого исходника проходит все тесты.
Исходник:

unsigned __in __bits(8) n;

unsigned __out __bits(16) r;

void main()
{
	
	r = (n*(n-3))/2; 
}


тест:
[test 4]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


n dec[1]: 200

r dec[2]: 19700
 

Здесь происходит переполнение при умножении n*(n-3). В будущем это будет исправлено. А сейчас можно завести промежуточную 16-битную переменную для хранения результата произведения.
unsigned __bits(16) t = n;
t *= n - 3;

Алексей Белоглазов

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

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

Проходят первые 5 тестов, а 6 (самый простой) не проходит.

Вот исходник:
unsigned __bits(8) mmreg1[8];
unsigned __bits(8) mmreg2[8];

unsigned __bits(8) mmreg3[8];

void main() {
	mmreg3[7] = mmreg2[7];
	mmreg3[6] = mmreg1[7];
	mmreg3[5] = mmreg2[6];
	mmreg3[4] = mmreg1[6];
	mmreg3[3] = mmreg2[5];
	mmreg3[2] = mmreg1[5];
	mmreg3[1] = mmreg2[4];
	mmreg3[0] = mmreg1[4];
}

Михаил Долинский

Темы: 1985
Сообщений: 47294

Мой профиль
29.05.2012 19:10:10 29.05.2012 19:10:13 Белоглазов Алексей Архитектура вычислительных систем (М3/ПМ4) - 2012 3. Программа по схеме 101894 0 [test 6]: Тест не прошел: mmreg3 hex[8]: 0. 1.tc DelTA3 at DLServer
Игорь Коршунов

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

Мой профиль


Алексей Белоглазов:

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

Проходят первые 5 тестов, а 6 (самый простой) не проходит.

Вот исходник:
unsigned __bits(8) mmreg1[8];
unsigned __bits(8) mmreg2[8];

unsigned __bits(8) mmreg3[8];

void main() {
	mmreg3[7] = mmreg2[7];
	mmreg3[6] = mmreg1[7];
	mmreg3[5] = mmreg2[6];
	mmreg3[4] = mmreg1[6];
	mmreg3[3] = mmreg2[5];
	mmreg3[2] = mmreg1[5];
	mmreg3[1] = mmreg2[4];
	mmreg3[0] = mmreg1[4];
}
 

Тест исправлен, решения перетестированы.
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 6, 7, 8, 9, 10, ... 24, 25, 26
Time:0,047