И 08. 14/02 Қазақстан Республикасы Білім және Ғылым министрлігі



Pdf көрінісі
бет11/21
Дата09.12.2019
өлшемі3,21 Mb.
#53264
1   ...   7   8   9   10   11   12   13   14   ...   21
Байланысты:
baibaktina 6


Сабақтың  мақсаты:  Тармақталу  конструкцияларын  пайдаланып  программалауға 
машықтандыру.  Тармақталу  алгоритмдерін    С/С++  тілдерінде  жүзеге  асыру 
жолдарын үйрету. 
 
Қажетті  материалдар  мен  жабдықтар:  практикалық  сабақтарды  орындауға 
арналған нұсқаулар, тақта. 
 
Жұмыстың мазмұны және орындалу реті: 
 
1.  Тапсырмаларды орындау мысалдарын қарастыру. 
2.  Ретімен берілген тапсырмаларды орындау. 
3.  Практикалық жұмысты талапқа сай орындап тапсыру. 
 
Тапсырманы орындау мысалдары 
Екі  санды  бөлгендегі  бөлшек  бөлігін  есептеу  программасын  құру.  Программада 
бөліндінің нөлге тең еместігі тексерілуі тиіс. 
С/С++ І. Есептің математикалық моделі: 
Формуласы: 
b
a
c
/


a
-бөлінгіш; 
b
- бөлгіш. 
ІІ. Есептің блоу-схемасы: 

 
 
 
 
ІІ. Есептің программасы: 
#include 
#include 
main() 

 float a,b, c;  
clrscr(); 
printf(" Бастапқы мәндерді енгізіңіз: \n"); 
printf(""); 
scanf("%f%f", &a, &b); 
if (b!=0) 
       { 
        c=a/b; 
        printf (“%5.2f  -ны %5.2f – ға өлгендегі бөлшек бөлігінің ", a, b ); 
        printf (“мәні:  %5.2f", c); 
         } 
else  
        { 
        printf (“Бөлімі нөлге тең бола алмайды! \n" ); 
         } 
getch(); 
return 0; 
        } 
Студентке орындатуға арналған тапсырмалар: 
Басы 
Енгізу a, b  
b!=0 
Соңы 
c=a/b 
Шығару a, 


Хабарлама 

 
 
 
 
1.  Бір шартты конструкция түрінде жазыңыз: 
a. 









.
sin
1
,
2
0
,
cos
2
2
айда
аал аал а
x
x
егер
x
y

b. 
  
,
)
ln
1
arcsin(
a


  теңдеуінің  түбірі  бар  болса,  онда    айнымалысына 
меншіктетіңіз;  
c. 
)
,
,
max(
c
b
a


d. 






.
0
)
,
min(
,
0
)
,
max(
x
при
y
x
x
при
y
x
z

2. 
А(х
1
,  у
1
)  және  В(х
2
,  у
2
)  екі  нүкте  берілген.  Олардың  қайсысы  координат 
басына жақын екендігін анықтайтын программа құрыңыз. 
3. 
Өзара  тең  емесе  х  және  у  нақты  сандары  берілген.  Олардың  ең  кішісін 
қосындысының 
жартысымен, 
ал 
үлкенін 
екі 
еселенген 
көбейтіндісімен 
ауыстырыңыз.  
4. 
m,  n  бүтін  сандары  берілген.  Егер  олар  өзара  тең  болмаса,  әрқайсысын  осы 
сандардың үлкенімен ауыстырыңыз, ал тең болса 0-мен ауыстырыңыз. 
5. 
a, b, c  сандарының ішіндегі теріс сандардың санын анықтаңыз. 
6. 
Экранда    “Сен  кімсін:  қыз  немесе  ер  бала.  Д  немесе  М  енгіз”.  Қайтарылған 
жауапқа сәйкес, “Маған қыздар  ұнайды” немесе “Маған балдар ұнайды” деген текст 
экранға шығарылуы керек. 
7. 
 Күріш екі пакетке салынған. Біріншісінің массасы – m кг, екіншісінікі – n кг. 
а)  қай  пакет  ауыр  –  біріншісі  немесе  екіншісі;  б)  ауыр  пакеттің  салмағын  
анықтайтын программа құрыңыз. 
8. 
 Ең үздік кәсіпкер сайысының финалына Иванов, Петров, Сидоров өтті. Сайыс 
үш  турдан  тұрды.  Иванов  бірінші  турда  m
1
,  екіншіде  –  n
1
,  үшіншіде  –  р
1
  балл 
жинаған.  Петров  сәкесінше-  m
2
,  n
2
,  р
2
  ;  Сидоров  –  m
3
,  n
3
,  р
3
.  Жеңімпаз  қанша  балл 
жинағандығын анықтайтын программа құрыңыз.  
 
Практикалық жұмыстың есебін дайындау формасы: 
 
Берілген тапсырманың әрқайсысы үшін төмендегілерді орындау:    
1. 
Есептің математикалық моделін анықтау; 
2. 
Есептің алгоритмінің блок-схемае сызу; 
3. 
Есептің алгоритміне сәйкес программасын жазу. 
4. 
 
Блиц-тест 
1. С/С++  тіліндегі  «кіші немесе тең» қатынас опреаторы қайсысы?: 
a)  !=   
b)  <>   
c)  <=                  

 
 
 
d)  = = 
e)  >= 
2.Қате жазылған жолдың нөмірін көрсетіңіз. 
1. #include  
2. main() 
3. { int x,y; 
4.   scanf("%d %d",&x,&y); 
5.   if(x=y) printf("тең"); 
6.  else printf("тең емес");} 
a)  5     
b)  2     
c)  1    
d)  6 
e)  3 
3.Қай конструкция таңдау таңдау алгоритмін жүзеге асырады? 
a)  if 
b)  break                              
c)  goto 
d)  switch                       
e)  for 
 
Бақылау сұрақтары: 
 
1.  if  конструкциясының  толық  және  толық  емес  түрлерінің  блок  –схемасы 
қандай? 
2.  Таңдау алгоритмінің қолданылу ерекшелігі неде? 
3.  Іштестірілген тармақталу алгоритмін құру барысында басты назар аударатын 
жағдайды түсіндіріңіз№ 
 
Глоссарий 
if-else конструкциясы. 
 
Төмендегі  конструкция  программадағы  бірнеше  жолдың  біреуін  таңдауға 
қолданылады: 
Ол келесі түрде жазылады: 
If (өрнек) 
инструкция1 
else 
инструкция2 
 
Мұнда  else  тармағы  болуы  да  болмауы  да  мүмкін.  Алдымен  «өрнек» 
есептеледі, егер ол ақиқат болса, онда инструкция1 орындалады. Егер өрнек жалған 
және else тармағы бар болса, онда инструкция2 орындалады. 
 
If  өрнектің  сандық  мәнін  ғана  тексеретіндіктен,  шартты  кейде  қысқартылған 
түрде жазуға болады. 

 
 
 
     Программалауда 
екі 
немесе 
оданда 
көп 
тармақтық 
жағдайларды 
ұйымдастыруда  тармақталу  алгоритмдері  құрылады.  Ол  үшін  арнайы  инструкция 
қарастырылған: 
               
Switch (өрнек) { 
              Case <тұрақты-өрнек> : <инструкциялар> 
              Case  : <инструкциялар> 
              Default : <инструкциялар> 
                               } 
 
Switch  инструкциясы  өрнектің  мәні  берілген  тұрақтылар  жиынынан  алынған 
мәндердің  біріне  тең  болса,  онда  оған  сәйкес  тармақты,  ал  ешқайсысына  тең 
болмаса, онда default  сөзінен кейінгі тармақ орындалады, егер ол жоқ болса, ештеңе 
орындалмайды. 
case және default тармақтарын әртүрлі ретпен қоюға болады. Әрбір тармақтың 
соңына break инструкциясын қойған дұрыс. Тұрақты мәндер қайталанбау керек. 
 
 
Әдебиеттер: 
1.  Керниган Б., Ритчи Д.,- Язык программирования Си. – М.: Финансы и 
статистика, 1985 г. 
2.  Вирт Н. Алгоритмы и структуры данных: Пер. с анг.- М.: Мир, 1989 г.  
3.  Д.Кнут Искусство программирования для ЭВМ. Основные алгоритмы. М.: 
Мир, 1976. 3.        
4.  Н.Культин., С/С++ в задачах и примерах – БХБ-Петербург, 2002 г. 
5.  Крис Паппас., Программирование на С и С++ - BHV, Киев, 2000 г. 
6.  Т. А. Павловская, А. Ю. Щупак С/С++ Структурное программирование: 
Практикум- СПб.: Питер, 2005   
7.  Уэйт М . Язык Си. Руководство для начинающих: Пер. с англ. – М., Мир, 1988 
г. 
 
 
Практикалық жұмыс  №3.  
Тақырыбы: Циклдық процестерді ұйымдастыру 
 
Сабақтың  мақсаты:    С/С++  программалау  тілдерінде  циклдық  процестерді 
программалау  жолдарын  үйрету  және  цикл  конструкцияларын  тиімді  пайдалануға 
машықтандыру. 
 
Қажетті  материалдар  мен  жабдықтар:  практикалық  сабақтарды  орындауға 
арналған нұсқаулар, «math.h» тақырыптық файлының элементтерінің кестесі, тақта. 
 
 
Жұмыстың мазмұны және орындалу реті: 
 

 
 
 
1.  Тапсырмаларды орындау мысалдарын қарастыру. 
2.  Ретімен берілген тапсырмаларды орындау. 
3.  Практикалық жұмысты талапқа сай орындап тапсыру. 
 
Тапсырманы орындау мысалдары 
Пернетақтадан 
тізбектеп 
енгізілген 
оң 
сандардың 
қосындысы 
мен 
арифметикалық ортасын есептеу программасын құрыңыз. 
 
 
#include 
#include 
main() 

int a; // пренетақтадан енгізілетін сан меншіктелетін айнымалы 
int n=0; // енгізілетін сандар санағышы 
int s=0; // сандар қосындысы 
float m; // арифметикалық орта мәні 
clrscr(); 
printf(" Сандарды енгізіңіз. Енгізуді аяқтау үшін нөлді басыңыз \n"); 
do  { 
printf(""); 
scanf("%i", &a); 
if (a0)  { s+=a;    n++; } 
        } while (a0); 
printf (“Сан енгізіңіз:   %i\n", n ); 
printf (“Сандар қосындысы:   %i\n", s ); 
m= (float) s/n; 
printf (“Арифметикалық ортасыһ:   %3.2f\n", m ); 
printf("\n Жұмысты аяқтау үшін енгізу пернесін басыңыз: "); 
getch(); 
return 0; 
        } 
 
Орындауға берілетін тапсырмалар 
1.  N натурал саны берілген. Төмендегілерді есептеңіз: 
a. 
n
2

b. 
!
n

c. 
)
1
1
)...(
2
1
1
)(
1
1
1
(
2
2
2
n




d. 
n
sin
...
2
sin
1
sin
1
...
2
sin
1
sin
1
1
sin
1







2. 
 а-нақты саны және n натуралы берілген. Есептеңіз: 
a. 
n

b. 
)
1
)....(
1
(



n
a
a
a


 
 
 
c. 
)
)...(
1
(
1
....
)
1
(
1
1
n
a
a
a
a
a
a






d. 
)
)...(
2
)(
(
2
n
a
n
a
n
a
a




 X –нақты саны берілген. Есептеңіз:  
!
13
!
11
!
9
!
7
!
5
!
3
13
11
9
7
5
3
x
x
x
x
x
x
x







 3. 
n-натурал 
саны 
берілген. 
 
n
f
f
f
...
1
0
 
-ді 
есептеңіз. 
Мұндағы 
1
1
...
2
1
1
1
2
2
2








i
i
i
i
f
i

4.  Іштестірілген қосындыларды есептеңіз:    





15
1
2
10
1
3
)
(
l
k
l
k
k

 
 
Практикалық жұмыстың есебін дайындау формасы: 
 
Берілген тапсырманың әрқайсысы үшін төмендегілерді орындау:    
1. 
Есептің математикалық моделін анықтау; 
2. 
Есептің алгоритмінің блок-схемае сызу; 
3. 
Есептің алгоритміне сәйкес программасын жазу. 
 
Блиц-тест 
 
1. Циклдың келесі итерациясына басқару билігін беру инструкциясын көрсетіңіз. 
a)  if 
b)  goto 
c)  continue                         
d)  switch                       
e)  for 
2. Шексіз цикл құрайтын жолды таңдаңыз. 
a)  for (i=0;i<=1;i++); printf("цикл\n"); 
b)  for (i=1;i<6;i++); printf("цикл\n");                  
c)  for (i=5;i<15;i++); printf("цикл\n"); 
d)  for (i=1;i>=1;i++); printf("цикл\n");                       
e)  for (i=10;i<=1;i--); printf("цикл\n");                       
  
 
Бақылау сұрақтары: 
1.  Цикл дегеніміз не? 
2.  Іштестірілген цикл дегеніміз не? 
3.  С/С++ тілдерінде қандай цикл конструкциялары қолданылады? 
4.  Циклдың базалық структуралы қандай? 
 
Глоссарий 
  While циклы 

 
 
 
Жалпы форматы: 
 
While <өрнек>  инструкция 
 
Мұндағы,  <Өрнек>  есептелінеді,  егер  мәні  0-ге  тең  емес  болса,  онда 
инструкция  орындалады  да  өрнек  қайта  есептеледі  және  ол  өрнек  мәні  0-ге  дейін 
қайталанады. 
 
for циклы 
For (өрнек1;өрнек2; өрнек3) инструкция 
 
 
Мұндағы:  өрнек1  және  өрнек3  көбінесе  меншіктеу  немесе  функцияны 
шақыру,  ал  өрнек2  қатынас  өрнегі  болып  табылады.  Өрнек1  цикл  орындалғанға 
дейін қабылданғаннан кейін қатынас өрнегі тексеріледі. Егер қатынас өһрнегі ақиқат 
мән  қабылдаса,  онда  циклдың  денесі  ретінде  анықталған  инструкция  орындалады. 
Цикл денесі орындалған соң, яғни итерация аяқталғаннан кейін өрнек3 орындалады 
да  қатынас  өрнегі  қайта  тексеріледі.  Осы  процесс  оның  мәні  жалған  мән 
қабылдағанға дейін жалғасады.  
 
 
 
Бұл өрнектердің кез-келгені болмаса да ; қойылуы міндетті. 
Мысалы,               
                   for(;;) { 
                               … 
                               } 
 
