Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Копия Си лекция каз.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.05 Mб
Скачать

Бақылау сұрақтары

  1. Тұтынушы функциясын сипаттау дегеніміз не?

  2. Егер функцияның параметрлері жоқ болса, ол қалай сипатталады?

  3. Тұтынушы функциясы мен стандартты функциялардың айырмашылығы неде ?

  4. Функция аргументтерін беру жолдарын атаңыз?

  5. Жергілікті” және “ауқымды” айнымалылардың айырмашылығы.

  6. Жергілікті” айнымалылардың әрекет ету аймағы ұғымы.

  7. Ауқымды” айнымалылардың әрекет ету аймағын түсіндіріңіз.

  8. Return операторының қолданылуы және атқаратын қызметі.

дӘРІС№13

Жазбамен жұмыс.

Си тіліндегі құрылымдар өзара логикалық байланысқан әртүрлі типті мәліметтерді байланыстырады. Мәліметтердің құрылымдық тип­те­рі келесі сипаттаумен анықталады:

struct құрылым_ аты

{

элементтерді сипаттау;

};

Құрылымға компьютер жадынан орын бөлу үшін құрылымдық айнымалыны анықтап алу керек:

struct құрылым_аты айнымалы_аты;

Құрылымдарды анықтау барысында олардың элементтеріне бас­тап­қы мәндерді меншіктеуге болады. Құрылым элементтерінің мәнде­рін енгізу үшін ағымдық енгізу операторы cin>> немесе форматпен енгізу операторы – scanf қолданылады.

Құрылымдармен келесі амалдарды орындауға болады:

1) Құрылымның адресін алу амалы. Құрылымның адресін алу үшін құрылымдық айнымалыға нұсқауыш (&) амалы қолданылады.

2) Құрылымның элементін пайдалану үшін нүкте (.) амалы (тіке­лей ену) немесе (->) (нұсқауыш бойынша ену) амалы қолданылады.

Құрылымдық айнымалы float, int, char типті айнымалылар сияқты пайдаланылуы мүмкін. Мысалы:

struct gr /* құрылым аты */

{char fio[10]; /* құрылым элементі */

int est[25]: /* құрылым элементі */

int nomer; /* құрылым элементі */

}

gruppa1; /*құрылымдық айнымалы аты */

struct gr gruppa2; /* құрылымдық айнымалыны хабарлау*/

Егер құрылымды сипаттаушы берілген файлдағы барлық функция­лар­дың алдында орналасса, онда ол құрылымды осы файлда­ғы барлық функциялар пайдалана алады. Құрылымдық айнымалыны анықтау барысында оған алғашқы мәндерді меншіктеуге болады (құрылым өрістеріне мән беруге болады). Мысалы:

struct date { int day,month,year;};

d[5]={{1,3,1980},

{5,1,1990},

{1,1,2002}};

Құрылымдарды пайдалану мысалы:

#include <stdio.h>

#include <string.h>

#include <conio.h>

struct Spisok {

char Fio[20];

char Grup[10];

int Ot[3];

float S_Bal;

} *sved;

Void Vvod(int nom,struct Spisok *sved)

{printf("\n Мәліметтерді енгізіңіз:");

scanf(“%d”,nom+1);

printf("\n фамилиясы - ");

gets(sved.Fio);

printf("топ нөмірі - ");

gets(sved.Grup);

float s=0;

for(int i=0;i<3;i++) {

printf("\n бағалары - ");

scanf(“%d”,sved.Ot[i]);

s+=sved.Ot[i];

}

sved.S_Bal=s/3.;

return;}

Void main(void)

{struct Spisok Stud[50]; int i,N; char Bukva;

clrscr();

printf("\n 50-ден кіші бүтін сан енгізіңіз");

scanf(“%d”,&N);

for(i=0;i<N;i++) Vvod(i,&Stud[i]);

printf ("\n студенттердің тізімі:");

for(i=0;i<N;i++)

printf("\n %20s %10s %4.2f",Stud[i].Fio,

Stud[i].Grup,Stud[i].S_Bal);

printf ("\n Фамилиядағы әріпті іздеу");

scanf(“%c”,&Bukva);

printf("\n Студенттер туралы мәлімет");

int kod_p=0;

for(i=0;i<N;i++)

if(Stud[i].Fio[0]==Bukva){ kod_p=1;

printf("\n %20s %10s%4.2f",Stud[i].Fio,

Stud[i].Grup,Stud[i].S_Bal);}

if(kod_p==0) printf("Ондай жазба жоқ!");

printf ("\n Жазбаны іздеу");