Задачи 2017 (1171688)
Текст из файла
Лабораторные работы по курсу «Основы программирования»Общее количество занятийВремя каждого занятия163 часаБЛОК 1. Основы языка С.Неделя 1. (Вводное занятие)Рассказ о плане занятий. Среды разработки Qt / MSVS. Настройка среды изапуск программы.Запуск программы «Hello World!» / Сохранить проект себе на сетевой диск /флэшку.Переменные: целочисленные и с плавающей точкой, арифметическиеоперации, вывод значений переменных.Особенности деления и приведение типов.Ввод и вывод значений переменных и текста.Оператор ветвления IF.Разбор решения задачи «Программа решения линейного уравнения».Этапы создания проекта/программыКодирование, компиляция и запускРазбор типовых ошибок (ошибки компиляции, деление на 0)Сохранение проектаНеделя 2.Оператор ветвления, блок-схемы, условное исполнение. Форматированиекода.Алгоритм решения задачи – блок схемаБазовый оператор цикла FOR.
Представление в виде блок-схемы.Операторы цикла WHILE и DO-WHILE как частные случаи FOR.Форматирование кода на примере вложенных циклов.Подключение математической библиотеки. Функция извлеченияквадратного корня.11.Программа решения квадратного уравнения (усвоение оператора ветвления иконтроля типов). целочисленные коэффициенты задаются пользователем с клавиатуры разветвление решения на случай линейного и квадратного уравнения контроль корректности деления и извлечения квадратного корня2.Печать всех простых чисел не превышающих N (усвоение вложенныхоператоров цикла) N задается пользователем с клавиатуры точная реализация математического определения: «имеет 2 делителя» собственная реализация проверки делимости через приведение типов методы оптимизации вычисления: 0 делителей, ограничение цикла.Неделя 3. Отладочная печать как метод отладки программ. printf() – контроль количества выводимых знаков после запятой.3.Вычислить число π с заданной точностью (кол-во знаков после запятой),используя ряд Грегори вычисления суммы бесконечного ряда, не зная количества необходимыхчленов собственная реализация правила округления проверка критерия остановки счета вывод количества потребовавшихся членов рядаНеделя 4. Локальные и глобальные переменные.
Пересечение имен. Объявление и реализация собственных функций. Параметры функции –локальные переменные. Использование отладчика. Пошаговое исполнение как метод отладкипрограмм. Контроль значений переменных во время отладки программ.4.Программа для решения уравнения вида F(x) = 0 методом Ньютона.2 Функция F(x) задается преподавателем Функция и ее производная задаются в тексте программы в виде отдельныхфункций float Func(float x)иfloat dFunc(float x) Начальное приближение и требуемая точность вычисления задаются склавиатуры Проверьте свой ответ, используя открытые ресурсы в Интернете5.Вычисление интеграла функции F(x) методом трапеций Используется та же функция, что и задаче 4 Функция задается в тексте программы в виде отдельной функции floatFunc(float x) шаг (количество разбиений) задается пользователем с консоли. Оцените точность вычисления Проверьте свой ответ, используя открытые ресурсы в ИнтернетеНеделя 5.6.Статические массивы данных.Директивы препроцессора.
Глобальные константы и #defineУказатели. Арифметика указателей.Выделение и освобождение памятиПрограмма по вычислению максимума, минимума, среднего значения,среднеквадратичного отклонения во введенном статическом массивемаксимальный размер массива задается #define, а размер – пользователемхранение массива в виде глобальной переменнойцелочисленные элементы массива задаются пользователем с клавиатурынаписание собственных функций, передача параметров, возвращениезначений7.не используйте указатели в программеПрограмма по вычислению максимума, минимума, среднего значения,среднеквадратичного отклонения во введенном динамическом массиверазмер массива задается пользователемцелочисленные элементы массива задаются пользователем с клавиатурыВыделение и освобождение памяти в функции main()3Работа с элементами через указатели, не используйте оператор доступа кэлементу массива []Неделя 6.8.Алгоритм сортировки пузырьком.ОптимизацииСортировка введенного динамического массивареализация алгоритма сортировки пузырьком и его оптимизациинаправление сортировки задает пользовательреализация единой функции сортировки в соответствии с математическоймоделью, за счет выделения функций Compare() и Replace()реализуйте в программе несколько функций сравнения, для различныхалгоритмов сортировки (по убыванию, по возрастанию, по абсолютномузначению), и передайте указатель на соответствующую функцию сравненияв единую функцию сортировкиБЛОК 2.
Символы, строки, структуры данных и списки.Неделя 7. Символьный тип char. Таблица ASCII. Ввод / вывод (%c) Строка как массив символов. ‗\0‘. (спецификатор %s)9.Обработка текста введенного пользователем текст хранится в статическом массиве заданного размера (ограничение наразмер вводимого текста) реализация функции коррекции текста:1) большая буква только в начале предложения или в начале текста,2) удаление нескольких пробелов, следующих подряд,3) удаление пробелов перед точкой и запятой,4) добавление пробела после знаков препинания.410. Реализация функции ввода текста произвольного размера: char*GetTextromConsole() Конец текста обозначается спецсимволом # Выделение точного количества необходимой памяти (собственная функцияперевыделения памяти без использования realloc() ) Использование функции корректировки из задачи 9 Ввод текста из консоли или файла (задается с консоли)Неделя 8. Многомерные массивы данных. Структуры данных.
Использование Typedef Работа с файлами. Запись /чтение Методы определения конца файла11. Работа с матрицами 3х3 Структура Matrix_3x3 для хранения данных Данные хранятся в виде статического двумерного массива (floatdata[3][3]) Функции вычисления суммы, произведения, определителя и обратнойматрицы Исходная матрица заполняется целыми числами Добавьте возможность чтения матрицы из файла (название задаетпользователь с экрана) Результат операций выводится на экран и сохраняется в файлНеделя 9. Рекурсивные функции Генератор случайных чисел.(*1) Работа с матрицами NхM Структура Matrix_NxM для хранения данных Данные хранятся в виде динамического массива. Функция InitMatrix задает размер и выделяет память.5 Функция PrintMatrix выводит матрицу на экран в табличном виде Функции вычисления суммы, произведения, определителя и обратнойматрицы Исходная матрица должна заполняться из файла или случайнымичислами Результат операций выводится на экран и сохраняется в файл Вычисление определителя с использованием рекурсивной функции(разложение по строке)Неделя 10-11. Списки данных.
Односвязный список. Добавление элементов, удаление иперестановка.12. Телефонная книга Список из структур данных СPeople Поля данных: имя, фамилия, номер телефона, дата рождения Функции добавления элемента, удаления (по имени-фамилии), сортировки(по любому полю) Собственная реализация функции сравнения строк Реализация «пользовательского меню» (действие выбирает пользователь сконсоли) Функция сохранения списка в файл и загрузки из файла (с добавлением либозаменой по выбору пользователя)Неделя 12-13. Текстовая графика (библиотека CONLIB): позиционирование, перерисовка,управление цветом. Заполнение заданным количеством препятствий в случайных местах спомощью генератора случайных чисел. Интерактивность: реагирования на действия пользователя.(*2) «Бродилка» в случайном лабиринте6 Размер поля соответствует размеру консоли Края поля выделены символами «|» и ―-‖ Пользователь задает процент заполнения препятствиями Корректность заполнения при 1%, 99% и 100% Карта препятствий хранится в отдельной структуре Pole (дин.
массивданных) Контроль невозможности наступить на препятствия и выйти за границуДополнительная задача Игра «собери яблоки»2 типа препятствий: съедобные яблоки и стена (процент задаетпользователь)Наличие входа и выхода из лабиринта – контроль проходимостиСохранение/восстановление карты и состояния игрыКритерии оценки:«Удовлетворительно»задачи 1-7 + 11 (обязательно)«Хорошо»требования на «3» + задачи 8, 9, 10«Отлично»требования на «4» + задача 12 + одна задача со (*)В конце семестра во время лекции проводится письменная контрольная работа.Положительная оценка за контрольную работу засчитывается как +1 задача (ксоответствующей оценке).7ПРИЛОЖЕНИЕ. Подробное описание задач1. Программа решения квадратного уравненияОписаниеНапишите программу, которая вычисляет корни квадратного уравнения.
Поведениепрограммы должно зависеть от варианта решения:уравнение имеет 2 вещественных корня;уравнение имеет 1 вещественный корень;уравнение не имеет решений;любое вещественное значение будет корнем данного уравнения.Коэффициенты задаются пользователем с клавиатуры (в консоли) в виде целыхзначений.
Корни уравнения ищем в виде вещественных чисел.Основные требования к реализацииПрограммаимеет«дружественныйинтерфейс».Вначалепрограммапечатаетинформацию о себе, затем сообщает, какие параметры должен ввести пользователь. Послерасчета корней квадратного уравнения спрашивает у пользователя, хочет ли он решитьеще одно уравнение.Теория1.
Повторите разделы теоретической части:a. Типы данных: целочисленные и вещественные. Спецификаторы дляввода-выводаb. Оператор ветвления IF-ELSEc. Использование IF в качестве условного оператораd. Оператор цикла FOR.e. Разбор блок схемы работы цикла FOR (в каких местах стоят поля)f. Циклы WHILE и DO-WHILE как частные случаи for (разбор блок-схем)g. Правила форматирования кода, использование {}2. Особенности сравнения вещественных чисел в языке СВыполнять сравнение на равенство вещественных чисел в языке С в общемслучае некорректно. Это связано с особенностями представления чисел сплавающей точкой в памяти.
Рекомендуется избегать сравнения на равенствочисел с плавающей точкой. Используйте сравнение на больше или меньше.8Если же вам необходимо выполнить сравнение двух вещественных чисел –используйте следующий подход: выберите значение погрешности eps, которуювы допускаете в своей программе при определении равны числа или нет. Тогдачисла f1 и f2 будут считаться равными, если будет выполняться условие(abs(f1-f2)<eps)Здесь abs возвращает модуль выражения (f1-f2).3. Особенности оператора деления в языке С: (int)/(int), (float)/(int)При делении целочисленных результат - целое, даже если вы указываете вкачестве результата число с плавающей точкой.
Например, float a = 5/2;здесь а равно 2. Для решения данной проблемы можно использоватьприведение типов: ( float ) a / b .4. Правила именования переменныхЯзык С позволяет давать переменным практически любые имена. Тем неменее, существует ряд правил, которых рекомендуется придерживаться длятого, чтобы программный код был более прост для понимания: названия переменных не должны быть слишком длинными названия переменных должны характеризовать свойства или характерзначения, который хранит эта переменная в контексте логики всейпрограммы переменных, состоящих из одного символа, следует избегать, заисключением временных(одноразовых) переменных. Общие именадля временных переменных: i, j, k, m. Общие имена для числовыхпеременных: n.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.















