Құрылымдық типтер мен құрылымдар


 Үлкен көлемді мәнді жиынды өңдеу тапсырмасын  шешуде   массивтер қолданылады. Бірақ, масивтрмен жұмыста массивтің әр элементінің типтері бірдей болу керек.

Көптеген экономикалық және ақпаратық есептерде ведомость, құжаттарды, тізімдерді өңдеуде әр түрлі типтегі берілгендерді бір топқа біріктіру қажеттілігі туындайды. Мысалы, қоймадағы тауар келесі өлшемдермен сипатталады:

  • Тауар аты;
  • Көтерме(сататын) бағасы;
  • Сауда қымбаттатуы пайызбен;
  • Тауар партиясының көлемі;
  • Тауар партиясының түскен күні.
  • Бұл мысалда өлшемдердің типтері келесідей:

  • Тауар аты (char []);
  • Көтерме(сататын) бағасы (long);
  • Сауда қымбаттатуы пайызбен(float);
  • Тауар партиясының көлемі (int);
  • Тауар партиясының түскен күні (char [9]).
  • Бұндай обьектілерді Си тілінде сипаттау үшін құрылымдық берілгендер типі қолданылады.

    Құрылым– бұл бір компонент деп аталынатын (өріс) немесе бірнеше типтердің фиксирленген элементтер санынан тұратын  берілгендер типі.

    Бір типті элементтерден тұратын массивтерге қарағанда, құрылымның компоненттері әр типті бола алады және олардың әрқайсысыныі аты әр түрлі болуы керек.

    "Қоймадағы тауарлар" құрылымының аталған элементерінің типтерін программист өзі таңдаған. Мағынасына қарай компонентердің типтері тілде рұқсат етілгендердің кез келгені бола алады. Өоймадағы тауар көп болуы мүмкін болғандықтан, нақты тауар  туралы мәліметтен тұратын жекеленген құрылымдарды сипаттау үшін , программист құрылымдық деп аталатын өз бетінше тип енгізеді. Біздің мысалымыз үшін оны былай енгізуге болады:

    struct goods {

    char name[];              /* Атауы */

    long price;                 /* Көтерме бағасы */

    float percent;             /* Қымбаттауы  % */

    int vol;                       /* Партия көлемі */

    char date [9];             /* Партияны әкелу күні */

    };

    Мұнда struct – құрылымдық тип спецификаторы (қызметтік сөзі ); goods – құрылымдық типтегі пограммист ұсынған атау (ат). ("tag" ағылшынн терминінің аудармасын қолданып,құрылымдық типтің орыс тіліндегі баламасы Си тілінде көбінесе тег деп аталады). goods  типтік әр обьектісіне кіретін, элементті сипаттау фигуралық жақшаға алынады.  Сөйтіп, құрылмдық типті анықтау форматы келесідей:

    struct  құрылымдық_тип_аты { элементті_сипаттау };

    мұндағы struct – құрылымдық тип спецификаторы;

    құрылымдық_тип_аты программист өз еркімен таңдайтын идентификатор;

    элементті_сипаттау әр қайсысы  енгізілетін құрылымдық типтің элементтері үшін прототип қызметін атқаратын, бір немесе одан да көп обьектілерді сипаттау жиыны .

    Құрылымдық тип сипаттамасы үтір нүктемен аяқталатынын ескеру керек.

    struct конструкциясы құрылымдық_тип_аты тип спеификатор сияқты рөл атқарады. Мысалы, double немесе int.