コード例 #1
0
	['$y0','int'],['$y1','int'],['$y2','int'],['$y3','int'],['$y4','int'],
]

group_templates = [
	 [ 'arithmetic_progression_a_h%i_', [0,1, 0,1,2,3,4] ],
	 [ 'arithmetic_progression_b_h%i_', [0,5, 0,5,10,15,20] ],
	 [ 'arithmetic_progression_c_h%i_', [7,3, 7,10,13,16,19] ],
]

print '***** expected number of questions:', \
 len(group_templates) * (generate_util.n_c_k(7,1) + generate_util.n_c_k(7,2))

group_list = [ ]
for g in group_templates:
	for h in [1,2]:
		group_list.append([g[0]%h] + generate_util.generalize(g[1],h))

global_code_template = '''\
d	#include <stdio.h>
x	#include <stdio.h>
dx
'''

main_code_template = '''\
dx		int a,r,i;
dx
dx		a = $a0;
dx		r = $r;
dx		for (i = 0; i < 5; i++) {
dx			printf("%d\\n",a);
dx			a = a + r;
コード例 #2
0
    ['$y4', 'int'],
]

group_templates = [
    ['arithmetic_progression_a_h%i_', [0, 1, 0, 1, 2, 3, 4]],
    ['arithmetic_progression_b_h%i_', [0, 5, 0, 5, 10, 15, 20]],
    ['arithmetic_progression_c_h%i_', [7, 3, 7, 10, 13, 16, 19]],
]

print '***** expected number of questions:', \
 len(group_templates) * (generate_util.nCk(7,1) + generate_util.nCk(7,2))

group_list = []
for g in group_templates:
    for h in [1, 2]:
        group_list.append([g[0] % h] + generate_util.generalize(g[1], h))

global_code_template = '''\
d	#include &lt;stdio.h>
x	#include <stdio.h>
dx
'''

main_code_template = '''\
dx		int a,r,i;
dx
dx		a = $a0;
dx		r = $r;
dx		for (i = 0; i < 5; i++) {
dx			printf("%d\\n",a);
dx			a = a + r;
コード例 #3
0
# cross product of 1 domain
actual = generate_util.cross_product([[1,2]])
expected = [[1],[2]]
if actual != expected:
	print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))

# cross product of 2 domains
actual = generate_util.cross_product([[1,2],[3,4]])
expected = [[1,3],[1,4],[2,3],[2,4]]
if actual != expected:
	print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))

# ********** generalize

# None count is 0
actual = generate_util.generalize([1,2,3],0)
expected = [[1,2,3]]
if actual != expected:
	print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))

# None count is equal to list length
actual = generate_util.generalize([1,2,3],3)
expected = [[None,None,None]]
if actual != expected:
	print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))

# None count is not equal to list length
actual = generate_util.generalize([1,2,3],1)
expected = [[None,2,3],[1,None,3],[1,2,None]]
if actual != expected:
	print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual),str(expected))
コード例 #4
0
import generate_util

question_type = 'input_output'
source_language = 'C'

hotspot_declarations = [
    ['$a', 'int'],
    ['$b', 'int'],
    ['$c', 'int'],
    ['$y', 'int'],
]

group_list = [
    ['min_three_io_h1_'] + generate_util.generalize([1,2,3,1],1),

    ['min_three_io_h2_'] + generate_util.generalize([1,2,3,1],2),

    ['min_three_io_cp_'] + generate_util.cross_product_sublist \
  ( [ [1,2,5],[3,4,7],[5,6,9],None ], [0,1,2])
]

global_code_template = '''\
d	#include &lt;stdio.h>
x	#include <stdio.h>
dx	
'''

main_code_template = '''\
dx		int a,b,c;
dx
dx		a = $a;
コード例 #5
0
import generate_util

question_type = "input_output"
source_language = "C"

hotspot_declarations = [["$a", "int"], ["$b", "int"], ["$c", "int"], ["$y", "int"]]

group_list = [
    ["min_three_io_h1_"] + generate_util.generalize([1, 2, 3, 1], 1),
    ["min_three_io_h2_"] + generate_util.generalize([1, 2, 3, 1], 2),
    ["min_three_io_cp_"] + generate_util.cross_product_sublist([[1, 2, 5], [3, 4, 7], [5, 6, 9], None], [0, 1, 2]),
]

global_code_template = """\
d	#include &lt;stdio.h>
x	#include <stdio.h>
dx	
"""

main_code_template = """\
dx		int a,b,c;
dx
dx		a = $a;
dx		b = $b;
dx		c = $c;
dx
dx		if (a < b) {
dx			if (a < c) {
dx				printf("%d\\n",a);
dx			} else {
dx				printf("%d\\n",c);
コード例 #6
0
# cross product of 1 domain
actual = generate_util.cross_product([[1, 2]])
expected = [[1], [2]]
if actual != expected:
    print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))

# cross product of 2 domains
actual = generate_util.cross_product([[1, 2], [3, 4]])
expected = [[1, 3], [1, 4], [2, 3], [2, 4]]
if actual != expected:
    print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))

# ********** generalize

# None count is 0
actual = generate_util.generalize([1, 2, 3], 0)
expected = [[1, 2, 3]]
if actual != expected:
    print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))

# None count is equal to list length
actual = generate_util.generalize([1, 2, 3], 3)
expected = [[None, None, None]]
if actual != expected:
    print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))

# None count is not equal to list length
actual = generate_util.generalize([1, 2, 3], 1)
expected = [[None, 2, 3], [1, None, 3], [1, 2, None]]
if actual != expected:
    print 'Error:\n\tactual: %s\n\texpected: %s' % (str(actual), str(expected))