Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - читать книгу онлайн бесплатно, автор Стивен Прата
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

000090000000589985045200000000

009000000000589985004520000000

000000000000589185000452000000

000000000000589985000045200000

555555555555589985555555555555

888888888888589985888888888888

999909999999999999999939999999

888888888888589985888888888888

Файловый ввод-вывод 563

13 Выполните упражнение 12 используя массивы переменной длины вместо - фото 425

13. Выполните упражнение 12, используя массивы переменной длины вместо стандартных массивов.

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

14

Структуры и другие формы данных

В ЭТОЙ ГЛАВЕ...

• Ключевые слова: struct, union, typedef

• Операции: . ->

• Структуры в языке С и способы создания шаблонов и переменных типа с труктур

• Доступ к членам структуры и написание функций для обработки структур

• Средство typedef в языке С

• Объединения и указатели на функции

566 Глава 14

О

дним из наиболее важиых шагов при проектировании программы является выбор подходящего способа представления данных. Во многих случаях простой переменной или даже массива оказывается недостаточно. Язык С позволяет расширить возможности представления данных с помощью переменных типа структур. В своей базовой форме структура С является достаточно гибким средством, чтобы представлять широкое разнообразие данных, и она позволяет изобретать новые формы. Если вы знакомы с записями в языке Pascal, то вам будет легко освоиться со структурами. Если же нет, то настоящая глава послужит введением в структуры С. Давайте рассмотрим конкретный пример, который покажет, почему могут понадобиться структуры, и продемонстрирует их создание и применение.

Учебная задача: создание каталога книг

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

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

Взгляните на программу, показанную в листинге 14.1, и на ее вывод. Затем прочитайте объяснение основных ее особенностей.

Листинг 14.1. Программа book.с

Структуры и другие формы данных 567 Как и в предыдущих главах мы применяем - фото 426

Структуры и другие формы данных 567

Как и в предыдущих главах мы применяем функцию sgets для удаления символа - фото 427

Как и в предыдущих главах, мы применяем функцию s_gets() для удаления символа новой строки, который функция fgets() обычно оставляет во входной строке. Ниже приведены результаты пробного запуска:

Введите название книги.

Chicken of the Andes Теперь введите ФИО автора.

Disma Lapoult Теперь введите цену.

2 9.99

Chicken of the Andes авторства Disma Lapoult: $29.99 Disma Lapoult: "Chicken of the Andes" ($29.99)

Готово.

Структура, созданная в листинге 14.1, имеет три части (называемые членами или полями) — для хранения названия книги, для хранения имени автора и для хранения цены. Вы должны овладеть следующими тремя навыками:

• настройка формата или схемы для структуры;

• объявление переменной, соответствующей такой схеме;

• обеспечение доступа к индивидуальным компонентам переменной типа структуры.

Объявление структуры

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

568 Глава 14

struct book {

char title[MAXTITL]; char author[MAXAUTL]; float value;

};

Это объявление описывает структуру, образованную из двух символьных массивов и одной переменной типа float. Оно не создает реальный объект данных, но определяет, из чего состоит такой объект. (Иногда мы будем ссылаться на объявление структуры как на шаблон, потому что оно показывает, каким образом будут храниться данные. Если вы слышали о шаблонах C++, то знайте, что они представляют собой другой, более претенциозный случай использования этого понятия.) Давайте обратимся к деталям объявления. Первым идет ключевое слово struct. Оно указывает, что за ним следует структура. Далее находится необязательный дескриптор — слово book — сокращенная метка, которую можно применять для ссылки на эту структуру. Таким образом, позже мы имеем следующее объявление:

struct book library;

Оно объявляет library как переменную типа структуры, которая использует схему структуры book.

После этого в объявлении структуры указан список членов, заключенный в фигурные скобки. Каждый член описан собственным объявлением, которое оканчивается точкой с запятой. Например, порция названия книги (title) представляет собой массив, содержащий MAXTITL элементов типа char. Членом структуры может быть любой тип данных С, в том числе и другая структура.

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

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Прата читать все книги автора по порядку

Стивен Прата - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x