Программирование
| Тип работы: | Все Задача Курсовая работа Лабораторная работа Ответы на вопросы |
| Язык программирования: | Все Bash Basic C C# C# ASP .NET C++ Delphi Fortran Free Basic HTML Java JavaScript Pascal Pascal ABC Turbo Pascal VBA Visual Basic Ассемблер |
| Блок-схема: | Все Есть Нет |
-
Однонаправленные+, двунаправленные, циклические списки ("Закон Джозафа - Иосифа Флавия"))
Стек, очередь, Бинарное дерево *Двунаправленное, вместо Next - Массив.*.
______________________________
|| задание
Поиск подстроки в строке ("Алгоритм Кнута Моррис Пратт") , "Алгоритм Бойера- Мура", "Алгоритм Рабина-Карпа"
3 метода
___________________________________
||| задание
Сортировка 5 методов (3 набора) -
400 руб.
Практическая работа № 5
Алгоритм поиска в отсортированных массивах
Постановка задачи
Составить программу поиска заданного элемента по ключу в одномерном целочисленном массиве A[n], используя алгоритм согласно варианту индивидуального задания. Провести тестирование программы на исходном массиве, сформированном вводом с клавиатуры. Рабочий массив A сформировать с использованием генератора псевдослучайных чисел. Провести контрольные прогоны программы для размеров массива n = 100, 1000, 10000, 100000 и 1000000 элементов в трех режимах: на массивах, строго убывающих, строго возрастающих и случайных чисел и сделать вывод о зависимости (устойчивости) алгоритма от исходной упорядоченности массива.
Провести эмпирическую (практическую) оценку вычислительной сложности алгоритма, для чего предусмотреть в программе подсчет фактического количества операций сравнения Сф.
Полученные результаты свести в сводную таблицу. Построить в одной координатной плоскости графики зависимости теоретической О(n)=f(С(n)) и эмпирической (Сф(n)) вычислительной сложности алгоритма от количества элементов в массиве n.
Сравнить вычислительную сложность алгоритма с вычислительной сложностью алгоритма последовательного поиска. Экспериментально оценить долю случаев, когда последовательный поиск выполняется быстрее, чем быстрый поиск.
Провести анализ полученных результатов. Сделать выводы о проделанной работе, основанные на полученных результатах.
Сводная таблица результатов
n
f(C)
Cф
100
1000
10000
100000
1000000
Варианты индивидуальных заданий
№
Алгоритм
5.1
Двоичного поиска
5.2
С использованием бинарного дерева поиска
5.3
Фибоначчиего поиска
5.4
Поиска хэшированием
5.5
Поиска по бору
5.6
Поиска Рабина-Карпа
Практическая работа № 6
Алгоритмы поиска строк в тексте
Постановка задачи
Составить программу поиска первого вхождения заданной строки P длиной m символов в тексте S, размером n символов, используя алгоритм согласно варианту индивидуального задания. Уточнение: настоящая задача поиска сводится к нахождению в тексте (массиве) S индекса, начиная с которого строка P полностью совпадает с фрагментом текста S. В частном случае заданная строка может отсутствовать в тексте.
Провести тестирование программы на исходном массиве, сформированном вводом с клавиатуры.
Рабочий текст (массив) сформировать из произвольного текстового файла, например, романа Л.Н. Толстого «Война и мир». Провести контрольные прогоны программы как минимум на трех текстовых файлах различной длины.
Провести эмпирическую (практическую) оценку вычислительной сложности алгоритма, для чего предусмотреть в программе подсчет фактического количества операций посимвольного сравнения Сф и сдвигов подстроки Мф относительно текста.
Полученные результаты свести в сводную таблицу. Построить в одной координатной плоскости графики зависимости теоретической О(n)=f(С+М) и эмпирической (Сф+Мф) вычислительной сложности алгоритма от размера текста (количества элементов в массиве) n.
Сравнить вычислительную сложность алгоритма с вычислительной сложностью алгоритма прямого поиска строки.
Провести анализ полученных результатов. Сделать выводы о проделанной работе, основанные на полученных результатах.
Сводная таблица результатов
n
f(C+М)
Cф+Мф
Варианты индивидуальных заданий
№
Алгоритм
6.1
Прямого поиска строки
6.2
Кнута-Морриса-Пратта
6.3
Бойера-Мура
6.4
Поиска хэшированием
Практическое задание №7
Линейные динамические списки
- 1. Однонаправленные списки
Постановка задачи
Определите список операции над списками варианта, включая операцию добавления узла в начало списка, вывода списка. Разработайте для каждой операции функцию с параметрами. Информационная часть узла имеет тип int.
Реализуйте программу решения задачи варианта.
Вариант 1
Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят хотя бы в один из списков L1 и L2.
Вариант 2
Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят одновременно в оба списка L1 и L2.
Вариант 3
Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят в список L1 и не входят в список L2.
Вариант 4
Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят в один из списков L1 и L2 и в не входят в другой.
- 2. Двунаправленные списки
Постановка задачи
Разработать многомодульную программу, которая демонстрирует выполнение всех операций, определенных вариантом, над линейным двунаправленным динамическим списком.
Требования к разработке.
- Разработать структуру узла списка, структура информационной части узла определена вариантом. Для определения структуры узла списка, используйте тип struct. Сохраните определение структуры узла в заголовочном файле.
- Разработайте функции для выполнения операции над линейным динамическим списком:
- вывод списка в двух направлениях
- поиск узла с заданным значением (операция должна возвращать указатель на узел с заданным значением).
- Дополнительные операции над списком, указанные вариантом оформите в виде функций и включите в отдельный файл с расширением cpp. Подключите к этому файлу заголовочный файл с определением структуры узла.
- Разработайте программу, управляемую текстовым меню, и включите в меню демонстрацию выполнения всех операций задания и варианта.
- Проведите тестирование операций.
- Оцените сложность алгоритма первой дополнительной операции для реализации линейного списка:
- на линейном динамическом списке
- на одномерном массиве.
Примечание. В определении информационной части узла варианта, подчеркнутое поле считать полем ключа.
Варианты
Вариант
Тип информационной части узла списка
Дополнительные Операции
1
Номер зач. книжки, Номер группы, Оценка.
Вставить новый узел перед первым узлом с таким же ключом, если такого узла еще нет, то вставить перед первым узлом, у которого ключ больше.
Удалить узлы с указанным номером группы.
Сформировать новый список из исходного, включив в него узлы с оценкой неуд, исключив их при этом из исходного списка.
2
Номер телефона (из 7 цифр), время разговора (целое число), номер телефона вызываемого абонента.
Добавить новый узел в список, упорядочивая узлы по первым четырем цифрам телефона в порядке возрастания.
Удалить последний узел с заданным значением телефона.
Подсчитать суммарное время разговора с заданного телефона.
3
Номер абонемента, Название книги, дата выдачи, дата возврата, дата фактического возврата.
Вставить новый узел в список после последнего узла с таким же номером абонента(дата фактического возврата еще не заполнена).
Изменить значение поля фактической даты возврата по указанной книге, указанного абонемента.
Удалить узлы, в которых дата возврата и дата фактического возврата совпадают.
Определить количество книг, заданного абонемента.
4
Номер мед. полиса, Дата обращения, Код диагноза (число).
Вставка нового узла перед первым узлом с заданным значением Мед. полиса, если такого нет, то узел вставить в конец списка.
Удаление из списка всех узлов с заданным значением Кода диагноза.
Переместить все узлы с одинаковым мед. полисом в новый список.
Определить количество обращений в одну и туже дату с одним и тем же диагнозом.
5
Номер счета в банке, дата, вид операции (приход или расход), сумма вклада.
Вставка нового узла перед первым узлом.
Удаление сведений по счету (всех узлов), у которого общая сумма вклада равна нулю ( сумма по приходу, минус сумма по расходу).
Создать новый список из исходного, которого будет содержать остаток по всем видам операций одного счета, указав вид операции – приход, и текущую дату.
6
Номер автобусного маршрута, время отправления (целое число), номер автобуса, стоимость одной поездки, дата отправления.
Вставить новый узел после последнего узла с заданным номером автобуса.
Удалить все узлы заданного автобуса.
Подсчитать, сколько раз автобус выходил на маршрут в течении заданного дня.
-
Вариант 1
Вариант 15
Игра Угадай число
Сделать программу с интерфейсом и без него Компьютер загадывает случайное значение от 0 до 50. Пользователь должен за 5 попыток угадать это число. При каждом неудачном отгадывании появляется подсказка о том, что «загаданное число больше/меньше того, что ввел пользователь». Если за 5 попыток угадать число не удалось, то компьютер побеждает. Если за 5 и менее попыток игрок отгадывает число, то побеждает пользователь. После этого появляется вопрос о том, хочет ли пользователь сыграть еще раз. Если да, то игра начинается заново с новым случайным числом, если нет, то игра закрывается. Также нужно показывать счет (количество побед игрока и компьютера). Загадывание случайного числа от min до max: x=Int((max-min+1)*Rnd()+min) MSGBOX с вопросами показаны в файле с теорией (ВБА. Hello world). Выход из цикла – Exit do / Exit for Выход из процедуры – Exit su
Задание 1
Реализовать свой класс точки на плоскости. Выполнить перегрузку операторов ">" и "<". Создать массив объектов класса. Значения координат заполнить случайными числами. Класс должен быть реализован так, чтобы функции из предыдущих заданий работали без какой-либо модификации.
Задание 2
Реализовать рекурсивный вариант функции "быстрой" сортировки в виде шаблонной функции. Проверить работу.
Задание 3
Рассмотреть упаковку бинарного дерева в массив. Реализовать функцию сортировки с использованием бинарного дерева ("пирамидальная").
Задание 4
Сравнить среднее время выполнения различных функций сортировки на больших массивах (не менее 5000 элементов) различных типов. Указание: Для оценки времени использовать функции Win32 API QueryPerformanceCounter и QueryPerformanceFrequency.
Задание 5
Реализовать функцию бинарного поиска для ключей-строк.
Описать суперкласс СТРОКА, содержащий следующие поля:
строка
и следующие методы:
конструктор без параметров;
конструктор с параметром;
вывод на экран значений полей;
очистка строки.
Описать подкласс КОМПЛЕКСНОЕ_ЧИСЛО. Строки данного класса состоят из двух полей, разделенных символом i.Каждое из полей может содержать только десятичные цифры, символы + и -. Если строка производного класса содержит другие символы, то КОМПЛЕКСНОЕ_ЧИСЛО принимает нулевое значение.
В подкласс включить следующие обязательные методы:
конструктор;
сложение двух комплексных чисел;
умножение двух комплексных чисел;
вывод на экран комплексного числа.
Написать приложение на языке Java. В программе применить принцип полиморфизма и предусмотреть меню для демонстрации работы всех методов суперкласса и подклассаРазработать иерархию классов в соответствии заданной предметной областью. После чего спроектировать графическое приложение, которое будет работать с классами, разработанными ранее. Требования к разрабатываемой информационной системе:
Объекты предметной области - Комплексные числа в обычной форме записи, показательной записи.
Основные методы классов - Выполнение действий: сложение, вычитание, деление, умножение, извлечение корня.Лабораторная работа 1. Методы сортировки.
Задание
Реализовать заданный метод сортировки строк числовой матрицы в соответствии с индивидуальным заданием. Для всех вариантов добавить реализацию быстрой сортировки (quicksort). Оценить время работы каждого алгоритма сортировки и сравнить его со временем стандартной функции сортировки, используемой в выбранном языке программирования.
Метод – вставкой.
Лабораторная работа 2. Методы поиска.
Задание
Реализовать заданный метод поиска в соответствии с индивидуальным заданием. Организовать генерацию начального набора случайных данных. Для всех вариантов добавить реализацию добавления, поиска и удаления элементов. Оценить время работы каждого алгоритма поиска и сравнить его со временем работы стандартной функции поиска, используемой в выбранном языке программирования.
Метод – Интерполяционный
Лабораторная работа 3. Методы поиска подстроки в строке.
Задание
Реализовать заданный метод поиска подстроки в строке в соответствии с индивидуальным заданием. Для всех вариантов добавить реализацию добавления строк, ввода подстроки и поиска подстроки. Предусмотреть возможность существования пробела. Ввести опцию чувствительности / нечувствительности к регистру. Оценить время работы каждого алгоритма поиска и сравнить его со временем работы стандартной функции поиска, используемой в выбранном языке программирования.
Варианты
Кнута-Морриса-Пратта
Упрощенный Бойера-Мура
Четный номер по журналу
Нечетный номер по журналу
Лабораторная работа 4. Реализация стека/дека.
Используя технологию модульного программирования разработать программу обработки данных, содержащихся в заранее подготовленном файле, в соответствии с индивидуальным заданием. Применить динамическую структуру указанного в задании вида: стек, очередь или дек. Программа должна включать модуль, содержащий набор всех необходимых средств (типов, подпрограмм и т.д.) для решения поставленной задачи.
20.В текстовом файле хранится выражение, записанное в постфиксной форме. Используя стек, перевести его в инфиксную форму и в таком виде записать в новый текстовый файл.
250 руб.Задание
А. Реализовать классы «стек», «очередь», «дек» наследованием от базового класса «двусвязный список» согласно варианту, см. Таблицу 2. Базовый класс «двусвязный список» был реализован в одной из предыдущих работ.
Таблица 2
Спецификация вариантов
Вид наследования
public
protected
private
стек
дек
Программы - клиенты должны демонстрировать работу всех классов. Иерархию классов реализовать в отдельном модуле.
В. Решение задания А реализуйте шаблонами классов. Проверьте его на разных типах.
С. Решить задачи на применение шаблона стека и очереди(дека).
- Разработайте и реализуйте класс постфиксных калькуляторов. Используйте алгоритм вычисления постфиксных выражений, описанный ниже. Допускаются лишь операторы +, -, * и /. Предполагается, что постфиксные выражения являются корректными.
- Разработайте и реализуйте класс инфиксных калькуляторов. Используйте алгоритм вычисления постфиксных выражений, описанный ниже. Перед вычислением инфиксное выражение следует преобразовать в постфиксную форму, а затем вычислить полученное постфиксное выражение по алгоритму.
Описать класс, реализующий стек и работу с ним.
1.) Класс должен содержать следующие сведения телефонной книжки:
• фамилия, имя;
• номер телефона;
• день рождения (массив из трех чисел).
2.) В классе должны быть реализованы следующие операции над стеком:
• добавление новой записи;
• удаление из списка информации о человеке, фамилия которого введена с клавиатуры;
• вывод информации обо всех номерах телефонов;
• по запросу выводится информация о человеке, номер телефона которого введен с клавиатуры.
3.) Программа должна обеспечивать диалог с помощью меню.
4.) В программе должны быть созданы два экземпляра класса: информация о людях, у которых день рождения уже был в этом году и люди, у которых день рождения после текущей даты. При добавлении нового человека должен быть автоматически выбран экземпляр стека, в который добавляются данные. Должна быть предусмотрена возможность изменения текущей даты, после изменения информация о людях должна быть автоматически перенесена из одного списка в другой. При выводе информации о людях, пользователь должен выбрать какой список выводить (у которых день рождения уже был в этом году или еще предстоит), либо вывести все записи из обоих списков. Программа должна быть написана на языке c++Лабораторная работа 9.
Разработать приложение, содержащее меню (используя ТMainMenu), которое позволяет создавать, сохранять и открывать текстовый файл из нескольких строк – предложений. А также подсчитывать количество цифр в файле и определить самое короткое слово файла.
Лабораторная работа 10.
Разработать приложение, содержащее меню, позволяющее:
1. Создавать, сохранять, открывать типизированный файл записей, содержащий следующую информацию: название песни, автор, год написания.
2. Добавлять запись.
3. Удалять запись.
4. Выводить информацию об интересующей песне.
5. Находить самую старую песню.
6. Сортировать список по алфавиту и в обратном порядке (по названию песни).
7. Выход.
Лабораторная работа 11.
Разработать программу, содержащую меню, которое позволяет создавать, сохранять и открывать текстовый файл из нескольких строк – символов. Выводить в отдельном окне количество согласный букв или количество цифр в файле. Выводить информацию об авторе программы в отдельных окнах (разработанном и стандартном). Разработать подпрограмму, подсчитывающую количество знаков в строке, которую поместить в отдельный модуль и использовать при определении количества букв и цифр.
Лабораторная работа 13
Создать цветной рисунок, на котором изобразить дом, елку, солнце и нанести подпись.
Лабораторная работа 14.
Разработать приложение, моделирующее произвольное движение внутри синего прямоугольника двух кругов красного и желтого цвета, отскакивающих друг от друга и от границ этого прямоугольника.
Лабораторная работа 15
Построить на одной сетке графики функций y=x*sin(x) и y=x*cos(x).Лабораторная работа 9.
Разработать приложение, содержащее меню (используя ТMainMenu), которое позволяет создавать, сохранять и открывать текстовый файл из нескольких строк – предложений. А также подсчитывать количество цифр в файле и определить самое короткое слово файла.
Лабораторная работа 10.
Разработать приложение, содержащее меню, позволяющее:
1. Создавать, сохранять, открывать типизированный файл записей, содержащий следующую информацию: название песни, автор, год написания.
2. Добавлять запись.
3. Удалять запись.
4. Выводить информацию об интересующей песне.
5. Находить самую старую песню.
6. Сортировать список по алфавиту и в обратном порядке (по названию песни).
7. Выход.
Лабораторная работа 11.
Разработать программу, содержащую меню, которое позволяет создавать, сохранять и открывать текстовый файл из нескольких строк – символов. Выводить в отдельном окне количество согласный букв или количество цифр в файле. Выводить информацию об авторе программы в отдельных окнах (разработанном и стандартном). Разработать подпрограмму, подсчитывающую количество знаков в строке, которую поместить в отдельный модуль и использовать при определении количества букв и цифр.
Лабораторная работа 13
Создать цветной рисунок, на котором изобразить дом, елку, солнце и нанести подпись.
Лабораторная работа 14.
Разработать приложение, моделирующее произвольное движение внутри синего прямоугольника двух кругов красного и желтого цвета, отскакивающих друг от друга и от границ этого прямоугольника.
Лабораторная работа 15
Построить на одной сетке графики функций y=x*sin(x) и y=x*cos(x).Лабораторная № 1
В одномерном массиве, состоящем из п вещественных элементов, вычислить:
1. Количество элементов массива, больших С.
2. Произведение элементов массива, расположенных после максимального по модулю элемента.
Преобразовать массив таким образом, чтобы сначала располагались все отрицательные элементы, а потом — все положительные (элементы, равные нулю, считать положительными).
Лабораторная №2
Размерности массивов следует задать именованными константами. Все необходимые данные должны передаваться подпрограммам в качестве параметров; все величины, используемые только внутри подпрограмм, должны быть описаны как локальные. Использование глобальных переменных в подпрограммах не допускается. Вывод результатов работы подпрограмм должен выполняться в главной программе.
ЗАДАНИЕ 1: Дана целочисленная прямоугольная матрица. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент (оформить в виде функции).
Характеристикой строки целочисленной матрицы назовем сумму ее отрицательных четных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик (оформить в виде процедуры).
ЗАДАНИЕ 2: Введена целочисленная прямоугольная матрица.
1. Определить номер первого из столбцов, содержащих хотя бы один нулевой элемент (оформить в виде функции).
2. Характеристикой строки целочисленной матрицы назовём сумму её отри-цательных чётных элементов. Переставляя строки заданной матрицы, расположить их в соответствии с убыванием характеристик (оформить в виде процедуры).
ЗАДАНИЕ 3:
Начать выполнять лабораторную работу на тему "Программа с простейшим меню" путём переделки предыдущей программы(из Задания 2): 1) переделка ВСЕГО ПРЕДЫДУЩЕГО текста программы в набор из нескольких Procedure(...) и Fuction(...) в разделе процедур и функций; 2) написание нового (короткого) текста ОСНОВНОЙ программы ( = раздел операторов между BEGIN и END. ), содержащего простейшее МЕНЮ [внешний цикл типа repeat ... untul k=0; внутри цикла: А) вывод (writeln) подсказок-пунктов меню типа 1. Ввод данных 2. Обработка данных ... 4. Просмотр матрицы ... 0. Выход из программы ; Б) подсказка "Введите номер пункта меню: " и ввод значения управляющей переменной (например, k ) ; В) оператор CASE k of ... для вызова внутри него (по имени) нужной процедуры (функции) ].
Использовать учебную систему программирования Pascal ABC.250 руб.Написать компьютерную программу, содержащую
1. Описание класса vect, содержащего:
1. 1. Скрытые данные, описывающие размерность вектора и массив со значениями элементов вектора;
1. 2. Открытые данные, описывающие количество созданных векторов (static) и номер вектора;
1. 3. Набор конструкторов класса, включающий конструктор по умолчанию и конструктор копирования;
1. 4. Деструктор;
1. 5. Оператор-функции:
- сложения векторов,
- вычитания векторов,
- унарный минус,
- умножения числа на вектор,
- скалярного произведения векторов,
- присваивания;
1. 6. Описание дружественного класса matr.
2. Описание класса matr для квадратной матрицы, содержащего:
2. 1. Скрытые данные, описывающие размерность матрицы и массив со значениями элементов матрицы;
2. 2. Открытые данные, описывающие количество созданных матриц (static) и номер матрицы;
2. 3. Набор конструкторов класса, включающий конструктор по умолчанию и конструктор копирования;
2. 4. Деструктор;
2. 5. Оператор-функции:
- сложения матриц,
- вычитания матриц,
- унарный минус,
- умножения числа на матрицу,
- произведения матриц,
- умножения матрицы на вектор,
- присваивания.
2. 6. Функцию main, содержащую сценарий тестирования инструментария векторной алгебры.
Конструкторы, деструкторы и оператор-функции должны содержать вывод на экран сообщений о том, какие вектора и матрицы (по номерам) участвуют в преобразованиях.Лабораторная работа №1
Тема: Сложная обработка массивов.
Цель: изучение алгоритмов организации и сложной обработки одномерных и двумерных массивов на языке С++.
Задание:
1. Самостоятельно изучить возможности языка программирования C++ для сложной обработки одномерных и двумерных массивов.
2. В соответствии с индивидуальным заданием (табл. 1.1) создать консольное приложение, в котором реализовать следующие вычисления:
- объявление заданного массива целых чисел фиксированной длины;
- инициализацию элементов массива случайными числами в заданном интервале, их вывод на консоль и анализ по заданному критерию;
- заданную обработку массива и вывод элементов обработанного массива на консоль.
3. Вывести исходный массив, результаты анализа и обработанный массив.
4. Выполнить контрольную пошаговую обработку массива вручную.
Таблица 1.1. Варианты индивидуальных заданий:
Массив и длина
Интервал генерации
Критерий для анализа
Обработка
Y(20)
[-20, 10]
Сумма чётных чисел, расположенных до минимального элемента массива
Нечетные элементы уменьшить на найденную сумму
5. В соответствии с индивидуальным заданием (табл. 1.2) записать в матрицу размером 9х9 линейную последовательность натуральных чисел (1, 2, 3, ...). результатную матрицу вывести на экран.
6. Заполнить матрицу размером 9х9 случайными числами из диапазона 0…99 и выполнить заданное (табл. 1.2) преобразование матрицы. Исходную и преобразованную матрицы вывести на экран.
Лабораторная работа №2
Тема: Подпрограммы в языке С++.
Цель: освоение составления и тестирования алгоритмов и программ обработки данных с использованием функций пользователя.
Задание:
1. Самостоятельно изучить возможности языка программирования C++ для описания функций пользователя и обработки данных с использованием функций пользователя.
2. Разработать программу на языке C++, реализующую обработку последовательности согласно индивидуальному заданию - Определить общее количество разрядов чисел последовательности:
- ввод элементов последовательности с клавиатуры и вывод результатов их обработки должны осуществляться в функции main();
- обработка элементов последовательности должна осуществляться при помощи функции пользователя, необходимые элементы должны передаваться в пользовательскую функцию в качестве параметров;
- если в задании используется число M, то его значение следует вводить с клавиатуры в функции main(), и передавать в пользовательскую функцию в качестве параметра.
Лабораторная работа №3
Тема: Сортировка одномерных массивов.
Цель: освоение составления и тестирования алгоритмов и программ сортировки массивов с использованием функций пользователя.
Задание:
1. Самостоятельно изучить методы сортировки массивов и возможности языка программирования C++ для сортировки одномерных массивов.
2. Создать консольное приложение, в котором реализовать следующие вычисления согласно индивидуальному заданию из табл. 3.1:
- объявление заданного массива целых чисел фиксированной длины;
- инициализацию элементов массива посредством генерации случайных чисел в заданном диапазоне;
- обменную (пузырьковую) сортировку элементов массива заданного направления, реализовать в виде пользовательской функции int Sort(int Ar[]), которая принимает в качестве аргумента исходный массив, а возвращает количество перестановок;
- вывести на экран исходный и отсортированный массив, а также количество перестановок; вывод массивов реализовать в виде пользовательской функции void Output(int Ar[]).
3. Выполнить контрольную пошаговую сортировку исходного массива из контрольного примера вручную.
Таблица 3.1. Варианты индивидуальных заданий
Массив и длина
Диапазон значений
Направление сортировки
Y(10)
[-20, 10]
По возрастанию
Задание на лабораторную работу
Дан список идентификаторов. Длина каждого идентификатора не более 8 символов. Идентификаторы в списке расположены в лексикографическом порядке. Составить функции (подпрограммы) для следующих операций:
Удалить из списка все идентификаторы, начинающиеся с заданной буквы.
Заменить на заданный идентификатор значение пред последнего элемента списка.
Определить количество идентификаторов начинающихся с заданной буквы.
Записать в массив А все идентификаторы списка.
250 руб.1.) Составить программу, которая содержит сведения телефонной книжки.
Каждая запись включает:
• фамилия, имя;
• номер телефона;
• день рождения (массив из трех чисел).
2.) Программа должна обеспечивать:
• хранение всех записей в виде двусвязного списка, записи должны быть
упорядочены по датам дней рождения;
• добавление новой записи;
• удаление из списка информации о человеке, фамилия которого введена с
клавиатуры;
• вывод информации обо всех номерах телефонов;
• по запросу выводится информация о человеке (в виде таблицы- приложенный файл), номер телефона которого
введен с клавиатуры.
3.) Программа должна обеспечивать диалог с помощью меню.
Реализовать с помощью меню:
1. Добавление данных в двусвязный список с возможностью записи в файл
2. Считывание списка из файла
3. Сортировка в соответствии с заданием и возможность записи в файл
4. Возможность вывода с начала списка и с конца списка
5. Выборка (поиск) в соответствии с заданием350 руб.Виды обработки:
Просмотр расписаний с рейсами любого аэропорта из имеющихся. Выводить данные в таблицу в порядке возрастания времени вылета:
Аэропорт: Шереметьево
Наименование
Номер
Время
Расстояние
Количество
Стоимость
рейса
рейса
вылета
В км.
кресел
билета
1) Поиск и печать сведений о рейсах по любому сочетанию трех поисковых признаков: наименованию рейса, времени вылета, стоимости билета.
2) Модификация ряда записей заданного аэропорта:
- поиск по номеру рейса, изменение времени вылета;
- поиск по наименованию рейса, изменение стоимости билета.
Ввод данных для поиска и модификации производить с клавиатуры. Выбор варианта модификации определяется из диалога.
3) Модификация данных о рейсах ряда аэропортов. Поиск производить по наименованию аэропорта и номеру рейса, модифицировать стоимость билета.
Данные для модификации вводить из файла данных для модификации, в котором они хранятся смешанно по различным аэропортам.
Проводить модификацию записей и бинарных файлов, и первичного файла данных.
4) Вывод сведений о самых близких и самых дальних рейсах
- для заданного аэропорта;
- для всех аэропортов.
6) Вывод сведений о самых дорогих и самых дешевых рейсах
- для заданного наименования рейса;
- для всех рейсов.
Автоматизированная информационная система должна содержать необходимые файлы с данными. Вся информация записывается в файлы структур (но не массив структур).
Написать программу, которая:
-обеспечивает первоначальный ввод данных в информационную систему,
-производит вывод всей информации из файлов,
-добавление новых данных в файлы,
-корректировка выбранных данных в файлах,
-удаление выбранных данных из файлов,
-сортировка записей по выбираемому полю,
-поиск и вывод записей по выбираемому полю,
-вывод статистических данных,
-вывод выходных данных.
Программа должна:
- обеспечивать диалог с помощью меню
-основные действия меню оформить в виде функций
-предусмотреть контроль корректности ввода данных.
Должен быть консольный интерфейс.1
Каждая программа должна иметь осмысленный заголовок, точно такой же заголовок
должен отображаться в панели задач (task bar).
2
Главное окно программы всегда должно открываться в центре экрана (независимо от
разрешения монитора), иметь Меню и кнопку минимизации.
3
Диалоговые окна программы (например, окно «О программе») должны иметь тип
bsDialog (свойство Form.BorderStyle) и быть модальными.
4
Если главное окно программы фиксированного размера (его размеры не предусмотрено
изменять), то его тип должен быть bsSingle, а не bsDialog, при этом кнопка минимизации
должна быть разрешена, а кнопка максимизации запрещена.
5
Надписи и элементы управления в формах должны быть выровнены друг относительно
друга. Предпочтительным языком надписей является русский. Пустое место в формах
должно использоваться равномерно.
6
Если в программе имеются поля ввода, допускающие только определенные значения
(например, год рождения или дата), то должны быть предусмотрены проверки,
определяющие корректность введенных значений.200 руб.Язык программирования(С++)
Исходные текстовые файлы могут создаваться в любом текстовом редакторе с использованием кодовой страницы, позволяющей непосредственно
обрабатывать в консольном приложении русские буквы. Для создания
исходного бинарного файла к третьей задаче написать отдельную программу, в программе его обработки выводить на экран компьютера содержимое файла до и после изменения. Четвертое задание предполагает создание информационно справочной системы на базе бинарного файла записей со следующими возможностями: создание файла, просмотр содержимого файла, добавление, удаление и корректировка данных, а также выполнение запросов в соответствии с заданием. Поиск требуемых данных осуществлять по
ключевому полю. Для организации интерфейса должно использоваться меню
Задания:
1. Дан файл, содержащий некоторый текст. Проверить, все ли фразы
начинаются с прописной буквы. Если нет – исправить.
2. В текстовом файле хранится таблица синусов и косинусов различных
углов. У таблицы есть шапка вида « x sin x cos x ». Добавить в этот файл
колонки с тангенсами и котангенсами этих углов. Если значение тангенса или
котангенса не определено, в соответствующей графе поставить прочерк.
3. Компоненты бинарного файла – вещественные числа. Удалить из
этого файла каждое пятое число.
4. В файле содержатся сведения о пациентах глазной клиники.
Структура записи: фамилия пациента, пол, возраст, место проживания
(город), диагноз. Определить количество иногородних пациентов, прибывших
в клинику. Вывести сведения о пациентах пенсионного возраста.














