Автор |
Сообщение |
23.01.2023 11:39:36
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Долинский
Темы: 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. }
|
09.09.2023 16:26:37
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Долинский
Темы: 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. }
|
19.09.2023 11:35:00
Тема: Re:Вопросы и ответы по C-MPA
|
Вячеслав Калиниченко
Темы: 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. }
|
25.09.2023 17:53:09
Тема: Re:Вопросы и ответы по C-MPA
|
Никита Путинцев
Темы: 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. }
Не проходит решение
|
05.10.2023 15:19:15
Тема: Re:Вопросы и ответы по C-MPA
|
Полина Храпунова
Темы: 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
|
06.10.2023 20:34:32
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Долинский
Темы: 2072
Сообщений: 49893
Мой профиль
|
После : должен быть пробел перед -6
|
03.11.2023 11:45:21
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Гребёнкин
Темы: 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. }
|
03.11.2023 20:24:43
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Долинский
Темы: 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. }
|
16.11.2023 15:35:16
Тема: Re:Вопросы и ответы по C-MPA
|
Вячеслав Калиниченко
Темы: 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?
|
16.11.2023 19:40:12
Тема: Re:Вопросы и ответы по 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)
|
21.11.2023 15:03:20
Тема: Re:Вопросы и ответы по C-MPA
|
Александр Санец
Темы: 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. }
А это прошло все тесты
|
01.12.2023 14:17:03
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Гребёнкин
Темы: 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. }
я подключаю первый тест не проходит второй тест, проверяю второй тест не проходит первый тест
|
01.12.2023 19:12:47
Тема: Re:Вопросы и ответы по C-MPA
|
Михаил Долинский
Темы: 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. }
|
08.12.2023 12:04:05
Тема: Re:Вопросы и ответы по C-MPA
|
Александр Дудинский
Темы: 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.
По сути, проблема состоит в передаче массива в функцию.
|
08.12.2023 12:17:36
Тема: Re:Вопросы и ответы по C-MPA
|
Александр Дудинский
Темы: 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. }
|
|