- •Глава 7. Типы определяемые пользователем Структуры
- •Задания
- •Формирование структуры
- •7.2 Массивы структур
- •Глава 8 Файлы.
- •Примеры составления программ на языке с.
- •Задания.
- •Глава 9. Численные методы
- •9.1 Приближенные методы решения уравнений.
- •Метод половинного деления
- •Метод хорд.
- •Метод Ньютона.
- •Метод простой итерации.
- •Задания
- •9.2 Решение систем уравнений
- •9.3 Вычисление интегралов
- •9.4 Вычисление сумм числовых рядов Вычисление конечных сумм
- •Список литературы
- •456776, Г. Снежинск, ул. Комсомольская, 8
7.2 Массивы структур
Описать массив структур и поместить в него сведения о нескольких книгах. Предусмотреть возможность выдачи наименований книги по фамилии автора.
Организовать массив структур, содержащий информацию о фамилии, имени, отчестве и номере телефона пяти ваших товарищей, определив его по первым 2–3 цифрам телефона.
Организовать массив структур, содержащий информацию о результатах сдачи последней сессии вашими товарищами. Определить и дополнить данные средним баллом.
Описать массив структур, содержащий анкетные данные (год, месяц и день рождения; пол; место рождения; национальность) нескольких человек. Ввести данные и результат отпечатать. Предусмотреть возможность выдачи данных по введенной фамилии.
Описать массив структур, который содержит информацию о нескольких деталях (наименование, масса, габаритные размеры: длина, ширина, высота, материал). Определить массу всех деталей.
Описать массив структур, содержащий информацию об итогах сдачи вами экзаменационных сессий в институте. Определить средний балл.
Организовать массив структур, содержащий информацию о месте жительства нескольких ваших товарищей. Предусмотреть возможность выдачи адреса по введенной фамилии.
Описать массив структур и поместить в него сведения о месте работы и занимаемой должности ваших родителей. Организовать выдачу данных об одном из родителей.
Описать массив структур и поместить в него следующие анкетные данные: фамилию, имя, отчество, пол, адрес (город, улица, номер дома, номер квартиры) нескольких жильцов. Предусмотреть возможность выдачи сведений о жильце по введенному адресу.
Описать массив структур, содержащий информацию о нескольких деталях: наименование, материал, габариты (длина, высота, ширина), масса. Определить среднюю массу детали.
Ведомость сдачи экзамена содержит следующие графы: номер по порядку, фамилия студента, номер зачетной книжки, оценка (Неуд., Удовл., Хор., Отл.). Описать и заполнить структуру для студентов группы. Подсчитать процент успеваемости.
Описать структуру приведенной ниже таблицы, заполненной данными для нескольких человек.
Номер цеха
|
Ф. И. О.
|
Сведения о рабочих |
||
Профессия |
Разряд |
Стаж |
||
|
|
|
|
|
Предусмотреть возможность выдачи данных по введенной фамилии.
Имеется документ в виде справки для 10 человек. Описать его в виде структуры по следующей форме:
Сотрудник |
Должность
|
Месячный оклад
|
|
Фамилия |
Табельный номер |
||
|
|
|
|
Предусмотреть возможность выдачи данных по введенной фамилии.
Сводка выполнения плана содержит сведения: наименование изделия, шифр, единица измерения, план выпуска, фактически выпущено, отклонение от плана (перевыполнение, недовыполнение). Описать и заполнить структуру для пяти позиций сводки. Предусмотреть возможность выдачи данных по введенному наименованию изделия.
Описать и заполнить структуру для сводки о выполнении плана выпуска продукции для нескольких наименований по следующей форме:
№ п/п
|
Наименование
|
Единица измерения
|
Шифр
|
План выпуска |
||||
Всего
|
по кварталам |
|||||||
I |
II |
III |
IV |
|||||
|
|
|
|
|
|
|
|
|
Предусмотреть возможность выдачи данных по введенному наименованию изделия.
Описать и заполнить структуру для описания следующего документа:
Инвентарная ведомость |
|||||||
п/п
|
Инвентарный номер
|
Дата |
Приходный номер
|
Количество
|
Единица измерения
|
||
Число |
Месяц |
Год |
Предусмотреть возможность выдачи данных по введенному инвентарному номеру изделия.
Таблица содержит результаты спортивных соревнований: Ф. И. О., время на 100 м, время на 1 км, прыжок в высоту, прыжок в длину. Описать и заполнить запись для шести спортсменов. Определить лучшего спортсмена по каждому виду спорта.
Пусть имеется таблица футбольного чемпионата, содержащая результаты игр между n командами. Описать таблицу в виде массива структур и составить программу подсчета количества очков, набранных каждой командой.
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену. Описать его в виде массива структур и составить программу определения количества отличников в группе.
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену. Составить программу выдачи оценок студентов группы по любому экзамену сессии.
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену. Составить программу выдачи фамилий студентов, имеющих задолженность хотя бы по одному предмету.
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену. Составить программу определения «качества» успеваемости, т. е. процент студентов, сдавших все экзамены на 5 и 4.
Табель успеваемости группы студентов содержит следующие сведения: номер по порядку, фамилию, имя, отчество студента, оценки по каждому экзамену. Составить программу определения названия предмета, который был сдан лучше всего.
Описать массив структур, содержащий информацию о внешности людей, такую, как пол, рост, вес, цвет волос и глаз. Написать программу, выдающую фамилию человека с указанными приметами.
Известно количество очков, набранных каждой из 20 команд — участниц первенства по футболу. Ни одна пара команд не набрала одинакового количества очков. Вывести названия команд в порядке занятых мест в чемпионате.
Дана информация о росте 15 юношей класса, упорядоченная по убыванию. Ни одна пара учеников не имеет одинакового роста. В начале учебного года в класс поступил новый ученик. Выполнить следующие действия:
а) вывести фамилии всех учеников, рост которых меньше роста новенького;
б) определить фамилию ученика, после которого следует записать фамилию новенького, чтобы упорядоченность не нарушилась;
Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию номера группы;
вывод на дисплей фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,0;
если таких студентов нет, вывести соответствующее сообщение.
7. 2. 27. Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по возрастанию среднего балла;
вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;
если таких студентов нет, вывести соответствующее сообщение.
7. 2 . 28. Описать структуру с именем STUDENT, содержащую следующие поля:
фамилия и инициалы;
номер группы;
успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2;
если таких студентов нет, вывести соответствующее сообщение.
7. 2 . 29. Описать структуру с именем AEROFLOT, содержащую следующие поля:
название пункта назначения рейса;
номер рейса;
тип самолета.
Написать программу, выполняющую следующие действия
ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть упорядочены по возрастанию номера рейса;
вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;
если таких рейсов нет, выдать на дисплей соответствующее сообщение.
7.2.30 Описать структуру с именем AEROFLOT, содержащую следующие поля:
название пункта назначения рейса;
номер рейса;
тип самолета.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;
вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры;
если таких рейсов нет, выдать на дисплей соответствующее сообщение.
7.2.31 Описать структуру с именем WORKER, содержащую следующие поля:
фамилия и инициалы работника;
название занимаемой должности;
год поступления на работу.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER; записи должны быть размещены по алфавиту.
вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
если таких работников нет, вывести на дисплей соответствующее сообщение.
7.2.32. Описать структуру с именем TRAIN, содержащую следующие поля:
название пункта назначения;
номер поезда;
время отправления.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;
вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени;
если таких поездов нет, выдать на дисплей соответствующее сообщение.
7.2.33. Описать структуру с именем TRAIN, содержащую следующие поля:
название пункта назначения;
номер поезда;
время отправления.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда;
вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;
если таких поездов нет, выдать на дисплей соответствующее сообщение.
7.2.34. Описать структуру с именем TRAIN, содержащую следующие поля:
название пункта назначения;
номер поезда;
время отправления.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN; записи должны быть упорядочены по номерам поездов;
вывод на экран информации о поезде, номер которого введен с клавиатуры;
если таких поездов нет, выдать на дисплей соответствующее сообщение.
7.2.35. Описать структуру с именем MARSH, содержащую следующие поля:
название начального пункта маршрута;
название конечного пункта маршрута;
номер маршрута.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов;
вывод на экран информации о маршруте, номер которого введен с клавиатуры;
если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
7.2.36. Описать структуру с именем MARSH, содержащую следующие поля:
название начального пункта маршрута;
название конечного пункта маршрута;
номер маршрута.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов;
вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры;
если таких маршрутов нет, выдать на дисплей соответствующее сообщение.
7.2.37. Описать структуру с именем NOTE, содержащую следующие поля:
фамилия, имя;
номер телефона;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по датам дней рождения;
вывод на экран информации о человеке, номер телефона которого введен с клавиатуры;
если такого нет, выдать на дисплей соответствующее сообщение.
7.2.38. Описать структуру с именем NOTE, содержащую следующие поля:
фамилия, имя;
номер телефона;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть размещены по алфавиту;
вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры;
если таких нет, выдать на дисплей соответствующее сообщение.
7.2.39. Описать структуру с именем NOTE, содержащую следующие поля:
фамилия, имя;
номер телефона;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE; записи должны быть упорядочены по трем первым цифрам номера телефона;
вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
если такого нет, выдать на дисплей соответствующее сообщение.
7.2.40. Описать структуру с именем ZNAK, содержащую следующие поля:
фамилия, имя;
знак Зодиака;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам дней рождения;
вывод на экран информации о человеке, чья фамилия введена с клавиатуры;
если такого нет, выдать на дисплей соответствующее сообщение.
7.2.41. Описать структуру с именем ZNAK, содержащую следующие поля:
фамилия, имя;
знак Зодиака;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по датам дней рождения;
вывод на экран информации о людях, родившихся под знаком, наименование которого введено с клавиатуры;
если таких нет, выдать на дисплей соответствующее сообщение.
7.2.42. Описать структуру с именем ZNAK, содержащую следующие поля:
фамилия, имя;
знак Зодиака;
день рождения (массив из трех чисел).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK; записи должны быть упорядочены по знакам Зодиака;
вывод на экран информации о людях, родившихся в месяц, значение которого введено с клавиатуры;
если таких нет, выдать на дисплей соответствующее сообщение.
7.2.43. Описать структуру с именем PRICE, содержащую следующие поля:
название товара;
название магазина, в котором продается товар;
стоимость товара в руб.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям товаров;
вывод на экран информации о товаре, название которого введено с клавиатуры;
если таких товаров нет, выдать на дисплей соответствующее сообщение.
7.2.44. Описать структуру с именем PRICE, содержащую следующие поля:
название товара;
название магазина, в котором продается товар;
стоимость товара в руб.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; записи должны быть размещены в алфавитном порядке по названиям магазинов;
вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры;
если такого магазина нет, выдать на дисплей соответствующее сообщение.
7.2.45. Описать структуру с именем ORDER, содержащую следующие поля:
расчетный счет плательщика;
расчетный счет получателя;
перечисляемая сумма в руб.
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER; записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков;
вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры;
если такого расчетного счета нет, выдать на дисплей соответствующее сообщение.
7.2.46. Структура, описывающая понятие “Автомобиль”, имеет следующие поля:
Регистрационный номер (строка из 6 символов);
Код региона России (целое число);
Год выпуска (целое число);
Фамилия владельца (строка до 20 символов).
Составить программу, которая в таблице регистрации автомобилей по заданному регистрационному номеру и коду региона изменяет фамилию владельца на “Петровский”. Количество автомобилей, их характеристики и параметры поиска ввести с клавиатуры в основной программе. Результат вывести на экран в основной программе.
7.2.47. Структура, описывающая понятие “Человек”, имеет следующие поля:
Номер паспорта (семизначное целое число)
Фамилия (строка до 20 символов)
Базируясь на указанной структуре определить понятие “Проживающий”, доопределив исходную структуру полями “Наименование отеля” - строка до 15 символов и “Количество суток проживания” – целое число. Составить программу, которая вычисляет сумму, полученную в качестве оплаты за проживание в отеле “Приморский”. Количество проживающих, их характеристики и норматив оплаты ввести с клавиатуры в основной программе. Результат вывести на экран в основной программе.
7.2.48. Структура, описывающая понятие “Абонент телефонной сети”, имеет следующие поля:
Номер телефона (семизначное целое число)
Фамилия (строка до 20 символов)
Номер паспорта (длинное целое)
Базируясь на указанной структуре определить понятие “Должник”, доопределив исходную структуру полем “Долг по оплате” – вещественное число. Составить программу, печатающую данные абонента, имеющего максимальный долг по оплате. Количество должников и их характеристики ввести с клавиатуры в основной программе. Результат вывести на экран в основной программе.
7.2.49. Структура, описывающая понятие “Человек”, имеет следующие поля:
Номер паспорта (семизначное целое число)
Фамилия (строка до 20 символов)
Базируясь на указанной структуре определить понятие “Проживающий”, доопределив исходную структуру полями “Наименование отеля” - строка до 15 символов и “Количество суток проживания” – целое число. Составить программу, которая выводит на экран номера паспортов всех проживавших в заданном отеле, чьи фамилии начинаются с букв “Кузне”. Количество проживающих, их характеристики и наименование отеля ввести с клавиатуры в основной программе.
7.2.50. Структура, описывающая понятие “Автомобиль”, имеет следующие поля:
Регистрационный номер (строка из 6 символов);
Код региона России (целое число);
Номер паспорта владельца (длинное целое).
Регистрационный номер образован по шаблону: БЦЦЦББ, где Б – буква, Ц – цифра (например, K233ВО). Составить программу, которая по таблице регистрации вычисляет количество автомобилей, у которых сумма цифр номера равна 27. Количество автомобилей и их характеристики ввести с клавиатуры в основной программе. Результат вывести на экран в основной программе.
7.2.51. Структура, описывающая понятие “Книга”, имеет следующие поля:
Единый регистрационный номер (длинное целое);
Автор (строка до 20 символов);
Год издания (целое число);
Количество экземпляров (целое число).
Оформить функцию, которая вычисляет количество экземпляров книг заданного автора, выпущенных в период с 1986 по 2001 год. Характеристики книг и фамилию автора ввести с клавиатуры в основной программе. Результат вывести на экран в основной программе.
7.2.52. Структура содержит сведения о пациентах глазной клиники и имеет следующие поля:
Фамилия пациента (строка до 30 символов);
Пол (1 символ);
Год рождения (целое число);
Диагноз (строка до 50 символов).
Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PAZIENT, записи должны быть размещены в алфавитном порядке по фамилиям;
вывод на экран информации о пациентах, старше Х лет с диагнозом У. Данные вводятся с клавиатуры;
если пациентов с таким диагнозом нет, выдать на дисплей соответствующее сообщение.