Задачи 2017 (1171688), страница 4

Файл №1171688 Задачи 2017 (Задачи - Решение (2017)) 4 страницаЗадачи 2017 (1171688) страница 42021-01-26СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Символьный тип char. Таблица ASCII. Ввод / вывод (%c)2. Строка как массив символов. ‗\0‘. (спецификатор %s)3. Предложите, как можно оптимизировать функцию корректировки28функции10.Реализацияфункциивводатекстапроизвольногоразмера:char*GetTextFromConsole()ОписаниеРеализуйте функцию ввода строки произвольного размераОсновные требования к реализации:Функция должна в и итоге выделить ровно столько памяти, сколько символов ввелпользователь. Функцию realloc использовать нельзя. Выделение памяти нужноорганизовать блочно: выделяется массив длинной K символов.

Если пользовательвводит К-й символ, то функция выделяет новый массив, который на К символовдлиннее, копирует в него введенные данные и освобождает старый массив. Вконечном итоге будет массив длинной n*K символов, в котором заполнены не всеэлементы. Программа должна выделить массив нужной длины, скопировать в неговведенные данные, освободить «длинный массив» и вернуть из функции массивнужной длинны.Для определения конца строки используйте символ #Программа должна поддерживать работу функций корректировки строки изпредыдущего задания.Программа должна уметь считывать строку не только из консоли, но и из файла(способ ввода выбирает пользователь)Программа может содержать эти функции:console_input - выполняет «посимвольный» ввод данных с консоли.

в случаенехватки памяти вызывает функцию reallocate_buffer. После ввода строки,вызывает функцию trim_buffer для «отрезки» лишней выделенной памятиfile_input - выполняет «посимвольный» ввод данных из файла. в случае нехваткипамяти вызывает функцию reallocate_buffer. После ввода строки, вызываетфункцию trim_buffer для «отрезки» лишней выделенной памятиmain – выводит информацию о программе, запрашивает у пользователя способввода и вызывает соответствующую функцию.

После выполняет корректировкустроки, выводит ее на экран и освобождает память.29reallocate_buffer – выделяет буфер под вводимые данные большего размера, чемтекущий, копирует туда строку и освобождает использованный, заполненныйбуферtrim_buffer – выделяет буфер под введенные данные ровно того размера, какойнужен и освобождает данные в использованном до этого массивеВопросыПредложите оптимизацию функции, перевыделяющей память3011. Работа с матрицами 3х3ОписаниеПрограмма, выполняющая арифметические операции с матрицами размера 3х3Основные требования к реализации:Программа имеет дружественный интерфейс. Матрицы хранятся в виде структур сполем в виде двумерного статического массива. Исходная матрица заполняетсяцелыми числами.Необходимо поддержать возможность чтения матрицы из консоли и из файла,который введет пользовательПрограмма поддерживает операции: сумма, произведение, определитель иобратная матрицаРезультат вычисления сохраняется в файл (по желанию пользователя)ТеорияОпределитель матрицыОбратная матрицаУмножение матриц31Сложение матрицВопросыДокажите, что обратная матрица в вашей программе вычисляется верно32(*1) Работа с матрицами NхMОписаниеПрограмма, выполняющая арифметические операции с матрицами размера NхMОсновные требования к реализации:Программа имеет дружественный интерфейс.

Матрицы хранятся в виде структур сполем в виде динамического массива. Исходная матрица заполняется целымичислами. Входные данные проверяются на корректность. Все результатывычислений возвращаются в корректном виде (деление на 0 исключить).Необходимо поддержать возможность чтения матрицы из файла, который введетпользователь, либо заполняться случайными числамиПрограмма поддерживает операции: сумма, произведение, определитель иобратная матрицаРезультат вычисления сохраняется в файл (по желанию пользователя)Определитель вычисляется рекурсивным алгоритмомПрограмма имеет следующие обязательные функции1.Функция init_matrix задает размер и выделяет память.2.Функция print_matrix выводит матрицу на экран в табличном виде3.Функция sum_matrix суммирует матрицы и возвращает результат.4.Функция mult_matrix вычисляет произведение матриц5.Функция det_matrix вычисляет детерминант6.Функция inv_matrix вычисляет обратную матрицу7.Функция free_matrix задает размер и выделяет память.ТеорияВычисление обратной матрицыadj(A)=С* – присоединенная матрица – составленная из алгебраическихдополнений для соответствующих элементов транспонированной матрицы.33Aij – алгебраическое дополнение к элементам исходной матрицыMij – дополнительный минор, получающийся их исходной матрицы путемвычеркивания i-й строки и j-го столбцаВычисление определителя матрицыВопросыДокажите, что обратная матрица в вашей программе вычисляется верноОпишите по шагам алгоритм вычисления обратной матрицы размером 4х43412.

Телефонная книгаОписаниеНаписать программу, реализующую односвязный список с функциями добавления,удаления и перестановкойОсновные требования к реализации:1.Список из структур данных СPeople2.Поля данных: имя, фамилия, номер телефона, дата рождения3.Функции добавления элемента, удаления (по имени-фамилии), сортировки (полюбому полю)4.Собственная реализация функции сравнения строк5.Реализация «пользовательского меню» (действие выбирает пользователь сконсоли)6.Функция сохранения списка в файл и загрузки из файла (с добавлением либозаменой по выбору пользователя)7.Корректное поведение программы в случае неверных действий пользователя(удаление элемента из пустого списка и т.д.)ТеорияОдносвязный список —структура данных, состоящая из элементов одного типа,связанных между собой последовательно посредством указателей.

Каждый элементсписка имеет указатель на следующий элемент. Последний элемент списка указывает наNULL. Элемент, на который нет указателя, является первым (головным) элементомсписка. Здесь ссылка в каждом узле указывает на следующий узел в списке. Водносвязном списке можно передвигаться только в сторону конца списка. Узнать адреспредыдущего элемента, опираясь на содержимое текущего узла, невозможно.ВопросыНарисуйте блок-схему алгоритмов добавления, удаления, поиска и сортировки данных всписке35(*2) «Бродилка» в случайном лабиринтеОписаниеНаписать игру – бродилку в случайно сгенерированном лабиринтеОсновные требования к реализации:Размер поля соответствует размеру консоли1.2.Края поля выделены символами «|» и ―-‖3.Пользователь задает процент заполнения препятствиями4.Корректность заполнения при 1%, 99% и 100%5.Контроль проходимости лабиринта6.Карта препятствий хранится в отдельной структуре Pole (дин.

массив данных)7.Контроль невозможности наступить на препятствия и выйти за границуТеорияРазделы теоретической части1.Текстовая графика (библиотека CONLIB): позиционирование, перерисовка,управление цветом.2. Интерактивность: реагирования на действия пользователя.Заполнение заданным количеством препятствий в случайных местах с помощьюгенератора случайных чисел.Алгоритм заполнения:Формируем цикл, в котором будут заполняться кирпичи в лабиринте. Причинаостановки цикла: счетчик поставленных в лабиринте кирпичей равен планируемомуколичеству.

На каждом шаге цикла:С помощью генератора случайных чисел выбираете случайные координатыX,Y, куда хотите поставить «кирпич» в лабиринте. Если в этом месте ужеесть кирпич, то проходим цикл заново. Если кирпича нет – ставим кирпич,увеличиваем счетчик кирпичей на 1, идем цикл заново.Данный алгоритм не предусматривает варианта, когда пользователь хочет поставитькирпичей больше, чем количество свободных клеток. Для обработки такого случаянеобходима дополнительная проверка.36Алгоритм контроля проходимости по правым поворотамНаиболее наглядный способ контроля проходимости лабиринта – обход по правойстороне. Если в результате вы придете обратно к входу – выход недоступен.

Еслипридете к выходу – значит доступен.Алгоритм контроля проходимости по заполнению лабиринтаПомечаем место входа в лабиринт флажком. Далее пробегаем по всему лабиринтуи ставим в окрестности каждого флажка еще флажки. Данную процедуру повторяемдо тех пор, пока пробежав по всему лабиринту, не поставим ни одного новогофлажка. После этого проверяем, стоит ли флажок на позиции выхода из лабиринта.Если стоит – значит лабиринт проходим.Вопросы Оцените сложность алгоритма заполнения лабиринта, реализованного вами Предложите варианты оптимизации алгоритма заполнения лабиринта Плюсы и минусы реализованного вами алгоритма контроля проходимостилабиринта. Его вычислительная сложностьПредложите, как можно оптимизировать заполнение лабиринта37Игра «собери яблоки»ОписаниеИгра «собери яблоки» (―змейка‖)Основные требования к реализации:1.

Змейка ходит по полю и не останавливается2. 2 типа препятствий: съедобные яблоки и стены (процент задает пользователь)3. Интерактивность: Змейка ходит с постоянной скоростью (задает пользователь).Пользователь может менять направление ее движения4. Задача игрока – собрать все яблоки на поле5. Сохранение/восстановление карты и состояния игры6. Игра интерактивная. «Змейка» увеличивает размер пропорционально съеденнымяблокам.7.

Пользователю нельзя врезаться в стены и в себя38.

Характеристики

Тип файла
PDF-файл
Размер
819,89 Kb
Тип материала
Высшее учебное заведение

Список файлов курсовой работы

Решение задач 2017
Готовые задачи
1 kvadr-ur
Debug
kvadr ur.exe
kvadr ur.ilk
kvadr ur.pdb
second.exe
second.ilk
second.pdb
second
Debug
BuildLog.htm
kvadr ur.exe.embed.manifest
kvadr ur.exe.embed.manifest.res
kvadr ur.exe.intermediate.manifest
main.obj
mt.dep
second.exe.embed.manifest
second.exe.embed.manifest.res
second.exe.intermediate.manifest
vc90.idb
vc90.pdb
main.c
second.vcproj
second.vcproj.CLASSES.163-kichigin.user
second.vcproj.win7.alkichigin.user
second.ncb
kvadr ur.ncb
kvadr ur.sln
kvadr ur.suo
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7027
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее