Всі записи автора BestProgISch

Quiz – Тренування-01

Тренування опитування.

Опитування:

Train Test-01

Тренувальний тест.

1 / 1

Скільки буде 5 + 15?

Арифметика.

Ваш бал

Середній бал 75%

0%

Категорія тестів:

Категорія: Python - тести. Теорія

Тести з різних тем мови програмування Python. Теоретичні питання та практика.

Python. Розділ-2. Тема 2.1: "Рядки. Загальні поняття. Оголошення рядка. Операції над рядками"

1 / 13

Дайте правильне визначення рядка у мові Python.

2 / 13

До якого класу об'єктів належать рядки?

3 / 13

Виберіть варіант правильного опису літералу рядка у програмі.

4 / 13

Які рядкові типи підтримуються в Python?

5 / 13

Чи існує в Python тип, що описує одиночний символ?

6 / 13

Виберіть базові оператори, які використовуються для роботи з рядками у мові Python.

7 / 13

Який результат буде в рядку s4 після виконання наступної послідовності дій:

s1 = 'ABC's2 = '+'s3 = 'DEF's4 = s1 * 0 + s2 + s3 * 2

8 / 13

Скільки символів '+' буде виведено на екран у результаті виконання такого коду:

s = "++" * 3 * 2print(s)

9 / 13

Яке значення отримає змінна c у результаті виконання наступного коду:

s = "Python"c = s[2]

 

10 / 13

Задано наступний рядок коду:

s1 = "0123456789"

Який фрагмент коду є правильним, в результаті якого змінна s2 отримає значення "456"?

11 / 13

Задано два рядки s1 та s2. У яких випадках ці рядки вважаються рівними?

12 / 13

Які операції порівняння можна застосовувати до рядків?

13 / 13

Якою операцією можна перевірити наявність символу в рядку?

Ваш бал

Середній бал 77%

0%

Python. Розділ-2. Тема 2.2: "Екрановані послідовності. Неформатовані рядки. Багаторядкові блоки тексту"

Python. Розділ-2. Тема 2.2: "Екрановані послідовності. Неформатовані рядки. Багаторядкові блоки тексту"

1 / 6

Що таке екранована послідовність?

2 / 6

Виберіть варіанти, в яких немає екранованих послідовностей.

3 / 6

Яке значення отримає змінна length у результаті виконання наступного коду:

s = 'B\n\135'length = len(s)

якщо '\n' та '\135' це символи екранованої послідовності.

4 / 6

Який префікс має символ, що представлений у шістнадцятковій системі числення?

5 / 6

Виберіть варіант, в якому подавляється механізм екранування для коректного відображення рядка:

c:\3\table.txt

6 / 6

Яким чином у мові Python формуються багаторядкові блоки тексту?

Ваш бал

Середній бал 87%

0%

Python. Розділ 2. Тема 3.1. Списки. Властивості списків

1 / 10

Що таке список у мові програмування Python?

2 / 10

Виберіть правильне твердження, що стосується властивостей списків:

3 / 10

Який список буде отримано у результаті виконання наступного фрагменту коду:

L = []i = 1while i < 5:    L = L + [i]    i = i + 1

4 / 10

Який список буде отримано у змінній L результаті виконання наступного фрагменту коду:

L = list('1234')

5 / 10

Який результат буде виведено на екран після виконання наступної послідовності операторів:

L = list(range(5,10))print('L = ', L)

 

6 / 10

Яке твердження є правильним стосовно операції list?

7 / 10

Як здійснюється доступ до елементу списку за його індексом?

8 / 10

Яким чином збільшити довжину списку?

9 / 10

Якою операцією можна визначити довжину списку з іменем L?

 

 

10 / 10

Який результат дасть операція присвоювання списків A=B?

 

Ваш бал

Середній бал 30%

0%

Python. Розділ 2. Тема 1.1. Представлення даних у Python. Поняття об'єкту. Ідентичність, тип, значення об'єкту

1 / 10

Яким чином представлені дані у мові програмування Python?

2 / 10

Використання вбудованих об'єктів порівняно з власноруч розробленими дає наступні переваги:

3 / 10

Якими характеристиками володіє кожен об'єкт?

4 / 10

Що таке ідентичність об'єкту?

5 / 10

