Примерный план сдачи задач для первого курса

по курсу  Работа на ЭВМ и программирование (первый семестр)

 

Все написанное, прежде всего, относится к группам, в которых я веду семинары. В других группах преподаватели могут использовать, а могут и не использовать, или частично использовать данные инструкции.

 

Задачи на последовательности.

В функцию, решающую задачу, передается имя файла с последовательностью. Результат работы функции также возвращается через параметры.

1.       21.09

2.       05.10

3.       12.10

Задачи на массивы.

Ввод массива из файла должен быть оформлен в отдельной функции. Требуется создать две функции чтения массива из файла: первая предполагает, что в файле задано количество чисел и сами числа, а во второй количество чисел задается, собственно, их количеством в файле (количество чисел в файле отдельным числом не задается). Считается, что функция некорректно отработала, если файл с заданным именем не удается открыть, или если реальное количество чисел в файле меньше количества чисел в файле, заданного в начале файла . При решении задач следует в одних случаях использовать первую функцию, а в других вторую.

Функция, решающая задачу, должна корректно работать, в том числе, на пустых массивах.

4.       26.10

5.       02.11

6.       09.11

Задачи на битовые операции.

7.       16.11

Задачи на сортировки.

8.       23.11

9.       30.11

Задачи на вычислительную геометрию.

10.   14.12

11.   20.12

 

В последующем тексте присутствуют термины, которые будут объясняться на семинарах.

Следует внимательно прочитать текст с формулировками задач. Там присутствует некоторое количество нетривиальных определений и там же присутствуют формулы для получения номеров задач по своему номеру в группе.

Следует иметь в виду, что, по крайней мере, задачи по первым двум темам принимаются со всевозможной жест[о]костью и занудством. От студента, прежде всего, требуется научиться делать в точности то, что от него хотят (преподаватель/заказчик), а не то, что студенту хочется (здесь имеется в виду что студент думает, что от него хотят). В принципе, с понимания этой запутанной фразы и начинается настоящее программирование.

Под решением всех задач (кроме, быть может, первой) подразумевается написание 1)функции, решающей задачу, 2)теста на эту функцию. Это, прежде всего, подразумевает, что функция не должна ничего знать об условиях своего вызова и должна корректно работать при любых значениях параметров (разумеется, по возможности).

Все параметры (входные и выходные) должны передаваться в функцию через параметры. Код возврата функции должен указывать на степень решения задачи, возложенной на функцию.

Все вышесказанное предполагает, что программа должна состоять, как минимум, из трех файлов:  1)файла с функцией, решающе задачу, 2)файла с функцией main, тестирующей функцию, 3)include-файла с описанием всех созданных функций.

Все задачи принимаются только на семинаре, но вопросы можно задавать по почте.

Все задачи, начиная, с пятой принимаются только в случае, если сборка задачи осуществляется с помощью make.