Информатика және ақпараттық жүйелер кафедрасы



Дата04.07.2016
өлшемі159.8 Kb.
#176078

Жұмыс оқу бағдарламасының титулдық парағы





Нысан

ПМУ ҰСН 7.18.3/40



Қазақстан Республикасының Білім және ғылым министрлігі


С. Торайғыров атындағы Павлодар мемлекеттік университеті

Информатика және ақпараттық жүйелер кафедрасы

Бағдарламалау технологиясы пәні бойынша

5В070300 – Ақпараттық жүйелер мамандығының студенттеріне арналған

зертханалық сабақтардың



оқу әдістемелік нұсқаулары



Павлодар

әдістемелік нұсқауларды бекіту парағы





Нысан

ПМУ ҰСН 7.18.3/41




БЕКІТЕМІН

Оқу ісі жөніндегі проректор

___________ Пфейфер Н.Э.

«__»______________20__ ж.



Құрастырушы: ________ аға оқытушы Бельгибаева С.А.


Информатика және ақпараттық жүйелер кафедрасы
«Бағдарламалау технологиясы» пәні бойынша

5В070300 - Ақпараттық жүйелер мамандығының студенттеріне арналған

Зертханалық жұмыстадың

әдістемелік нұсқаулары

Кафедраның отырысында ұсынылды 2012ж. «___»__________№___ хаттама.


Кафедра меңгерушісінің ____________Н.Н.Оспанова 2012ж. «___»________
Физика, математика және ақпараттық технологиялар факультетінің оқу әдістемелік кеңесімен мақұлданды 2012ж. «___»__________№___ хаттама.

ОӘК төрағасы _______________ А.Б.Искакова 2012ж. «___»__________


ОӘБ бастығы ____________ Жуманкулова Е.Н. 20__ж. «___»__________
Университеттің оқу- әдістемелік кеңесімен мақұлданды

2012ж. «___»__________№___ хаттама.



Негізгі теориялық жағдайлар және техникалық қауіпсіздік.
Бағдарламалау технологиясы пәні Бағдарламаларды жасауда қандай технологиялар пайдаланылатынын зерттейді. Программаны жасау кезеңдерін және осы кезеңдерде туатын мәселерді қалай шешуге болатынын көрсетеді. Сонымен қатар бағдарламалардағы қателер түрлерін және оларды бағдарлама жасаудың қай кезеңдерінде түзетуге болатынын қарастырады.

«Бағдарламалау технологиясы» пәнінен зертханалық сабақтар арнайы бағдарламалық қамтылуы бар компьютерленген аудиторияларда өткізіледі. Алғашқы зертханалық сабағында компьютерлік техника орнатылған аудиторияға жауапты техник-бағдарламашы студенттерге техникалық қауіпсіздігі жайлы мағмұмат жеткізеді. Нәтижесінде студенттер техникалық қауіпсіздік журналына жазылып тіркелуі қажет.


Зертханалық жұмыс №1

“ Си тілінде программалау. Сызықтық алгоритмдерді бағдарламалау

Жұмыс мақсаты: енгізу, шығару, меншіктеу операторларымен жұмыс жасауды үйрену. Математикалық функцияларды есепті шығаруда пайдалануды үйрену.
Қысқаша теория

Си тілінде меншіктеу операторы «=» белгісімен белгіленеді. Жазылуы:

айнымалы = мән;

