Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Пример 11.10






/*Список студентов с результатами экзаменов*/

# define KST 35

struct list

{char *fio; int r_l;

int math; int phys; };

struct list group[KST];

Элементам таблицы можно придать значение следующими способами:

· ввести поэлементно;

· присвоить поэлементно;

· инициализировать массив структур.

Второй вариант объявления таблицы:

struct list gr[]=

{{“Андреев”, 5, 5, 5},

{“Большаков”, 5, 5, 4},

{“Якишенко”, 5, 4, 5}}:

 

11.8 Оператор sizeof.

В Си вычисление размера любого объекта

-) sizeof < обьект>;

-) sizeof(< имя_типа>);

Результат: целое, которое равно размеру в байтах указанного объекта или типа.



Объект:

-)массив;

-)структура.

Имя типа:

-)имя базового типа(int, char, float);

-)имя произвольного типа(структура и указатель).

#define kst (sizeof group) sizeof(struct list) или

#define kst(size group)sizeof(group[0])

 

11.9 Декларация typedef

Такя декларация позволяет давать новые имена типам данных

Синтаксис:

tupedef < старое имя типа> < новое имя типа>;

Использование:

< тип объявления в typedef> < список объектов>;

Внимание: typedef не создает новый тип, а только синоним для существуещего типа!!!

Пример 11.12

typedef int Exz;

typedef char*String;

typedef struct list

{ Sting fio;

Ekz math;

Ekz phys;

Ekz r_l;

} Liststud;

Liststud group[kst];

Причины использования typedef:

1)“Эстетическая”-одним именем заменяется сложная декларация.

2) Стремление к ясности

struct list*pstr; -указатель на структуру типа struct list

typedef structlist*Plist;

Plist pstr;

Принято имена-синонимы объявлять в typedef с заглавной буквы!!!

3)Машинно-независимые программы.

От реализации зависят:

-)chort,

-)int,

-)long,

-)double,

-)long double.

При переносе на другие ЭВМ(или другую платформу)достаточно будет изменять только размеры с помощью typedef.

 


12 ФУНКЦИИ И СТРУКТУРА ПРОГРАММЫ

 

Вспомогательным подзадачам на этапе разработки метода

решения задачи соответствуют вспомогательные алгоритмы.

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

функция.

12.1 Определение функции

Синтаксис

< тип_результата> < имя_функции>

([< декларации_аргументов> ])

{

< декларации> \ < тело

< иструкции> \ функции>

}

Могут быть опущены:

< тип_результат> ~int

< декларация_аргументов> ~()

< декларации> в < теле_функции> ~нет локальных

переменных

< инструкции> ~нет вычисления результатов

пример12.1

/*минимальная функция*/

dummy() {}

12.2 Функции вызывающие и вызываемые

main () a() b()

{ { {

.............................

a() b() }

...................

b() }

}

Опр.

Функция, которая отдаёт управление другой называется

вызывающей, а которая управление получает называется

вызываемой.

В исходном файле Си программы функции могут следовать в

любом порядке.

 

 

12.3 Связь между функциями.

Связь между функциями реализуется одним из тех способов:

1. Через аргументы.

2. Через возвращаемые значения.

3. Через внешние переменные.

Через возвращаемые переменные

12.3.1

Вызов функции

< имя функции> (< список аргументов>)

Пример 12.3

/* Вызов printf */

Вызов функции есть выражение, поэтому оно может быть также

использовано в операторах

if (res==printf(" как выражение"))

dummy();

else

exit(-1); /*Выход в MS-DOS*/

12.3.2 Инструкция возврата return

Использование

-возвращение результата из вызываемой в вызвавшую

Синтаксис

return < выражение>

return (< выражение>)

Так как это инструкция в конце надо писать;.

Семантика

Выполняется приведение типа результата вычисляемого

функцией к типу заданному в вызывающей функции

-вызывающая функция может игнорировать то значение,

которое возвращается из вызываемой функции.

-< выражение> может отсутствовать, тогда функция не

возвращает результата

-return может отсутствовать, тогда функция завершает работу по

достижению символа }

- допускается несколько инструкций возврата, если все они

возвращают значение одного типа.

- если разные return возвращают значения разного типа, то

программа нереентабельна

 

12.4 АППАРАТ ФОРМАЛЬНИХ І ФАКТИЧНИХ АРГУМЕНТІВ






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.