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

Темы: 2072
Сообщений: 49893

Мой профиль
Может надо адекватную ошибку компиляции выдавать?

03.11.2022 11:40:42 03.11.2022 11:40:46 Поддубный Пётр
Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2022
10. Совершенные числа
0
[1]: Размерность переменной n должна быть 2 байта. src.mpc
DelTA3 at NIT7




Он объявил внутри переменную с таким же именем n, как и входная перменная
int n=0;



01.int __in __bits(16) n;
02. 
03.int __out __bits(16) res;
04. 
05.void main(){
06.  int __bits(16) res2=n;
07.  int __bits(16) sup[20];
08.  int i=0;
09.  int n=0;
10.  int c=1;
11.  int __bits(16) sum=0;
12.  while(c!=res2){
13.                if((res2%c) == 0){
14.                  sup[i]=c;
15.                  i++;
16.                }
17.                c++;
18.  }
19.  n=i;
20.  for(i=0; i<n; i++){
21.    sum+=sup[i];
22.  }
23.  if(sum==res2){
24.    res=1;
25.  }
26.  else{
27.    res=0;
28.  }
29.}

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

Темы: 2072
Сообщений: 49893

Мой профиль
09.09.2023 16:20:38 09.09.2023 16:20:42 Долинский Михаил Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2023 ЦЧ. Работа с числом 1 Все тесты пройдены (основной + секретный). src_b.mpc DelTA4 at NIT0 Win10 x64

09.09.2023 15:55:41 09.09.2023 15:55:47 Долинский Михаил Архитектура вычислительных систем (ПО4/ИТ3/ПИ2) - 2023 ЦЧ. Работа с числом 0 [1]: Тест не прошел: res dec[2]: 8. src.mpc DelTA4 at NIT1 Win10



Такое решение не проходит – Лукъянов Артур (ПО-41) написал

01.unsigned __in __bits(16) A;
02. 
03.unsigned __out __bits(16) RES;
04. 
05.void main()
06.{
07.    unsigned __bits(16) a = A;
08.    int x;
09.    int k = 0;
10. 
11.    while (a != 0)
12.    {
13.        x = a % 10;
14.        a /= 10;
15. 
16.        k++;
17.    }
18. 
19.    RES = x * k;
20.}


Такое решение проходит (вместо переменной a поставлена b)

01.unsigned __in __bits(16) A;
02. 
03.unsigned __out __bits(16) RES;
04. 
05.void main()
06.{
07.    unsigned __bits(16) b = A;
08.    int x;
09.    int k = 0;
10. 
11.    while (b != 0)
12.    {
13.        x = b % 10;
14.        b /= 10;
15. 
16.        k++;
17.    }
18. 
19.    RES = x * k;
20.}

Вячеслав Калиниченко

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

Мой профиль
Командные олимпиады\Архитектура вычислительных систем - основные понятия\Контрольный срез (Пример 2)\Проектирование\ЛФ - "Логические функции"
https://dl.gsu.by/task.jsp?nid=2285197&cid=1335

01.int __in __bits(1) IN_0;
02.int __in __bits(1) IN_1;
03.int __in __bits(1) IN_2;
04.int __in __bits(1) IN_3;
05.int __in __bits(1) IN_4;
06. 
07.int __out __bits(1) OUT_0;
08.int __out __bits(1) OUT_1;
09. 
10. 
11.void main()
12.{
13.    OUT_0 = ~IN_0 | (IN_1 ^ IN_2);
14.    OUT_1 = IN_3 & (~IN_4);
15.}

Никита Путинцев

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

Мой профиль
Командные олимпиады\Архитектура учебного процессора TCPU \Проектирование TCPU\4 - "Команда ADD для TCPU" 57949 Хруцкий Д. и др., ПОИТ-37, июнь 2007
https://dl.gsu.by/task.jsp?nid=2285211&cid=1335

01.unsigned __in __bits(8) d;
02.unsigned __in __bits(1) R;
03. 
04.unsigned __out __bits(8) A;
05. 
06.unsigned __bits(8) AA;
07. 
08.void main()
09.{
10.    if (R == 1)
11.        AA = 0;
12.    else
13.        AA = AA + d;
14.    A = AA;
15.}


Не проходит решение
Полина Храпунова

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