Басқа тілдерге қарағанда Си тілінде меншіктеу операторын өрнектерде пайдалануға болады. Мысалы, if ((c=a+b)<0) printf(''с саны нөлден кіші').

Тағы бірнеше рет меншіктеу мүмкіндігі бар. Мысалы:

x=y=z=a*b;

Бұл жерде алдымен a*b мәні z-қа, содан соң y-қа, сондан кейін x-қа меншіктеледі.

Си тілінде константалардың мәнін өзгертпеу үшін const модификаторы пайдаланады. Мысалы: const float a=3.5;

const j=47;

Өрнектерді айнымалыларды есептеуге арналған формула ретінде пайдаланады. Олар операндтардан (айнымалылар, константалар және т.б.) құралады және операция белгілерімен (қосу, азайту, көбейту және басқамен) байланысады.


Кесте 1 – Арифметикалық операциялар

Арифметикалық операциялар

Орындалуы

+

Қосу



Азайту

*

Көбейту

/

Бөлу, бүтін бөлігін алу

%

Бөлгендегі қалдығын алу

Мысалы: егер b=5, c=2, бүтін типті айнымалылар болса, онда

а=b%c; d=b/c;

операциялардың орындалуынан кейін а айнымалысы 1 мәнін қабылдайды, d айнымалысы 2 мәнін қабылдайды.

Арифметикалық операциясына сәйкес меншіктеу операторын басқаша пайдалануға болады.

Мысалы, х=x+n; жазуын x+=n; деп жазуға болады. Сол секілді

x=x-n; x-=n;

x=x/n; x/=n;

x=x*n; x*=n;

x=x%n; x%=n;


Си тілінде операнд мәнін бірге арттыру (++) және бірге кеміту (--) операциялары пайдаланады.

х++; ++х; операторлардың нәтижесі бір, бірақ пайдалану барысында айырмашылықтары бар. Мысалы:

main()

{

int x,y;



x=5; y=60;

x++; ++y;

printf(“x=%d y=%d\n”,x,y);

printf(“x=%d y=%d\n”,x++,++y);

}

Нәтижесі:



х=5 у=61

х=5 у=62

х++ операторын пайдаланғанда х айнымалының мәні алдымен өрнекте пайдаланады, содан соң бірге артады. ++у пайдаланғанда алдымен у айнымалысы бірге артады, содан соң өрнекте пайдаланады.
Кесте 2 - Операциялардың орындалу приоритеті

++

--


*

/

%



+

-


!

<

<=

>

>=



==

!=


&&

||

Егер операция приоритетін өзгерту қажет болса, дөңгелек жақшаны пайдаланады. Олардың приоритеті жоғары.

Өрнектерде тағы шарт операциясы ? кеңінен пайдаланады.

у=х?а:b,


өрнегінде егер х нөлге тең болмаса, у=а, егер х нөлге тең болса у=b.

у=(а>b)?a:b;



өрнегі у айнымалысына а не b айнымалылардың ең үлкен мәнін қабылдауға мүмкіндік береді, яғни y=max(a,b).
Кесте 3 - Математикалық функциялар

Математикалық

СИ тілінде

| X |

int abs(int X)

| X |

float fabs(float X)

arccos X

double acos(double X)

arcsin X

double asin(double X)

arctg X

double atan(double X)

cos X

double cos(double X)

sin X

double sin(double X)

tg X

double tan(double X)

eX

double exp(double X)

ln X

double log(double X)

log X

double log10(double X)

√X

double sqrt(double X)

XY

double pow(double X, double Y)


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

    1. айнымалыны экранға шығару үшін қандай оператор пайдаланылады

    2. айнымалының мәнін енгізу үшін қандай оператор пайдаланылады

    3. printf, scanf операторларын пайдалану үшін қандай файлды қосу қажет

    4. математикалық функцияларды пайдалану үшін қандай файлды қосу қажет

    5. Инкремент деген не

Тапсырма





Нұсқа №

Тапсырма


Берілгендер



  1. , мұндағы

    ;

    b = | i – j 3|

    ;

    c = sin2 (x + y) – ln x





x = 4,5

y = 8,5


i = 3

j = 6



  1. , мұндағы

    a = sin3 ( 2 + n )

    d = | i2 – m|





n = 10,2

x = 4,3


i = 5

m = 2





  1. , мұндағы



    b = | x2 + y |







m = 8,1

w = 4,2


x = 10

y = 4



  1. , мұндағы

    x = cos2(t + p) – e2t



    a = | k + m2 |




t = 4,7

z = 0,8


p = 6,2

k = – 4


m = 6


  1. , мұндағы





    d = | j3 – i2 |







t = 4,1

p = 3,2


w = 8,7

j = 3


i = 7


  1. , мұндағы

    t = ln x2 + sin2 y



    f = | k2 + m3 |





x = 5,7

y = 1,9


k = 8

m = 2



  1. , мұндағы

    x = sin e2m







m = 5,6

n = 9,4


i = 4

j = 9





  1. , мұндағы



    y = tg2 q – 4p







q = 1,7

p = 2,3


i = 9

j = 4



  1. , мұндағы



    y = sin2( n + m )







n = 2,6

m = 3,7


p = 6

k = 2



Зертханалық жұмыс №2

“ Си тілінде программалау. Тармақталған алгоритмдерді бағдарламалау

Жұмыс мақсаты: шартты операторларымен жұмыс жасауды үйрену. Жүйе есепттері шығаруда пайдалануды үйрену.
Қысқаша теория
Шарттық оператор if
Жазылуы: if (шарт) инструкция1; else инструкция2;
if – егер, else - әйтпесе

Егер жақшадағы шарт ақиқат болса, онда инструкция1 орындалады, ал егер жалған болса, инструкция 2 орындалады.

Мысалы: егер х мәні теріс сан болса, оның квадратын шығару, әйтпесе мәнін шығару

#include

#include

main()


{

float x,y;

scanf("%f", & x);

if (x<0) y=pow(x,2);

else y=sqrt(x);

printf(“y=%f”,y );

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


  1. Логикалық операторлардың Си тілінде жазылуы

  2. Логикалық операциялардың орындалу приоритеті

  3. Шартты оператордың толық және қысқаша түрі

  4. Таңдау операторы қалай жазылады.

Тапсырма





Нұсқа №

Тапсырма


Берілгендер






a=2

b=1,5


c=1

d=3


e=0,5





c=-2

a=1,5


d=2

x=3






a=5

b=1,2


y= 0,6





d=2

a=3,5


x=3

i=2,3






=1

x=2,5


a=4

b=0,4






a=0,5

b=2


h=4

R=1,4




Зертханалық жұмыс №3

“ Си тілінде программалау. Қайталану алгоритмдерді бағдарламалау

Жұмыс мақсаты: Қайталану операторларымен жұмыс жасауды үйрену. Алғы шартты және кейінгі шартты циклдармен жұмыс істеу.
Қысқаша теория

Жазылуы: for (өрнек 1; өрнек 2; өрнек 3) оператор;
Бірінші өрнек санауыш инициализациясы үшін. Екінші өрнек шартты тексеруге арналған, шарт жалған болғанда цикл аяқталады. Үшінші өрнек операторлар орындалған соң қадам санын қосады.

Мысалы: for(i=0; i<100; i+=2) [i]=i+1;


Әр өрнек «үтір» белгісімен ажыратылатын өрнектерден құрылуы мүмкін

Мысалы:


for(i=0, j=1; i<100; i++, j++) a[i]=b[j];
Мысал1: у=sin sin sin……….sin x n рет қайталанады.

У-ті табатын программаны жазу.


main()

{

float x,y;



int n;

scanf(“%f %d”, &x, &n);

y=sin(x);

for (int i=1; i<=(n-1); i++)

y=sin(y);

printf(“%f”, y);

}

Мысал 2 : y= табатын бағдарламаны жаз.



main()

{

float y,f;



int n;

scanf(“%d”, &n);

for (int i=1; i<=(n-1); i++)

{

for (int j=1; j<=i; j++)



f*=j;

y+=1/f;


}

printf(“%f”, y);

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


  1. Цикл деген не

  2. Циклдардың қандай түрлері бар

  3. Алғы шартты цикл мен кейінгі шартты циклдің айырмашылығы неде

  4. Циклдардың орындалмауы не себепті болады

  5. Циклдену деген не

Тапсырма





Нұсқа №

Тапсырма


Берілгендер


1.






2.






3.






4.






5.






6.







Зертханалық жұмыс №4

Тақырыбы: Си тілінде күрделі типтерді пайдалану. Динамикалық массив

Жұмыстың мақсаты: Бірөлшемді және екіөлшемді массивтермен жұмыс. Массивтерге көрсеткіштерді пайдалану.
Қысқаша теория

Массив – бұл элементтері бір типті болатын мәліметтер жиыны.

Массивтерді айнымалыларды секілді сипаттайды:

int a[100];

float c[10][20];

Біріншісі бүтін типті а[0],a[1], … ,a[99] (индекстелу нөлден басталады) элементтерден тұратын бір өлшемді массив болып табылады. Екіншісі элементтері нақты тип болатын екі өлшемді массив болып табылады. Ол 10 жолдан, 20 бағаннан тұрады.

Массивті келесідей инициализациялауға болады:

int a[6]={10,20,30,40,50,60}; немесе int a[]={10,20,30,40,50,60};

float[2][3]={{10,20,30},{40,50,60}};
Мысал 1. 10 нақты саннан тұратын бірөлшемді S массиві берілген. Осы массивті кері ретпен шығару.

#include

main()

{float s[10];



int i;

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

scanf(“%f”,&s[i]); /*массив элементтерін енгізу*/

for (i=9;i>=0;i--)

printf(“%f”,s[i]); /* массив элементтерін кері ретпен шығару*/

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

#include

main()


{int i,j,max,in,jn,a[5][5];

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

for (j=0;j<5;j++)

scanf(“%d”, &a[i][j]); /*матрицаны енгізу*/

max=a[1][1];

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

for (j=0;j<5;j++)

if (a[i][j]>max)

{in=i; jn=j;}

printf(“%d %d”, in, jn);

}
Мысал 3. D(6,6) массивінің басты және кері диагональдің орындарын ауыстыру.

#include

main()

{int i,j,a,d[6][6];



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

for (j=0;j<6;j++)

scanf(“%d”, &d[i][j]);
for (i=0; i<5; i++)

{a=d[i][i];

d[i][i]=d[i][6-i];

d[i][6-i]=a;

}

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



for (j=0; j<6; j++)

printf(“%d%c”, d[i][j], (j==5)?”\n”:” “);

}

Матрица элементтерін жолдар бойынша шығаруда ? операциясы пайдаланылады. Егер j=5, онда курсор келесі жолға түседі (“\n”), басқа жағдайда пробел шығарылады. Экранға символдық шама шығарылатындықтан %c спецификациясы пайдаланылады.



Тапсырмалар

Кестеден сәйкес нұсқаны ал. Бағдарламалаудың екі нұсқасын жазу керек: көрсеткішті пайдаланып және пайдаланбай.




Нұсқа №

Тапсырма



Берілген квадраттық А(5,5) матрицасының басты диагоналі симметриялы екенін анықтау.



В(4,4) матрицасы берілген. Бірінші бағананың барлық элементтері өсу ретімен орналасқанын анықтау.



С(5,5) матрицасы берілген. Әрбір жолдың максималды элементін орындарымен ауыстыру.



В сілемінде 10-нан артық болатын D(3,3) матрицасының әрбір жолының бірінші элементін көшіріп алу.



Q(5,5) матрицасы берілген. Әрбір жолдағы ақырғы нөлді 5-ке ауыстыру.



D(4,4) матрицасы берілген.қанағаттандыратындардың ішінен максималды, қанағаттандырмайтындардың ішінен минималды мәнін анықтау және оларды орындарымен ауыстыру.



А(4,4) матрицасы берілген.Әрбір бағанадағы бірніші нөлді осы бағанадағы нөлдер санына ауыстыру.


Зертханалық жұмыс №5

Тақырыбы: Си тілінде күрделі типтерді пайдалану. Құрылымдар және көрсеткіштер.

Жұмыстың мақсаты: Бірөлшемді және екіөлшемді массивтермен жұмыс. Массивтерге көрсеткіштерді пайдалану.
Қысқаша теория

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



Жазылуы:

struct тип {элемент типі 1 элемент аты 1;

элемент типі n элемент аты n; };


Мысалы:

struct date { int day;

int month;

int year;} ;


Жақшадан кейін осы типті айнымалылар сипатталуы мүмкін, мысалы:

struct date {…} a, b, c;

При этом выделяется соответствующая память.

Құрылымды құрылымда пайдалануға рұқсат берілген. Мысалы

struct okushy { char fam [15];

aty [15];

struct date tkun;

int synyp, zhasy;};

Жоғарыда анықталған date типінің үш элементі бар: күн, ай, жыл. Олардың мәндері бүтін (int). Okushy құрылымында: fam [15]; aty [15]; tkun, synyp, zhasy элементтері бар. fam [15]; aty [15]; –бұл 15 символдан тұратын массив. Tkun айнымалысы date (ішкі құрылыммен) сипатталған.

Құрылымдық типті айнымалыларды келесідей сипаттайды:

struct okushy okuslar [50];

okuslar массиві okushy типті 50 элементтерден тұрады.


Мысал 1:

#include < stdio.h >

struct comp { int zhad;

int ozu;


char model [20]; };

/* zhad, ozu, model элементтерінен тұратын comp типті құрылымды сипаттау */

struct comp DK= {80, 1024, “Pentium 4”}

/* comp типті DK айнымалысын сипаттау */

main ( )

{

printf (“ Дербес компьютер % s\n\n “, DK.model);



printf ( “қатты диск сиымдылығы - % d Гбайт \n”, DK.zhad);

printf ( “жедел жады - % d Мбайт \n”, DK. ozu);



}
Тапсырмалар


Нұсқа №

Тапсырма



F(9,3) матрицасы берілген. Бірінші бағанадағы барлық элементтер басты диагональдің элементтеріне тепе – тең екенін анықтау.егер жоқ болса, оларды орындарымен ауыстыру.



C(5,5) матрицасы берілген. Матрица бағанасында тұрған әрбір элементі нөлдер санына тең В векторын алу.



В(4,4) матрицасы берілген. Егер жолда бір бірлік болса да, ол жолды нөлдермен ауыстыру.



Q(3,3) матрицасы берілген.егер басты диагональда нөл тұрса, онда керек жолды бірліктермен ауыстыру.



D(4,4) матрицасы берілген. Егер матрицаның максималды элементі басты диагональда тұрса, онда басты диагональдың барлық элементтерін максималды мәнге теңестіру.



С(5,5) матрицасы берілген. Егер минималды элемент бірінші жолда тұрса, онда одан кейін орналасқан барлық элементтерді нөлмен ауыстыру.



А(4,4) матрицасы берілген. Егер матрицаның максималды элементі бірінші жолдың элементтерінің қосындысына тең болса, онда бірінші жолды максималды элемент орналасқан жолмен ауыстыру.



А(4,4) матрицасы берілген. Егер матрицаның максималды элементі бірінші жолдың элементтер қосындысына тең болса, онда бірінші жолды максималды элемент орналасқан жолмен ауыстыру.

Әдебиет

  1. Подбельский В.В. Язык Cu ++: Учебное пособие. - М.: Финансы и статистика,2005, - 560 с.

  2. Страуструп Б. Язык программирования Сг ++. - М.: Радио и связь, 2001. - 352 стр.

  3. Собоцинский В.В. Практический курс Turbo Cu ++. Основы объктно- ориентированного программирования. - М.: Свет, 2003. - 236 с.

  4. Романов В.Ю. Программирование на языке Cu ++. Практический подход. - М.: Компьтер, 2003. - 160 с.

  5. Нургазина Б.К., Бельгибаева С.А. Алгоритмдеу және програм-малау тілдері: ақпараттық жүйелер мамандығы студент-теріне арналған оқу-әдістемелік құрал. Павлодар: Кереку, 2009

  6. Юлин В.А., Булатова И.Р. Приглашение к Cu. - Мн.: Высш. Шк., 2000,- 224 с.






Достарыңызбен бөлісу:




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет