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

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

ТиМПИ
November 12, 2021

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

ТиМПИ

November 12, 2021
Tweet

More Decks by ТиМПИ

Other Decks in Programming

Transcript

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

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

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

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

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

    операций получается 11/6*n2 – полином 2 степени.
  6. 13/25 13/25 Статические переменные • Что такое статическая переменная? •

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

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

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

    смогут выполняться одновременно, т.к. компилятор не сможет выбрать какую из функций выполнить, т.к. на вход подаются одинаковые аргументы А С Вы компилятор компилятор
  10. 18/25 18/25 За что штрафовали? Задачи 1/2 компилятор • Отсутствие

    интерфейса ввода/вывода —> • Неработающий код —>
  11. 20/25 20/25 Мелкие недочёты. Задачи компилятор • Отсутствие комментариев в

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

    «тумба-юмба» содержит всего несколько букв. Найдите все слова длины K, которые можно построить с помощью этого алфавита и в которых нет двух гласных букв, стоящих рядом. Гласными считаются буквы 'A', 'E', 'I', 'O' и 'U’. – Входные данные Первая входная строка содержит алфавит языка племени «тумба-юмба». Под алфавитным порядком подразумевается порядок перечисления букв в этой строке. Во второй строке записывается число K ( K ≥ 1 ). – Выходные данные Программа должна вывести все допустимые слова, которые можно составить с помощью заданного алфавита. Слова должны быть выведены по одному в строке в алфавитном порядке. После всех слов в отдельной строке выводится их количество.
  13. 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...» при всех последующих вызовах.
  14. 24/25 24/25 Домашнее задания (до 10.12.2021) компилятор Напишите программу «МойФайловыйМенеджер»

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