Мой профиль
https://dl.gsu.by/task.jsp?nid=2285454&cid=1335

Командные олимпиады\Особенности архитектуры МП Intel 80286\Контрольный срез (Пример 3)\Базовый\Т - "Задача №3 (тестирование: 20)" 100807 TaskConverter Winter тестирование 2010 Октябрь 13

5.10 15:08 Т. Задача №3 (тестирование: 20) 0 / 100 Эталонная программа не смогла пройти тесты. [test 2]: WInter: программное исключение. 1.txt.txt DelTA4 at NIT0 Win10 Text files

Report = report.txt
StopOnError = false
Statistics = false
WatchReport = false
ShowReport = false

[test 1]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a dec[2]: 3
b dec[2]: 1
c hex: FE
d dec: 2

res dec[2]: 12


[test 2]
Cycles = 1000
CheckCycles = false
Segment - 0
Offset - 0


a sgn[2]: 4
b sgn[2]: 5
c sgn: 7
d sgn: 1

res sgn[2]:-6
Михаил Долинский

Темы: 2072
Сообщений: 49893

Мой профиль
После : должен быть пробел перед -6
Михаил Гребёнкин

Темы: 1
Сообщений: 33

Мой профиль
Командные олимпиады\Архитектура вычислительных систем\Микропрограммирование на С-МПА\1 (с решениями)\7 - "Количество" 41301

http://dl.gsu.by/task.jsp?nid=2347913&cid=1336

В винтере решение проходит, после компиляции в HLCCAD при проверке тестов выдаёт ошибки

01.unsigned __in __bits(8) in = 0xFF;
02.unsigned __out __bits(3) out;
03. 
04.main()
05.{
06.    unsigned __bits(8) a =in;
07.    unsigned __bits(1) temp1;
08.    unsigned __bits(1) temp2;
09.    unsigned __bits(1) temp3;
10.    unsigned __bits(3) count =0;
11.    temp1 = a & 1;
12.    a = a >> 1;
13.    temp2 = a &1;
14.    a = a >> 1;
15.    temp3 = a &1;
16.    if((temp1+ temp2 + temp3) == 3) count +=1;
17.    unsigned __bits(3) i = 5;
18.    for(;i>0;i--)
19.    {
20.        a = a >> 1;
21.        temp1 = temp2;
22.        temp2 = temp3;
23.        temp3 = a &1;
24.        if((temp1+ temp2 + temp3) == 3) count +=1;
25.    };
26.    out = count;
27. 
28.}

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

Темы: 2072
Сообщений: 49893

Мой профиль


Михаил Гребёнкин:

Командные олимпиады\Архитектура вычислительных систем\Микропрограммирование на С-МПА\1 (с решениями)\7 - "Количество" 41301

http://dl.gsu.by/task.jsp?nid=2347913&cid=1336

В винтере решение проходит, после компиляции в HLCCAD при проверке тестов выдаёт ошибки

01.unsigned __in __bits(8) in = 0xFF;
02.unsigned __out __bits(3) out;
03. 
04.main()
05.{
06.    unsigned __bits(8) a =in;
07.    unsigned __bits(1) temp1;
08.    unsigned __bits(1) temp2;
09.    unsigned __bits(1) temp3;
10.    unsigned __bits(3) count =0;
11.    temp1 = a & 1;
12.    a = a >> 1;
13.    temp2 = a &1;
14.    a = a >> 1;
15.    temp3 = a &1;
16.    if((temp1+ temp2 + temp3) == 3) count +=1;
17.    unsigned __bits(3) i = 5;
18.    for(;i>0;i--)
19.    {
20.        a = a >> 1;
21.        temp1 = temp2;
22.        temp2 = temp3;
23.        temp3 = a &1;
24.        if((temp1+ temp2 + temp3) == 3) count +=1;
25.    };
26.    out = count;
27. 
28.}

 


Эта программа делает много лишних действий и поэтому не успевает посчитать ответ за отведённое на тест время.

Вот авторское решение, которое проходит все тесты

01.unsigned __in __bits(8) in;
02. 
03.unsigned __out __bits(3) out;
04. 
05.void main()
06.{
07.    unsigned __bits(3) cnt = 0;
08.    unsigned __bits(9) t = in;
09.    while (t >= 7)
10.    {
11.        if ((t & 7) == 7) cnt++;
12.        t >>= 1;
13.    }
14.    out = cnt;
15.}

