Bug 29838 - Проверка на школьном алгоритмическом языке
Summary: Проверка на школьном алгоритмическом языке
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ejudge (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-21 13:18 MSK by rotkart
Modified: 2015-06-10 19:10 MSK (History)
0 users

See Also:


Attachments
Конфигурационные файлы для КУМИР 2 (20.00 KB, application/x-tar)
2014-02-21 13:19 MSK, rotkart
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description rotkart 2014-02-21 13:18:24 MSK
Добрый день!
Так и не добившись нормальной проверки домашних заданий при помощи ckumir, я добавил проверку при помощи КУМИР 2.1.0-beta4.
Конфигурационные файлы создавал по вики на ejudge.ru.
Предлагаю добавить эту поддержку в пакет.
Comment 1 rotkart 2014-02-21 13:19:58 MSK
Created attachment 6045 [details]
Конфигурационные файлы для КУМИР 2
Comment 2 rotkart 2014-02-21 13:23:05 MSK
Да! Для нормальной проверки в serve.cfg необходимо выставить:
compile_max_vm_size = 256M
max_vm_size = 256M
Comment 3 Andrey Cherepanov 2014-02-21 13:39:40 MSK
На Sisyphus.
Comment 4 Denis Kirienko 2014-02-21 13:51:07 MSK
OK, займусь.

А в чем проблема c ckumir? У меня все работает.
Comment 5 rotkart 2014-02-21 14:05:18 MSK
(В ответ на комментарий №4)
> OK, займусь.
> 
> А в чем проблема c ckumir? У меня все работает.

[root@stervmac test]# cat 002.kum 
использовать Строки
алг з208
нач
лит s
ввод s
лит d, sub1="", sub2=""
сим c
цел i
ввод d
i:=найти (" ",d)
sub1:=d[1:i-1]
sub2:=d[i+1:длин(d)]
i:=найти (sub1,s)
нц пока i>0
s:=удалить(s, i, длин(sub1))
s:=вставить(sub2, s, i)
i:=найти (sub1,s) 
кц
вывод s, нс
кон

[root@stervmac test]# ckumir --check --program-encoding=UTF-8 --messages-encoding=UTF-8 002.kum
Строка 10: i:=найти (" ",d)
Место ошибки: от 6 до 7
Нет такой функции (код 4110)

Строка 13: i:=найти (sub1,s)
Место ошибки: от 3 до 9
Нет такой функции (код 4110)

Строка 15: s:=удалить(s, i, длин(sub1))
Место ошибки: от 4 до 12
Нет такой функции (код 4110)

Строка 16: s:=вставить(sub2, s, i)
Место ошибки: от 4 до 12
Нет такой функции (код 4110)

Строка 17: i:=найти (sub1,s) 
Место ошибки: от 4 до 9

Это первое - невозможно проверять программы, в которых есть работа со строками.
Всё таки написано для КУМИР 1.9.0, а консольная версия:
[root@stervmac test]# ckumir --version
ckumir version 2010-11-22, based on Kumir 1.7.2

Второе - переход на учебник Полякова-Еремина, вышедший в этом году. 
Там уже вторая версия КУМИР используется - в ней есть изменения в работе со строками. Например программа, приведённая выше выглядит так:
[root@stervmac test]# cat 001.kum 
использовать Строки
алг з208
нач
лит s
ввод s
лит d, sub1="", sub2=""
сим c
цел i
ввод d
i:=позиция (" ",d)
sub1:=d[1:i-1]
sub2:=d[i+1:длин(d)]
i:=позиция (sub1,s)
нц пока i>0
удалить(s, i, длин(sub1))
вставить(sub2, s, i)
i:=позиция (sub1,s) 
кц
вывод s, нс
кон
Comment 6 Denis Kirienko 2015-06-10 19:10:13 MSK
ejudge-3.3.1-alt1

ejudge-3.3.1-alt0.M70T.1