игра брюс 2048
Главная / Программирование / Основы информатики и программирования / Тест 8

Основы информатики и программирования - тест 8

Упражнение 1:
Номер 1
Теоремой, на которой базируется схема проектирования цикла при помощи инварианта, является утверждение, которое:

Ответ:

 (1) необходимо доказывать 

 (2) не существует 

 (3) принимается без доказательства 


Номер 2
Истинность утверждения на котором базируется схема проектирования цикла при помощи инварианта может быть выведена из:

Ответ:

 (1) свойств преобразователя предикатов wp 

 (2) определения оператора конкатенации 

 (3) определения оператора сцепления 

 (4) определения оператора цикла 


Номер 3
Свойствами преобразователя предикатов wp или определением оператора цикла являются:

Ответ:

 (1) {Q}"S0;"{I} 

 (2) {I^e}"S;"{I} 

 (3) {I^e}"h1=h;S;"{h<h1} 

 (4) {Q}"S0;" 


Упражнение 2:
Номер 1
Какую функцию надо взять в качестве ограничивающей, чтобы правильность данной программы:public class Gcd {
    public static void main(String[] args) throws Exception {
        int x = Xterm.inputInt("x -> ");
        int y = Xterm.inputInt("y -> ");
        Xterm.print("gcd(" + x + "," + y + ") =");
        while ( (x != 0) && (y != 0) ) {
            if (x >= y) x -= y;
            else        y -= x;
        } 
        Xterm.println(" " + (x+y));
    }
}легко могла быть доказана:

Ответ:

 (1) h = y * y 

 (2) h = x * x 

 (3) h = x * y 

 (4) h = x * 1 


Номер 2
В данном случае:public class Gcd {
    public static void main(String[] args) throws Exception {
        int x = Xterm.inputInt("x -> ");
        int y = Xterm.inputInt("y -> ");
        Xterm.print("gcd(" + x + "," + y + ") =");
        while ( (x != 0) && (y != 0) ) {
            if (x >= y) x -= y;
            else        y -= x;
        } 
        Xterm.println(" " + (x+y));
    }
}сохранение инварианта после выполнения тела цикла следует из:

Ответ:

 (1) T-инвариантности gcd(x,y) 

 (2) T-инвариантности gcd(x,0) 

 (3) T-инвариантности gcd(y,y) 

 (4) T-инвариантности gcd(x,x) 


Номер 3
На практике постановка задачи:

Ответ:

 (1) не включает в себя инвариант 

 (2) включает в себя инвариант 

 (3) должна включать в себе инвариант 


Упражнение 3:
Номер 1
Любая корректная постановка задачи содержит:

Ответ:

 (1) ее предусловие 

 (2) ее постусловие 

 (3) ее инкремент 

 (4) ее декремент 


Номер 2
Предусловие и постусловие, которые содержатся в постановке задачи должны послужить основой для построения:

Ответ:

 (1) инкремента 

 (2) инварианта 

 (3) декремента 

 (4) конкатенации 


Номер 3
Что соответствует отсутствию ограничений на начальные условия, в которых должна правильно работать программа:

Ответ:

 (1) То, что предусловие Q достаточно часто имеет вид T 

 (2) То, что предусловие Q достаточно часто имеет вид R 

 (3) То, что предусловие T достаточно часто имеет вид Q 

 (4) То, что предусловие T достаточно часто имеет вид R 

 (5) То, что предусловие T достаточно часто имеет вид N 

 (6) То, что предусловие Q достаточно часто имеет вид N 


Упражнение 4:
Номер 1
Если предусловие Q имеет вид T, то в этом случае инвариант можно строить только исходя из:

Ответ:

 (1) постусловия T 

 (2) постусловия N 

 (3) постусловия S 

 (4) постусловия R 


Номер 2
Программирование называют:

Ответ:

 (1) целенаправленной деятельностью 

 (2) хаотической деятельностью 

 (3) не направленной деятельностью 

 (4) не подконтрольной деятельностью 


Номер 3
Описание того, что происходит с множеством переменных программы в процессе выполнения цикла называется:

Ответ:

 (1) теорией сферы 

 (2) теорией воздушного шарика 

 (3) теорией квадрата 

 (4) теорией гипербарического параболоида 


Упражнение 5:
Номер 1
Основным методом построения инварианта является:

Ответ:

 (1) ослабление постусловия оператора цикла 

 (2) ослабление предусловия оператора цикла 

 (3) усиление постусловия оператора цикла 

 (4) усиление предусловия оператора цикла 


