Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООП ЗАДАНИЯ_ЗО_2_СЕМ

.doc
Скачиваний:
11
Добавлен:
31.05.2015
Размер:
164.86 Кб
Скачать

Задача 1

1. Дан файл, компонентами которого являются целые числа. Найти сумму и произведение компонент заданного файла.

2. Дан файл, компонентами которого являются целые числа. Вывести на экран последнюю и предпоследнюю компоненты этого файла.

3. Дан файл, компонентами которого являются целые числа. Найти максимальное значение среди компонент с нечетными номерами.

4. Даны файлы , компонентами которых являются целые числа. Организовать обмен данных между файлами по следующей схеме:

Разрешается использовать только один вспомогательный файл.

5. Дан текстовый файл f, содержаший программу на языке Паскаль. Проверить эту программу на несоответствие числа открывающих и закрывающих круглых скобок. Считать, что каждый оператор программы:

- занимает не более одной строки файла;

- может занимать произвольное число строк файла f.

6. Дан текстовый файл f. Получить все его строки, содержащие более 60 символов.

7. Дан текстовый файл f. Вывести на экран самую длинную строку файла. Если в файле имеется несколько строк с наибольшей длиной, то вывести все строки.

8. Дан текстовый файл f. Записать в перевернутом виде строки файла f в файл g. Порядок строк в файле g должен:

- совпадать с порядком исходных строк в файле f;

- быть обратным по отношению к порядку строк исходного файла.

9. Написать программу, которая подставляет номера строк (в качестве комментариев) в конец каждой строки с исходным текстом.

10. Написать программу, которая для любого входного текстового файла создает текстовый файл с повторением

каждой строки (решить эту задачу для случая использования нового файла и для случая, когда новый файл нельзя использовать).

11. Даны текстовый файл и строка s. Вывести на экран все строки файла f, содержащие в качестве фрагмента строку s.

12. Даны два текстовых файла f и g. Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет, то получить номер первой строки и позицию первого символа в этой строке, в которых файлы f и g отличаются между собой.

13. Матрица размерностью n×n, содержащая простые числа, записана в файле по строкам. Указать столбцы, содержащие одинаковый набор элементов (порядок следования элементов роли не играет). Использовать дополнительные массивы и файлы не разрешается.

14. Дан файл записей типа: номер, фамилия, курс, оценка. Не используя дополнительного файла, разместить в этом файле сведения сначала об отличниках, потом о хорошистах и т.д.

15. Дан файл f, компоненты которого являются целыми числами. Никакая из компонент не равна нулю. Числа в файле идут в следующем порядке: десять положительных, десять отрицательных и т.д. Переписать компоненты файла f в файл g в следующем порядке: пять положительных, пять отрицательных и т.д. Решить эту задачу также при условии,

что перезапись в указанном порядке производится внутри одного файла, дополнительного файла g использовать нельзя.

16. Задано два файла записей. Сформировать третий файл, содержащий четные записи первого файла и нечетные второго файла.

17. Дано два файла записей типа: номер прибора, год выпуска, цена. Поменять содержимое этих двух файлов. Дополнительного файла не использовать.

18. Дано два файла записей типа: название прибора, диапазон, цена. Сформировать новый файл, содержащий записи о тех приборах, которые есть в первом файле, но которых нет во втором.

19. Сформировать файл, имеющий следующую структуру

type дата=record

число:1..31;

анкета = record

фамилия: string;

пол:(м,ж);

день рождения: дата;

end;

и определить:

- фамилию самого старшего мужчины;

- все фамилии, начинающиеся с заданной буквы;

- список людей, родившихся в заданном месяце.

20. Сформировать файл, имеющий следующую структуру

type знакомый=record

фамилия:string;

номер_тел:10000..99999;

адрес: string;

end;

и определить:

- есть ли в книжке телефон данного человека;

- кому принадлежит данный телефон;

- список людей, живущих на данной улице.

21. Сформировать файл, имеющий следующую структуру

type студент= record фамилия: string;

номер гр: string;

оценка1: integer;

оценка2: integer;

оценка3: integer;

end;

и определить:

- фамилию того, кто лучше всех сдал экзамены;

- средний балл по данному предмету;

- список задолжников.

22. Сформировать файл, имеющий следующую структуру

type студент= record фамилия:string;

имя:string;

пол:(м,ж);

возраст:16..35;

курс:1..5;

end;

и определить:

- курс, на котором наибольший процент мужчин;

-самые распространенные женские и мужские имена;

-список студентов данного пола, данного курса.

23. Сформировать файл, имеющий следующую структуру

type пассажир = record фамилия: string;

имя:string;

номер рейса:string;

количество вещей: integer;

общий вес: integer;

end;

и определить:

- рейс с максимальным весом багажа;

- пассажира с наибольшим количеством вещей;

- вывести список пассажиров и информацию об их багаже, улетающих данным рейсом.

24. Сформировать файл, имеющий следующую структуру

type владелец = record фамилия: string;

адрес: string;

марка автомобиля: string;

рег. номер: string;

год выпуска:1900..2000;

end;

и определить:

-количество автомобилей каждой марки;

-владельца самого старого автомобиля;

-фамилии владельцев и номера автомобилей данной марки.

25. Сформировать файл, имеющий следующую структуру:

type ребенок = record фамилия: string;

адрес: string;

пол:(муж,жен);

количество дней посещения: integer;

end;

и определить:

- самого болеющего ребенка;

- кто больше болеет мальчики или девочки;

- список детей проживающих на данной улице.

26. Сформировать файл, имеющий следующую структуру

type книга = record автор: string;

название: string;

год издание: integer;

издательство: string;

количество страниц: integer;

end;

и определить:

- есть ли в библиотеке книги данного автора;

- найти книгу с наибольшим количеством страниц;

- найти названия книг данного автора, изданных с указанного года, в данном издательстве.

27. Сформировать файл, имеющий следующую структуру

type товар = record наименование: string;

страна: string;

объем партии: integer;

цена: integer;

end;

и определить:

- страну, в которую экспортируется товар на максимальную сумму;

- список стран, в которые экспортируется данный товар;

- найти товары, который имеет минимальный объем партии.

28. Сформировать файл, имеющий следующую структуру

type игрушка = record название: string;

цена: integer;

возраст1:1..16;

возраст2:1..16;

end;

и определить:

- название самой дорогой игрушки;

- список игрушек, которые подходят детям данного возраста;

- подобрать игрушки на данную сумму денег (все варианты).

29. Сформировать файл, имеющий следующую структуру

type игрушка = record название: string;

цена: integer;

цвет: string;

возраст1:1..16;

возраст2:1..16;

end;

и определить:

- название игрушек, цена которых не превышает данную и которые подходят детям данного возраста;

- найти самую дешевую игрушку данного названия;

- найти самый распространенный цвет игрушек.

30. Сформировать файл, имеющий следующую структуру:

type пассажир=record фамилия:string;

имя:string;

номер рейса:string;

количество вещей: integer;

общий вес: integer;

end;

и определить:

- число пассажиров, количество вещей которых превосходит среднее число вещей;

- пассажира с данным количеством вещей и не более данного веса;

- вывести информацию о количестве вещей и общем весе каждого рейса.

31. Сформировать файл, имеющий следующую структуру

type спортсмен = record фамилия: string;

страна: string;

рост:150..220;

вес:30..100;

год рождения: integer;

результат: integer;

end;

и определить:

- средний рост и вес спортсменов данной страны;

- найти лучшего спортсмена данной страны;

- список спортсменов данного возраста с результатом, не хуже данного.

32. Сформировать файл, имеющий следующую структуру

type спортсмен = record фамилия: string;

страна: string;

тренер: string;

год рождения: integer;

результат: integer;

end;

и определить:

- найти самого молодого спортсмена, занимающегося у данного тренера;

- найти лучшего тренера данной страны;

- список тренеров с указанием страны.

33. Сформировать файл, имеющий следующую структуру

type предмет = record название: string;

количество часов: integer;

преподаватель: string;

кафедра: string;

форма отчетности: (зачет, экзамен);

end;

и определить:

- преподавателя, у которого самое большое количество часов;

- список предметов, по которым сдают экзамен;

- кафедру и преподавателя, который ведет данный предмет.

34. В текстовом файле найти те предложения, которые заканчиваются одинаковыми словами.

35. Матрица целых чисел записана по строкам в файл. Не используя нового файла, удалить из исходного файла строки матрицы, все элементы которых являются нулями.

36. За один просмотр файла , состоящего из вещественных чисел, без использования дополнительных файлов напечатать элементы файла в следующем порядке: сначала все числа, меньшие , затем – все числа из отрезка , и, наконец – все остальные числа, сохраняя исходный взаимный порядок в каждом из этих трех групп чисел ( и - заданные числа, ).

37. Содержимое текстового файла, разделенное на строки, переписать в текстовый файл , перенося при этом в конец каждой строки все входящие в нее цифры (с сохранением исходного взаимного порядка, как среди цифр, так и среди остальных литер строки).

