Написание программы с использованием структурного шаблона с именем ZNAK

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

Задание

 

Описать структурный шаблон с именем ZNAK, содержащий следующие элементы:

NAME - фамилия, имя (символьный массив)

ZODIAC - знак зодиака (символьный массив)

BDAY - день рождения - массив трех чисел (тип INT)

Написать программу, выполняющую:

.ввод на экран с клавиатуры данных в массив BOOK, состоящий из элементов типа ZNAK.

2.вывод на экран:

- всей информации, упорядоченной по датам дней рождения

-вывод на экран информации о человеке, чья фамилия и чьё имя введены с клавиатуры, если таковых нет, то выдать соответствующее сообщение

Стандартные библиотеки

 

-стандартный заголовочный файл ввода/вывода заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода.

-функция выделения динамической памяти, входящие в стандартную библиотеку языка Си, malloc принимает в качестве аргумента размер выделяемой области в байтах; возвращает нетипизированный указатель (void*) на область памяти заявленного размера или NULL в случае, если выделить память невозможно. Содержимое выделяемой области памяти не определено. сalloc -принимает в качестве аргумента количество элементов и размер каждого элемента в байтах; возвращает нетипизированный указатель (void*) на область памяти заявленного размера или NULL в случае, если выделить память невозможно. Значения элементов устанавливаются в ноль. malloc работает быстрее, чем calloc, в связи с отсутствием функции обнуления выделяемой памяти. графический программа указатель структура

-стандартная библиотека языка Си, подключающая графические функции.

 

Структуры

 

Структуры в языке Си - это объединенные данные, у которых есть некоторая логическая взаимосвязь.

Например:ZNAK { char NAME[30]; char ZODIAK[10]; int BDAY[3];}

Любая структура в языке си ( c ) должна начинаться с ключевого слова - struct, которое сообщает компилятору, что тут у нас будет структура. Все данные в структуре (struct) пишутся в фигурных скобках, и в конце ставится запятая с точкой (;).

В структуре (struct) у нас находятся данные различных типов, но они объединены в логическую связь. Данные в структуре должны иметь уникальные имена, но в различных структурах можно использовать одинаковые названия. Объявление структуры ни чем не отличается от объявления любого типа данных в языке Си.

Операции со структурами:

присваивание полю структуры значение того же типа

можно получить адрес структуры. Не забываем операцию взятия адреса (&)

можно обращаться к любому полю структуры

для того, что бы определить размер структуры можно использовать операцию sizeof()

Инициализация структуры

Инициализация структуры в языке си происходит так же, как и при инициализации массива. Вот пример инициализации структуры:

struct klass a = {"Sergey", 'B', 4.5 };

Создается переменная типа struct klass и присваивается всем трем полям, которые у нас определенны в структуре, значения. Порядок очень важен при инициализации структуры, так как компьютер сам не может отсортировывать данные. Если какое-либо поле у вас будет не заполненным, то оно автоматом заполнится 0 - для целочисленных типов; NULL - для указателей; \0 (ноль-терминатор) - для строковых типов.

 

Типы данных

 

В языке Си предусмотрено использование основных типов данных:

. Символьный.

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

.Целый.

Можно использовать до трех размеров целых, описывае мых как short int, int и long int. Длинные целые занимают не меньше памяти, чем короткие, но в конкретной реализации может оказаться, что либо короткие целые, либо длинные целые, либо те и другие будут эквивалентны простым целым. "Простые" целые имеют естественный размер, предусматриваемый архитектурой используемой машины; другие размеры вводятся для удовлетворения специальных потребностей.

.Беззнаковый.

Целые без знака, описываемые как unsigned, подчиняются законам арифметики по модулю 2**n, где n - число битов в их представлении.

.Вещественный.

Вещественные одинарной точности (float) и вещественные двойной точности (double) в некоторых реализациях могут быть синонимами. (На СМ ЭВМ float занимает 32 бита памяти, а double - 64).

В языке нет логического типа данных, а в качестве логических значений используются целые "0" - "ложь" и "1" - "истина" (при проверках любое целое, не равное 0, трактуется как "истина").

В своей работе я использую целый и символьный тип данных.

 

Указатели

 

Указатель - это переменная, которая содержит адрес некоторого объекта в памяти компьютера. Понятно, что адрес - целое число.

Многие конструкции языка Си требуют применения указателей. Например, указатели необходимы для успешного использования функций и динамического распределения памяти. С указателями следует обращаться очень осторожно. Так использование в программе неинициализированного указателя может привести к "зависанию" компьютера. При неправильном, неакк