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

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
м
Строка 5: Строка 5:
  
 
* Преподаватель: [[Панченко Артем Юрьевич]]
 
* Преподаватель: [[Панченко Артем Юрьевич]]
* Семестр: весна 2013
+
* Семестр: весна 2015
* Группа: [[Группа 08|08]] (10510)
+
* Группа: [[Группа 11|11]] (13604/1)
 
* Предмет: [[Информатика]]
 
* Предмет: [[Информатика]]
  
Задача I (Шахматы):
+
=Задача I (Шахматы)=
 +
 
 
Написать программу находящую и записывающую все возможные различные варианты расстановка '''N''' фигур на доске '''MxM''', где '''M''' четное. Во-вторых программы должна искать максимальное количество фигур, которое можно расставить на доске '''MxM'''.
 
Написать программу находящую и записывающую все возможные различные варианты расстановка '''N''' фигур на доске '''MxM''', где '''M''' четное. Во-вторых программы должна искать максимальное количество фигур, которое можно расставить на доске '''MxM'''.
 +
Программа должна содержать меню, позволяющее выбрать один из двух вариантов работы. Код программы следует подробно комментировать.
 +
 +
Программу в архиве, краткое описание алгоритма и инструкцию разместить на странице [[Информатика: Расстановка шахматных фигур]] в сворачивающимся разделе.
 +
 +
=Задача II (Функции)=
 +
 +
Написать класс, позволяющий сохранять дискретные значения функции <math>y=f(x)</math> на интервале <math>[a,b]</math> с шагом <math>\Delta x</math>. Перегрузить арифметические операции для работы с функциями, заданными на одинаковом интервале и равным шагом. Добавить функции линейной интерполяции для изменения шага и линейной аппроксимации, функции позволяющие записывать и читать из файла дискретные значения. Добавить комментарии.
 +
 +
Программу в архиве, краткое описание алгоритма и инструкцию разместить на странице [[Информатика: Функции]] в сворачивающимся разделе.
 +
 +
=Презентация по сторонней библиотеке C++=
 +
Подготовить презентацию по сторонней библиотеке C++ на 10 мин. в формате ''pdf'' или ''ppt'', ''pptx''. Описание библиотеки, презентацию, программы демонстрирующие работу библиотеки разместить на странице [[Информатика: Библиотеки C++]], разместив в сворачивающимся разделе.
 +
 +
 +
 +
 +
 +
 +
  
  
Строка 18: Строка 38:
 
{|align="center" cellpadding="10" cellspacing="3" border="1"
 
{|align="center" cellpadding="10" cellspacing="3" border="1"
 
|+
 
|+
|  '''Имя'''        ||Список оставшихся задач I||Список оставшихся задач II||Список оставшихся задач III||Список оставшихся задач IV||Список оставшихся задач V||Список оставшихся задач VI||Список оставшихся задач VII||Задание||Список оставшихся задач VIII
+
|  '''Имя'''        ||Задача I||Задача II||Презентация||Задача III
 
|-
 
|-
| [[Авдеев Даниил]]          ||2,3,5(2),7(2)||2,3(2),4,5||1,2,3||1,2||1||1,2||1|| ||1
+
| [[Абрамов Игорь]]          || || || ||  
 
|-
 
|-
| [[Богданов Дмитрий]]       || || || || || || ||1|| ||1
+
| [[Ананьев Евгений]]       || || || ||  
 
|-
 
|-
| [[Бондарев Сергей]]        ||1,2,3,4,5,6,7,8,9||1,2,3,4,5||1,2,3||1,2||1||1,2||1|| ||1
+
| [[Андреева Полина]]        || || || ||  
 
|-
 
|-
| [[Ефремов Дмитрий]]       ||1,2,3,4,5,6,7,8,9||1,2,3,4,5||1,2,3||1,2||1||1,2||1|| ||1
+
| [[Бальцер Анастасия]]     || || || ||  
 
|-
 
|-
| [[Киселев Павел]]         || ||1,2,3,4,5||1,2,3||1,2||1||1,2||1|| ||1
+
| [[Белоусова Екатерина]]   || || || ||  
 
|-
 
|-
| [[Новикова Наталья]]       || || ||3|| || ||1,2||1|| ||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,2||1|| ||1
+
| [[Гильманов Илья]]         || || || ||  
 
|-
 
|-
| [[Поцелуев Павел]]        || || || || || ||1,2||1|| ||  
+
| [[Демченко Артем]]        || || || ||  
 
|-
 
|-
| [[Солодовников Владислав]] ||1,2,3,4,5||1,2,3,4,5||1,2,3||1,2||1||1,2||1|| ||1
+
| [[Жуков Илья]]             || || || ||  
 
|-
 
|-
| [[Теницкая Татьяна]]       || || || || || ||1,2||1|| ||1
+
| [[Иванова Яна]]           || || || ||  
 
|-
 
|-
| [[Федоренко Максим]]       ||1,2,3,4,5,6,7,8,9||1,2,3,4,5||1,2,3||1,2||1||1,2||1|| ||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||1||1||1
+
| [[Киселев Лев]]           || || || ||  
 
|-
 
|-
| [[Черкасова Екатерина]]     ||1,2,3,4,5,6,7,8,9||1,2,3,4,5||1,2,3||1,2||1||1,2||1||1||1
+
| [[Козловская Анна]]       || || || ||  
 
|-
 
|-
| [[Шаяхметов Данил]]        ||1,2,3,4,5,6,7,8,9||1,2,3,4,5||1,2,3||1,2||1||1,2||1||1||1
+
| [[Лебедев Станислав]]      || || || ||
 +
|-
 +
| [[Лобанов Илья]]          || || || ||
 +
|-
 +
| [[Лосева Татьяна]]        || || || ||
 +
|-
 +
| [[Ляжков Сергей]]          || || || ||
 +
|-
 +
| [[Нарядчиков Александр]]  || || || ||
 +
|-
 +
| [[Романенко Глеб]]        || || || ||
 +
|-
 +
| [[Рубинова Раиса]]        || || || ||
 +
|-
 +
| [[Савельева Ольга]]        || || || ||  
 +
|-
 +
| [[Сенников Иван]]          || || || ||
 +
|-
 +
| [[Степанянц Степан]]      || || || ||
 +
|-
 +
| [[Сюрис Александр]]        || || || ||
 +
|-
 +
| [[Тимошенко Валентина]]    || || || ||
 +
|-
 +
| [[Уманский Александр]]    || || || ||
 +
|-
 +
| [[Шавлович Александр ]]    || || || ||  
 
|}
 
|}
  
  
 
