Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Программирование – 1 курс осень 2021 – 8 занятие

F21d69109b1c03921abf7d12f0fb6654?s=47 ТиМПИ
November 12, 2021

Программирование – 1 курс осень 2021 – 8 занятие

F21d69109b1c03921abf7d12f0fb6654?s=128

ТиМПИ

November 12, 2021
Tweet

Transcript

  1. 12 ноября 2021 fvb@dscs.pro Федор Витальевич Бушмелев Проверочная работа. Разбор

    “полётов”. Теоретическая часть.
  2. 2/25 2/25 Оцените объем структуры Вопрос: сколько места займет в

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

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

  5. 5/25 5/25 Занимательные инкременты Комментарий: выполнение идет слева направо (постфиксная

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

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

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

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

    что зафиксировано и что Вы пытаетесь изменить.
  10. 10/25 10/25 Оцените а.в.г. врем. сложности Ответ: O(n2), т.к. всего

    операций получается 11/6*n2 – полином 2 степени.
  11. 11/25 11/25 Найдите ошибку 1

  12. 12/25 12/25 Найдите ошибку 2 Комментарий: несоответствие типов, компилятор видит

    как «int* = int (*)[]».
  13. 13/25 13/25 Статические переменные • Что такое статическая переменная? •

    В чем разница между объявлением global int и static global int?
  14. 14/25 14/25 Выводим остаток от деления Ответ: выдаст ошибку, компилятор

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

    не то начальное значение переменной factorial.
  16. 16/25 16/25 Перегрузка функций Ответ: варианты А и С не

    смогут выполняться одновременно, т.к. компилятор не сможет выбрать какую из функций выполнить, т.к. на вход подаются одинаковые аргументы А С Вы компилятор компилятор
  17. 12 ноября 2021 v.oliseenko@spbu.ru Олисеенко Валерий Дмитриевич Разбор работ. Практическая

    часть. Ассистент кафедры информатики
  18. 18/25 18/25 За что штрафовали? Задачи 1/2 компилятор • Отсутствие

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

    …..
  20. 20/25 20/25 Мелкие недочёты. Задачи компилятор • Отсутствие комментариев в

    коде • Неправильное оформление файлов (.h содержит код) • Задачи разбиты на файлы без связи Источник изображения: https://habr.com/ru/post/280764/
  21. 21/25 21/25 Разбор задач 1/2 компилятор – Алфавит языка племени

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

    только при очном разборе задачи.
  23. 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...» при всех последующих вызовах.
  24. 24/25 24/25 Домашнее задания (до 10.12.2021) компилятор Напишите программу «МойФайловыйМенеджер»

    со следующим функционалом: • Смена текущего каталога на указанный (текущий путь должен быть всегда указан). • Отображение всех подкаталогов текущего каталога. • Отображение всех файлов текущего каталога. • Создание нового каталога в текущем каталоге. • Удаление существующего каталога (если каталог не пустой то удалить всё, что в нём используя рекурсию). • Создание нового файла в текущем каталоге. • Удаление файла в каталоге. • Вывод содержимого файла на экран. • Весь функционал должен использоваться через интерфейс в консоли. СЛОЖНО Библиотека для выполнения операций с файловыми системами и их компонентами: https://en.cppreference.com/w/cpp/filesystem
  25. 12 ноября 2021 v.oliseenko@spbu.ru Олисеенко Валерий Дмитриевич Разбор работ. Практическая

    часть. Ассистент кафедры информатики