Спасибо. Печально всё это, придётся переделывать мои планы
Да, не будет
Прошу следующих студентов больше не загружать архивы в домашние задания:
- Завгороднев Евгений
- Кузнецов Роман
- Нидилько Алена
- Никогосян Мамикон
- Проскурин Дмитрий
- Рязанова Анна
- Сидоренко Максим
- Чернова Лилия
Выбора нормальной схемы именования файлов вполне хватает, чтобы разделить домашние и лабораторные (к примеру, как делалось на первом курсе — htask-N.cpp task-N.cpp — зачем вас этому учили?..). Лимит файлов был 15 штук, этого хватало всем перечисленным выше.
Возникает ощущение, что некоторые студенты на первом курсе научились только создавать архивы.
Просьба к студентам: ознакомиться со статьями, опубликованными на странице курса, ко второму занятию следующей недели.
Также, к первому занятию полезной может оказаться статья Википедия: Линейный конгруэнтный метод.
Приятного окончания выходных!
В бонусном задании #2 (задачи проекта Эйлер) написано, что файлы с решениями необходимо отправить в д/з #3. В моей подгруппе об этом забыли студенты:
- Мирзоев Денис
- Панченко Антон
- Паращевин Алексей
- Рядченко Кристина (нет #3)
- Сюндюков Вадим
- Тян Вячеслав
- Шаповалова Марина
- Элларян Ара
Я сейчас добрая, поэтому от перечисленных студентов ожидаю до 11 утра файлы с решениями на почту julbel@sfedu.ru. Без файлов решений бонусные баллы обнуляются.
Я пока получила файлы только от одного студента. Жду ещё полтора часа!
На этот раз архивы загрузили студенты:
- Ерецян Григорий
- Зинченко Сергей
- Игнатенко Иван
- Корниенко Артур
- Нидилько Алёна
- Никогосян Мамикон
- Сидоренко Максим
Та же самая просьба: избегайте загрузки архивов.
Предлагаю снимать по баллу за архивы.
Поддерживаю. Со следующего раза?
Давайте со следующего.
Небольшой комментарий к задаче #3 д/з #3:
Дан целочисленный массив A размера N, содержащий хотя бы одно чётное число. Найти первое и последнее чётное число в данном массиве.
Многие решали эту задачу так, будто дан не массив, а последовательность чисел, вводимая с клавиатуры. То есть последовательно слева направо обрабатываем элементы массива, последнее чётное обновляем всегда, а первое — по какому-то условию/флажку. При таком решении всегда обрабатываются все элементы массива.
В массиве все числа уже известны, обрабатывать их можно в любом порядке. Последнее чётное число — это первое чётное число, если смотреть с конца. Поэтому данную задачу можно решить двумя циклами с break
.
При таком решении в худшем случае будет обработан N + 1 элемент (если в массиве только один чётный элемент, он будет обработан дважды), а если чётных элементов несколько, то «середину» массива между первым и последним вообще не нужно обрабатывать.
Ещё несколько замечаний по итогам проверки д/з #3.
Как показывает многолетняя практика, систематическое невыполнение домашних заданий коррелирует с плохими результатами контрольной работы.
Лабораторные работы нужно доделывать дома.
В моей подгруппе у большинства студентов обнаружилась проблема в задаче #1: перечислимый тип объявили, а в подпрограмме использовали тип int
. И зачем тогда вообще было перечислимый тип объявлять?
В задаче #6 почти у всех есть такой код:
b[j] = a[i];
++j;
Это хороший пример того, что многие пока не чувствуют, когда можно использовать постфиксную операцию ++
и идиому i++
, а когда нужен просто инкремент. Здесь будет хорошо смотреться i++
:
b[j++] = a[i]
Это повод ещё раз подумать над ++i
vs i++
!
Проверила к/р в своей подгруппе.
Опубликован методический материал к этой неделе: Преобразование типов C++, просьба ознакомиться до первого занятия. Релевантный материал лекций: указатели и адреса. Ко второму стоит освежить в памяти материал лекции про указатели на функции.
Ещё прошу ответственных студентов своей подгруппы, напомнить остальным, что в четверг в 8:00 в 202 будет лабораторная за прошлую неделю, когда отключили свет.
@dimanpro не стоит постить тут ответы к задачам, да ещё бонусным. Если есть вопросы, лучше подходить на консультации (мои, например, указаны здесь).
По вашему коду. В задаче написано, что приближение зависит напрямую от качества случайности. Вы сильно портите качество случайности операцией %
. Следует использовать получение из rand()
вещественного числа от 0 до 1, которое описано в Разговорнике.
srand
в этой задаче необязателен, по идее.