示例#1
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Найти", [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " максимальный", [2])
        self.statement.add_node("link", " минимальный", [2])
        self.statement.add_node("cond", "", [3, 4])
        N = rand.randint(3, 10)
        self.statement.add_node(
            "link", " элемент последовательности из " + str(N) + " чисел:",
            [5])
        self.statement.add_node("cond", "", [6])
        self.statement.add_node("link", " x1, x2, ..., x" + str(N) + ".", [7])
        self.statement.add_node("cond", "", [8])
        self.statement.add_node("link", " Без использования циклов.", [9])
        self.statement.add_node("cond", "", [10])

        self.solution.add_node("link", 'program p1n5 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var ' + self.xN(N) + ' :integer;' + '\n' + 'begin' +
            '\n' + '    readln(' + self.xN(N) + ');\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node("link", '    m := x1\n', [4])
        self.solution.add_node("cond", '', [5])
        pred = self.addness(N, 6)
        self.solution.add_node("link", '    writeln(m);' + '\n' + 'end.\n',
                               [pred])
        self.solution.add_node("cond", '', [pred + 1])

        self.Code, self.Cond = self.resolve()
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дано целое", [0])
        self.statement.add_node("cond", "", [1] )
        self.statement.add_node("link", " трехзначное", [2])
        self.statement.add_node("link", " четырехзначное", [2])
        self.statement.add_node("cond", "", [3,4])
        self.statement.add_node("link", " число.", [5])
        self.statement.add_node("cond", "", [6])
        self.statement.add_node("link", " Построить его реверсную запись.", [7])
        self.statement.add_node("cond", "", [8])

        self.solution.add_node("link", 'program p1n5 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node("link", '    var x :integer;' + '\n' + 'begin' + '\n' + '    readln(x);\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node("link", '    x := x mod 10 * 1000 + x mod 10 div 10 * 100 + x mod 1000 div 100 * 10 + x div 1000\n' , [4])
        self.solution.add_node("link", '    x := x mod 10 * 100 + x div 100 + x mod 100 div 10 * 10\n', [4])
        self.solution.add_node("cond", '', [5,6])
        self.solution.add_node("link", '    writeln(x);' + '\n' + 'end.\n', [7])
        self.solution.add_node("cond", '', [8])
        
        self.Code, self.Cond = self.resolve()
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дано действительное число. Выделить из него", [0])
        self.statement.add_node("cond", "", [1] )
        self.statement.add_node("link", " все разряды", [2])
        self.statement.add_node("link", " целую часть.", [2])
        self.statement.add_node("link", " дробную часть.", [2])
        self.statement.add_node("cond", "", [3])
        self.statement.add_node("link", " старше N.", [6])
        self.statement.add_node("link", " младше N.", [6])
        self.statement.add_node("cond", "", [4,5,7,8])

        self.solution.add_node("link", 'program p1n1 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node("link", '    var N :integer;' + '\n' + '    x :real;' + '\n' + 'begin' + '\n' + '    readln(x, N);\n', [2])
        self.solution.add_node("link", '    var x :real;' + '\n' + 'begin' + '\n' + '    readln(x);\n', [2])
        self.solution.add_node("cond", '', [3,4])
        self.solution.add_node("link", '    x := trunc(x);\n', [5])
        self.solution.add_node("link", '    x := x - trunc(x);\n', [5])
        self.solution.add_node("link", '    x := trunc(x) mod (N * 10);\n', [5])
        self.solution.add_node("link", '    x := trunc(x) div (N * 10);\n', [5])
        self.solution.add_node("cond", '', [6,7,8,9])
        self.solution.add_node("link", '    writeln(x);' + '\n' + 'end.\n', [10])
        self.solution.add_node("cond", '', [11])
        
        self.Code, self.Cond = self.resolve()
示例#4
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дана точка с координатами (x, y).",
                                [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node(
            "link", " Определить какой четверти плоскости она принадлежит.",
            [2])
        self.statement.add_node("cond", "", [3])

        self.solution.add_node("link", 'program p1n5 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var x, y :integer;' + '\n' + 'begin' + '\n' +
            '    readln(x, y);\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node(
            "link", '    if (x > 0) and (y > 0) then writeln("1")\n' +
            '    if (x < 0) and (y > 0) then writeln("2")\n' +
            '    if (x > 0) and (y < 0) then writeln("3")\n' +
            '    if (x < 0) and (y < 0) then writeln("4")\n' + 'end.\n', [4])
        self.solution.add_node("cond", '', [5])

        self.Code, self.Cond = self.resolve()
示例#5
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дано квадратное уравнение", [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " с коэфициентами a, b, c.", [2])
        self.statement.add_node("cond", "", [3])
        self.statement.add_node("link", " Найти его корни.", [4])
        self.statement.add_node("cond", "", [5])

        self.solution.add_node("link", 'program p1n5 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var a, b, c, x1, x2, D :real;' + '\n' + 'begin' +
            '\n' + '    readln(x, y);\n' + '    D := b * b - 4 * a * c;\n',
            [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node(
            "link",
            '    if (D < 0) then' + '\n' + '        writeln("Корней нет")' +
            '\n' + '    else if (D = 0) then begin' + '\n' +
            '            x1 = -b / 2 / a;\n' + '            writeln(x1)\n' +
            '    end else begin\n' +
            '            x1 = (-b - sqrt(D)) / 2 / a;\n' +
            '            x2 = (-b + sqrt(D)) / 2 / a;\n' +
            '            writeln(x1)\n' + '    end\n' + 'end.\n', [4])
        self.solution.add_node("cond", '', [5])

        self.Code, self.Cond = self.resolve()
示例#6
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Даны два числа: x и y.", [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node(
            "link", " Определить является ли одно из них делителем другого.",
            [2])
        self.statement.add_node("cond", "", [3])

        self.solution.add_node("link", 'program p1n5 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var x, y :integer;' + '\n' + 'begin' + '\n' +
            '    readln(x, y);\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node(
            "link", '    if (x > y) and (x mod y = 0) then' + '\n' +
            '        writeln("YES")' + '\n' +
            '    if (x < y) and (y mod x = 0) then' + '\n' +
            '        writeln("YES")' + '\n' + '    else\n' +
            '        writeln("NO")\n' + 'end\n', [4])
        self.solution.add_node("cond", '', [5])

        self.Code, self.Cond = self.resolve()
示例#7
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Даны стороны треугольника: a, b, c.",
                                [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node(
            "link",
            " Определить определить существует ли такой треугольник и является ли он",
            [2])
        self.statement.add_node("cond", "", [3])
        self.statement.add_node("link", " прямоугольным.", [4])
        self.statement.add_node("link", " равносторонним.", [4])
        self.statement.add_node("link", " равнобедренным", [5])
        self.statement.add_node("cond", "", [5, 6, 7])

        self.solution.add_node("link", 'program p2n7 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link",
            '    var a,b,c :real;\n' + 'begin\n' + '    readln(a,b,c);\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node(
            "link", '    if (a + b < c) or (b + c < a) or (a + c < b) then\n' +
            '        writeln("не существует треугольника")\n' +
            '    else begin\n' +
            '        writeln("Треугольник существует");\n', [4])
        self.solution.add_node("cond", '', [5])
        self.solution.add_node(
            "link", '    if (a = b) or (b = c) or (a = c) then\n' +
            '        writeln("Треугольник равнобедренный");\n' + '    end;\n' +
            'end.\n', [6])
        self.solution.add_node(
            "link", '    if (a = b) and (b = c) then\n' +
            '        writeln("Треугольник равносторонний");\n' + '    end;\n' +
            'end.\n', [6])
        self.solution.add_node(
            "link",
            '    if (sqr(a) + sqr(b) = sqr(c)) or (sqr(b) + sqr(c) = sqr(a)) or (sqr(a) + sqr(c) = sqr(b)) then\n'
            + '        writeln("Треугольник прямоугольный");\n' +
            '    end;\n' + 'end.\n', [6])
        self.solution.add_node("cond", '', [7, 8, 9])

        self.Code, self.Cond = self.resolve()
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дан", [0])
        self.statement.add_node("cond", "", [1] )
        self.statement.add_node("link", " квадрат", [2])
        self.statement.add_node("link", " круг", [2])
        self.statement.add_node("link", " треугольник", [2])
        self.statement.add_node("link", " прямоугольник", [2])
        self.statement.add_node("cond", "", [3,4,5,6])
        self.statement.add_node("link", " со стороной a.", [7])
        self.statement.add_node("link", " с радиусом a.", [7])
        self.statement.add_node("link", " со сторонами a, b, c.", [7])
        self.statement.add_node("link", " со сторонами a, b.", [7])
        self.statement.add_node("cond", "", [8,9,10,11])
        self.statement.add_node("link", " Найти его", [12])
        self.statement.add_node("cond", "", [13])
        self.statement.add_node("link", " площадь", [14])
        self.statement.add_node("link", " периметр", [14])
        self.statement.add_node("cond", "", [15,16])

        self.solution.add_node("link", 'program p1n1 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1] )
        self.solution.add_node("link", '    var a, b, s :integer;' + '\n' + 'begin' + '\n' + '    readln(a,b);\n', [2])
        self.solution.add_node("link", '    var a, s :integer;' + '\n' + 'begin' + '\n' + '    readln(a);\n', [2])
        self.solution.add_node("link", '    var a, b, c, s :integer;' + '\n' + 'begin' + '\n' + '    readln(a,b,c);\n', [2])
        self.solution.add_node("cond", '', [3,4,5])
        self.solution.add_node("link", '    s := a + b + c;\n', [6])
        self.solution.add_node("link", '    s := (a + b + c)/2;' + '\n' + '    s := sqrt(s * (s - a) * (s - b) * (s - c));\n', [6])
        self.solution.add_node("link", '    s := 2 * (a + b);\n', [6])
        self.solution.add_node("link", '    s := a * b;\n', [6])
        self.solution.add_node("link", '    s := 2 * 3.14 * a;\n', [6])
        self.solution.add_node("link", '    s := 3.14 * a * a;\n', [6])
        self.solution.add_node("link", '    s := 4 * a;\n', [6])
        self.solution.add_node("link", '    s := a * a;\n', [6])
        self.solution.add_node("cond", '', [7,8,9,10,11,12,13,14])
        self.solution.add_node("link", '    writeln(s);' + '\n' + 'end.\n', [15])
        self.solution.add_node("cond", '', [16])
        
        self.Code, self.Cond = self.resolve()
示例#9
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "Дано целое число x.", [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " Проверить", [2])
        self.statement.add_node("cond", "", [3])
        self.statement.add_node("link", " является ли оно палиндромом.", [4])
        self.statement.add_node("link", " упорядочены ли его цифры", [4])
        self.statement.add_node("cond", "", [6])
        self.statement.add_node("link", " по убыванию.", [7])
        self.statement.add_node("link", " по возрастанию.", [7])
        self.statement.add_node("cond", "", [5, 8, 9])

        self.solution.add_node("link", 'program p2n8 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var x :integer;\n' + 'begin\n' + '    readln(x);\n',
            [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node(
            "link", '    if x div 100 = x mod 10 then\n' +
            '        writeln("Палиндром")\n' + '    else\n' +
            '        writeln("Не палиндром");\n', [4])
        self.solution.add_node(
            "link",
            '    if (x div 100 > x mod 10) and (x mod 100 div 10 > x mod 10) then\n'
            + '        writeln("Упорядочены по убыванию");\n' + '    else\n' +
            '        writeln("Не упорядочены по убыванию");\n', [4])
        self.solution.add_node(
            "link",
            '    if (x div 100 < x mod 10) amd (x mod 100 div 10 < x mod 10) then\n'
            + '        writeln("Упорядочены по возрастанию");\n' +
            '    else\n' +
            '        writeln("Не упорядочены по возрастанию");\n', [4])
        self.solution.add_node("cond", '', [5, 6, 7])
        self.solution.add_node("link", 'end.\n', [8])
        self.solution.add_node("cond", '', [9])

        self.Code, self.Cond = self.resolve()
示例#10
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node(
            "link", "Считать последовательность со стандартного потока ввода",
            [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " до элемента равного 0.", [2])
        self.statement.add_node("link", " длины N.", [2])
        self.statement.add_node("cond", "", [3, 4])
        self.statement.add_node("link", " Найти ее", [5])
        self.statement.add_node("cond", "", [6])
        self.statement.add_node("link", " сумму элементов.", [7])
        self.statement.add_node("link", " произведение элементов.", [7])
        self.statement.add_node("link", " максимум.", [7])
        self.statement.add_node("link", " минимум.", [7])
        self.statement.add_node("cond", "", [8, 9, 10, 11])

        self.solution.add_node("link", 'program p3n1 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var x,N,s :integer;\n' + 'begin\n' +
            '    readln(x); s := x;\n' + '    for i := 2 to N do\n' +
            '        readln(x);\n', [2])
        self.solution.add_node(
            "link", '    var x,s :integer;\n' + 'begin\n' +
            '    readln(x); s := x;\n' + '    while x <> 0 do\n' +
            '        readln(x);\n', [2])
        self.solution.add_node("cond", '', [3, 4])
        self.solution.add_node("link", '    if x > s then s := x;\n', [5])
        self.solution.add_node("link", '    if x < s then s := x;\n', [5])
        self.solution.add_node("link", '    s := s + x;\n', [5])
        self.solution.add_node("link", '    s := s * x;\n', [5])
        self.solution.add_node("cond", '', [6, 7, 8, 9])
        self.solution.add_node("link", '    writeln(s);' + '\n' + 'end.\n',
                               [10])
        self.solution.add_node("cond", '', [11])

        self.Code, self.Cond = self.resolve()
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node("link", "На плоскости даны две точки с координатами", [0])
        self.statement.add_node("cond", "", [1] )
        self.statement.add_node("link", " (x1, y1)", [2])
        self.statement.add_node("cond", "", [3])
        self.statement.add_node("link", " и (x2, y2).", [4])
        self.statement.add_node("cond", "", [5])
        self.statement.add_node("link", " Найти расстояние между ними.", [6])
        self.statement.add_node("cond", "", [7])

        self.solution.add_node("link", 'program p1n4 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1] )
        self.solution.add_node("link", '    var x1, x2, y1, y2 :integer;' + '\n' + 'begin' + '\n' + '    readln(x1, x2, y1, y2);\n', [2])
        self.solution.add_node("cond", '', [3])
        self.solution.add_node("link", '    x1 = sqrt(sqr(x2 - x1) + sqr(y2 - y1));\n', [4])
        self.solution.add_node("cond", '', [5])
        self.solution.add_node("link", '    writeln(x1);' + '\n' + 'end.\n', [6])
        self.solution.add_node("cond", '', [7])
        
        self.Code, self.Cond = self.resolve()
示例#12
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node(
            "link", "Даны целые числа: N и K. Найти все простые числа", [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " в количестве N штук", [2])
        self.statement.add_node("link", " меньшие N", [2])
        self.statement.add_node("cond", "", [3, 4])
        self.statement.add_node("link", " ,начиная с K.", [5])
        self.statement.add_node("cond", "", [6])

        self.solution.add_node(
            "link",
            'program p3n4 (input, output);\n' + 'var i,j,N,K: integer;\n' +
            '    flag: boolean;\n' + 'begin\n' + '    readln(N,K);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    for i := K to N do begin\n' +
            '        flag := true;\n' + '        for j := 2 to i - 1 do\n' +
            '            if i mod j = 0 then\n' +
            '                flag := false;\n' +
            '        if flag then writeln(i);\n', [2])
        self.solution.add_node(
            "link", '    i := 0;\n' + '    while i < N do begin\n' +
            '        flag := true;\n' +
            '        for j := 2 to K + i - 1 do\n' +
            '            if K + i mod j = 0 then\n' +
            '                flag := false;\n' +
            '        if flag then writeln(i);\n' + '        i := i + 1;\n',
            [2])
        self.solution.add_node("cond", '', [3, 4])
        self.solution.add_node("link", '    end;\n' + 'end.', [5])
        self.solution.add_node("cond", '', [6])

        self.Code, self.Cond = self.resolve()
示例#13
0
    def __init__(self):
        self.statement = lgraph.LGraph()
        self.solution = lgraph.LGraph()

        self.statement.add_node(
            "link", "Считать последовательность со стандартного потока ввода",
            [0])
        self.statement.add_node("cond", "", [1])
        self.statement.add_node("link", " до элемента равного 0.", [2])
        self.statement.add_node("link", " длины N.", [2])
        self.statement.add_node("cond", "", [3, 4])
        self.statement.add_node("link", " Проверить, является ли она", [5])
        self.statement.add_node("link", " Посчитать количество", [5])
        self.statement.add_node("cond", "", [6])
        self.statement.add_node("cond", "", [7])
        self.statement.add_node("link", " убывающей.", [8])
        self.statement.add_node("link", " возрастающей.", [8])
        self.statement.add_node("link", " отрицательных элемеентов.", [9])
        self.statement.add_node("link", " положительных элементов.", [9])
        self.statement.add_node("cond", "", [10, 11, 12, 13])

        self.solution.add_node("link", 'program p3n2 (input, output);\n', [0])
        self.solution.add_node("cond", '', [1])
        self.solution.add_node(
            "link", '    var x,x1,N,i :integer;\n' + '    f :boolean;\n' +
            'begin\n' + '    readln(x); f := true;\n' +
            '    for i := 2 to N do begin\n' + '        readln(x1);', [2])
        self.solution.add_node(
            "link", '    var x,N,k :integer;\n' + 'begin\n' + '    k := 0;\n' +
            '    for i := 1 to N do begin\n' + '        readln(x);\n', [2])
        self.solution.add_node(
            "link", '    var x,N,k,i :integer;\n' + 'begin\n' +
            '    readln(x); k := 0;\n' + '    while x <> 0 do begin', [2])
        self.solution.add_node(
            "link", '    var x,k :integer;\n' + '    f :boolean;\n' +
            'begin\n' + '    readln(x); f := true;\n' +
            '    while x <> 0 do begin\n' + '        readln(x1);\n', [2])
        self.solution.add_node("cond", '', [3, 4, 5, 6])
        self.solution.add_node(
            "link", '        if x1 < x then\n' + '            f := false;\n' +
            '        x1 := x;\n', [7])
        self.solution.add_node(
            "link", '        if x < 0 then\n' + '            k := k + 1;\n',
            [7])
        self.solution.add_node(
            "link", '        if x > 0 then\n' + '            k := k + 1;\n',
            [7])
        self.solution.add_node(
            "link", '        if x1 > x then\n' + '            f := false;\n' +
            '        x1 := x;\n', [7])
        self.solution.add_node("cond", '', [8, 9, 10, 11])
        self.solution.add_node("link", '', [12])
        self.solution.add_node("link", '        readln(x);\n', [12])
        self.solution.add_node("cond", '', [13, 14])
        self.solution.add_node("link",
                               '    end;' + '    writeln(f);\n' + 'end.\n',
                               [13])
        self.solution.add_node("link",
                               '    end;' + '    writeln(k);\n' + 'end.\n',
                               [13])
        self.solution.add_node("cond", '', [14, 15])

        self.Code, self.Cond = self.resolve()