- •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. Препроцессордың қызметі
27.Си тілінде кездейсоқ сандарды пайдалану
Си тілінде кездейсоқ сандар беретін функциялар бар. int Aлint random(n) О..паралығынанкезкелгенкездейсок бүтін сан береді. Бүл функцияларды пайдалану файлы арқылы орын-далады. Мысалы: //a[n] жиымына кездейсоқ сандар енгізу #include #include #include void
main() int
a[100]; int n ; n) printf("\nEnter the size scanf("%i",&n); for(int I=0;I {a[I]=rand()%100-50; printf(" %i getch();
28.Қарапайым программа.Препроцессор.
Препроцессор директивалары
Си тілінің препроцессоры - макропроцессор, компиляцияның нөлдік фазасында бастапқы файл үшін қолданылады. Препроцессор директивалары - Си тіліндегі алдыңғы программада жазылған инструкциялары. Директивалары программаның кез келген жерінде жазылуы мүмкін, бірақ олардың әрекеттері программаның жазылған нүктесінен ғана басталады.
29.1.Массивтерді өңдеу есептерінің түрлері (кластары)
Жиым немесе массив – бір типтегі элементтердің реттелген жиыны.Олар бір атаумен – идентификатормен аталады да, индексті айнымалы ұғымына сәйкес келеді. Мысалы, мынадай тізбек
0 1 1 2 3 5 8 13 21
Фибоначчи тізбегінің 9 элементін құрайды (алғашқы екі санды таңдап алып, келесі санды алдыңғы екеуін қосу жолымен алады). Ал мынау өзіне және бірге бөлінетін жай сандар тізбегінің алғашқы 7 элементі:
1 3 5 7 11 13 17
Осындай бір текті тізбектерді жиым түрінде Си тілінде сипаттап, оған бастапқы мән беріп инициалдау үшін былай жазамыз:
int fib[8]={0, 1, 1, 2, 3, 5, 8, 13, 21}; немесе
int fib[]={0, 1, 1, 2, 3, 5, 8, 13, 21}; деп көрсетеміз. мұндағы fib – жиым аты, оның элементтерінің типі int, ал ені, яғни ұзындығы – 9, жиым элементтерінің индекстері 0-ден бастап нөмірленеді, сол себепті 9 элемент 8 индекспен көрсетіледі. Мәндері толық көрсетілсе, индексті жазбаса да болады. Ал былай болса,
int fib[8]={0, 1, 2, 3}; қалған элементтері 0 болып саналады.
n=10; k=2; fib[n-k]={0, 1, 2, 3}; десе де болады.
Жоғарыдағы тізбектің 7-ші элементін бір бүтін айнымалыға меншіктеу үшін былай жазамыз.
int а = fib[6]; // а = 8
Жиымды сипаттау кезінде оның ені нақты санмен көрсетіледі, мыс., a[20], a[n] деп жазу үшін алдын ала
#define n 20 жолы көрсетіледі немесе
const n=20; болып жазылады.
Жиым элементтерін енгізу немесе оларды түрлендіру үшін цикл операторлары қолданылады. Төменде 10 элементі бар жиымды 0-ден 9-ға дейінгі сандармен толтырып, сонан кейін оларды кері бағытта экранға шығару мысалы көрсетілген:
main ()
{
int ia[10];
int index;
for (index = 0; index <10; index ++)
ia[index] = index;
for (index = 9; index >=0; index --)
printf(“ %i”, ia[index]);
Ситіліндежиымдыжиымғабірдентеңестіругеболмайды, мысалы, а0, а1, а2, ... , а9 және с0, с1, с2, ... , с9 жиымдарыүшін а = cдепжазуғарұқсатетілмейді. Олардыңэлементтерінциклішіндебір-бірінебіртіндептеңестірукерек.
Мысалы, мынадайциклжазылуытиіс:
int a[9], c[9];
for (int i=0; i<9; ++i)
a[i]=c[i];
Си тілінде кездейсоқ сандарды пайдалану
Си тілінде кездейсоқ сандар беретін функциялар бар.
int rand() – 0..RAND_MAX=32767 аралығынан кез келген кездейсоқ бүтін сан береді.
Ал int random(n) 0..n аралығынан кез келген кездейсоқ бүтін сан береді.
Бұл функцияларды пайдалану <stdlib.h> файлы арқылы орындалады.
Мысалы:
//a[n] жиымына кездейсоқ сандар енгізу
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a[100];
int n;
printf("\nEnter the size of array:", n);
scanf("%i",&n);
for(int I=0;I<n;I++)
{a[I]=rand()%100-50;
printf(" %i ", a[I]);}
getch();
}
Жиымды Өңдеу Есептерінің Түрлері (Кластары)
Жиымды өңдеу есептері көбінесе бірыңғайланған төрт түрге бөлінеді.
1) Есептердің 1-түріне жиым элементтерінің барлығын немесе көрсетілгендерін бірдей бір тәсілмен өңдеу есептері жатады.
2) Есептердің 2-түріне (класына) жиым элементтерінің орналасу реттілігін өзгерту тәсілдері жатады.
3) Есептердің 3-класына бірнеше жиымдарды қатар өңдеу немесе бір жиымның ішкі элементтерін бірнеше топқа бөліп жеке-жеке өңдеу тәсілдері жатады. Жиымдар бір тәсілмен – синхронды өңделеді немесе әр түрлі тәсілмен – асинхронды түрде өңделеді.
4) Есептердің 4-класына жиымның берілген санға тең бірінші элементін табу, яғни іздеу есептері жатады.
1-Түрдегі Есептер
1 есеп. Жиымның ең үлкен элементін анықтау керек.
// максимум табу
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a[100];
int n;
printf("\nEnter the size of array:", n);
scanf("%i",&n);
for(int I=0;I<n;I++)
{ a[I]=rand()%100-50;
printf(" %i ", a[I]);
}
int max=a[0];
for(I=1;I<n;I++)
if (a[I]>max) max=a[I];
printf("\nMax= %i", max);
getch();
}
3-Класс Есептері
Жиымдарды синхронды түрде өңдеуде жиымдар элементін қарастыру кезінде индекстер бірдей қадамға өзгереді. Мысалы, бүтін сандардан құралған n элементтерден тұратын 2 жиым берілген делік. Жаңа c жиымы мынадай формула арқылы алынады: c[I]=a[I]+b[I].
for (int I=0; I<n; I++) c[I]=a[I]+b[I];
Жиымдарды асинхрондық өңдеу кезінде әр жиым индексі өз реттілігімен өзгеріп отырады.
6-есеп. Бүтін сандардан құралған жиымдағы теріс элементтердің барлығын оның бас жағына орналастыру керек.
int b[10]; //қосымша жиым
int i,j=0;
for(i=0;i<n;i++)
if(a[i]<0){b[j]=a[i];j++;}
// а-дан b-ға теріс элементтерді көшіріп жазу
for(i=0;i<n;i++)
if(a[i]>=0){b[j]=a[i];j++;}
// а-дан b-ға оң элементтерді көшіріп жазу
for(i=0;i<n;i++) printf (“ %d ”, b[I]);
4-Класс Есептері
Іздеу есептерінде берілген шартқа сәйкес келетін элементті іздеп табу керек. Ол үшін жиым элементтерін біртіндеп тізбектей қарастырып отырып шартты тексеріп шығу қажет. Осылай ету барысында циклден шығудың екі жолы бар:
- керекті элемент табылғаннан кейін;
- жиым элементтері тегіс қаралып шықты, керекті элемент табылмады.
8- есеп. Берілген k санына тең жиымның алғашқы элементін табу.
int k;
printf("\nK=");
scanf(“%i”,&k);
int ok=0;//элемент табылғаны/табылмағаны белгісі
int i,nom;
for(i=0;i<n;i++)
if(a[i]==k){ok=1;nom=i;break;}
if(ok==1) printf("\nnom=",nom);
else printf("\nk-ға тең элемент жоқ!");