= Список задач =
 
==Первая группа задач до 16.02.2013==
 
# Написать программу, которая рассчитывает из, введённых пользователем, двух чисел их сумму, разность, произведение, частное, среднее арифметическое, среднее геометрическое, первое число в степени второго.
 
# Написать программу, которая проверяет является ли число, введённое пользователем, "перевертышем" (121, 12321).
 
# Написать программу, которая из четырёх чисел, введённых пользователем, находит минимальное, максимальное, среднее арифметическое, среднее геометрическое, ближайшее к среднему арифметическому, ближайшее к среднему геометрическому.
 
# Написать программу, которая подсчитывает количество цифр в числе, введённом пользователем.
 
# Написать программу, которая подсчитывает ! и !! от числа, введённого пользователем.
 
# Написать программу, которая возводит введённое пользователем число в целую степень (введённую пользователем).
 
# Написать программу, которая вычисляет наименьшее общее кратное(НОК) и наибольший общий делитель(НОД), введённых пользователем, двух чисел.
 
# Написать программу, которая решает квадратное уравнение, коэффициенты которого заданы пользователем.
 
# Написать программу, которая находит сумму цифр числа, введённого пользователем.
 
 
==Вторая группа задач до 25.02.2013==
 
# Написать программу, которая вычисляет сколько раз буква, заданная пользователем, встречается в строке.
 
# Написать программу, которая вычисляет количество отрицательных элементов, минимальный элемент и его позицию, максимальный элемент и его позицию, выводит массив элементов, значения которых находятся в промежутке <nowiki>[</nowiki>a,b], оставляя на месте остальных элементов "пропуски". Массив заполняется случайным образом, размер массива, a, b, задаются пользователем.
 
# Написать программу, которая вычисляет сумму элементов, количество различных чисел, в массиве. Массив заполняется случайным образом, размер массива, задаётся пользователем.
 
# Написать программу, которая разделяет двумерный массив на два (с чётными и не четными элементами) с сохранением их положения, оставшиеся элементы заполняются нулями. Массив заполняется случайным образом, размер массива, задаётся пользователем.
 
# Написать программу, которая сортирует двумерный массив по строкам слева на право по убыванию, по диагонали(в верхнем левом углу наибольший элемент, в правом нижнем наименьший). Массив заполняется случайным образом, размер массива, задаётся пользователем.
 
 
==Третья группа задач до 02.03.2013==
 
# Оформить предыдущие задачи в виде функций (Можно заменить на 3* и 4).
 
# Написать функцию интегрирования, принимающую три параметра: указатель на функцию, начало отрезка, конец отрезка. Интегрирования проводить сложением трапеций.
 
# Написать функцию сортировки массива (* использовать нетривиальные [http://ru.wikipedia.org/wiki/Алгоритм_сортировки алгоритмы сортировки]. Сложность алгоритма < <math>O\left(n^2\right)</math>  ).
 
# Написать функцию решающую систему линейных уравнений методом Гауса (не обязательное, если решена 1).
 
 
==Четвёртая группа задач до 12.03.2013==
 
# Написать класс векторов с тремя ''public'' полями типа ''double''. Реализовать в классе функцию вывода на экран: ''void print();''. Создать конструктор без параметров который задаёт все три компоненты вектора случайным образом в промежутке [-1,1]. Реализовать конструктор с одним параметром ''double'', который задаёт длину вектора (компоненты вектора случайны). Реализовать конструктор с тремя параметрами ''double'', которые задают координаты. Реализовать конструктор с одним параметром "вектор", который задаёт координаты.
 
# Написать функцию поиска коэффициентов ''A'', ''B'' (''y = A*x + B'') линейной аппроксимации методом наименьших квадратов, если заданы два массива ''X'', ''Y'' значений некоторой функции (''Y[i] = f(X[i]'').
 
 
==Пятая группа задач до 18.03.2013==
 
# (Текстовая графика) Написать три класса:
 
## Класс квадратов, храни координаты цента и размер (''double''), создаёт целочисленный массив (''char''), который является изображением квадрата.
 
## Класс окружностей, храни координаты цента и размер (''double''), создаёт целочисленный массив (''char''), который является изображением окружности.
 
## Класс, хранящий полное изображение, реализован метод позволяющий добавлять геометрические элементы (''push_back'') (все линии остаются видимыми), реализован метод выводящий финальный массив на экран или в файл.
 
С помощью системы классов изобразить окружность пересекающую квадрат, при этом центр квадрата и окружности не совпадают.
 
 
==Шестая группа задач до 30.03.2013==
 
# Написать программу решающую задачу о расстановки 8 ферзей на шахматной доске так, чтобы они не били друг друга (найти все возможные решения). Реализовать абстрактный класс "фигура", от которого наследовать класс "ферзь".
 
# Написать класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу) для целых чисел.
 
 
==Седьмая группа задач до 06.04.2013==
 
# Написать шаблонный класс реализующий функциональность связанного списка (добавление, удаление элемента, доступ к произвольному элементу).
 
 
==Задание к 16.05.2013==
 
# Подготовить рассказа (презентацию) по одному из разделов библиотеки [http://www.boost.org/doc/libs/1_53_0/ boost]. Раздел должен быть достаточно обширным, в противном случае выбрать несколько небольших разделов.
 
 
==Восьмая группа задач до 19.05.2013==
 
# Написать шаблонный класс реализующий функциональность тензоров произвольного ранга (ранг должен быть параметром шаблона).
 
 
 
==Последняя группа задач до 30.05.2013==
 
# Написать [http://ru.wikipedia.org/wiki/Interactive_fiction текстовую игру] в стиле Dungeons & Dragons (или можно выбрать другой) например игрок проходит через лабиринт.
 
Работать в группах, не менее двух групп на курс. Игра должна быть интересной.
 
 
[[Category: Программирование]]
 
[[Category: Программирование]]
  

Версия 16:09, 1 ноября 2015

Кафедра ТМ > Учебная работа > Курсы лекций> Информатика: список задач для студентов первого курса


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

Задача I (Шахматы)

Написать программу находящую и записывающую все возможные различные варианты расстановка N фигур на доске MxM, где M четное. Во-вторых программы должна искать максимальное количество фигур, которое можно расставить на доске MxM. Программа должна содержать меню, позволяющее выбрать один из двух вариантов работы. Код программы следует подробно комментировать.

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

Задача II (Функции)

Написать класс, позволяющий сохранять дискретные значения функции [math]y=f(x)[/math] на интервале [math][a,b][/math] с шагом [math]\Delta x[/math]. Перегрузить арифметические операции для работы с функциями, заданными на одинаковом интервале и равным шагом. Добавить функции линейной интерполяции для изменения шага и линейной аппроксимации, функции позволяющие записывать и читать из файла дискретные значения. Добавить комментарии.

Программу в архиве, краткое описание алгоритма и инструкцию разместить на странице Информатика: Функции в сворачивающимся разделе.

Презентация по сторонней библиотеке C++

Подготовить презентацию по сторонней библиотеке C++ на 10 мин. в формате pdf или ppt, pptx. Описание библиотеки, презентацию, программы демонстрирующие работу библиотеки разместить на странице Информатика: Библиотеки C++, разместив в сворачивающимся разделе.






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

Имя Задача I Задача II Презентация Задача III
Абрамов Игорь
Ананьев Евгений
Андреева Полина
Бальцер Анастасия
Белоусова Екатерина
Васильева Анастасия
Гильманов Илья
Демченко Артем
Жуков Илья
Иванова Яна
Капитанюк Светлана
Киселев Лев
Козловская Анна
Лебедев Станислав
Лобанов Илья
Лосева Татьяна
Ляжков Сергей
Нарядчиков Александр
Романенко Глеб
Рубинова Раиса
Савельева Ольга
Сенников Иван
Степанянц Степан
Сюрис Александр
Тимошенко Валентина
Уманский Александр
Шавлович Александр

См. также