Яка вбудована функція мови Python визначає ідентичність об'єкту?

6 / 10

Яким чином порівняти два об'єкти на ідентичність?

7 / 10

Що визначає тип об'єкту в Python?

8 / 10

Як отримати тип об'єкту?

9 / 10

Яке значення прийме змінна res у результаті виконання наступних операцій?

a = 3b = 5res = a is b

 

10 / 10

Яке значення прийме змінна z у результаті виконання наступного фрагменту коду?

x, y, z = 9, 10, 11

 

Ваш бал

Середній бал 58%

0%

Python. Розділ 4. Тема 4.1. Словники. Основні поняття. Характеристики. Створення словників

1 / 12

Що таке словник у мові програмування Python?

2 / 12

Виберіть пункти, які визначають особливості застосування словників.

3 / 12

Виберіть варіанти, що визначають основні характеристики словників.

4 / 12

Виберіть пункти, які визначають відмінності між словниками та списками.

5 / 12

Які значення у словниках не можна використовувати в якості ключів?

6 / 12

Які існують способи створення словника (виберіть правильний варіант)?

7 / 12

Виберіть варіант, в якому немає помилки при створенні словника.

8 / 12

Що буде виведено на екран у результаті виконання наступного фрагменту коду?

D = { 1:'Monday', 2:'Tuesday', 3:'Wednesday'}print(D[2])

 

 

9 / 12

Що буде виведено на екран у результаті виконання наступного фрагменту коду?

D = { 'Winter' : [ 'December', 'January', 'February'],'Spring' : [ 'March', 'April', 'May' ],'Summer' : [ 'June', 'July', 'August' ],'Autumn' : [ 'September', 'October', 'Novemver' ]}print(D['Summer'])

 

 

10 / 12

Що буде виведено на екран у результаті виконання наступного фрагменту коду?

D = dict({1:'One', 2:'Two', 3:'Three'})print(D)

 

11 / 12

Якщо відбувається доступ до неіснуючого ключа, який тип винятку генерується?

12 / 12

Що дає метод get() у наступному зверненні:

D = dict({1:'One', 2:'Two', 3:'Three'})res = D.get(5)print('res = ', res)

 

 

 

Ваш бал

Середній бал 91%

0%

Python. Розділ 5. Тема 5.1. Кортежі. Основні поняття. Властивості кортежів

1 / 10

Що таке кортеж у мові програмування Python?

2 / 10

Яку назву має клас кортежу у Python?

3 / 10

Які з перерахованих тверджень можна віднести до властивостей кортежів?

4 / 10

Виберіть твердження, які є правильними стосовно кортежів та списків.

5 / 10

Що є спільного між кортежами та списками (виберіть правильні твердження)?

6 / 10

Виберіть варіант, який підходить для створення порожнього кортежу з іменем T.

7 / 10

Задано список L

L = [ 1, 2, 3, 4 ]

У якому з варіантів створюється кортеж на основі списку L?

8 / 10

Який результат буде виведено на екран після виконання наступного коду:

Cities = ( 'London', 'Kiev', 'Warsaw', 'Berlin' )print(Cities[2])

 

 

9 / 10

Якою функцією визначається довжина кортежу (кількість елементів у кортежі)?

10 / 10

В якому з варіантів задається кортеж з одним елементом?

Ваш бал

Середній бал 60%

0%

Python. Розділ 4. Тема 4.2. Вбудовані функції та операції обробки словників

1 / 5

Задано наступний фрагмент коду:

Months = { 1 : 'January', 2: 'February', 3: 'March', 4: 'April' }n1 = len(Months)n2 = len Monthsn3 = count(Months)

Який рядок правильно визначає довжину словника?

 

2 / 5

Задано наступний фрагмент коду:

Seasons = {    'Winter' : { 'December', 'January', 'November' },    'Spring' : { 'March', 'April', 'May' },    'Summer' : { 'June', 'July', 'August' },    'Autumn' : { 'September', 'October', 'November' }}print(len(Seasons))print(len(Seasons['Spring']) + 1)print(len Seasons)print(count(Seasons['Summer']) + 1)

У якому випадку буде виведено число 4. Врахуйте, що відповіді можуть містити рядки з помилками.

3 / 5

Яке значення матиме словник Numbers після виконання такого фрагменту коду:

Numbers = { 1: 'One',    2 : 'Two',    3 : 'Three',    4 : 'Four',    5 : 'Five'}del Numbers[3]

 

4 / 5

Якою операцією можна визначити наявність ключа у словнику?

5 / 5

Що буде виведено на екран у результаті виконання наступного фрагменту коду?

Numbers = { 1: 'One',     2 : 'Two',    3 : 'Three',    4 : 'Four',    5 : 'Five'}key = "Four"if key not in Numbers:    print('A')else:    print('B')

 

Ваш бал

Середній бал 100%

0%

 

Patterns. Паттерн Command. Реалізація структури для двох отримувачів


Паттерн Command. Реалізація структури для двох отримувачів. Приклад на C++

У даній темі демонструється приклад програми на мові C++, яка реалізує паттерн Command для двох отримувачів.

 

1. Умова задачі

Використовуючи мову C++ реалізувати паттерн Command для двох отримувачів, структура якого зображена на рисунку 1.

Паттерн Command. Структура для двох отримувачів команди

Рисунок 1. Паттерн Command. Структура для двох отримувачів команди

 

2. Учасники

Учасники паттерну:

  • Client – клієнт, яким у програмі виступає функція main();
  • Command – абстрактний клас, що є інтерфейсом між викликаючим кодом і конкретною командою;
  • ConcreteCommand1, ConcreteCommand2 – класи, що відповідають конкретним командам;
  • Invoker – клас, який викликає конкретну команду через посилання на інтерфейс Command;
  • Receiver – клас, об’єкт якого отримується конкретною командою ConcreteCommand1 або ConcreteCommand2.

 

3. Реалізація на C++

 

// Паттерн Command (Мотивація)
#include <iostream>
using namespace std;

// Клас, який конкретна команда отримує
class Receiver
{
public:
  void Action1()
  {
    cout << "Receiver::Action1()" << endl;
  }

  void Action2()
  {
    cout << "Receiver::Action2()" << endl;
  }
};

//
class Command
{
public:
  // Операція
  virtual void Execute() {}

protected:
  // Конструктор
  Command() { }
};

// Клас виконання конкретної компнди
class ConcreteCommand1 : public Command
{
private:
  Receiver* receiver;

public:
  // Конструктор
  ConcreteCommand1(Receiver* _receiver)
  {
    receiver = _receiver;
  }

  void Execute()
  {
    receiver->Action1();
  }
};

class ConcreteCommand2 : public Command
{
private:
  Receiver* receiver;

public:
  // Конструктор
  ConcreteCommand2(Receiver* _receiver)
  {
    receiver = _receiver;
  }

  void Execute()
  {
    receiver->Action2();
  }
};

// Клас, в якому міститься метод виклику
// тієї чи іншої команди.
// Цей клас зберігає об'єкт типу ConcreteCommand
class Invoker
{
private:
  // Команда
  Command* command;

public:
  // Конструктор
  Invoker(Command* _command = nullptr)
  {
    command = _command;
  }

  // Виклик методу
  void Invoke()
  {
    command->Execute();
  }

  // Метод, що встановлює команду
  void SetCommand(Command* _command)
  {
    command = _command;
  }
};

void main()
{
  // Клієнт (Client)
  Receiver* receiver = new Receiver;

  // Створити команди
  ConcreteCommand1* command1 = new ConcreteCommand1(receiver);
  ConcreteCommand2* command2 = new ConcreteCommand2(receiver);

  // Створити викликаючий клас
  Invoker* invoker = new Invoker;

  // Організація меню
  int cmd;
  while (true)
  {
    cout << "Enter command (1-3): 1 - Command-1, 2 - Command-2, 3 - Exit" << endl;
    cin >> cmd;

    if (cmd == 1)
    {
      invoker->SetCommand(command1);
      invoker->Invoke();  // command1->Execute()
    }

    if (cmd == 2)
    {
      invoker->SetCommand(command2);
      invoker->Invoke();  // command2->Execute()
    }

    if (cmd == 3)
      break;
  }

  if (invoker != nullptr)
    delete invoker;
  if (command1)
    delete command1;
  if (command2)
    delete command2;

  if (receiver != nullptr)
    delete receiver;
}