Getch();
Float sum(),res;
Main()
Float vans;
Clrscr();PE;PE1;PE2;
Float x,y;
Float sum(x,y)
PE2;PE1;getch();
Float sum(),res;
Main()
Float zarp;
Float avans;
Vvod(-1,sved);
Clrscr();
Void main(void)
Gets(sved.Grup);
Gets(sved.Fio);
Float S_Bal;
} *sved;
void Vvod(int nom,struct Spisok *sved)
{printf("\n Мәліметтерді енгізіңіз:");
scanf(“%d”,nom+1);
printf("\n фамилиясы - ");
printf("топ нөмірі - ");
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;}
{struct Spisok Stud[50]; int i,N; char Bukva;
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 Жазбаны іздеу");
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>
#define k 2
#define PE printf("\n айға алдын-ала берілетін жалақы мөлшері%d...",k);
#define PE1 printf("\n===============================");
#define PE2 printf("\n");
struct fund{
char *mes_avans;
char *mes_zarp;
};
{
static struct fund st={"тамыз", 600000,
"қазан", 900000};
res=sum(st.avans,st.zarp);
printf(" \n Жалпы сома тең %8.2f тенге.",res);
}
{
return(x+y);}
2-мысал
/* Программа тұтынушының sum функциясына st құрылымының адресін нұсқауыш амалы арқылы жіберуді көрсетеді */
#include <stdio.h>
#include <conio.h>
struct spis{
char *s_vans;
char *s_za;
float za;};
{
static struct spis str={"қыркүйек",600,
"қазан",1000};
res=sum(&str);
printf("даналардың жалпы саны =%8.0f дана",res);
}
struct spis *t;
{clrscr();
return(t->vans+t->za);
}
3-мысал. Программа sum функциясына құрылымдар жиымының адресін жіберуді көрсетеді. st құрылымдар жиымының бастапқы адресі m нұсқауыш типті айнымалыға орналастырылады. Енді sum функциясына құрылымдар жиымының бастапқы адресі белгілі. Бұл адресті біле отырып -> амалы арқылы бірінші құрылымның элементтерін пайдалануға болады.
#include <stdio.h>
#include <conio.h>
struct fund{
char *mes_avans;