38. Напечатать содержимое текстового файла, выписав литеры каждой его строки в обратном порядке.

Задача 2

Объектно-ориентированное программирование (ООП)

Все задачи этого раздела должны быть решены средствами объектно-ориентированного программирования, то есть с использованием классов.

1. Создать класс для выполнения арифметических действий с дробями. Используйте целые переменные для представления закрытых данных класса – числителя и знаменателя. Для задания начальных значений параметров использовать конструктор. Создать методы:

- сложения чисел;

- вычитания чисел;

- умножения чисел;

- деления чисел;

- вывод на экран результатов операций в виде , где - числитель, а - знаменатель.

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

2. Создать класс для обработки комплексных чисел, полями которого будет являться действительные и мнимые части числа, а методами – сложение, вычитание, умножение, деление двух комплексных чисел, а также нахождение модуля комплексного числа и вывода результатов на экран.

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

3. Создать класс для обработки квадратных матриц. Методами этого класса должны быть:

- сложение матриц;

- умножение матриц;

- нахождение нормы матрицы ();

- вывод результатов расчетов на экран.

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

Дополнительных массивов не использовать. Все операции проводить в файле.

4. Создать класс для обработки полиномов. Степенной полином представить односвязным списком ненулевых коэффициентов. Элемент списка должен содержать показатель степени и само значение коэффициента. Методами этого класса должны быть:

- вычисление значение полинома при заданном значении ;

- вычисление первой производной полинома при заданном значении ;

- вывод результатов расчета на экран.

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

5. Создать класс для обработки одномерных массивов. Методами этого класса должны быть:

- добавление элемента в конец массива;

- добавление элемента в - тую позицию;

- удаление элемента из - той позиции;

- вывод результата на экран;

- сложение двух массивов;

- умножение двух массивов

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

Дополнительных массивов не использовать. Все операции проводить в файле.

6. Создать класс для обработки текста. Методами этого класса должны быть:

- изменение регистра;

- подсчет количества слов в тексте;

- подсчет количества символов в каждом слове.

Исходные данные и результаты расчетов хранить:

- в текстовых файлах;

- в бинарных файлах.

Дополнительных массивов не использовать. Все операции проводить в файле.

7. Создать класс для обработки структур вида: фамилия, должность, оклад. Данные хранить и обрабатывать:

- в текстовом файле;

- в бинарном файле.

Методами данного класса должны быть:

- удаление элемента структуры из файла;

- перестановка заданных элементов структуры в файле.

8. Создать класс для обработки структур вида: номер, название прибора, стоимость. Данные хранить и обрабатывать:

- в текстовом файле;

- в бинарном файле.

Методами данного класса должны быть:

- вставка элемента структуры в нужную позицию файла;

- сортировка элементов структуры по полю стоимость”.

9. Разработать программу на основе классов для работы с цепными списками строк (строки произвольной длины) с операциями включения в список, вывод строки произвольной длины на экран, удаления из списка элемента с заданным значением данного, удаления всего списка или конца списка, начиная с заданного элемента.

10. Разработать программу на основе классов для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнение операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, вывод на экран элементов массива.

11. Разработать программу на основе классов для работы с одномерными массивами целых чисел (векторов). Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы индексов, возможность задания произвольных границ индексов при создании объекта и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов, умножения и деления всех элементов массива на скаляр, вывод элементов массива на экран.

12. Разработать программу с использованием классов для обработки одномерных массивов строк. Каждая строка задается длиной и указателем на выделенную для нее область памяти. Предусмотреть возможность обращения к отдельным элементам массива по индексам, выполнение операций поэлементного сцепления двух массивов, слияния двух массивов с исключением повторяющихся элементов, вывод элементов массива на экран.

13. Разработать программу на основе классов для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнение операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, вывод на экран элементов массива.

14. Разработать программу с использованием классов для обработки одномерных массивов строк. Каждая строка задается длиной и указателем на выделенную для нее область памяти. Предусмотреть возможность обращения к отдельным элементам массива по индексам, выполнение операций поэлементного сцепления двух массивов, слияния двух массивов с исключением повторяющихся элементов, вывод элементов массива на экран.

15. Разработать программу с использованием классов для описания многочленов, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения и вычитания многочленов, вывод на экран описания многочлена.

16. Разработать объект-вектор. Даны две последовательности и . Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: шейкер-сортировки, создания последовательности из не совпадающих элементов каждой из последовательностей, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходных последовательностях. Сортировку сравнить по скорости с методом простых перестановок.

