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

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

Упражнение 1:
Номер 1
Какие утверждения о программной системе являются корректными?

Ответ:

 (1) программная система строится из классов 

 (2) программная система строится из объектов 

 (3) программная система строится из операций 

 (4) программная система в процессе работы создает объекты 

 (5) программная система в процессе работы позволяет получать доступ к свойствам объекта и изменять данные объекта 

 (6) программная система строится из данных 


Номер 2
Какие утверждения об объектах являются корректными?

Ответ:

 (1) объекты появляются в процессе работы программной системы 

 (2) объекты представляют коллекцию данных 

 (3) запрос позволяет выяснить свойства объекта – получить значение его данных 

 (4) запрос позволяет изменить свойства объекта – изменить значение его данных 

 (5) программный объект может иметь аналог в физическом мире 

 (6) программный объект всегда имеет аналог в физическом мире 


Номер 3
Какие утверждения, связанные с вызовом компонента – x. f, являются корректными?

Ответ:

 (1) вызов компонента происходит только в чрезвычайных исключительных ситуациях 

 (2) вызов компонента является базисной операцией ОО программирования 

 (3) вызываемый компонент f принадлежит некоторому классу 

 (4) вызываемый компонент f принадлежит некоторому объекту 

 (5) цель вызова x является компонентом класса 

 (6) цель вызова x является объектом класса 


Упражнение 2:
Номер 1
Какое высказывание является определением аргумента?

Ответ:

 (1) аргумент – это коллекция данных, над которыми определены операции 

 (2) аргумент – это метод, который может изменить объект 

 (3) аргумент – это метод, получающий доступ к объекту 

 (4) аргумент – это значение, передаваемое методу, необходимое для его работы 

 (5) аргумент – это операция, которую программа может применять к объекту 


Номер 2
Какое высказывание справедливо для понятия "запрос"?

Ответ:

 (1) запрос – это коллекция данных, над которыми определены операции 

 (2) запрос – это метод, который может изменить объект 

 (3) запрос – это метод, позволяющий получить доступ к объекту, не изменяя самого объекта 

 (4) запрос – это значение, передаваемое методу, необходимое для его работы 

 (5) запрос – это операция, которую программа может применять к объекту 


Номер 3
Какое высказывание является определением команды?

Ответ:

 (1) команда – это коллекция данных, над которыми определены операции 

 (2) команда – это метод, который может изменить объект 

 (3) команда – это метод, получающий доступ к объекту 

 (4) команда – это значение, передаваемое методу, необходимое для его работы 

 (5) команда – это приказ, отдаваемый программистом, которому должны подчиняться все объекты 


Упражнение 3:
Номер 1
Определим отношение "имеет". А имеет В означает, что В некоторая возможная составляющая часть А (А содержит или знает о В). Укажите высказывания, справедливые для отношения "имеет".

Ответ:

 (1) аргумент имеет запрос 

 (2) программная система имеет класс 

 (3) вызов метода имеет цель вызова 

 (4) класс имеет вызов метода 


Номер 2
Определим отношение "возможно является частью". А возможно является частью В означает, что А может быть, но не обязательно, составляющей частью B. Укажите высказывания, справедливые для отношения "возможно является частью".

Ответ:

 (1) ОО программная система возможно является частью класса 

 (2) аргумент возможно является частью команды 

 (3) аргумент возможно является частью запроса 

 (4) вызов возможно является частью цели вызова 

 (5) метод возможно является частью класса 


Номер 3
Определим отношение "является подвидом". Вид А является подвидом вида В если экземпляры вида А являются частным случаем экземпляров вида В. Киты являются подвидом млекопитающих. Укажите высказывания, справедливые для отношения "является подвидом".

Ответ:

 (1) команда является подвидом метода 

 (2) запрос является подвидом метода 

 (3) объект является подвидом класса 

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

 (5) метод является подвидом класса 


Упражнение 4:
Номер 1
Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой.

