Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Класс Xterm языка Java:
предназначен для реализации сложнейших алгоритмов языка не ограждает начинающего программиста от сложностей реального мира языка Java ограждает начинающего программиста от сложностей реального мира языка Java
Написание самой простейшей программы на языке Java невозможно:
без понимания основных концепций структурного программирования без понимания основных концепций Web-технологий без понимания основных концепций ООП без понимания основных концепций функционального программирования
На первой стадии изучения языка Java полезно:
сосредоточиться на том, что язык Java не является объектно-ориентированным сосредоточиться на том, что язык Java является объектно-ориентированным сосредоточиться на содержательных проблемах корректной реализации алгоритма
Описания последовательности действий, предназначенные для автоматического устройства:
должны быть заданы с помощью некоторой формальной системы обозначений не должны быть совершенно однозначны должны быть совершенно однозначны должны быть заданы с помощью некоторой неформальной системы обозначений
Электронные вычислительные машины (ЭВМ), часто используются в качестве:
универсального исполнителя команд формального исполнителя команд специализированного исполнителя команд неформального исполнителя команд
Тексты, написанные для людей, как правило, обладают:
известной степенью неопределенности известной степенью неформальности известной степенью определенности известной степенью простоты
При кодировании алгоритма формальная система, предназначенная для записи алгоритмов, называется:
алгоритмическим языком алгоритмической системой алгоритмической структурой алгоритмическим графом
Описание последовательности действий, достаточно определенное для того, чтобы ее можно было выполнить при помощи некоторого автоматического устройства называют:
с помощью некоторых последовательных обозначений с помощью некоторых формальных обозначений с помощью некоторых неформальных обозначений с помощью некоторых непоследовательных обозначений
Класса R2Point вполне достаточно для реализации классов:
Id Point Segment Tpoint Seg Void
Попытки каких подходов неизменно терпели неудачу:
к программированию как к математической дисциплине к созданию программ как к промышленному производству к программированию как к технической дисциплине
В математике существует несколько вполне четких определений алгоритма:
неэквивалентных между собой рассматривающие различные составляющие алгоритма эквивалентных между собой эквивалентных между собой в редких случаях
По своему положению и используемым методам Наука программирование является:
областью прикладной математики областью экспериментальной математики областью математики областью высшей математики
Все определения алгоритма требуют хорошего знания:
определенных областей схемотехники определенных областей математики определенных областей философии определенных областей физики
Какое свойство определяет то, что алгоритм должен всегда заканчиваться после выполнения конечного числа шагов:
выход (вывод) эффективность определенность конечность
Основные свойства любого алгоритма — это:
конечность вход (ввод) выход (вывод) определенность эффективность
Учения о том, как надо писать программы называются:
несколько тысяч языков программирования несколько десятков языков программирования несколько сот языков программирования
Какое свойство алгоритма предусматривает то, что действия, которые необходимо произвести на каждом шаге, должны быть определены строго и недвусмысленно в каждом возможном случае:
Алгоритм, вычисляющий 1000-е простое число может служить примером алгоритма:
имеющего непустое множество входных данных не имеющего множества входных данных имеющего пустое множество входных данных
Какое свойство определяет то, что алгоритм всегда обязан иметь одну или несколько выходных величин:
определенность выход (вывод) вход (ввод) конечность
Какое свойство требует от алгоритма того, чтобы все операции, которые необходимо произвести в алгоритме, должны быть достаточно простыми, чтобы их в принципе можно было выполнить точно и за конечное время с помощью карандаша и бумаги?
вход (ввод) конечность эффективность определенность выход (вывод)
Набор теорий, стандартов и методов, которые совместно представляют собой способ организации научного знания - это:
парадигма направление течение ветвь
Способ концептуализации, который определяет, как следует проводить вычисления, и как работа, выполняемая компьютером, должна быть структурирована и организована - это:
концепция в программировании парадигма в программировании направление в программировании школа в программировании
Важнейшими парадигмами программирования на данный момент времени являются:
Для директивного программирования верны следующие утверждения:
практически неприменим для создания больших программ исторически возник одним из первых подобный стиль оптимален для программирования в малом разработчик программы использует процессно-ориентированную модель
Примерами языков, предназначенных для директивного программирования являются:
Pascal Java C++ C
Активным началом в директивном программировании считаются:
программа объекты данные
В объектно-ориентированном программировании объекты (данные) могут активно взаимодействовать друг с другом с помощью:
механизма передачи сигналов механизма вызова функций механизма вызова методов механизма передачи сообщений
В объектно-ориентированном программировании первичными считаются:
программа объекты код
Какие языки реализуют объектно-ориентированный подход:
Java C C++ Pascal
Функциональное и логическое программирование использует языки типа:
Lisp Prolog Haskell Pascal
Главным в функциональном и логическом программировании является:
данные точная формулировка задачи объекты код
Язык Java обладает следующими качествами:
объектная ориентированность безопасность надежность простота и мощь интерактивность
Одним из самых значительных изменений за последние двадцать лет в информатике и программировании стало появление:
языка программирования Java общемировой сети Интернет операционной системы UNIX
Важнейшими свойствами языка Java являются следующие:
Java позволяет создавать аплеты Java предоставляет программисту богатый набор классов различных объектов Java является современным объектно-ориентированным языком
Написание простейших программ на языке Java требует знания:
основных принципов логического программирования основных принципов функционального программирования основных принципов директивного программирования основных принципов ООП
Язык Java обладает следующими качествами:
архитектурная независимость мультимедийность высокая производительность и легкость в изучении возможность интерпретации
Технология программирования, в основе которой лежит способность человека обобщать, классифицировать и генерировать абстракции - это:
Научиться писать понятные и легко модифицируемые программы на языке Java легко, если соблюдать следующие правила:
использовать в программе осмысленные имена для всех переменных, отличных от счетчиков и других подобных величин всем константам, отличным от нуля и единицы, присваивать имена соблюдать принятый в языке стиль написания имен там, где это необходимо, используйть комментарии применять разумное форматирование текста программы
Хорошая программа должна обладать следующими качествами:
модифицируемость удобство эксплуатации эффективность надежность корректность понятность
Сколько существует видов комментариев в языке Java:
пять два один четыре три
В языке Java существует:
около шести десятков зарезервированных ключевых слов около пяти десятков зарезервированных ключевых слов около семи десятков зарезервированных ключевых слов около восьми десятков зарезервированных ключевых слов
Минимальная неделимая единица языка Java - это:
абзац секция блок лексема
Объект Xterm:
не содержит в себе информации находится в некотором состоянии содержит в себе некоторую информацию
Объект Xterm:
определяет терминал, обеспечивающий ввод чисел и вывод строк текста такого объекта не существует определяет порт, обеспечивающий ввод чисел
Множество всех состояний, в которых может находиться объект Xterm, называется:
потенциальными состояниями количеством состояний пространством состояний допустимыми состояниями
Завершается любой оператор в языке Java:
точкой точкой с запятой запятой двоеточием
Дополнительные объекты называют:
ключами параметрами аргументами
В языке Java для вызова метода необходимо сначала указать объект, к которому применяется тот или иной метод, а затем:
до точки записать имя метода до точки записать имя объетка после точки записать имя объекта после точки записать имя метода
Множество всех объектов с одинаковым пространством состояний и одинаковым набором методов называется:
пространством классом секцией набором объектов
Типы данных в языке Java подразделяются на:
не ссылочные простые сложные ссылочные
Операторы бывают:
бинарными сложные простые унарными тернарными
Печать чего приведет к тому, что курсор терминала перемещается в начало следующей строки:
"\d" "\o" "\g" "\n" "\f" "\p"
Пустую строку обозначает:
"" " ** "**
Какой метод класса Xterm позволяет осуществить ввод строки символьной информации, размещая ее в массиве символов:
inputLong inputInt inputChars inputDouble
В том случае, когда программа использует ввод чисел, строку:public static void main(String[] args) следует заменить на:
public static void main(String[]) Exception public static void main(String[] args) throws public static void main(String[] args) Exception public static void main(String[] args) throws Exception
Управляющими конструкциями языка Java являются:
операторы обработки исключений операторы циклов арифмитические операторы условные операторы
Логическими операторами являются:
& ^ | == ! !=
Дизъюнкция истинна, если:
истинен хотя бы один из ее аргументов истины все ее аргументы не истины все ее аргументы
Общая форма записи тернарного оператора условия ?: имеет следующий вид:
Один из простейших способов доказать, что предикат является тавтологией, — это:
вычислить его значения во всех возможных состояниях вычислить его значения в конечном состоянии вычислить его значения в выборке состояний вычислить его значение в начальном состоянии
Ограничение на использование кванторов в предикатах таково:
идентификатор не может быть связан двумя различными кванторами идентификатор не может быть связан одним квантором идентификатор не может быть связан тремя различными кванторами в предикате один и тот же идентификатор не может быть как связанным, так и свободным
Идентификатор, не являющийся связанным называется:
свободным основным начальным простым
Идентификатор, непосредственно следующий в предикате за квантором называется:
замыкающим идентификатором связанным идентификатором основным идентификатором следующим идентификатором
Использование круглых скобок для группировки всегда позволяет:
изменить порядок вычислений закрепить порядок вычислений ускорить порядок вычислений замедлить порядок вычислений
Предикат с переменными любых типов, который может содержать кванторы и не иметь скобок, не являющимися необходимыми для его однозначного толкования называется:
предикатом в сложном смысле предикатом в расширенном смысле предикатом в простом смысле предикатом в сжатом смысле
Для предикатов с кванторами справедливы дополнительные законы эквивалентности, называемые также:
Операторы с каким приоритетом в языке Java выполняются в первую очередь:
7 1 9 2 5 3
В языке Java правоассоциативность обозначается символом
-+ +- --> <--
В языке Java левоассоциативность обозначается символом:
<-- -+ +- -->
Оператор ++ языка Java имеет следующий тип операции:
числовой строковый целый логический
Оператор << языка Java имеет следующий приоритет:
2 6 5 1 3 4
Данный оператор != языка Java имеет следующий тип операций:
логический объект простой целый
Оператор == языка Java имеет следующий приоритет:
4 8 2 6
Оператор ?: языка Java имеет следующий приоритет:
6 10 12 2 4 8
Какая информация в компьютере представляется в двоичной форме:
текстовая числовая звуковая графическая
В языке Java используемые в программах переменные величины и константы типов int и double принимают значения из множеств:
Rm Dm Zm Nm
Как оперативная, так и внешняя память могут рассматриваться, как:
достаточно длинные последовательности из нулей достаточно короткие последовательности из единиц достаточно короткие последовательности из нулей и единиц достаточно длинные последовательности из нулей и единиц
Наименьшей единицей измерения информации является:
мегабайт гигабайт килобайт бит терабайт байт
Под внешней памятью подразумеваются такие носители информации, как:
ленты оптические диски жесткий диск магнитные диски
Из скольки бит состоит один байт?
32 16 8 64
Единицами измерения информации являются:
бит гигабайт килобайт байт мегабайт терабайт
Байта достаточно для хранения:
128 различных значений 1024 различных значений 256 различных значений 512 различных значений
Символы русского алфавита расположены во второй половине таблицы:
из 128 символов из 256 символов из 512 символов из 32 символов из 64 символов из 1024 символов
С помощью кодировки ASCII стандартизированы:
первые 256 символов первые 32 символа первые 64 символа первые 128 символов
Два последовательных байта для кодирования всех возможных символов использует следующий стандарт:
Ucode KOI8-R Windows-1251 Unicode
Наиболее распространенными кодировками русского текста являются:
Windows-1250 KOI8-R Windows-1251 KOI7-R
Для хранения переменной типа long в языке Java отводится:
четыре байта два байта восемь байт один байт
Для хранения переменной типа short в языке Java отводится:
один байт два байта восемь байт четыре байта
В Java применяется представление чисел в так называемом:
В информатике часто применяются следующие системы счисления:
двоичная восьмеричная шестнадцатеричная
В типе byte языка Java любое число занимает:
4 бита 8 бит 2 бита 1 бит
В шестнадцатеричной системе в качестве цифр от десяти до пятнадцати используются буквы:
отA доG соответственно отA доD соответственно отA доH соответственно отA доF соответственно
Для представления вещественных чисел в языке Java используют переменные и константы типов:
float double short int
Отрицательные числа всегда имеют в своем двоичном представлении:
двойку в самом старшем разряде двойку в знаковом разряде единицу в самом старшем разряде единицу в знаковом разряде
Множество элементов типа byte можно представлять себе в виде свернутого в кольцо отрезка
[-127,127] [-128,127] [-128,128] [-127,128]
Для хранения переменной типа float в языке Java отводится:
восемь байт два байта четыре байта один байт
Для хранения переменной типа double в языке Java отводится:
два байта четыре байта восемь байт один байт
Какое свойство определяет то, что между любыми двумя различными числами всегда найдется отличное от них третье:
следования полноты достаточности определенности
При делении единицы на минус ноль получается:
минус ноль плюс бесконечность минус бесконечность не число
Для извлечения квадратного корня в языке Java можно использовать:
метод sqrt класса Math метод sqr класса Math метод srt класса Math метод math класса Sqr метод math класса Srt метод math класса Sqrt
Использование чисел с плавающей точкой является наиболее распространенным способом реализации:
комплексных чисел натуральных чисел вещественных чисел
К арифметическим операторам языка Java, которые определены для всех числовых типов, относятся:
++ !+ !- --
К арифметическим операторам языка Java, которые определены для всех числовых типов, относятся:
сложение и унарный плюс вычитание и унарный минус умножение остаток от деления с присваиванием сложение с присваиванием деление с присваиванием вычитание с присваиванием умножение с присваиванием
Внимание ! Вопросы к тесту выложены исключительно в ознакомительных целях: количество вопросов может не совпадать с действительным, актуальность не поддерживается,- за решением теста Welcome to the cashier! Результат выполнения операций деления и деления по модулю для целочисленных операндов является:
комплексным числом дробью числом с плавающей точкой целым числом
К побитовым операторам языка Java относятся следующие:
!~ &= & ~
К побитовым операторам языка Java относятся следующие:
сдвиг вправо с размножением нуля сдвиг вправо дополнение сдвиг вправо с присваиванием
Какой пакет дает возможность программисту работать с целыми и вещественными числами произвольной длины и точности:
В вычислении рекурсивно определенной функции на множестве программных переменных заключается:
математическая модель конкатенации математическая модель присваивания математическая модель рекурсии математическая модель итерации
Способ организации обработки данных, при котором программа вызывает сама себя непосредственно, либо с помощью других программ называется:
декремент рекурсия инкремент итерация
Способ организации обработки данных, при котором определенные действия повторяются многократно, не приводя при этом к рекурсивным вызовам программ называется:
итерация рекурсия инкремент декремент
В математической модели рекурсии значение функции для всех значений аргумента, начиная с некоторого, определяется:
через начальные значения через последующие значения через предыдущие значения через конечные значения
Факториал n! целого неотрицательного числа n задается следующими соотношениями:
0=1!, n!=n*(n-1)! для n>0 0-1!, n=n*(n-1)! для n>0 0!-1, n!=n*(n-1)! для n>0 0!=1, n!=n*(n-1)! для n>0
Математическая модель итерации сводится к повторению некоторого преобразования T:X -> X:
на множестве констант программы X на множестве констант программы T на множестве переменных программы T на множестве переменных программы X
Наилучшие рекурсивный и итерационный алгоритм имеют:
совпадающую с точностью до постоянного множителя временную сложность совпадающую с точностью до некоторого множителя временную сложность совпадающую с точностью до некоторого множителя постоянную сложность совпадающую с точностью до постоянного множителя постоянную сложность
Рекурсия и итерация:
равны взаимозаменяемы не взаимозаменяемы эквивалентны
При написании рекурсивных программ обычно необходимо исследовать следующие основные вопросы:
всегда ли и почему программа заканчивает работу почему после окончания работы программы не будет получен требуемый результат всегда ли программа работает почему после окончания работы программы будет получен требуемый результат
Язык Java предусматривает следующие операторы цикла:
do-while-do while do-while for
Какой из операторов цикла языка Java применяется, если выполнение тела цикла хотя бы раз обязательно:
do-while-do for do-while while
Какой из операторов цикла языка Java обычно используют в ситуации, когда тело цикла нужно выполнить нуль или более раз:
while for do-while-do do-while
Какой из операторов цикла языка Java является наиболее универсальным и используется в различных ситуациях:
do-while for while
Какой из операторов языка Java прерывает выполнение цикла:
continue break do-while while for draw
Дополнительными средствами, используемыми при организации циклов, являются операторы:
draw break continue circle
Какой из операторов языка Java позволяет досрочно перейти к выполнению следующей итерации, проигнорировав часть операторов тела цикла, еще не выполненных в текущей итерации:
break for continue
Данная программа:
public class FactIv1 { public static void main(String[] args) throws Exception { int n, i, k; n = Xterm.inputInt("Введите n -> "); i = k = 1; while (i <= n) { k *= i; i += 1; } Xterm.println("" + n + "! = " + k); } }
вычисляет:
интеграл введенного натурального числа факториал введенного натурального числа предикат введенного натурального числа логарифм введенного натурального числа
Данная программа:
public class FibIv1 { public static void main(String[] args) throws Exception { int n = Xterm.inputInt("Введите n -> "); Xterm.print("f(" + n + ")"); if (n < 0) { Xterm.print(" не определено\n"); } else if (n < 2) { Xterm.println(" = " + n); } else { long i = 0; long j = 1; long k; int m = n; while (--m > 0) { k = j; j += i; i = k; } Xterm.println(" = " + j); } } }
относительный проигрыш при использовании хорошего алгоритма абсолютный проигрыш при использовании плохого алгоритма относительный проигрыш при использовании плохого алгоритма абсолютный проигрыш при использовании хорошего алгоритма
Описание примерного поведения функции T(n)при больших значениях параметра n называется:
асимптотическими оценками этой функции симптотическими оценками этой функции логическими оценками этой функции теоритическими оценками этой функции
Для массивов верны утверждения:
являются динамическими структурами данных не являются структурами данных являются статическими структурами данных
Язык Java позволяет работать с массивами элементов:
только двух типов только одного типа различных типов не позволяет
Когда возникает необходимость хранить несколько однотипных значений используют:
константу массив переменную
Массив из трех целых чисел, содержащий величины 3, 7 и 11, можно задать так:
int - 3,7,11; int a[]={3,7,11}; int + 3,7,11; int a=3,7,11; a=3,7,11; int a[]=3-11;
В языке Java, для того чтобы завести массив, необходимо:
объявить его зарезервировать память для его элементов определить его структуру зарезервировать память для его блоков
Для того, чтобы зарезервировать память для элементов массива на языке Java необходимо воспользоваться оператором:
print array term new
Для доступа к i-му элементу массива используется выражение:
a[] a[i] a=i
Задание: Данная программа:
public class MaxArr { public static void main(String[] args) throws Exception { int n, i, a[]; n = Xterm.inputInt("Введите длину массива n -> "); a = new int[n]; for (i=0; i<n; i++) a[i] = Xterm.inputInt("Введите a[" + i + "] -> "); int max = a[0]; for (i=1; i<n; i++) if (a[i] > max) max = a[i]; Xterm.println("Максимальный элемент массива = " + max); } }
печатает:
максимальный элемент непустого массива минимальный элемент непустого массива максимальный элемент пустого массива минимальный элемент пустого массива
Данная программа:
public class NumMaxArr { public static void main(String[] args) throws Exception { int n, i, a[]; n = Xterm.inputInt("Введите длину массива n -> "); a = new int[n]; int max = Integer.MIN_VALUE; int nMax = 0; for (i=0; i<n; i++) { a[i] = Xterm.inputInt("Введите a[" + i + "] -> "); if (a[i] < max) { max = a[i]; nMax = 1; } else if (a[i] == max) nMax += 1; } Xterm.println("Количество макс. элементов = " + nMax); } }
печатает количество максимальных элементов непустого массива:
в которой используется два цикла в которой используется четыре цикла в которой используется только один цикл в которой используется три цикла
При написании программы, вводящей последовательность целых чисел, и печатающую количество ее максимальных элементов имеются следующие ограничения:
программа не должна уметь работать со сколь угодно длинными последовательностями программа должна уметь работать со сколь угодно длинными последовательностями не разрешается использовать массив для хранения элементов последовательности после ввода каждого очередного элемента программа обязана в принципе уметь напечатать ту характеристику последовательности, вычислению которой она посвящена
Часто при решении задачи, связанной с обработкой последовательно поступающих элементов:
нет необходимости запоминать их, складывая в массив есть необходимость запоминать их, складывая в массив нет необходимости запоминать их, не складывая в массив
Фраза, инвертирование которой не изменяет ее называется:
полидром рекурсия монодром итерация палиндром
Конструкция try-catch, предназначенна для:
обработки логических ситуаций обработки служебных ситуаций обработки исключительных ситуаций обработки ошибочных ситуаций
Нечто препятствующее продолжению нормального выполнения программы:
исключительная ситуация тупиковая ситуация недопустимая ситуация ошибочная ситуация
В текст программы зачастую полезно включать предикаты, которые позволяли бы человеку или компьютеру проверять:
синтаксис кода программы семантику кода программы корректность останова программы корректность хода выполнения программы
Предикаты нам нужны прежде всего для того, чтобы иметь возможность ясно и недвусмысленно формулировать:
определенные утверждения о программах определенные утверждения о константах определенные утверждения о программных переменных
В тех случаях, когда утверждения проверки корректности хода выполнения программы предназначены только для человека, они оформляются в виде:
комментариев специального блока специального буфера специальной секции
Часто полезно поручить проверку истинности предикатов в процессе выполнения программы:
человеку компьютеру не поручать никому
В программах на языке C можно использовать следующий макрос, который в случае ложности его аргумента немедленно прекращает выполнение программы, сообщая о причине этого:
Проверка истинности предикатов в процессе выполнения программы в различных языках программирования реализована:
по-разному одинаково не реализована
Что позволяет реализовать проверку истинности предикатов в процессе выполнения программы в языке Java:
оператор if механизм работы с ошибками оператор while механизм работы с исключениями
Данная программа:
public class Assert { public static void main(String[] args) throws Exception { int n = Xterm.inputInt("Введите n -> "); if (n <= 0) throw new Exception("n <= 0"); Xterm.println("n = " + n); } }
содержит:
проверку истинности утверждения об отрицательности введенного с клавиатуры вещественного числа проверку истинности утверждения о положительности введенного с клавиатуры целого числа проверку утверждения о положительности введенного с клавиатуры не целого числа
При вводе неположительного числа данная программа:
public class Assert { public static void main(String[] args) throws Exception { int n = Xterm.inputInt("Введите n -> "); if (n <= 0) throw new Exception("n <= 0"); Xterm.println("n = " + n); } }
прекращает свое выполнение и печатает следующий текст:
lang.Exception: n<=0 at Assert.main(Assert.java:5)
java.Exception: n<=0 at Assert.main(Assert.java:2)
java.lang.Exception: n<=0 at Assert.main(Assert.java:4)
java.lang: n<=1 at Assert.main(Assert.java)
Определение понятия правильная программа зависит от:
результата, который должен быть получен в процессе выполнения программы от того, в каких условиях начинается ее выполнение от того, в каких условиях заканчивается ее выполнение
Для того чтобы доказывать правильность программ необходимо прежде всего дать строгое определение понятию:
код правильная программа программа алгоритм
Спецификацией {Q} S {R} программы S, где Q и R — предикаты, называется предикат, означающий, что если выполнение S началось в состоянии, удовлетворяющем Q, то имеется гарантия, что оно завершится через конечное время:
в состоянии, удовлетворяющем S в состоянии, удовлетворяющем R в состоянии, удовлетворяющем T в состоянии, удовлетворяющем Q
В данном случае:{Q} S {R} предикат Q называется:
предусловием входным утверждением S выходным утверждением программы S постусловием
В данном случае:{Q} S {R} предикат R называется
входным утверждением S предусловием выходным утверждением программы S постусловием
Так как спецификация программы является предикатом, то она может быть:
пустой ложной истинной сложной простой полной
Следующая спецификация:{i=0}"i++;"{i=j}:
является тавтологией истинна при j=0 и ложна в остальных состояниях истинна при j=2 и ложна в остальных состояниях ложна во всех состояниях истинна при j=1 и ложна в остальных состояниях
Следующая спецификация:{i=0}"i++;"{i=0}:
истинна при j=0 и ложна в остальных состояниях истинна при j=1 и ложна в остальных состояниях является тавтологией ложна во всех состояниях
Следующая спецификация:{i=0}"i++;"{i=1}:
является тавтологией истинна при j=1 и ложна в остальных состояниях ложна во всех состояниях
Спецификация программы является единственным корректным способом:
описания задачи решения задачи кодирования задачи постановки задачи
С практической точки зрения особый интерес представляют программы, которые позволяют:
достичь как можно большего при фиксированном предусловии получить нужный результат при максимальных требованиях к начальным условиям получить нужный результат при минимальных требованиях к начальным условиям получить нужный результат при максимальных требованиях к конечным условиям
Программа S является правильной при заданных Q и R, если спецификация {Q} S {R} является:
ложной при любых условиях ложной тавтологией
Предикат, описывающий максимально широкое множество в пространстве состояний переменных программы S, на котором гарантируется получение постусловия R называется:
В данном случае:wp("System.exit(0);",R)=F выполнение вызова метода "System.exit(0)" приводит:
не влияет на выполнение программы к отсроченному завершению выполнения программы к перезапуску программы к немедленному завершению выполнения программы
Предикат inrange(b,i) определяет:
количество не допустимых значений индекса множество не допустимых значений индекса множество допустимых значений индекса количество допустимых значений индекса
Выражение b[i] само по себе может оказаться неопределенным:
из-за некорректного значения индекса i из-за корректного значения индекса b из-за некорректного значения индекса b из-за корректного значения индекса i
В данном случае:wp("System.exit(0);",R)=F при каком начальном состоянии после его выполнения предикат R будет истинным:
ни при каком начальном состоянии эквивалентным нулю равным нулю эквивалентным единице
Управляющая конструкция if эквивалентна использованию пустого оператора:
в for-ветви в while-ветви> в else-ветви
Для того чтобы задать все основные конструкции выбора языка Java, достаточно дать определение только одной из них, — конструкции:
Оператор switch может быть заменен несколькими вложенными друг в друга операторами:
if-else if-if else-if else-else
Для практических приложений часто необходимо не вычисление слабейшего предусловия, а лишь проверка того факта, что некоторое другое известное предусловие:
обеспечивает его выполнение не существует не обеспечивает его выполнение существует
Для определения слабейшего предусловия wp("while(e)S;",R) потребуются:
рекурсии конкатенации вспомогательные определения итерации
В терминах слабейшего предусловия можно определить:
все оставшиеся еще неопределенными конструкции языка все оставшиеся еще неопределенными конструкции сильнейшего постусловия ни чего нельзя определить
При решении задач на "программирование в малом" оправдано применение различных методов разработки программ типа:
проектирования слева направо проектирования справа налево проектирования снизу вверх проектирования сверху вниз
Все задачи на написание программ можно разделить на следующие группы:
большие проекты мегапроекты задачи на "программирование в малом" простейшие задачи
К простейшим задачам на написание программ можно отнести:
предикаты функции линейные программы программы с ветвлениями, которые не используют ни циклов, ни рекурсивных вызовов
Характеристическим свойством каких задач является их простая сводимость к совокупности таких задач на обработку информации, для решения которых достаточно применения итерации или рекурсии:
большие проекты задачи на "программирование в малом" мегапроекты простейшие задачи
К какому классу относятся почти все практические задачи:
простейшие задачи мегапроекты большие проекты
Ренализация задач на "программирование в малом" не превосходит:
70-80 строк текста 10-20 строк текста 30-40 строк текста 50-60 строк текста
К какому классу относятся почти все практические задачи:
мегапроекты простейшие задачи большие проекты
Название классификации методов решения задач на обработку информаци - это:
таблицы обработки ннформации графы обработки информации графики обработки информации схемы обработки информации
Объектно-ориентированное проектирование в значительной мере помогает справиться со сложностью задач типа больших проектов, позволяя свести их к решению:
многих значительно более сложных логических задач интегралов многих значительно более простых
Математическая модель итерации является слишком общей и:
легко применимой на практике не применимой на практике трудно применимой на практике
Обычным способом программной реализации итерации является:
цикл схема граф функция
Любая тавтология является:
инвариантом произвольного цикла рекурсией цикла инвариантом определенного цикла
Выражение взаимосвязи между меняющимися в теле цикла объектами в виде неизменного условия - это основная идея:
метода проектирования цикла при помощи рекурсии метода проектирования цикла при помощи конкатенации метода проектирования цикла при помощи инкремента метода проектирования цикла при помощи инварианта
Инвариант помогает сконструировать команды:
Q S S0 R
Ограничивающая функция h:X ->{Z}:
неотрицательная функция, являющаяся нижней границей числа оставшихся итераций цикла отрицательная функция, являющаяся нижней границей числа оставшихся итераций цикла неотрицательная функция, являющаяся верхней границей числа оставшихся итераций цикла отрицательная функция, являющаяся верхней границей числа оставшихся итераций цикла
Ограничивающая функция позволяет:
гарантировать завершение цикла гарантировать прохождение цикла гарантировать построение цикла гарантировать начало цикла
Что делает данная программа:
public class MulI { public static void main(String[] args) throws Exception { int a = Xterm.inputInt("a -> "); int b = Xterm.inputInt("b -> "); int x = a, y = b, z = 0; while (y > 0) { if ((y&1) == 0) { y >>>= 1; x += x; } else { y -= 1; z += x; } } Xterm.println("a * b = " + z); } }
: перемножает два вещественных числа, одно из которых неотрицательно, без использования операции умножения перемножает два целых числа, одно из которых неотрицательно, без использования операции умножения перемножает два целых числа, одно из которых отрицательно, с помощью операции умножения перемножает два целых числа, одно из которых неотрицательно, с помощью операции умножения
Ограничивающая функция h:X ->{Z}:
отрицательная функция, являющаяся верхней границей числа оставшихся итераций цикла неотрицательная функция, являющаяся верхней границей числа оставшихся итераций цикла отрицательная функция, являющаяся нижней границей числа оставшихся итераций цикла неотрицательная функция, являющаяся нижней границей числа оставшихся итераций цикла
Данная программа: 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)); } } находит наибольший общий делитель gcd(x,y) двух целых неотрицательных чисел x и y:
равных одновременно нулю равных одновременно двум не равных одновременно нулю не равных одновременно единице
Данная функция:f:R->R,f(x)=sin x является T-инвариантной относительно преобразования:
Индуктивные функции определены на последовательностях:
Y* элементов из некоторого алфавита X R* элементов из некоторого алфавита X X* элементов из некоторого алфавита X T* элементов из некоторого алфавита X
При работе с индуктивными функциями последовательности X* элементов алфавита X символом последнего является:
только второй его элемент только последний его элемент только первый его элемент любой его элемент
При работе с индуктивными функциями алфавитом X последовательности X* элементов является:
определенное пустое множество произвольное непустое множество произвольное пустое множество определенное непустое множество
При работе с индуктивными функциями последовательности X* элементов алфавита X цепочкой над последним является:
произвольную последовательность символов T произвольную последовательность символов w определенную последовательность символов w определенную последовательность символов T
При работе с индуктивными функциями последовательности X* элементов алфавита X цепочки над последним часто называют:
определениями словами предложениями фразами
Множество всех цепочек над алфавитом X принято обозначать:
M X* M* S X S*
Данная операция:o:X* x X* -> X* является операцией:
умножения сложения сцепления конкатенации
Длинной цепочки называется:
количество входящих в нее последовательностей количество входящих в нее алфавитов количество входящих в нее символов
Длинной цепочки называется:
количество входящих в нее символов количество входящих в нее последовательностей количество входящих в нее алфавитов
Простым примером, иллюстрирующим схему вычисления индуктивной функции, является задача нахождения значения многочлена:
заданного областью определения корней его коэффициентов заданного блоком его коэффициентов заданного количеством его коэффициентов заданного последовательностью его коэффициентов
Схема вычисления индуктивной функции напоминает:
метод доказательства по дедукции метод доказательства по индукции метод доказательства по абдукции
Схема вычисления индуктивной функции позволяет легко построить программу вида:
метод доказательства по индукции метод доказательства по абдукции метод доказательства по дедукции
При решении задач на рекурсию необходимо:
почему после завершения программы не будет получен требуемый результат почему после завершения программы будет получен требуемый результат обосновать почему программа заканчивает работу
При решении задач на рекурсию необходимо:
почему после завершения программы не будет получен требуемый результат обосновать почему программа заканчивает работу почему после завершения программы будет получен требуемый результат
При использовании схемы вычисления инвариантной функции необходимо указать:
множества X,Y,Xp преобразование T определение S функцию F
Эффективный метод вычисления значения многочлена в точке носит имя:
Теоремой, на которой базируется схема проектирования цикла при помощи инварианта, является утверждение, которое:
не существует принимается без доказательства необходимо доказывать
Истинность утверждения на котором базируется схема проектирования цикла при помощи инварианта может быть выведена из:
определения оператора сцепления свойств преобразователя предикатов wp определения оператора цикла определения оператора конкатенации
Какую функцию надо взять в качестве ограничивающей, чтобы правильность данной программы:
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)); } }
легко могла быть доказана:
h = y * y h = x * x h = x * 1 h = x * y
Вы можете обратится к нам напрямую, через:
По Skype: molodoyberkut По Telegram: @MolodoyBerkut По ICQ: 657089516