Мұнда  өрнек2  мәні  барлық  уақытта  ақиқат  деп  есептелінеді,  бұл  шексіз 
циклды  көрсетеді.  Мұның  жұмысы  breаk  немесе  return  инструкцияларының 
көмегімен тоқтатылуы мүмкін.  
Цикл мысалы: 
                                    For(i=0,i 
Do-while циклы 
 
Жалпы форматы: 
Do 
 инструкция 
while (өрнек); 
 
 
Инструкция  орындалған  соң  өрнек  есептеледі,  ақиқат  болса  онда  инструкция 
қайта орындалады. 
 
Break және Continue 
Break-циклдан немесе ажыратқыштан уақытынан бұрын шығару. 
Continue-циклды келесі итерациясына көшіру 
Return  инструкциясы-программаның  орындалу  барысында  жұмысын  тоқтату  үшін 
қолданылады,аяқталу кодын меншіктейді. 
 
Goto инструкциясы және белгі 

 
 
 
 
Іштестірілген  күрделі  құрылымдарды  үзу  үшін  кейде  goto  қолданылады.  Ол 
көрсетілген  белгіге  көшеді.  Белгі  -  айнымалы  атауы  секілді,  белгілі  бір  атпен 
аталады да соңына : қойылады. 
 
Мысалы,          for(…) 
                         For(…) {… 
                          If() goto error; 
 
Әдебиеттер: 
1.  Керниган Б., Ритчи Д.,- Язык программирования Си. – М.: Финансы и 
статистика, 1985 г. 
2.  Вирт Н. Алгоритмы и структуры данных: Пер. с анг.- М.: Мир, 1989 г.  
3.  Д.Кнут Искусство программирования для ЭВМ. Основные алгоритмы. М.: 
Мир, 1976. 3.        
4.  Н.Культин., С/С++ в задачах и примерах – БХБ-Петербург, 2002 г. 
5.  Крис Паппас., Программирование на С и С++ - BHV, Киев, 2000 г. 
6.  Т. А. Павловская, А. Ю. Щупак С/С++ Структурное программирование: 
Практикум- СПб.: Питер, 2005   
7.  Уэйт М . Язык Си. Руководство для начинающих: Пер. с англ. – М., Мир, 
1988 г. 
 
 
Практикалық жұмыс  №4.  
Тақырыбы: Массивтер. Массивтерді өңдеу.  
 
Цель  занятия:  Массивтерді  сипаттау,  элементтерін  қолдану  және  өңдеу  тәсілдерін 
үйрету. Массивтерді пайдаланып алгоритмдеу дағдыларын қалыптастыру. 
 
Қажетті  материалдар  мен  жабдықтар:  практикалық  сабақтарды  орындауға 
арналған нұсқаулар, «math.h» тақырыптық файлының элементтерінің кестесі, тақта. 
 
Жұмыстың мазмұны және орындалу реті: 
 
1.  Тапсырмаларды орындау мысалдарын қарастыру. 
2.  Ретімен берілген тапсырмаларды орындау. 
3.  Практикалық жұмысты талапқа сай орындап тапсыру. 
 
Тапсырманы орныдау мысалдары 
Клавиатурадан енгізілген 5 бүтін саннан тұратын бір өлшемді массив құрыңыз. Сол 
масссивтің  нөлдік  емес  элементтерін  сәйкес  индексін  көрсету  арқылы  экранға 
шығарыңыз. 
 
#include 
#include 
 

 
 
 
#define SIZE 5 // массив өлшемі 
void main() 

int a SIZE ; // массив 
int n=0; // санағыш 
int i;  // индекс 
clrscr(); 
puts(" \n Бүтін сандар массивін анықтау "); 
puts(" Әр санды енгізген сайын Enter пернесін басыңыз "); 
for (i=0; i SIZE; i++) 

 
printf("a%i=", i+1); 
scanf(“%i”, & ai); 
if (ai!=0) n++; 

printf(" массивте %i  нөлдік емес элемент бар\n", n); 
puts("\nЖұмысты аяқтау үшңн  Enter пернесін басыңыз "); 
getch(); 

 
 
Орындауға берілетін тапсырмалар 
 
1)  Он  шеңбердің  радиустары  берілген.    Ең  үлкен  радиусқа  ие  щеңбердің  номерін 
шығарыңыз. 
2)  Фирма  қызметкерлерінің  жасы  белгілі.  20  мен  30  жас  аралығында 
қызметкерлердің санын  анықтаңыз. 
3)  Дүкендегі  конфеттердің    бағасы  берілген.  Бағасы  500  –  ден  төмен  конфеттердің 
орташа бағасын есептеңіз. 
4)  Бір  аптада  шығарылған  детальдар  саны  берілген.  Барлығы  қанша  деталь  
шығарылған? 
5)  Квадрат  матрицаның  элементтерінің  қосындысы  максималды  болатын  жолының 
номерін көрсететін программа жазыңыз. 
6)  Екі  өлшемді    массив  берілген.  Осы  матрицаның  төрт  бұрышындағы 
элементтердің қосындысын есептейтін программа жазыңыз. 
7)  Үш  дүкенде  бұйымдардың  төрт  түрі  бойынша  бір  күнде  түскен  пайда  берілген. 
Әрбір дүкен бойынша қайсы бұйым жақсы өткенін анықтау қажет.   
8)  0, 1 және 2 - ден бөтен әртүрлі сандардан тұратын квадрат массив берілген. Оның 
бас  диогоналдарының  элементтерін  0  –  ге,    бас  диогоналдың  үстінде  тұрған 
элементтерді  1  –ге,  ал  бас диогоналдың  астында  орналасқан  элементтерді  2  –  ге 
ауыстыратын программа құру керек. 
 
Практикалық жұмыстың есебін дайындау формасы: 

 
 
 
 
