Написание программы с использованием структурного шаблона с именем 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, трактуется как "истина").
В своей работе я использую целый и символьный тип данных.
Указатели
Указатель - это переменная, которая содержит адрес некоторого объекта в памяти компьютера. Понятно, что адрес - целое число.
Многие конструкции языка Си требуют применения указателей. Например, указатели необходимы для успешного использования функций и динамического распределения памяти. С указателями следует обращаться очень осторожно. Так использование в программе неинициализированного указателя может привести к "зависанию" компьютера. При неправильном, неакк