本站新闻

自动评测编程格式

自动评测编程格式

管理员 -
回帖数:0

跑代码用法:添加CodeRunner题型即可。

请先下载样本题型:CR样本-20200322-0832.xml  ,导入到你课程的题库里,它里面是各种编程语言出题的出题样例,编辑你需要的语言类型的题目,就知道coderunner题目怎么出题。

 


特别注意:下面这个问题,已经解决了,mdl_question_coderunner_options表中c_function和c_program两个类型中,sandboxparams沙箱参数加上{"linkargs": ["-lm"]}了,不用去理会,C语言程序,就选c_program类型;C语言函数,就选c_function类型。不用去选C++类型!

        由于jobe服务器是采用Ubuntu操作系统,在编译C语言是,如果里面引用到诸如sqrt()的数学函数,它只能对常量开方,如sqrt(10),而不能对变量开方,如sqrt(i),否则会出现引用不到sqrt函数的编译错误。解决办法是在编译时加上【-lm】参数,如【gcc a.c -lm】,这就需要去修改容器内的判题源代码,但一时无法定位在哪里修改。故采用变通办法:
        针对C语言题目,在出题时也选择cpp_program即C++编译器,即用【g++ a.c】去编译,这样就不会出现引用不到sqrt函数的编译错误了。注意,在采用C++编译器时,C语言程序依然按C的编程方法书写,如:

#include <stdio.h>
#include <math.h>
int main()
{
int i=10;
printf("%lf",sqrt(i));
}

 

1、C++ 编程样例:
#include <iostream>
using namespace std;

int main()
{
    int a,b;
    while(cin >> a >> b)
        cout << a+b << endl;
}

2、C 编程样例:
#include <stdio.h>

int main()
{
    int a,b;
    while(scanf("%d %d",&a, &b) != EOF)
        printf("%d\n",a+b);
    return 0;
}

3、PASCAL(FPC) 编程样例:

program p1001(Input,Output); 
var 
  a,b:Integer; 
begin 
   while not eof(Input) do 
     begin 
       Readln(a,b); 
       Writeln(a+b); 
     end; 
end.

4、Java 编程样例:

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while (in.hasNextInt()) {
			int a = in.nextInt();
			int b = in.nextInt();
			System.out.println(a + b);
		}
	}
}

5、Python2 编程样例:
吴菁老师调试心得(本文只是记录下来,并未实际检验过):
python调试:
1-系统读入数据,都是字符串型;
2-如果输出是列表类型,出卷的时候,结果书写格式跟常规写法有点区别,逗号跟数字之间多了一个空格。
import sys
for line in sys.stdin:
    a = line.split()
    print int(a[0]) + int(a[1])

6、Python3 编程样例:

import sys
for line in sys.stdin:
    a = line.split()
    print(int(a[0]) + int(a[1]))
用input读入固定数量的数据样式:

用input读入数量未知的数据样式:

7、PHP 编程样例:
注意,这里的STDIN不是stdin,要区分小小写的。
<?php
while (fscanf(STDIN, "%d%d", $a, $b) == 2) {
    echo ($a + $b) . "\n";
}
如果读入字符串,这样编写:
fscanf(STDIN, "%s", $a);

范例1:从键读入一行字符串,统计出里面数字字符的个数。
<?php
//本机调试
//先在web根下建立data.txt文件
//data.txt内容:ab0dekk2kbjk5@@@
//从文件中读入数据
//$a=file_get_contents("data.txt");
//提交评测时,注释掉上面这句,采用下面这句:
fscanf(STDIN,'%s',$a);
$len=strlen($a);
$cnt=0;
for($i=0;$i<$len;$i++)
{
$p=substr($a,$i,1);
if($p>='0' && $p<='9')$cnt++;
}
echo $cnt;

范例2:从键盘输入两个整数,求他们的和。
<?php
//本机调试
//先在web根下建立data.txt文件
//data.txt内容:2 8 ,注意,2和8之间可以有若干个空格和若干个回车符
//从文件中读入数据
$a=file_get_contents("data.txt");
//把回车换行符转换为空格符
$a=str_replace("\r\n", " ", $a);
//把连续多个空格符转换为1个空格符,方法1
$a=preg_replace("/\s(?=\s)/","\\1",$a);
echo $a . "<br>";
$d=explode(' ', $a);
echo $d[0] + $d[1];

//提交评测时,注释掉上面这句,采用下面这句:
//fscanf(STDIN,'%d%d',$a,$b);
echo $a + $b;

 8、SQL(sqlite3) 编程样例: