Студопедия

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

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

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






  • Пример 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 :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.