Берілген тапсырманың әрқайсысы үшін төмендегілерді орындау:    
1.  Есептің математикалық моделін анықтау; 
2.  Есептің алгоритмінің блок-схемае сызу; 
3.  Есептің алгоритміне сәйкес программасын жазу. 
 
Блиц-тест 
 
1. С/ С++ тілінде 10 бүтін элементі бар массив қалай сипатталады? 
a)  int  a(10)                 
b)  int a{10}                       
c)  int a[10]       
d)  float a[10] 
e)  char a[10] 
2.  Массивті  сипаттау  кезінде  қолданылатын  тұрақтыны  қандай  директивада 
сипаттауға болады? 
a)  # define; 
b)   # conio.h; 
c)   # stdio.h; 
d)   # math.h. 
e)   # math 
3.С/С++ тілдерінде массив элементтері нешеден бастап нөмірленеді? 
a)  1 
b)  2 
c)  3 
d)  4 
e)  0 
 
Глоссарий 
Массив  дегеніміз  -  бір  атпен  аталған,  әртүрлі    индекстелген  бір  типті 
элементтер жиынтығы. 
  Қасиеттері: 
Массивтің қасиеттерін анықтайтын 4 негізгі принципі бар: 
-массивте элементтер деп аталатын мәндер сақталады; 
-массивтің барлық элементтері бір типті болуы керек; 
-жадыда  массивтің  барлық  элементі  тізбектеліп  орналасады  және  бірінші 
элемент адрестің нөлдік индексін білдіреді; 
-массив  атауы  тұрақты  болып  табылады  және  массивтің  бірінші  элементінің 
адресінен тұрады. 
Mассивтің сипатталуы: 
 
 
 <элементтің типі>  <массив аты> [<элементтер саны>]; 
Мысалы, int a[12]; {12 элементтен тұратын массив} 
                char s[20]; {20 элементтен тұратын массив} 
                #define KOL 10 {} 

 
 
 
                int [KOL]; 
 
 
Массивті инициялизациялау 3 тәсілмен анықталады: 
- массивті құру барысында; 
- массивті құру барысында бастапқы тұрақтыларды көрсету; 
- программаның орындалу барысында; 
- құру барысында массивтің бастапқы мәндері берілмесе, онда автоматты түрде 
массив 0-мен толтырылады(NULL). 
Массив элементін қолданғанда индекс ретінде үш түрлі мән беруге болады: 
1. 
Сандық тұрақты. 
2. 
Айнымалы. 
3. 
Өрнек. 
 
Екі  өлшемді  массив  екі  квадрат  жақшамен  анықталып  төмендегідей 
сипатталады. 
 
Әдебиеттер: 
1.  Керниган Б., Ритчи Д.,- Язык программирования Си. – М.: Финансы и 
статистика, 1985 г. 
2.  Вирт Н. Алгоритмы и структуры данных: Пер. с анг.- М.: Мир, 1989 г.  
3.  Д.Кнут Искусство программирования для ЭВМ. Основные алгоритмы. М.: 
Мир, 1976. 3.        
4.  Н.Культин., С/С++ в задачах и примерах – БХБ-Петербург, 2002 г. 
5.  Крис Паппас., Программирование на С и С++ - BHV, Киев, 2000 г. 
6.  Т. А. Павловская, А. Ю. Щупак С/С++ Структурное программирование: 
Практикум- СПб.: Питер, 2005   
7.  Уэйт М . Язык Си. Руководство для начинающих: Пер. с англ. – М., Мир, 1988 
г. 
 

 
 
 
 
Практикалық жұмыс №5.  
Тақырыбы: Символдық массивтерді өңдеу 
 
Сабақтың  мақсаты:  символдық  және  жолдық  мәліметтермен  жұмы  кезінде 
алгоритмдеу  тәсілдерін  меңгерту;  «қадамдап  орындау»  тәсілін  қолдану  және 
көмекші алгоритмдерді құру; қолданушымен функцияны құру және оны Си  тілінде 
шақыру;  Си  тілінде  мәтіндерді  өңдеудегі  программалау  ерекшеліктері;  символдар 
мен  жолдарды  өңдеуде  Си  тілінің  стандарт  кітапханаларының  функцияларын 
пайдалану. 
 

Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   21




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

    Басты бет