Skip to content

9 й ф.м. класс (2017 2018, полугодие 1)

Yuriy Syrovetskiy edited this page Dec 26, 2017 · 5 revisions

Table of Contents

Темы

[05.09.2017]
т.0. Техника безопасности.

т.1. Введение. Некоторые единицы измерения: байты, герцы.

т.2. Введение. Сервер.

[12.09.2017]
т.3. Язык программирования Си. Программа Hello world.
[26.09.2017]
т.4. Общая схема работы компилятора языка Си: сборка программного проекта.

т.5. Форматирование текста программ.

т.6. Арифметические операции. Переменные: объявление и использование. Операция присваивания. Тип int.

т.7. Форматный ввод-вывод для целочисленных значений.

[03.10.2017]
т.8. Компиляция и интерпретация.

т.9. Как делать д.з. по программированию.

т.10. Безымянные файлы и письма без тем.

т.11. Сообщения компилятора об ошибках.

[10.10.2017]
т.12. Escape-последовательности для записи управляющих символов (повторение по мотивам д.з. 2.b).

(Повторение.) Форматный ввод-вывод для целочисленных значений.

т.13. Условный оператор if. Вариант оператора if с альтернативой (if . . . else . . .) и без (if . . . ).

т.14. Синтаксис и семантика конструкций языка программирования.

т.15. Блок-схема. Граф потока управления.

[17.10.2017]
(Повторение.) Форматирование текста программ.

т.16. Составной оператор.

(Повторение.) Граф потока управления.

[24.10.2017]
т.17. Операции сравнения.

т.18. Логические операции.

[07.11.2017]
(Повторение.) Escape-последовательности для записи управляющих символов.

(Повторение.) Форматный ввод-вывод.

[14.11.2017]
(Разбор идей для решения д.з.6.2)

т.19. Вычисление максимума и минимума.

т.20. Обмен переменных значениями при помощи временной переменной.

т.21. Обмен переменных значениями при помощи арифметических операций.

[21.11.2017]
т.22. Оператор цикла for.

т.23. Сокращённые операции присваивания.

т.24. Инкремент и декремент: простейшее использование.

[28.11.2017]
(Повторение.) Составной оператор.

т.25. Оператор-выражение.

т.26. Трассировка программ. Выполнение программ "вручную".

[05.12.2017]
т.27. Числовые типы данных: типы float и double.

т.28. Обработка последовательно вводимых значений: последовательность с известным количеством элементов. Вычисление среднего арифметического и максимума.

[12.12.2017]
т.29. Оператор цикла for: использование логической переменной для завершения цикла.

т.30. Оператор цикла for: "сквозное" использование одного и того же счётчика в последовательных циклах.

[19.12.2017]
(Повторение.)

Контрольные работы

к.р. 1.

[24.10.2017]
[21.11.2017] (bis)
Перевод сообщений компилятора. Запись строковых литералов. Форматная печать. Запись арифметических выражений.

к.р. 2.

[12.12.2017]
Таблицы истинности для логических выражений. Трассировка программы "вручную".

Домашние задания

д.з. 0.

[05.09.2017]
Пришлите культурно оформленное письмо по электронной почте вашему преподавателю. Представьтесь и расскажите немного о себе (хотя бы пару предложений).
Achtung!!!
Если вам не ответили, значит, вы послали куда-то не туда!

д.з. 1.

[12.09.2017]
Установите на своём домашнем компьютере (ноутбуке) какую-либо среду разработки для языка Си (например, Code::Blocks — см.: Как установить Code::Blocks, Code::Blocks не компилирует).

Напишите программу на языке Си, которая "здоровается" по-английски с кем-нибудь или чем-нибудь (только не с world-ом).

Запустите программу, сделайте снимок экрана (см. Как сделать снимок экрана) с запущенной вашей программой и средой разработки, которую вы используете. Пришлите снимок экрана (в формате JPG с расширением... .jpg) и файл с исходным текстом вашей программы (тот, который с расширением .c) .

д.з. 2.a

[26.09.2017]
Посмотрите мультик: https://youtu.be/_C5AHaS1mOA

Если получится что-то понять :) , попробуйте записать себе в конспект, что такое компиляция и что такое интерпретация, чтобы можно было поговорить об этом на ближайшем уроке.

д.з. 2.b

[26.09.2017]
Задание на умение искать в интернете. Нужно самостоятельно попробовать разобраться с особенностями записи строковых констант (ещё их называют строковыми литералами) в языке Си.

Вопросы, на которые надо попытаться как-то ответить (письмом):

  • При помощи каких поисковых систем вы искали?
  • Какие поисковые запросы использовали? (Использование в том числе и англоязычного поиска только приветствуется!)
  • Информацию каких страниц вы в результате использовали для ответов на остальные вопросы (см. ниже)?
  • Какие сочетания символа обратной наклонной черты ( \ ) кроме \n используются для записи строковых констант и что они означают? (Если для ответа вы решите написать простенькую программку для экспериментальной проверки, тогда присылайте и её!)
  • Как можно разбить запись одной строковой (текстовой) константы в тексте программы на языке Си на несколько строчек? Вопрос именно про запись строковой константы в тексте программы, в то время как значение этой константы может означать текст, состоящий из одной строчки. (Чтобы не запутаться в формулировке вопроса — см. Терминологическая путаница: строка).

д.з. 2.c

[26.09.2017]
calculator v.1
Напишите программу, которая запрашивает и считывает два целых числа (условно назовём их a и b)? производит над ними все арифметические операции (сложение, вычитание, умножение, деление, вычисление остатка от деления) и "дружелюбно" печатает их результат.

Требуемый формат вывода на примере конкретных значений (1 и -7):

  a = 1
  b = -7
  a + b = 1 + -7 = -6
  . . . . .

Присылать надо текст программы и снимки экрана с её запусками, которые должны убеждать потенциального пользователя вашей программы, что программа работает правильно!

д.з. 3

[03.10.2017]
Посмотрите мультфильм из д.з.2.a заново (уже со знанием дела после пройденных на уроке тем).

Доделывайте д.з.2.b и д.з.2.c. (Найдите про запись строковых литералов на нескольких строках!)

Заполните на листке с таблицей сообщений об ошибках столбец переводов. Не забудьте принести на следующий урок!!!

д.з. 4

[10.10.2017]
calculator v.2
Усовершенствуйте программу из д.з.2.c следующим образом:
  • после ввода значений программа должна печатать пронумерованный набор пунктов-альтернатив - возможных арифметических действий над значениями, после чего считывать введённый пользователем номер выбранной им "альтернативы" и выполнять соответствующее действие.
  • объединить вывод частного целочисленного деления и остатка от деления в одну альтернативу (соответствующую делению), продумать вывод результата, приближенный к математической записи
  • предусмотреть корректную обработку нулевого значения делителя (при выборе деления): программа не должна совершать в таком случае операцию деления, а выводить текст, предупреждающий о некорректности такой операции.
  • предусмотреть выдачу предупреждения в случае ввода пользователем некорректного номера "альтернативы".

д.з. 5

[17.10.2017]
Напишите программу, которая считывает 3 целочисленных значения, а затем печатает их в порядке невозрастания (т.е. от большего к меньшему, подумайте, кстати, почему в формулировке не написано "в порядке убывания"). Для решения задачи программа должна использовать операторы if (т.е. без циклов, рекурсии и т.д.). Постарайтесь минимизировать количество сравнений, которые программе нужно будет производить в процессе своей работы.

д.з. 6

[24.10.2017]

д.з. 6.1

Напишите программу, которая считывает 4 целочисленных значения: a1, b1 и a2, b2 - концы 2-х числовых отрезков на числовой прямой ([a1, b1] — 1-й отрезок, [a2, b2] — 2-й, при этом границы каждого из отрезков не обязательно упорядочены по возрастанию и могут даже совпадать), затем считывает ещё одно целочисленное значение x, для которого печатает (через пробел) номера отрезков, которым оно принадлежит, если не принадлежит ни одному, то печатает 0.

д.з. 6.2

Напишите программу, которая считывает 4 целочисленных значения: a1, b1 и a2, b2 - концы 2-х числовых отрезков на числовой прямой ([a1, b1] — 1-й отрезок, [a2, b2] — 2-й, при этом границы каждого из отрезков не обязательно упорядочены по возрастанию и могут даже совпадать), а затем печатает информацию о пересечении этих отрезков - в следующем виде (вместо x и y печатаются, разумеется, конкретные значения):

  • либо: {} - если пересечение это пустое множество точек,
  • либо: { x } - если пересечение это ровно одна точка,
  • либо: [x,] - если пересечение это отрезок (причём при печати x должен быть строго меньше y).

д.з. 7

[21.11.2017]

д.з. 7.1

Напишите программу, которая запрашивает и считывает целое значение и печатает соответствующее этому значению количество символов "звёздочка" (*) в одну строчку.

д.з. 7.2

Напишите программу, которая запрашивает у пользователя и считывает значение начального члена арифметической прогрессии, её шаг и количество членов для печати, после чего печатает в столбик заданное количество членов прогрессии.

д.з. 7.3

Напишите программу, которая запрашивает у пользователя и считывает значение начального члена геометрической прогрессии, её делитель и количество членов для печати, после чего печатает в столбик заданное количество членов прогрессии.

д.з. 8

[28.11.2017]

д.з. 8.1

Напишите программу, которая запрашивает и считывает два целых положительных числа - основание и показатель для возведения в степень, после чего вычисляет результат возведения в степень и печатает его. Для возведения в степень небходимо последовательно домножать промежуточный результат на значения основания внутри оператора цикла for (библиотечными функциями возведения в степерь пользоваться нельзя).

д.з. 8.2

calculator v.3
В программу - целочисленный калькулятор из д.з.4 добавьте операцию целочисленного(!) возведения в степень при помощи алгоритма из д.з.8.1. Внимание: калькулятор целочисленный, значит, и возведение в степерь строго целочисленное! Предусмотрите диагностику, когда операция некорректна или её нельзя выполнить в рамках целых чисел.

д.з. 9

[05.12.2017-12.12.2017]
Напишите программу для вычисления характеристик набора числовых значений, вводимых последовательно. Программа должна запрашивать у пользователя количество значений, которое необходимо будет обработать, а затем последовательно каждое из этих значений, после чего печатать вычисленные значения всех требуемых характеристик.

Программу следует делать поэтапно: например, вначале сделать версию только для вычисления среднего арифметического, а затем добавлять вычисление остальных характеристик.

д.з.9.1

  • минимальное значение;
  • максимальное значение.
  • среднее арифметическое;

д.з.9.2

  • среднее гармоническое;

д.з.9.3

  • среднее геометрическое;
Внимание! В отличие от среднего арифметического, значения среднего гармонического и среднего геометрического имеют смысл только для строго положительных наборов значений. Поэтому, если хотя бы одно введённое значение окажется нулевым или отрицательным, вместо печати каждого из этих средних в программе стоит предусмотреть печатать сообщения, что соответствующее среднее значение не определено (undefined).

Указание: Для вычисления корня n-ной степени воспользуйтесь функцией возведения в произвольнуб степень pow стандартной библиотеки (необходимо подключить заголовочный файл math.h).

д.з. 10

[12.12.2017-19.12.2017]
Напишите программу, которая запрашивает и считывает количество числовых отрезков для обработки, а затем значения границ этих отрезков (желательно предусмотреть случай, когда пользователь вводит границы одного отрезка в невозрастающем порядке), после чего печатает результат пересечения отрезков в виде
  • либо: [a, b] (если пересечение - это отрезок),
  • либо: { x } (если пересечение - одна-единственная точка),
  • либо {} (если пересечение пусто)
(разумеется, вместо a, b, x печатаются какие-то конкретные числовые значения).
Clone this wiki locally