Номер 2
При использовании основного метода построения инварианта часто удается получить:

Ответ:

 (1) тип цикла 

 (2) условие продолжения цикла 

 (3) условие окончания цикла 

 (4) условие начала цикла 


Номер 3
При использовании основного метода построения инварианта и получении условия продолжения цикла в его качестве берется:

Ответ:

 (1) отрицание того предиката, которым ослабляется постусловие 

 (2) отрицание того предиката, которым усиливается постусловие 

 (3) отрицание того предиката, которым ослабляется предусловие 

 (4) отрицание того предиката, которым усиливается предусловие 


Упражнение 6:
Номер 1
Сколько применяется реально методов построения инварианта:

Ответ:

 (1)

 (2)

 (3)

 (4)


Номер 2
Методами построения инварианта являются:

Ответ:

 (1) устранение конъюнктивного члена 

 (2) расширение области значений переменной 

 (3) замена константы переменной 

 (4) добавление дизъюнктивного члена 


Номер 3
Предикат A^B^C можно ослабить до:

Ответ:

 (1) A^C 

 (2) A^B 

 (3) B^C 

 (4) C^B 

 (5) B^A 


Упражнение 7:
Номер 1
При ослаблении предиката A^B^C до A^C имеет место:

Ответ:

 (1) устранение конъюнктивного члена 

 (2) добавление дизъюнктивного члена 

 (3) импликация 

 (4) конкатенация 


Номер 2
Предикат 5i<10 можно ослабить до:

Ответ:

 (1) 10i=10 

 (2) 0i<10 

 (3) 5i=10 

 (4) 5i>10 


Номер 3
При ослаблении предиката 5<i<10 до 0<i<10 имеет место:

Ответ:

 (1) расширение области значений переменной 

 (2) замена константы переменной 

 (3) замена константой переменной 

 (4) сужение области значений переменной 


Упражнение 8:
Номер 1
В чем причина того, что метод добавления дизъюнктивного члена не применяется:

Ответ:

 (1) он не содержит никаких рекомендаций по поводу того, как именно выбрать предикат A 

 (2) он не содержит никаких рекомендаций по поводу того, как именно выбрать предикат B 

 (3) он не содержит никаких рекомендаций по поводу того, как именно выбрать предикат C 

 (4) он не содержит никаких рекомендаций по поводу того, как именно выбрать предикат D 


Номер 2
При построении инварианта с помощью метода устранения конъюнктивного члена в качестве условия продолжения цикла e может быть взято:

Ответ:

 (1) отрицание удаленного дизъюнктивного члена 

 (2) отрицание добавленного дизъюнктивного члена 

 (3) отрицание добавленного конъюнктивного члена 

 (4) отрицание удаленного конъюнктивного члена 


Номер 3
При построении инварианта с помощью метода устранения конъюнктивного члена истинность инварианта перед началом выполнения цикла легко устанавливается присваиванием:

Ответ:

 (1) "a=1;" 

 (2) "a=b;" 

 (3) "a<-1;" 

 (4) "a>-1;" 

 (5) "a=0;" 

 (6) "a>0;" 


Упражнение 9:
Номер 1
Для того чтобы при построении инварианта с помощью метода устранения конъюнктивного члена цикл завершился, величина a должна:

Ответ:

 (1) увеличиваться 

 (2) уменьшаться 

 (3) не изменяться 


Номер 2
Простейший способ увеличения величины a, при построении инварианта с помощью метода устранения конъюнктивного члена, - это:

Ответ:

 (1) увеличивать a на единицу на каждой итерации цикла 

 (2) увеличивать a на единицу на каждой рекурсии цикла 

 (3) увеличивать a на единицу на каждой конкатенации цикла 


Номер 3
При построении инварианта с помощью метода устранения конъюнктивного члена увеличение величины a на единицу на каждой итерации цикла:

Ответ:

 (1) не сохраняет инвариант 

 (2) сохраняет рекурсию 

 (3) не сохраняет рекурсию 

 (4) сохраняет инвариант 


Упражнение 10:
Номер 1
Данную программу:public class Sqrt {
    public static void main(String[] args) throws Exception {
        int n = Xterm.inputInt("n -> ");
        int a = 0;
        while ( n >= (a+1)*(a+1) )
            a += 1;
        Xterm.println("sqrt(" + n + ") = " + a);
    }
}можно переписать в следующем компактном виде:

Ответ:

 (1) int a, n = Xterm.inputInt("n -> "); Xterm.println("sqrt(" + n + ") = " + a); 

 (2) Xterm.inputInt("n -> "); for (a=0; n >= (a+1)*(a+1); a++ a--); Xterm.println("sqrt("" + n + """) = " + a); 

 (3) int a, n = Xterm.inputInt("n -> "); for (a=0; n >= (a+1)*(a+1); a++); Xterm.println("sqrt(" + n + ") = " + a); 

 (4) int a, n = Xterm.inputInt("n -> "); for (a=0; n >= (a+1)*(a+1); a++); 


Номер 2
При написании программы, определяющей первое вхождение заданного целого числа x в заданный массив b[0..m-1] целых чисел (m>0), если известно, что x находится в массиве b, в качестве ограничивающей функции можно попробовать взять:

Ответ:

 (1) h=m+i 

 (2) h=m-i 

 (3) m=h+1 

 (4) i=m+h 


Номер 3
В качестве примера использования метода замены константы переменной можно рассматривать:

Ответ:

 (1) простую задачу суммирования элементов массива 

 (2) простую задачу вычитания массивов 

 (3) задачу деления элементов массива 

 (4) задачу умножения элементов массива 


Упражнение 11:
Номер 1
Программу, находящая сумму s элементов заданного целочисленного массива b[0..n-1], элементы которого и величину n изменять нельзя будет иметь вид:

Ответ:

 (1) "i=0;s=0;while(i<n)S;++S;" 

 (2) "i=0;s=0;whileS;" 

 (3) "i=0;s=0;while(i<n)S;" 

 (4) "i=0;s=0;while(i<n)" 


Номер 2
В данном случае:"i=0;s=0;while(i<n)S;" уменьшить h можно:

Ответ:

 (1) увеличивая i на единицу на каждой итерации цикла 

 (2) уменьшая i на единицу на каждой итерации цикла 

 (3) если не изменять i 


Номер 3
Данная программа:public class Sqrt3 {
    public static void main(String[] args) throws Exception {
        int a, b, n;
        n = Xterm.inputInt("n -> ");
        a = 0; 
        b = n+1;
        while (a+1 != b) {
            int c = (a+b)/2;
            if (c*c <= n) a = c;
            else          b = c;
        } 
        Xterm.println("sqrt(" + n + ") = " + a);
    }
}находит приближенное значение квадратного корня:

Ответ:

 (1) из заданного неотрицательного целого числа b 

 (2) из заданного неотрицательного целого числа a 

 (3) из заданного отрицательного целого числа n 

 (4) из заданного неотрицательного целого числа n 

 (5) из заданного отрицательного целого числа a 

 (6) из заданного отрицательного целого числа b 


Упражнение 12:
Номер 1
Какой метод в значительной мере подобен методу расширения области значения переменной:

Ответ:

 (1) добавление дизъюнктивного члена 

 (2) замена константы переменной 

 (3) устранение конъюнктивного члена 

 (4) замена константой переменной 


Номер 2
При нахождении минимального числа, содержащегося в каждом из трех упорядоченных по возрастанию массивов целых чисел, в предположении, что таковое существует, в качестве действий, которые будут приближать цикл к завершению можно использовать следующие операторы:

Ответ:

 (1) "i++;" 

 (2) "j++;" 

 (3) "k++;" 


Номер 3
Данная программа:public class Arr3 {
    public static void main(String[] args){    
        int a[] = { 1, 2, 4, 8,16,32,64,128};
        int b[] = {10,12,14,16,18,20,22, 24};
        int c[] = { 9,12,13,16,17,20,21, 24};
        int i = 0, j = 0, k = 0;
        while (true) { 
            if (a[i] < b[j]) {
                i++; continue;
            }
            if (b[j] < c[k]) {
                j++; continue;
            }
            if (c[k] < a[i]) {
                k++; continue;
            }
            Xterm.println("Минимальное общее число=" + a[i]);
            return;
        }
    }
}реализует алгоритм нахождения минимальное число, содержащееся в каждом из трех упорядоченных:

Ответ:

 (1) по возрастанию массивов целых чисел 

 (2) по убыванию массивов целых чисел 

 (3) по возрастанию массивов вещественных чисел 

 (4) по убыванию массивов вещественных чисел 




Главная / Программирование / Основы информатики и программирования / Тест 8