17. Разработать объект-вектор. Дана последовательность . Последовательность хранится в файле. Количество элементов последовательности неизвестно. Для обработки последовательности описать методы: сортировки простыми вставками, определения сумм отрицательных и положительных элементов, суммы всех элементов, а также индексов только положительных и только отрицательных элементов. Сортировку сравнить по скорости с методом простых перестановок.

18. Разработать объект-вектор. Даны последовательности и . Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности из элементов, не входящих в одну из последовательностей, но входящих в другую, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом пузырька.

19. Разработать объект-вектор. Даны последовательности и . Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: быстрой сортировки, создания последовательности из элементов, входящих в каждую из последовательностей только по одному разу, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом простых перстановок.

20. Разработать объект-вектор. Даны последовательности и . Последовательности хранятся в файлах. Количество элементов в последовательностях неизвестно. Для обработки последовательностей описать методы: сортировки простым выбором, создания последовательности из 2-х исходных последовательностей, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходных последовательностях. Сортировку сравнить по скорости с методом простых перестановок.

21. Разработать объект-вектор. Дана последовательность . Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности , в которой сначала стоят все положительные элементы, а затем все отрицательные, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходной последовательностях. Сортировку сравнить по скорости с методом простых перстановок.

22. Разработать объект-вектор. Дана последовательность . Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простым выбором, Обработки последовательности, в форме -- <число1> <количество>,...,<число2> <количество>, ввода и вывода всех последовательностей. Сортировку сравнить по скорости с методом простых перестановок.

23. Разработать объект-вектор. Даны последовательности . Последовательность хранится в файле. Количество элементов в последовательности неизвестно. Для обработки последовательностей описать методы: сортировки простыми включениями, создания последовательности , в которую входят только те элементы последовательности, которые стоят между максимальным и минимальным элементами неупорядоченной последовательности, ввода и вывода всех последовательностей. Вывод результирующей последовательности сопровождать выводом номеров элементов в исходной последовательностях. Сортировку сравнить по скорости с методом пузырька.

24. Разработать объект-вектор. В файле хранятся сведения о жителях некоторой улицы: фамилия, адрес, год рождения. Все сведения записываются в памяти в виде последовательности. Вводится некоторая текущая дата. В последовательности найти всех жителей, имеющих право участвовать в выборах( возраст >=18). Упорядочить последовательность методом простого выбора по фамилиям жителей. Полученные последовательности вывести на экран.

25. Разработать объект-вектор. В файле хранятся сведения об абонентах телефонной сети: фамилия, адрес, номер телефона. Записать все сведения в памяти в виде последовательности. Все записи в файле не упорядочены. Упорядочить сведения по фамилиям абонентов методом быстрой сортировки. Удалить из сведений убывшего абонента, внести в последовательность данные о новом абоненте, изменить данные об абоненте. Вывести все сведения на экран.

26. Разработать объект-вектор. Данные о фондах библиотеки хранятся в файле: автор книги, название книги, шифр издания(тоже строка), год издания, количество книг данного названия. Из всех сведений создать последовательность из книг одного автора. Упорядочить последовательность по фамилиям авторов методом простого включения. Обеспечить внесение в полученную последовательность новых сведений. Вывод на экран всех результатов обработки обязателен.

27. Вводится произвольная последовательность целых чисел и записывается в памяти в виде динамической последовательности. Разработать объект-вектор, обеспечивающий формирование последовательности, удаление из последовательности первого отрицательного числа, всех отрицательных чисел, любого заданного по номеру числа, определения длины результирующей последовательности, сохранение последовательности в файле, вывод последовательности и всех ее модификаций на экран.

28 Дана действительная матрица размерности . С помощью алгоритма сортировки выбором обеспечить выполнение методов обработки строк матрицы: упорядочить строки матрицы по неубыванию значений первых элементов каждой строки, по невозрастанию сумм элементов строк, по возрастанию значений наименьших элементов строк, по убыванию значений наибольших элементов строк, создание и сохранение исходной матрицы в файле, вывод всех вариантов преобразования. Объект, содержащий все названные методы обработки последовательностей строк, должен работать под управлением текстового меню.

29. В файле задать произвольную последовательность целых чисел. Создать упорядоченную последовательность из неповторяющихся чисел исходной последовательности. Элементы, которые уже попали в результирующую последовательность не надо пытаться вставить еще раз в последовательность. Определить количество сравнений, необходимых для решения этой задачи алгоритмом быстрой сортировки. Обеспечить в методах объекта вывод исходной последовательности, преобразованной последовательности и тех элементов, которые были исключены из последовательности в результате преобразования. Все преобразования выполнять через текстовое меню.