- •1.Си программалау тілі туралы түсінік
- •2.Сызықтық құрылымды алгоритм. Мысал.
- •3.Си тілінде жазылған программаның құрылымы
- •4.Файлдармен жұмыс
- •5.Си тілінің қарапайым элементтері
- •6.Берілгендерді енгізу операторлары. Мысал
- •7.Float және double жылжымалы нүктелі нақты сандар типтері
- •8.Файлға мәлімет жазу және оқу
- •10. Графикалық режим орнату, одан шығу, мәтін жазу, сызық салу функциялары
- •11.Си тілндегі негізгі операторлар
- •12.Си программасын орындау ортасы
- •13.Программа жұмысын басқару операторлары
- •14.While операторы. Қолдану мысалдары
- •15.Шартты операторлар
- •16.Бүтін сан түріндегі мәліметтерді сипаттау
- •18. Екі өлшемді массивтер.Мысалдары.
- •19.Тұтынушы функциясын пайдалану
- •20. Блок-схема және оның қызметі
- •21. Алгоритмнің циклдік құрылымы
- •22.Айнымалылардың әрекет ету аймағы
- •23.Do... While цикл операторы
- •24.Массив дегенымыз- реттелген бір текті элементтердің жиыны
- •25.Таңдау операторлары - бұлар шартты оператор және ауыстырғыш.
- •26.Құрылымдарды пайдалану
- •27.Си тілінде кездейсоқ сандарды пайдалану
- •28.Қарапайым программа.Препроцессор.
- •29.1.Массивтерді өңдеу есептерінің түрлері (кластары)
- •30.Символдық тіркестер (жолдар, қатарлар)
- •32.Блок-схемада қолданылатын геометриялық фигуралардың атқаратын қызметі
- •33.Массивті сұрыптау (іріктеу, реттеу).
- •34. Си тілінің графиктік операторлары.
- •35. Жай алмастыру арқылы сұрыптау.
- •36. Бір өлшемді массивтер және оларды енгізу, шығару
- •37. Адрестік операциялар
- •38. Printf () функциясы
- •39. Массивтер және массивтерге қолданылатын нұсқауыштар
- •40. Бір өлшемді массивтер және оларды енгізу, шығару
- •41.Нұсқауыштарға қолданылатын операциялар
- •42.Return () функциясы
- •43.Көрсеткіштерді пайдаланып жиымдармен жұмыс істеу
- •44.Тақырыпта қолданылатын стандартты файлдар
- •45.Символдық тіркестер
- •46.Getch() функциясы
- •47. Матрицаның барлық элементтерін өңдейтін алгоритмдер
- •48. Басқарушы символдар
- •49. Символдық таңбаларды енгізу/шығару
- •50. Формат символдары
- •51. Сөз тіркестерін енгізу және шығару функциялары
- •52. Препроцессордың қызметі
26.Құрылымдарды пайдалану
Құрылымдарды пайдалану" \f C \l "1" Си тіліндегі құрылымдар өзара логикалық байланысқан әртүрлі типті мәліметтерді байланыстырады. Мәліметтердің құрылымдық типтері келесі сипаттаумен анықталады:
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 Жазбаны іздеу");
Vvod(-1,sved);
kod_p=0;
for(i=0;i<N;i++)
if(memcmp(sved,&Stud[i],sizeof(sved))==0) { kod_p=1;
printf("\n Іздеу: \n %20s %10s",Stud[i].Fio,
Stud[i].Grup);}
if(kod_p==0) printf("Ондай жазба жоқ!");
getch();}
Си тілінде құрылымдарда өрістердің ерекше типі– биттік өрістерді қолдануға мүмкіндік жасалған. Биттер өрісі дегеніміз – компьютер жадында бүтін типті айнымалылардың аймағында орналасқан көрші разрядтар (биттік – екілік) топтары.
Ақпараттарды мәліметтер құрылымдарында сақтау үшін бірнеше бит жеткілікті болса, биттер өрістерін пайдаланған ыңғайлы.
Биттік өрісті сипаттаудың синтаксисі:
тип[аты]:ені;
Құрылымның элементтері бір немесе бірнеше құрылымдық айнымалы болуы мүмкін. Құрылымдармен жұмыс істеудің бірнеше мысалын қарастырайық.
1-мысал.
/* Программа sum функциясында st құрылымының avans және zarp элементтерін пайдалануды көрсетеді */
#include<conio.h> #include<stdio.h> #definek2 #define PE printf("\n айға алдын-ала берілетін жалақы мөлшері%d...",k); #define PE1printf("\n==============================="); #define PE2 printf("\n"); struct fund{ char *mes_avans; float avans; char *mes_zarp; float zarp; }; main() {static struct fund st={"тамыз",600000, "қазан",900000}; float sum(),res; res=sum(st.avans,st.zarp); printf(" \n Жалпы сома тең %8.2f тенге.",res); PE2;PE1;getch(); } float sum(x,y) float x,y; { clrscr();PE;PE1;PE2; return(x+y);}
