Информатика: список задач для студентов первого курса — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
Строка 77: Строка 77:
  
 
==Шестая группа задач до 30.03.2013==
 
==Шестая группа задач до 30.03.2013==
# Написать программу решающую задачу о расстановки 8 ферзей на шахматной доске ак, чтобы они не били друг друга. Реализовать абстрактный класс "фигура", от которого наследовать класс "ферзь".
+
# Написать программу решающую задачу о расстановки 8 ферзей на шахматной доске так, чтобы они не били друг друга (найти все возможные решения). Реализовать абстрактный класс "фигура", от которого наследовать класс "ферзь".
 
# Написать класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу) для целых чисел.
 
# Написать класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу) для целых чисел.
  
 
==Седьмая группа задач до 06.04.2013==
 
==Седьмая группа задач до 06.04.2013==
 
# Написать шаблонный класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу).
 
# Написать шаблонный класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу).
 +
 +
==Задание к 16.05.2013==
 +
# Подготовить рассказа (презентацию) по одному из разделов библиотеки [http://www.boost.org/doc/libs/1_53_0/ boost]. Раздел должен быть достаточно обширным, в противном случае выбрать несколько небольших разделов.
 +
 +
==Восьмая группа задач до 19.05.2013==
 +
# Написать шаблонный класс реализующий функциональность шаблонов произвольного ранга (ранг должен быть параметром шаблона).
 +
  
 
==Последняя группа задач до 30.05.2013==
 
==Последняя группа задач до 30.05.2013==

Версия 15:41, 25 апреля 2013

Результаты студентов

Имя Список оставшихся задач I Список оставшихся задач II Список оставшихся задач III Список оставшихся задач IV Список оставшихся задач V
Авдеев Даниил 2,3,5(2),7(2) 2,3(2),4,5 1,2,3 1,2 1
Богданов Дмитрий 1(5,6,7),3(3,4) 2(2(2),3(2),4),4 1,2,3 1,2 1
Бондарев Сергей 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Ефремов Дмитрий 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Киселев Павел 1,2,3(4,5,6),5(2) 1,2,3,4,5 1,2,3 1,2 1
Новикова Наталья 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Погодина Валерия 1,3(4,5,6),4,5(2),7(1),8,9 2(1,2(2),4),4,5 1,2,3 1,2 1
Поцелуев Павел 1
Солодовников Владислав 1,2,3,4,5 1,2,3,4,5 1,2,3 1,2 1
Теницкая Татьяна 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Федоренко Максим 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Хайтин Дмитрий 1,2,3,4,5,6,7,8,9 2(2(2),3(2)),4,5(2) 1,2,3 1,2 1
Черкасова Екатерина 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1
Шаяхметов Данил 1,2,3,4,5,6,7,8,9 1,2,3,4,5 1,2,3 1,2 1


Список задач

Первая группа задач до 16.02.2013

  1. Написать программу, которая рассчитывает из, введённых пользователем, двух чисел их сумму, разность, произведение, частное, среднее арифметическое, среднее геометрическое, первое число в степени второго.
  2. Написать программу, которая проверяет является ли число, введённое пользователем, "перевертышем" (121, 12321).
  3. Написать программу, которая из четырёх чисел, введённых пользователем, находит минимальное, максимальное, среднее арифметическое, среднее геометрическое, ближайшее к среднему арифметическому, ближайшее к среднему геометрическому.
  4. Написать программу, которая подсчитывает количество цифр в числе, введённом пользователем.
  5. Написать программу, которая подсчитывает ! и !! от числа, введённого пользователем.
  6. Написать программу, которая возводит введённое пользователем число в целую степень (введённую пользователем).
  7. Написать программу, которая вычисляет наименьшее общее кратное(НОК) и наибольший общий делитель(НОД), введённых пользователем, двух чисел.
  8. Написать программу, которая решает квадратное уравнение, коэффициенты которого заданы пользователем.
  9. Написать программу, которая находит сумму цифр числа, введённого пользователем.