Вячеслав Калиниченко

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

Мой профиль
01.int __bits(8) a[10];
02. 
03.int __out __bits(8) summ;
04. 
05.void main() {
06.    int __bits(8) max = a[0];
07.    int __bits(8) min = a[0];
08.    int i = 0;
09.    for (i; i < 10; i++) {
10.        if (a[i] < min)
11.            min = a[i];
12.        if (a[i] > max)
13.            max = a[i];
14.    }
15.    summ = min + max;
16.}

При попытке поставить a(массив) в окно просмотра через Переменная Winter слетает

Как просматривать массивы в C-MPA?
Михаил Долинский

Темы: 2072
Сообщений: 49893

Мой профиль


Вячеслав Калиниченко:

01.int __bits(8) a[10];
02. 
03.int __out __bits(8) summ;
04. 
05.void main() {
06.    int __bits(8) max = a[0];
07.    int __bits(8) min = a[0];
08.    int i = 0;
09.    for (i; i < 10; i++) {
10.        if (a[i] < min)
11.            min = a[i];
12.        if (a[i] > max)
13.            max = a[i];
14.    }
15.    summ = min + max;
16.}

При попытке поставить a(массив) в окно просмотра через Переменная Winter слетает

Как просматривать массивы в C-MPA? 

Отладка С-МПА программ v1 (Алесенко Антонина, ПО-41, октябрь 2022)
Александр Санец

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

Мой профиль
http://dl.gsu.by/task.jsp?nid=2351616&cid=1336

Контрольные срезы\21 ноября\Проектирование\По логическим функциям\4 - "Device" 44111 Дюбкин Александр, ПМ-44, май 2006



01.unsigned __in __bits(1) IN_0=1 ;
02.unsigned __in __bits(1) IN_1 =0;
03.unsigned __in __bits(1) IN_2=1 ;
04.unsigned __in __bits(1) IN_3 =0;
05.unsigned __in __bits(1) IN_4=1 ;
06.unsigned __out __bits(1) OUT_0 ;
07. 
08.void main(){
09. unsigned __in __bits(1) a=IN_0 & IN_1  ;
10. unsigned __in __bits(1) b=a | IN_2;
11. unsigned __in __bits(1) c=IN_3 & IN_4;
12. unsigned __in __bits(1) d=b ^ c;
13. OUT_0 = ~d;
14. 
15.}


1 0 Ошибка: Несовпадение OUT_0:1=0 [2 ns]

;1
IN_0=1 at 1001 ps
IN_1=0 at 1001 ps
IN_2=1 at 1001 ps
IN_3=0 at 1001 ps
IN_4=1 at 1001 ps
Assert OUT_0=0 at 2000 ps

У меня в Winter в это программе OUT_0 = 0 как и должно быть а Hlccad выводит 1 при подлюченных тестах


01.unsigned __in __bits(1) IN_0 ;
02.unsigned __in __bits(1) IN_1 ;
03.unsigned __in __bits(1) IN_2 ;
04.unsigned __in __bits(1) IN_3 ;
05.unsigned __in __bits(1) IN_4 ;
06.unsigned __out __bits(1) OUT_0 ;
07. 
08.void main(){
09. 
10. OUT_0 = ~(((IN_0 & IN_1) | IN_2) ^ IN_3&IN_4);
11. 
12.}

А это прошло все тесты
Михаил Гребёнкин

Темы: 1
Сообщений: 33

Мой профиль
http://dl.gsu.by/task.jsp?nid=2350855&cid=1336
Контрольные срезы\5 декабря\Программирование\Обработка строк (простая)\22 - "По три" 56822 Грищенко Екатерина, ПМ-45, май 2007
в новом окне (Установлена: 27.05.2007)
01.char ins[120] = "#....................................#";
02.char outs[120]=".......................................";
03. 
04.main(){
05.    int temp = 0,i=0;
06.    while( ins[i]!='#'){
07.        outs[i]=ins[i];
08.        if  (temp == 2){
09.            temp= -1;
10.            outs[i-2]=ins[i];
11.            outs[i]=ins[i-2];
12.        }
13.        temp++;
14.        i++;
15. 
16. 
17.    }
18.    outs[i]='#';
19. 
20. 
21. 
22. 
23. 
24.}

