|
Программирование >> Динамические структуры данных
□ время отправления. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда; □ вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры; □ если таких поездов нет, выдать на дисплей соответствующее сообщение. Вариант 9 Описать структуру с именем TRAIN, содержащую следующие поля: □ название пункта назначения; □ номер поезда; □ время отправления. Написать про1рамму, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть упорядочены по номерам поездов; □ вывод на экран информации о поезде, номер которого введен с клавиатуры; □ если таких поездов нет, выдать на дисплей соответствующее сообщение. Вариант 10 Описать структуру с именем MARSH, содержащую следующие поля: □ название начального пункта маршрута; □ название конечного пункта маршрута; □ номер маршрута. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; □ вывод на экран информации о маршруте, номер которого введен с клавиатуры; □ если таких маршрутов нет, выдать на дисплей соответствующее сообщение. Вариант 11 Описать структуру с именем MARSH, содержащую следующие поля: □ название начального пункта маршрута; □ название конечного пункта маршрута; □ номер маршрута. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; □ вывод на экран информации о маршрутах, которые начинаются или оканчиваются в пункте, название которого введено с клавиатуры; □ если таких маршрутов нет, выдать на дисплей соответствующее сообщение. Вариант 12 Описать структуру с именем NOTE, содержащую следующие поля: □ фамилия, имя; □ номер телефона; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по датам рождения; □ вывод на экран информации о человеке, номер телефона которого введен с клавиатуры; □ если такого нет, выдать на дисплей соответствующее сообщение. Вариант 13 Описать структуру с именем NOTE, содержащую следующие поля: □ фамилия, имя; □ номер телефона; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть размещены по алфавиту; □ вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры; □ если таких нет, выдать на дисплей соответствующее сообщение. Вариант 14 Описать структуру с именем NOTE, содержащую следующие поля: □ фамилия, имя; □ номер телефона; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона; □ вывод на экран информации о человеке, чья фамилия введена с клавиатуры; □ если такого нет, выдать на дисплей соответствующее сообщение. 5 Зи.784 Вариант 15 Описать структуру с именем ZNAK, содержащую следующие поля: □ фамилия, имя; □ знак Зодиака; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам рождения; □ вывод на экран информации о человеке, чья фамилия введена с клавиатуры; □ если такого нет, выдать на дисплей соответствующее сообщение. Вариант 16 Описать структуру с именем ZNAK, содержащую следующие поля: □ фамилия, имя; □ знак Зодиака; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам рождения; □ вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры; □ если таких нет, выдать на дисплей соответствующее сообщение. Вариант 17 Описать структуру с именем ZNAK, содержащую следующие поля: □ фамилия, имя; □ знак Зодиака; □ дата рождения (массив из трех чисел). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по знакам Зодиака; □ вывод на экран информации о людях, родившихся в месяц, значение которого введено с клавиатуры; □ если таких нет, выдать на дисплей соответствующее сообщение. Вариант 18 Описать структуру с именем PRICE, содержащую следующие поля: □ название товара; □ название магазина, в котором продается товар; □ стоимость товара в руб. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров; □ вывод на экран информации о товаре, название которого введено с клавиатуры; □ если таких товаров нет, выдать на дисплей соответствующее сообщение Вариант 19 Описать структуру с именем PRICE, содержащую следующие поля: □ название товара; □ название магазина, в котором продается товар; □ стоимость товара в руб. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям магазинов; □ вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры; . □ если такого магазина нет, выдать на дисплей соответствующее сообщение. Вариант 20 Описать структуру с именем ORDER, содержащую следующие поля: □ расчетный счет плательщика; □ расчетный счет получателя; □ перечисляемая сумма в руб. Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER; записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков; □ вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры; □ если такого расчетного счета нет, выдать на дисплей соответствующее сообщение. СЕМИНАР 7 Функции Теоретический материал: с. 72-87,93-96. Функция - это группа операторов, выполняющая законченное действие. К функции можно обратиться по имени, передать ей значения и получить из нее результат. Функции нужны для упрощения структуры программы. Разбив задачу на подзадачи и оформив каждую из них в виде функций, мы поступаем по принципу, известному еще с древних времен: Разделяй и властвуй . Передача в функцию различных аргументов позволяет, записав ее один раз, использовать многократно для разных данных. Чтобы использовать функцию, не требуется знать, как она работает - достаточно знать, как ее вызвать. Точно так же мы включаем телевизор или пользуемся стоп-краном в самолете. Стращно подумать, сколько информации пришлось бы держать в голове, если бы требовалось в деталях знать устройство всех приборов, которые мы ежедневно применяем! В реальной жизни мы успешно ограничиваемся знанием интерфейса, то есть правил обращения (и общения). Для использования функции тоже требуется знать только ее интерфейс. Интерфейс грамотно написанной функции определяется ее заголовком, потому что в нем указывается все, что необходимо для ее вызова: имя функции, тип результата, который она возвращает, а также сколько аргументов и какого типа ей нужно передать. Формат простейшего заголовка (прототипа) функции: тип имя ([ список параметров ]): В квадратных скобках записано то, что может быть опущено. Например, заголовок функции mai п обычно имеет вид: int mainO: Это означает, что никаких параметров этой функции извне не передается, а возвращает она одно значение типа int (код завершения). Функция может и не возвращать никакого значения, в этом случае должен быть указан тип voi d. Вот, к примеру, заголовок стандартной библиотечной функции, вычисляющей синус угла: double sin(double): Здесь записано, что функция имеет имя si п, вычисляет значение синуса типа doubl е, и для этого нужно передать ей аргумент типа doubl е. А вот заголовок функции memcpy, копирующей блок памяти длиной п байтов, начиная с адреса src, по адресу dest: void *memcpy(void *dest. const void *src. si2e t n): Эта функция возвращает указатель неопределенного типа на начало области памяти, в которую выполнялось копирование. Какой именно смысл имеет каждый из параметров функции, описывается в документации на функцию. Имена параметров при записи прототипа функции имеют чисто декоративное значение, то есть они могут понадобиться нам, а не компилятору, поэтому их можно опускать: void *memcpy(void *, const void *. si2e t); Неграмотно написанная функция наряду с аргументами использует и глобальные переменные, которые, как вам известно, доступны из любого блока текущего файла. Поскольку это никак не отражается на заголовке, для использования такой функции требуется исследовать и ее текст. Представьте, что прежде чем позвонить по телефону, вам нужно было бы разобрать его и рассмотреть все внутренности, чтобы убедиться, что красный проводочек не подключен к взрывному устройству! Надеемся, что этот устрашающий пример сразу убедит вас не использовать в функциях глобальные переменные. ВНИМАНИЕ - Все, что передается в функцию и обратно, долж1ю отражаться в ее заголовке. Это требование не синтаксиса, а хорошего стиля. Заголовок задает объявление функции. Определение функции, кроме заголовка, включает ее тело, то есть те операторы, которые выполняются при вызове функции, например: int sumCint а. int b) { функция находит сумму двух значений return а + b: тело функции В тексте программы может содержаться произвольное количество объявлений одной и той же функции и только одно определение (в этом функции не отличаются от других программных объектов). Тело функции представляет собой блок, заключенный в фигурные скобки. Для возврата результата, вычисленного в функции, служит оператор return. После него указывается выражение, результат вычисления которого и передается в точку вызова функции. Результат при необходимости преобразуется по общим правилам к типу, указанному в заголовке. Функция может иметь несколько операторов возврата, это определяется алгоритмом. Для того чтобы вызвать функцию, надо указать ее имя (тут прослеживается полная аналогия с реальной жизнью, например, Ихтиандр! или Леопольд! ), а также передать ей набор аргументов в соответствии с указанным в ее заголовке. Соответствие должно соблюдаться строго, и это естественно: ведь если в заголовке Кроме блоков, в которых описаны локальные переменные с такими же именами.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |