Slide 1

Slide 1 text

12 ноября 2021 [email protected] Федор Витальевич Бушмелев Проверочная работа. Разбор “полётов”. Теоретическая часть.

Slide 2

Slide 2 text

2/25 2/25 Оцените объем структуры Вопрос: сколько места займет в памяти массив, состоящий из 10 экземпляров таких структур? Ответ: засчитывались и варианты (4 байта + 8 байт)*10 = 120 байт; но правильный ответ 160 байт, т.к. в структурах память выделяется кратно по наибольшему фрагменту структуры (в данном примере double), другими словами 8 байт*10 < (4 байта + 8 байт)*10 < (8 байт + 8 байт)*10 = 160 байт.

Slide 3

Slide 3 text

3/25 3/25 Выводим перечислители Выведет: 4 (байта), т.к. перечислители приравниваются к int.

Slide 4

Slide 4 text

4/25 4/25 Выводим значение функции Выведет: 5 6

Slide 5

Slide 5 text

5/25 5/25 Занимательные инкременты Комментарий: выполнение идет слева направо (постфиксная запись, префиксная запись и умножение); аккуратно проверьте что происходит с переменной а; должно получится следующее: постфиксный возвращает значение 2 и инкрементирует; префиксный сначала инкрементирует и возвращает значение 4, после чего перемножаются возвращаемые значения.

Slide 6

Slide 6 text

6/25 6/25 Объявляем массивы Комментарий: еще раз вспомнить объявление статических и динамических массивов

Slide 7

Slide 7 text

7/25 7/25 Указатели и массивы Комментарий: повторить обозначения связанные с указателями.

Slide 8

Slide 8 text

8/25 8/25 Указатели и ссылки Комментарий: повторить обозначения связанные с указателями и ссылками и аккуратно проследить что происходит с доступом к переменной a.

Slide 9

Slide 9 text

9/25 9/25 Указатели и ссылки Комментарий: внимательно следите за тем что зафиксировано и что Вы пытаетесь изменить.

Slide 10

Slide 10 text

10/25 10/25 Оцените а.в.г. врем. сложности Ответ: O(n2), т.к. всего операций получается 11/6*n2 – полином 2 степени.

Slide 11

Slide 11 text

11/25 11/25 Найдите ошибку 1

Slide 12

Slide 12 text

12/25 12/25 Найдите ошибку 2 Комментарий: несоответствие типов, компилятор видит как «int* = int (*)[]».

Slide 13

Slide 13 text

13/25 13/25 Статические переменные • Что такое статическая переменная? • В чем разница между объявлением global int и static global int?

Slide 14

Slide 14 text

14/25 14/25 Выводим остаток от деления Ответ: выдаст ошибку, компилятор не может осуществить целочисленное взятие остатка деления от вещественного числа.

Slide 15

Slide 15 text

15/25 15/25 Найди ошибку 3 Ответ: ошибка чисто логическая, задано не то начальное значение переменной factorial.

Slide 16

Slide 16 text

16/25 16/25 Перегрузка функций Ответ: варианты А и С не смогут выполняться одновременно, т.к. компилятор не сможет выбрать какую из функций выполнить, т.к. на вход подаются одинаковые аргументы А С Вы компилятор компилятор

Slide 17

Slide 17 text

12 ноября 2021 [email protected] Олисеенко Валерий Дмитриевич Разбор работ. Практическая часть. Ассистент кафедры информатики

Slide 18

Slide 18 text

18/25 18/25 За что штрафовали? Задачи 1/2 компилятор • Отсутствие интерфейса ввода/вывода —> • Неработающий код —>

Slide 19

Slide 19 text

19/25 19/25 За что штрафовали? Задачи 2/2 компилятор • Пулл-реквесты …..

Slide 20

Slide 20 text

20/25 20/25 Мелкие недочёты. Задачи компилятор • Отсутствие комментариев в коде • Неправильное оформление файлов (.h содержит код) • Задачи разбиты на файлы без связи Источник изображения: https://habr.com/ru/post/280764/

Slide 21

Slide 21 text

21/25 21/25 Разбор задач 1/2 компилятор – Алфавит языка племени «тумба-юмба» содержит всего несколько букв. Найдите все слова длины K, которые можно построить с помощью этого алфавита и в которых нет двух гласных букв, стоящих рядом. Гласными считаются буквы 'A', 'E', 'I', 'O' и 'U’. – Входные данные Первая входная строка содержит алфавит языка племени «тумба-юмба». Под алфавитным порядком подразумевается порядок перечисления букв в этой строке. Во второй строке записывается число K ( K ≥ 1 ). – Выходные данные Программа должна вывести все допустимые слова, которые можно составить с помощью заданного алфавита. Слова должны быть выведены по одному в строке в алфавитном порядке. После всех слов в отдельной строке выводится их количество.

Slide 22

Slide 22 text

22/25 22/25 Разбор задач 2/2 компилятор Данное решение было доступно только при очном разборе задачи.

Slide 23

Slide 23 text

23/25 23/25 Практические задания (до 19.11.2021) компилятор 1. Напишите программу, которая: спрашивает у пользователя, сколько имен он хочет ввести; просит пользователя ввести каждое имя; вызывает функцию для сортировки имен (написать самостоятельно) в алфавитном порядке; выводит отсортированный список имен. 2. Написать программу, которая: принимает 3 переменные; создает на них указатели и передает эти указатели по ссылке в функцию, присваивающую первой из этих переменных большее, второй — среднее, а третьей — меньшее из введенных значение. 3. Написать функцию, принимающую указатель на число типа int и переставляющую его байты по циклу (число типа int занимает 4 байта; функция должна записывать содержимое 0-го байта в 1-й, 1-го во 2-й, 2-го в 3-й и 3-го — в 0-й). 4. Написать функцию, печатающую строку «Hello world! I was born!!!» при первом вызове, при последующих N (определяемое динамически) выводит строку «I'm alive» и далее строку «Bye, bye, dear, I'm already asleep...» при всех последующих вызовах.

Slide 24

Slide 24 text

24/25 24/25 Домашнее задания (до 10.12.2021) компилятор Напишите программу «МойФайловыйМенеджер» со следующим функционалом: • Смена текущего каталога на указанный (текущий путь должен быть всегда указан). • Отображение всех подкаталогов текущего каталога. • Отображение всех файлов текущего каталога. • Создание нового каталога в текущем каталоге. • Удаление существующего каталога (если каталог не пустой то удалить всё, что в нём используя рекурсию). • Создание нового файла в текущем каталоге. • Удаление файла в каталоге. • Вывод содержимого файла на экран. • Весь функционал должен использоваться через интерфейс в консоли. СЛОЖНО Библиотека для выполнения операций с файловыми системами и их компонентами: https://en.cppreference.com/w/cpp/filesystem

Slide 25

Slide 25 text

12 ноября 2021 [email protected] Олисеенко Валерий Дмитриевич Разбор работ. Практическая часть. Ассистент кафедры информатики