я подключаю первый тест не проходит второй тест, проверяю второй тест не проходит первый тест
Михаил Долинский

Темы: 2072
Сообщений: 49893

Мой профиль


Михаил Гребёнкин:

http://dl.gsu.by/task.jsp?nid=2350855&cid=1336
Контрольные срезы\5 декабря\Программирование\Обработка строк (простая)\22 - "По три" 56822 Грищенко Екатерина, ПМ-45, май 2007
в новом окне (Установлена: 27.05.2007)
01.char ins[120] = "#....................................#";
02.char outs[120]=".......................................";
03. 
04.main(){
05.    int temp = 0,i=0;
06.    while( ins[i]!='#'){
07.        outs[i]=ins[i];
08.        if  (temp == 2){
09.            temp= -1;
10.            outs[i-2]=ins[i];
11.            outs[i]=ins[i-2];
12.        }
13.        temp++;
14.        i++;
15. 
16. 
17.    }
18.    outs[i]='#';
19. 
20. 
21. 
22. 
23. 
24.}

я подключаю первый тест не проходит второй тест, проверяю второй тест не проходит первый тест 


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

Такое решение проходит все тесты

01.char ins[120];
02.char outs[120];
03. 
04.main(){
05.    int temp = 0,i=0;
06.    while( ins[i]!='#'){
07.        outs[i]=ins[i];
08.        if  (temp == 2){
09.            temp= -1;
10.            outs[i-2]=ins[i];
11.            outs[i]=ins[i-2];
12.        }
13.        temp++;
14.        i++;
15. 
16. 
17.    }
18.    outs[i]='#';
19.}

Александр Дудинский

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

Мой профиль
Здравствуйте, я занимался разработкой мультиплексора в C-MPA для обучения ИИ бота. Задача состоит в том, что на выход подаётся a+b+c+d, если a>b; в остальных случаях на выход подаётся a-b-c-d.
Код программы:

unsigned __in __bits(16) a=10;
unsigned __in __bits(16) b=1;
unsigned __in __bits(8) c=3;
unsigned __in __bits(8) d=4;

unsigned __out __bits(16) RES;

unsigned __bits(16) ms(unsigned __bits(1) A, unsigned __bits(16) X[2]){
	unsigned __bits(16) otvet;
	switch(A){
		case 0:	otvet=X[0]; break;
		case 1: otvet=X[1]; break;
	}
	return otvet;
}

void main(){
	unsigned __bits(1) A;
	unsigned __bits(16) X[2];

	X[0]=a+b+c+d;
	X[1]=a-b-c-d;

	if(a>b) A=1;
	else A=0;
	RES=ms(A,X[2]);
}


Выдаёт ошибку на 11-ой строке: This variable is not array: X.
По сути, проблема состоит в передаче массива в функцию.
Александр Дудинский

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

Мой профиль
Рабочий вариант программы(без массива):
01.unsigned __in __bits(16) a=10;
02.unsigned __in __bits(16) b=1;
03.unsigned __in __bits(8) c=3;
04.unsigned __in __bits(8) d=4;
05. 
06.unsigned __out __bits(16) RES;
07. 
08.unsigned __bits(16) ms(unsigned __bits(1) A, unsigned __bits(32) X){
09.    unsigned __bits(16) otvet;
10.    switch(A){
11.        case 0: otvet=X; break;
12.        case 1: X=X>>16; otvet=X; break;
13.    }
14.    return otvet;
15.}
16. 
17.void main(){
18.    unsigned __bits(1) A;
19.    unsigned __bits(32) X;
20.    unsigned __bits(16) vetv1;
21.    unsigned __bits(16) vetv2;
22. 
23.    X=a+b+c+d;
24.    X=X << 16;
25.    X=X | a-b-c-d;
26. 
27.    if(a>b) A=1;
28.    else A=0;
29.    RES=ms(A,X);
30.}

 
Индекс форума ->Учебный процесс ГГУ/СШ 27 ->Проектирование цифровых систем 1, 2, 3, ... 23, 24, 25, 26, 27, 28
Time:0,046