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

Inf / inf-15-z

.pdf
Скачиваний:
31
Добавлен:
27.03.2016
Размер:
148.59 Кб
Скачать

Тематическое занятие 15.

Массивы указателей.

Задания для лабораторной работы 15.

(максимальный балл – 3)

Задание для лабораторной работы 15.

Вариант 1

Имеется два отсортированных исходных массива целых чисел: первый – по

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

упорядоченные по неубыванию. Т.е. эти указатели должны ссылаться на элементы исходных массивов так, чтобы при выводе получилась общая последовательность всех элементов обоих исходных массивов, упорядоченная по неубыванию.

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

Задание для лабораторной работы 15.

Вариант 2

Имеется два исходных массива вещественных чисел, отсортированных по возрастанию (неубыванию). Составить программу, которая создает массив указателей на

элементы обоих исходных массивов, упорядоченные по невозрастанию. Т.е. эти

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

При этом запрещено: а) проводить перестановку элементов исходных массивов,

б) объявлять и использовать дополнительные массивы. Значения элементов исходных

массивов можно задавать в тексте программы.

Задание для лабораторной работы 15.

Вариант 3

Имеется два отсортированных исходных массива целых чисел: первый – по

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

элементов обоих исходных массивов, упорядоченная по невозрастанию.

При этом запрещено: а) проводить перестановку элементов исходных массивов,

б) объявлять и использовать дополнительные массивы. Значения элементов исходных массивов можно задавать в тексте программы.

Задание для лабораторной работы 15.

Вариант 4

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

обоих исходных массивов, упорядоченные по неубыванию. Т.е. эти указатели должны ссылаться на элементы исходных массивов так, чтобы при выводе получилась общая последовательность всех элементов обоих исходных массивов, упорядоченная по неубыванию.

При этом запрещено: а) проводить перестановку элементов исходных массивов, б) объявлять и использовать дополнительные массивы. Значения элементов исходных

массивов можно задавать в тексте программы.

Задание для лабораторной работы 15.

Вариант 5

Имеется два отсортированных исходных массива вещественных чисел: первый – по возрастанию (неубыванию), второй – по убыванию (невозрастанию). Составить

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

исходных массивов так, чтобы при выводе получилась общая последовательность всех элементов обоих исходных массивов, упорядоченная по невозрастанию.

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

Задание для лабораторной работы 15.

Вариант 6

Имеется два исходных массива целых чисел, отсортированных по возрастанию

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

последовательность всех элементов обоих исходных массивов, упорядоченная по невозрастанию.

При этом запрещено: а) проводить перестановку элементов исходных массивов, б) объявлять и использовать дополнительные массивы. Значения элементов исходных

массивов можно задавать в тексте программы.

Задание для лабораторной работы 15.

Вариант 7

Имеется два отсортированных исходных массива вещественных чисел: первый – по убыванию (невозрастанию), второй – по возрастанию (неубыванию). Составить

программу, которая создает массив указателей на элементы обоих исходных массивов,

упорядоченные по неубыванию. Т.е. эти указатели должны ссылаться на элементы исходных массивов так, чтобы при выводе получилась общая последовательность всех элементов обоих исходных массивов, упорядоченная по неубыванию.

При этом запрещено: а) проводить перестановку элементов исходных массивов,

б) объявлять и использовать дополнительные массивы. Значения элементов исходных

массивов можно задавать в тексте программы.

Задание для лабораторной работы 15.

Вариант 8

Имеется два исходных массива целых чисел, отсортированных по убыванию

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

обоих исходных массивов, упорядоченные по неубыванию. Т.е. эти указатели должны ссылаться на элементы исходных массивов так, чтобы при выводе получилась общая

последовательность всех элементов обоих исходных массивов, упорядоченная по неубыванию.

При этом запрещено: а) проводить перестановку элементов исходных массивов,

б) объявлять и использовать дополнительные массивы. Значения элементов исходных массивов можно задавать в тексте программы.

Задания для самостоятельной работы 15.

(максимальный балл – 5)

Задание для самостоятельной работы 15.

Вариант 1

1)Пользователь вводит слова, которые помещаются в массив символов одно за

другим в порядке ввода, в конце каждого слова помещается нулевой символ ('\0').

Указатели на слова помещаются в массив указателей.

Составить программу, которая, используя массив указателей, проводит сортировку

слов по алфавиту (при этом массив символов остается неизменным). Вывести отсортированный список слов на экран.

Реализовать то же самое, если слова не вводятся пользователем, а хранятся в

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

обмен данными между ними должен осуществляться через механизмы передачи параметров.

2)Пусть данные слова являются фамилиями участников конференции. Чтобы

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

по первой букве (например: А-Й, К-Р, С-Я) так, чтобы разница между количеством

участников в каждой из трех частей была наименьшей.

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

так: "А-Й 35 уч.; К-Р 38 уч.; С-Я 37 уч.").

Задание для самостоятельной работы 15.

Вариант 2

1)Пользователь вводит слова, которые помещаются в массив символов одно за другим в порядке ввода, в конце каждого слова помещается нулевой символ ('\0'). Указатели на слова помещаются в массив указателей.

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

отсортированный список слов на экран.

Реализовать то же самое, если слова не вводятся пользователем, а хранятся в текстовом файле, каждое в отдельной строке. При этом файл остается неизменным.

Все законченные действия должны быть реализованы в виде отдельных функций, а

обмен данными между ними должен осуществляться через механизмы передачи параметров.

2)Пусть данные слова являются фамилиями авторов книг. Чтобы организовать

хранение книг на трех одинаковых стеллажах библиотеки, необходимо разделить их на три приблизительно равные части по фамилиям авторов. Для этого необходимо разбить

отсортированный список фамилий авторов по первой букве (например: А-Й, К-Р, С-Я) так, чтобы разница между количеством книг в каждой из трех частей была наименьшей.

Реализовать это в виде отдельной функции. Для каждой из трех частей списка

вывести на экран интервал первых букв фамилий авторов и количество книг (например,

так: "А-Й 35 кн.; К-Р 38 кн.; С-Я 37 кн.").

Задание для самостоятельной работы 15.

Вариант 3

1) Пользователь вводит слова, которые помещаются в массив символов одно за

другим в порядке ввода, в конце каждого слова помещается нулевой символ ('\0').

Указатели на слова помещаются в массив указателей.

Составить программу, которая, используя массив указателей, проводит сортировку

слов по алфавиту (при этом массив символов остается неизменным). Вывести отсортированный список слов на экран.

Реализовать то же самое, если слова не вводятся пользователем, а хранятся в

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

обмен данными между ними должен осуществляться через механизмы передачи параметров.

2) Пусть данные слова являются терминами энциклопедического словаря. Чтобы

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

отсортированный список терминов по первой букве (например: А-Й, К-Р, С-Я) так, чтобы разница между количеством терминов в каждой из трех частей была наименьшей.

Реализовать это в виде отдельной функции. Для каждой из трех частей списка

вывести на экран интервал первых букв терминов и количество терминов (например, так:

"А-Й 35 терм.; К-Р 38 терм.; С-Я 37 терм.").

Соседние файлы в папке Inf