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

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

Мой профиль


Максим Шурпо:


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


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


Максим Шурпо:

задача с памятью http://dl.gsu.by/task.jsp?nid=1127222&cid=860
unsigned __in __bits(4) x ;
unsigned __in __bits(4) y ;
unsigned __in __bits(4) z ;
unsigned __out __bits(5) res;
unsigned __bits(5) g;
void main(){

unsigned __bits(4) x1 = x;
unsigned __bits(4) y1 = y;
unsigned __bits(4) z1 = z;
unsigned __bits(5) g1 = g;
if(x1+y1 <z1){
g1 = z1+y1+z1;
res = g1;
}else if(x1+y1>z1){
res = g1;
}
else{
g1 = 0;
res = 0;
}

}

не проходят тесты. Имеется глобальная переменная.  

Переменная g1 постоянно затирается значением из неинициализированной переменной g. 
 

приведите пожалуйста этот код в такое состояние, чтобы он работал. Все варианты я перепробовал и у меня ничего не получается. хотелось бы узнать синтаксис написания задач на память.  


Для начала нужно ЗАМЕНИТЬ вот эту строку

unsigned __bits(5) g1 = g;

На такую

unsigned __bits(5) g1;

А потом с помощью отладчика найти ошибку в программе.

Если не сможешь, приведи последний вариант исходника
и ОПИШИ суть проблемы.

P.S. Не думаю, что это хорошая идея - просить писать код вместо себя.
Игорь Коршунов

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

Мой профиль


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


А потом с помощью отладчика найти ошибку в программе.
 

В программе есть одна опечатка.
Михаил Долинский

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

Мой профиль


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


Иван Стародубцев:

В среде CMPA не разрешаются массивы, размером больше 1000 элементов. Программа валится на автоматической проверке.
 

Пока можно объявлять массивы не более чем из 512 элементов. 
Игорь Коршунов

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

Мой профиль


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


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


Иван Стародубцев:

В среде CMPA не разрешаются массивы, размером больше 1000 элементов. Программа валится на автоматической проверке.
 

Пока можно объявлять массивы не более чем из 512 элементов. 
 

Исправил ошибку. Теперь можно объявлять переменные суммарной емкостью до 32768 бит. В случае превышения будет ошибка компиляции.
Евгений Киклевич

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=1186616&cid=882
unsigned __in __bits(1) IN_0;
unsigned __in __bits(1) IN_1;
unsigned __in __bits(1) IN_2;
unsigned __in __bits(1) IN_3;
unsigned __in __bits(1) IN_4;
unsigned __in __bits(1) IN_5;
unsigned __in __bits(1) IN_6;
unsigned __in __bits(1) IN_7;
unsigned __in __bits(1) IN_8;
unsigned __in __bits(1) IN_9;
unsigned __in __bits(1) IN_10;
unsigned __in __bits(1) IN_11;
unsigned __in __bits(1) IN_12;
unsigned __in __bits(1) IN_13;
unsigned __in __bits(1) IN_14;
unsigned __in __bits(1) IN_15;
unsigned __in __bits(1) IN_16;
unsigned __in __bits(1) IN_17;
unsigned __in __bits(1) IN_18;
unsigned __in __bits(1) IN_19;

unsigned __out __bits(1) OUT_0;
unsigned __out __bits(1) OUT_1;

unsigned res1=0,res2=0;

void by(unsigned __bits(1) x)
{
if (x==1) res1++;
}

void ru(unsigned __bits(1) y)
{
// if (y==1) res2++;
}

void main()
{
/* by(IN_0);
by(IN_1);
by(IN_2);
by(IN_3);
by(IN_4);
by(IN_5);
by(IN_6);
by(IN_7);
by(IN_8);
by(IN_9);
ru(IN_10);
ru(IN_11);
ru(IN_12);
ru(IN_13);
ru(IN_14);
ru(IN_15);
ru(IN_16);
ru(IN_17);
ru(IN_18);
ru(IN_19);
*/
if (res1>res2) { OUT_0=1; OUT_1=0; }
else { OUT_0=0; OUT_1=1; }
}

HLCCAD выдаёт ошибку can't find state for specified offset.
Иван Иванов

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

Мой профиль
char  IN_STR[128];

int __out __bits(16) RES;

void main()
{
int k=0;
for (int i=0; IN_STR[i]!='#';i++){
   if (IN_STR[i]=='A' || 
       IN_STR[i]=="E" || 
       IN_STR[i]=='I' || 
       IN_STR[i]=='O' || 
       IN_STR[i]=='U') k++;
   }
   RES=k;
}

[Ошибка]src.mpc: Внутренняя ошибка компилятора - Unsupported node type.
Михаил Долинский

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

Мой профиль
В результате переформатирования текста он и сам нашёл ошибку

IN_STR[i]=="E" ||


Нужен штрих('), а не двойная кавычка (") два раза.
А можно сделать, чтобы Winter выдавал адекватное сообщение?
Иван Иванов

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

Мой профиль
при объявлении двумерного массива:
int __bits(16) a[6][6]; //ошибка синтаксиса
как можно объявить двумерный массив?
Игорь Коршунов

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

Мой профиль


Иван Иванов:

при объявлении двумерного массива:
int __bits(16) a[6][6]; //ошибка синтаксиса
как можно объявить двумерный массив? 

Двумерные массивы не поддерживаются.
Вместо этого можно объявить одномерный массив.
int __bits(16) a[36];
И обращаться к его элементам так: a[i * 6 + j].
Андрей Фурс

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

Мой профиль
В задаче Командные олимпиады\Особенности архитектуры МП Intel 80286\Контрольный срез (Пример 3)\Проектирование\КС - "Преф" на прошлой контрольной на мое решение не выдавало никаких ошибок, а в сегодняшней почему-то не проходит, алгоритм, как мне кажется такой же, как и в прошлый раз:

unsigned __in __bits(5) i1;
unsigned __in __bits(5) i2;
unsigned __in __bits(5) i3;
unsigned __in __bits(5) i4;
unsigned __in __bits(5) i5;
unsigned __in __bits(5) i6;
unsigned __in __bits(5) i7;
unsigned __in __bits(5) i8;
unsigned __in __bits(5) i9;
unsigned __in __bits(5) i10;

unsigned __out __bits(2) e1;
unsigned __out __bits(2) e2;
unsigned __out __bits(2) e3;
unsigned __out __bits(2) e4;
unsigned __out __bits(2) e5;
unsigned __out __bits(2) e6;
unsigned __out __bits(2) e7;
unsigned __out __bits(2) e8;
unsigned __out __bits(2) e9;
unsigned __out __bits(2) e10;

void main()
{
if(i1>=0 && i1<=7)
e1 = 0;
if(i1>=8 && i1<=15)
e1 = 1;
if(i1>=16 && i1<=23)
e1 = 2;
if(i1>=24 && i1<=31)
e1 = 3;

if(i2>=0 && i2<=7)
e2 = 0;
if(i2>=8 && i2<=15)
e2 = 1;
if(i2>=16 && i2<=23)
e2 = 2;
if(i2>=24 && i2<=31)
e2 = 3;

if(i3>=0 && i3<=7)
e3 = 0;
if(i3>=8 && i3<=15)
e3 = 1;
if(i3>=16 && i3<=23)
e3 = 2;
if(i3>=24 && i3<=31)
e3 = 3;

if(i4>=0 && i4<=7)
e4 = 0;
if(i4>=8 && i4<=15)
e4 = 1;
if(i4>=16 && i4<=23)
e4 = 2;
if(i4>=24 && i4<=31)
e4 = 3;

if(i5>=0 && i5<=7)
e5 = 0;
if(i5>=8 && i5<=15)
e5 = 1;
if(i5>=16 && i5<=23)
e5 = 2;
if(i5>=24 && i5<=31)
e5 = 3;

if(i6>=0 && i6<=7)
e6 = 0;
if(i6>=8 && i6<=15)
e6 = 1;
if(i6>=16 && i6<=23)
e6 = 2;
if(i6>=24 && i6<=31)
e6 = 3;

if(i7>=0 && i7<=7)
e7 = 0;
if(i7>=8 && i7<=15)
e7 = 1;
if(i7>=16 && i7<=23)
e7 = 2;
if(i7>=24 && i7<=31)
e7 = 3;

if(i8>=0 && i8<=7)
e8 = 0;
if(i8>=8 && i8<=15)
e8 = 1;
if(i8>=16 && i8<=23)
e8 = 2;
if(i8>=24 && i8<=31)
e8 = 3;

if(i9>=0 && i9<=7)
e9 = 0;
if(i9>=8 && i9<=15)
e9 = 1;
if(i9>=16 && i9<=23)
e9 = 2;
if(i9>=24 && i9<=31)
e9 = 3;

if(i10>=0 && i10<=7)
e10 = 0;
if(i10>=8 && i10<=15)
e10 = 1;
if(i10>=16 && i10<=23)
e10 = 2;
if(i10>=24 && i10<=31)
e10 = 3;
}
Михаил Долинский

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

Мой профиль
07.03.2014 11:01:17 07.03.2014 11:02:33 Фурс Андрей Архитектура вычислительных систем (ПМ4) - 2014 КС. Преф 0 Ошибка: Несовпадение e8:0=1 [1 ns] pref.prd DelTA3 at NIT5
07.03.2014 10:42:25 07.03.2014 10:43:33 Фурс Андрей Архитектура вычислительных систем (ПМ4) - 2014 КС. Преф 0 Ошибка: Несовпадение e8:0=1 [1 ns] pref.prd DelTA3 at NIT5
07.03.2014 10:38:12 07.03.2014 10:39:20 Фурс Андрей Архитектура вычислительных систем (ПМ4) - 2014 КС. Преф 0 Ошибка: Несовпадение e8:0=1 [1 ns] pref.prd DelTA3 at NIT5


21.02.2014 18:08:10 21.02.2014 18:08:16 Фурс Андрей Архитектура вычислительных систем (ПМ4) - 2014 3. Преф 1 Все тесты пройдены (основной + секретный). src.mpc DelTA3 at Nit_server
Михаил Долинский

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

Мой профиль
.03.2014 11:36:25 21.03.2014 11:36:27 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at Nit_server
21.03.2014 11:35:58 21.03.2014 11:36:00 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at DLServer
21.03.2014 11:35:47 21.03.2014 11:35:49 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at DLServer
21.03.2014 11:35:36 21.03.2014 11:35:38 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at DLServer
21.03.2014 11:34:40 21.03.2014 11:34:42 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 Ошибка: Несовпадение OUT_0:00110=01000 [3 ns] 1.prd DelTA3 at NIT5
21.03.2014 11:34:17 21.03.2014 11:34:19 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at Nit4
21.03.2014 11:30:37 21.03.2014 11:30:39 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 Ошибка: Несовпадение OUT_0:00011=00010 [2 ns] 1.prd DelTA3 at NIT6
21.03.2014 11:30:10 21.03.2014 11:30:13 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at Nit4
21.03.2014 11:29:45 21.03.2014 11:29:46 Жириков-Фурс Архитектура вычислительных систем (ПМ4) - 2014 ТИ. Степень 0 В этой задаче можно сдавать только сгенерированные МПА-проекты 1.prd DelTA3 at DLServer
Станислав Жириков

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

Мой профиль
unsigned __bits(8) a;
unsigned __bits(8) b;
unsigned __bits(8) x;
unsigned __bits(8) y;

unsigned __bits(8) res;

main(){
	if(b-a>0){
		int tmp1 = 0,tmp2 = 0;
		for(int i = 0; i<a ; i++){
			tmp1 +=a+b;
		}
	for(int i = 0; i<b ; i++){			
                        tmp2 +=b-a;
		}
		res = x*tmp1 + y*tmp2;
	}
	else{
		res = x(a+b) + y*(a-b);
	}
}


Индивидуальные задания

http://dl.gsu.by/task.jsp?nid=1243227&cid=905

Текс ошибки : [Ошибка] src.mpc(14): Перменная уже определена i.

Хотя обе переменные определены внутри FOR и конфликта не должно было возникакать

Станислав Жириков

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

Мой профиль
unsigned __bits(6) N  =10;
unsigned __bits(12)	SUMMA;

main(){
	int	cnt = 0;
	for(int i = 0; i<N ; i++){
		i++;
		cnt+=i;
	SUMMA  = cnt;
}


Случайно забыл закрыть цикл FOR
Как ни странно с открытой скобкой всё работает, неприавильно конечно но работает.
Перезапустил WINTER ничего не изменилось
Игорь Коршунов

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

Мой профиль


Станислав Жириков:

unsigned __bits(8) a;
unsigned __bits(8) b;
unsigned __bits(8) x;
unsigned __bits(8) y;

unsigned __bits(8) res;

main(){
	if(b-a>0){
		int tmp1 = 0,tmp2 = 0;
		for(int i = 0; i<a ; i++){
			tmp1 +=a+b;
		}
	for(int i = 0; i<b ; i++){			
                        tmp2 +=b-a;
		}
		res = x*tmp1 + y*tmp2;
	}
	else{
		res = x(a+b) + y*(a-b);
	}
}


Индивидуальные задания

http://dl.gsu.by/task.jsp?nid=1243227&cid=905

Текс ошибки : [Ошибка] src.mpc(14): Перменная уже определена i.

Хотя обе переменные определены внутри FOR и конфликта не должно было возникакать

 

У нас переменная объявленная в заголовке for считается объявленной до конца блока содержащего for, а не только внутри тела цикла.
 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 12, 13, 14, 15, 16, ... 24, 25, 26
Time:0,062