Ответ:

 (1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца 

 (2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца 

 (3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля 

 (4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца 

 (5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова 


Номер 2
Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой.

Ответ:

 (1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца 

 (2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца 

 (3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля 

 (4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца 

 (5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова 


Номер 3
Представьте, что вы создаете ПО для работы с документами – создания, модифицирования и доступа к ним. Предположите, что вы проектируете класс WORD (Слово), который описывает понятие "слово" и класс PARAGRAPH (Абзац), описывающий понятие абзаца. Для каждого из следующих возможных методов класса PARAGRAPH, установите, какой из них должен быть командой с аргументом.

Ответ:

 (1) метод word_count, используемый в вызовах my_paragraph.word_count, возвращающий число слов абзаца 

 (2) метод remove_last_word, используемый как my_paragraph.remove_last_word, удаляющий последнее слово абзаца 

 (3) метод justify, используемый как my_paragraph.justify, выравнивающий абзац в соответствии с установленными границами для левого и правого поля 

 (4) метод extend, используемый как my_paragraph.extend (my_word), имеющий слово в качестве аргумента и добавляющий его в конец абзаца 

 (5) метод word_length, используемый как my_paragraph.word_length (i), у которого целочисленный аргумент задает индекс (порядковый номер) слова в абзаце, а в качестве результата возвращается число символов этого слова 


Упражнение 5:
Номер 1
Какое утверждение о запросе является некорректным?

Ответ:

 (1) вызывается, когда программной системе требуются ресурсы компьютера 

 (2) может быть методом 

 (3) является компонентом класса 

 (4) возвращает значение, характеризующее состояние объекта 

 (5) не изменяет состояние объекта 


Номер 2
Какие утверждения о вызове метода являются корректными?

Ответ:

 (1) у вызова всегда есть цель вызова и вызываемый компонент 

 (2) целью вызова может быть некоторый метод 

 (3) вызываемым компонентом может быть запрос 

 (4) метод может вызывать объект 


Номер 3
Какие утверждения о семантике вызова x.f являются корректными?

Ответ:

 (1) определяет эффект времени компиляции программы 

 (2) определяет эффект времени выполнения программы 

 (3) состоит в том, что к объекту, который обозначает x в момент выполнения, применяется компонент с именем f, принадлежащий классу объекта 

 (4) компонент f применяется к объекту, который обозначает x во время компиляции 


Упражнение 6:
Номер 1
Какое из определений семантики вызова x.f является корректным?

Ответ:

 (1) компонент f всегда изменяет объект x 

 (2) компонент f вызывает объект x 

 (3) эффект времени выполнения вызова x.f состоит в том, что к объекту, который обозначает x в момент выполнения, применяется компонент с именем f, принадлежащий классу объекта 

 (4) эффект времени компиляции вызова x.f состоит в применении компонента с именем f, принадлежащего соответствующему классу, к объекту, который обозначает x в момент компиляции 


Номер 2
Какие правила относятся к стилю программирования?

Ответ:

 (1) имена определяемых объектов должны начинаться с буквы в нижнем регистре 

 (2) в вызове компонента x.f цель вызова должна отделяться от компонента символом "точка" 

 (3) в объявление компонента класса следует сразу же после первой строчки включать комментарий 

 (4) текст каждой строчки начинается на некотором расстоянии от левой границы. Отступы служат для отображения структуры текста 


Номер 3
Какие из утверждений о правилах стиля программирования являются корректными?

Ответ:

 (1) выполнение правил стиля необходимо для корректной работы компилятора 

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

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

 (4) выполнение правил стиля облегчает модификацию и повторное использование программ 

 (5) выполнение правил стиля обязательно для профессионального программирования 


Упражнение 7:
Номер 1
Предположим, что определены классы Car и Owner_of_car, моделирующие понятия "машина" и 
  "владелец машины". У класса Car определены методы set_owner, mark, color, owner (Команда, позволяющая 
  задать владельца, и три запроса, определяющие марку, цвет и владельца машины). У класса Owner_of_car определен запрос 
  name, возвращающий имя владельца машины. Будем полагать, что определены объекты этих классов – my_car и 
  my_person. Какая программа в соответствии с уже заданными правилами позволяет задать для объекта my_car 
  владельца машины и вывести на консоль свойства, характеризующие марку, цвет машины и имя владельца:

Ответ:

 (1) my_car(set_owner(my_person)) Console.show(my_car.mark) Console.show(my_car.color) Console.show(name) 

 (2) my_car.set_owner(my_person) Console.show(my_car.mark) Console.show(my_car.color) Console.show(my_сar.owner.name) 

 (3) my_car.set_owner(my_person) Console(my_car.mark) Console(my_car.color) Console(my_сar.owner.name) 

 (4) my_car = my_person Console.show(my_car.mark) Console.show(my_car.color) Console.show(my_сar.owner.name) 


Номер 2
Пусть определены классы Book, Page, Paragraph, моделирующие понятия "книга", "страница книги", "абзац". Пусть определен объект my_book, задающий некоторую книгу. Рассмотрим фрагмент кода на языке Eiffel:
Console.show(my_book.pages(j).paragraphs(i).text)

Является ли этот фрагмент синтаксически корректным, если да, то какова его возможная семантика? 

Ответ:

 (1) этот фрагмент синтаксически некорректен, поэтому ошибка возникнет еще на этапе компиляции 

 (2) этот фрагмент синтаксически корректен, но ошибка возникнет на этапе выполнения, поскольку запросы не могут иметь аргументов 

 (3) этот фрагмент синтаксически корректен, и будет выполняться. В результате на консоль будет выведен текст двух страниц книги с номерами I и j 

 (4) этот фрагмент синтаксически корректен. Метод show, вызываемый предопределенным объектом Console, выводит на консоль значение, переданное методу в качестве аргумента. Аргументом является некоторый текст, формируемый цепочкой запросов. Началом цепочки является заданный объект my_book – объект класса Book. У этого класса есть запрос pages с целочисленным аргументом, задающим номер страницы. Запрос возвращает объект класса Page – страницу книги с указанным номером. У класса Page есть запрос paragraphs с целочисленным аргументом, задающим номер абзаца. Запрос возвращает объект класса Paragraph – i-й абзац страницы. Запрос text в классе Paragraph возвращает текст абзаца. Таким образом на консоль будет выведен текст i-го абзаца j-й страницы книги, которую в момент выполнения обозначает объект my_book 


Номер 3
Пусть определены классы Student и Tutor, моделирующие понятия "студент" и его "руководитель". У класса Student есть запрос без аргументов tutor, возвращающий объект класса Tutor. У класса Tutor есть запрос с целочисленным аргументом students(j), возвращающий объект класса Student – студента с номером j в группе, руководимой данным преподавателем. Пусть определены по два объекта каждого из этих классов: student_one, student_two, tutor_one, tutor_two. Какие вызовы синтаксически корректны и в качестве результата дают объект класса Student?

Ответ:

 (1) student_one.student_two 

 (2) tutor_one.student_one 

 (3) tutor_one.students(1) 

 (4) tutor_one.students(2) 

 (5) student_two.tutor 

 (6) student_two.tutor.student(1) 


Упражнение 8:
Номер 1
Укажите корректные высказывания?

Ответ:

 (1) программный объект – это коллекция данных, хранящихся в памяти компьютера 

 (2) программный объект можно рассматривать как машину, обеспечивающую выполнение команд и запросов 

 (3) каждый запрос является командой 

 (4) каждая команда является запросом 

 (5) метод может иметь аргументы 


Номер 2
Укажите корректные высказывания?

Ответ:

 (1) метод может иметь только один аргумент 

 (2) метод всегда имеет аргументы 

 (3) запрос не может иметь аргументы 

 (4) чтобы выполнить метод, некоторый объект должен вызвать этот метод 

 (5) некоторые объекты являются программными моделями объектов физического мира 


Номер 3
Укажите корректные высказывания?

Ответ:

 (1) программную систему можно рассматривать как множество классов, позволяющих создавать, получать доступ и изменять коллекции данных, называемых объектами 

 (2) две точки зрения на объект – коллекция данных и машина, выполняющая запросы и команды, – противоречат друг другу и несовместимы 

 (3) вызов объектом компонента – основная базисная операция ОО программирования 

 (4) результатом выполнения запроса всегда является некоторый объект 

 (5) все объекты программы являются программными моделями объектов физического мира