Вторая группа задач до 25.02.2013

  1. Написать программу, которая вычисляет сколько раз буква, заданная пользователем, встречается в строке.
  2. Написать программу, которая вычисляет количество отрицательных элементов, минимальный элемент и его позицию, максимальный элемент и его позицию, выводит массив элементов, значения которых находятся в промежутке [a,b], оставляя на месте остальных элементов "пропуски". Массив заполняется случайным образом, размер массива, a, b, задаются пользователем.
  3. Написать программу, которая вычисляет сумму элементов, количество различных чисел, в массиве. Массив заполняется случайным образом, размер массива, задаётся пользователем.
  4. Написать программу, которая разделяет двумерный массив на два (с чётными и не четными элементами) с сохранением их положения, оставшиеся элементы заполняются нулями. Массив заполняется случайным образом, размер массива, задаётся пользователем.
  5. Написать программу, которая сортирует двумерный массив по строкам слева на право по убыванию, по диагонали(в верхнем левом углу наибольший элемент, в правом нижнем наименьший). Массив заполняется случайным образом, размер массива, задаётся пользователем.

Третья группа задач до 02.03.2013

  1. Оформить предыдущие задачи в виде функций (Можно заменить на 3* и 4).
  2. Написать функцию интегрирования, принимающую три параметра: указатель на функцию, начало отрезка, конец отрезка. Интегрирования проводить сложением трапеций.
  3. Написать функцию сортировки массива (* использовать нетривиальные алгоритмы сортировки. Сложность алгоритма < [math]O\left(n^2\right)[/math] ).
  4. Написать функцию решающую систему линейных уравнений методом Гауса (не обязательное, если решена 1).

Четвёртая группа задач до 12.03.2013

  1. Написать класс векторов с тремя public полями типа double. Реализовать в классе функцию вывода на экран: void print();. Создать конструктор без параметров который задаёт все три компоненты вектора случайным образом в промежутке [-1,1]. Реализовать конструктор с одним параметром double, который задаёт длину вектора (компоненты вектора случайны). Реализовать конструктор с тремя параметрами double, которые задают координаты. Реализовать конструктор с одним параметром "вектор", который задаёт координаты.
  2. Написать функцию поиска коэффициентов A, B (y = A*x + B) линейной аппроксимации методом наименьших квадратов, если заданы два массива X, Y значений некоторой функции (Y[i] = f(X[i]).

Пятая группа задач до 18.03.2013

  1. (Текстовая графика) Написать три класса:
    1. Класс квадратов, храни координаты цента и размер (double), создаёт целочисленный массив (char), который является изображением квадрата.
    2. Класс окружностей, храни координаты цента и размер (double), создаёт целочисленный массив (char), который является изображением окружности.
    3. Класс, хранящий полное изображение, реализован метод позволяющий добавлять геометрические элементы (push_back) (все линии остаются видимыми), реализован метод выводящий финальный массив на экран или в файл.

С помощью системы классов изобразить окружность пересекающую квадрат, при этом центр квадрата и окружности не совпадают.

Шестая группа задач до 30.03.2013

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

Седьмая группа задач до 06.04.2013

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

Задание к 16.05.2013

  1. Подготовить рассказа (презентацию) по одному из разделов библиотеки boost. Раздел должен быть достаточно обширным, в противном случае выбрать несколько небольших разделов.

Восьмая группа задач до 19.05.2013

  1. Написать шаблонный класс реализующий функциональность шаблонов произвольного ранга (ранг должен быть параметром шаблона).


Последняя группа задач до 30.05.2013

  1. Написать текстовую игру в стиле Dungeons & Dragons (или можно выбрать другой) например игрок проходит через лабиринт.

Работать в группах, не менее двух групп на курс. Игра должна быть интересной.

См. также