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


№ 3 зертханалық жұмысты орындауға мысал



Pdf көрінісі
бет5/7
Дата31.12.2016
өлшемі0,95 Mb.
#885
1   2   3   4   5   6   7

 

№ 3 зертханалық жұмысты орындауға мысал  

C(20), Ci<0 массив  берілген.  С  массивінің  минималды  элементін  және  оның  реттік 

номерін анықтау керек. 

Енгізу/шығару мәліметтерін анықтау  



Идентификатор  Түрі 

Міндеті 

Бейнеленуі 

С() Single 

Кіріс шамасы 

Массив элементінің бірөлшемділілігі

n Integer 

Кіріс шамасы  

С массивінің нақты өлшемі 

i Integer 

Қосымша 

шамалар 


Цикл параметрі  

imin Integer 

Шығыс шамасы 

Минималды 

массив 

элементінің 



реттік номері 

Сmin Single 

Шығыс шамасы 

Массивтің минималды элементі 



 

Шешу алгоритмі 

1.

 



Клавиатурадан n: n=20 шектеулікті  есепке  ала, n массив  элементінің  санын 

енгіземіз. 

2.

 

C(i)<0  шартты  есепке  ала,  С  массив  элементін  туынды  формула  бойынша 



формалаймыз

 

және оларды экранға шығарамыз. 



3.

 

1  және  С(1)  тең, imin және Cmin айнымалыларының  бастапқы  мәндерін  береміз. 



Мұнда С минималды массив элементінің реттік номерін және оның мәнін сақтаймыз. 

4.

 



Циклда С массив элементінің мәнін минималды мәнмен салыстырамыз. 

5.

 



Егер С массив элементінің мәні Cmin кіші болса, табылған Cmin мәнін қосамыз, ал 

imin С массив элементінің номер мәнін қосамыз. 

6.

 

С  минималды  массив  элементінің  табылған  мәні  мен  реттік  номерін  экранға 



шығарамыз. 

 

 



 

 

Осы алгоритмді графикалық түрде көрсетеміз: 

 

3.1-сурет Есепті шешу алгоритмі 



 

 

3.2 суретте орындалу режиміндегі есеп формасы берілген. 



 

басы 


c[i] 



i=1, n 


А 

А 

8



imin=1 

Сmin=c[1] 

Соңы 

Cmin, imin 



12

i=2, n 


c[i]

10 

Cmin=c[i] 



imin=i

 

Да 



Нет

11 


c[i] 

c[i]<0 



i=1, n 



С[i]<0 


енгізіңіз

Жоқ 


 



 

3.2-сурет Есептің Visual Basic ортасындағы формасы 



 

Объект қасиеттерінің мәні 

Объект 


аты 

Қасиеті 


Мәні 

Name Form1 

Caption 

С()  минималды  элементін  және  оның  реттік 

номерін анықтау 

MaxButton False 

Form1 

MinButton False 



Label1 Caption n 

массив элементінің санын енгізіңіз 

Label2 

Caption 


n = 20 , C(i) < 0 

Label3 Caption С массив элементінің минималды мәні, Cmin 

Label4 Caption Сmin реттік номері  

Name Command1 

Command1 

Caption 


Есептеу 

Name Command2 

Command2 

Caption 


Шығу 

Name Flex1 

Cols 2 

MSFlexGri



d1 

Visible False 

Text2, 

Text3 


Enabled False 

 

Программа листингі  

Option Explicit 

Option Base 1 

'Айнымалыларды көрсету 

Dim C() As Single 

Dim Cmin As Single 

Dim imin As Integer, i As Integer, n As Integer 



'Батырманы басу оқиғаны өңдеу прцедурасы 

Private Sub Command1_Click() 

n = Val(Text1.Text) ' 1 енгізу алаңынан n мәнін иемденеміз 

ReDim C(n) As Single 'С массив өлшемін қайта анықтаймыз 

Flex1.Visible = True 'Кестені көрінетіндей етеміз 

Flex1.Rows = n + 2 'Кестенің жол санын анықтаймыз 



'Кесте басын жазамыз 

Flex1.TextMatrix(0, 0) = "N" 



Flex1.TextMatrix(0, 1) = "С(i)" 

'Кестенің бағана енін және кестені толығымен орнатамыз 

Flex1.Width = 1000 * 2 + 400 

For i = 0 To 1 

    Flex1.ColWidth(i) = 1000 

Next i 

'Rnd функциясын шақырмас бұрын,  Randomize  іске қосу керек.. 

'Берілген min..max интервалындағы  кездейсоқ сандарды  генерациялау үшін Int((max-

min+1)-Rnd+min өрнегі қолданылады.  

Randomize 

For i = 1 To n ' Массив элементтерін формалау 

    C(i) = -Rnd(i) 

    If C(i) >= 0 Then C(i) = Rnd(-i) 

    Flex1.TextMatrix(i, 0) = i 

    Flex1.TextMatrix(i, 1) = Format(C(i), "#0.###") 

Next i 


For i = 1 To n ' Массив элементтерін шығару 

    Flex1.TextMatrix(i, 0) = i 

    Flex1.TextMatrix(i, 1) = Format(C(i), "#0.###") 

Next i 


imin = 1: Cmin = C(1) '1 және 1(С) тең imin и Cmin айнымалыларына бастапқы мән 

береміз  

For i = 2 To n 'Массивтің минималды элементі мен оның номерін іздеу 

    If C(i) > Cmin Then Cmin = C(i): imin = i 

Next i 


Text2.Text = Str(Cmin) 'Массивтің минималды элемент мәнін шығару 

Text3.Text = Str(imin) 'Номерді шығару 

End Sub 

 

Private Sub Command2_Click() 



    End 

End Sub 


 

Private Sub Form_Load() 

    Text1.Text = Empty 

    Text2.Text = Empty 

    Text3.Text = Empty 

End Sub 


 

Ұсынылған әдебиет 

1.

 



Карасев  Н.И.,  Калинин  А.А. "Конструирование Windows-приложений  в  среде 

программирования Visual Basic. Информатика  для  энергетиков":  Учебное  пособие. 

Караганда: КарГТУ, 2002. 

2.

 



Жумагулова Д.К., Калинин А.А., Карасев Н.И., Телбаева Ш.З. Методические указания  

к лабораторным работам по дисциплине "Технология программирования". Караганда: 

КарГТУ, 2006. 

3.

 



Электронный учебник «Информатика» для дистанционного обучения. Сертификат № 

109 КарГТУ, 2004 

4.

 

Гарнаев А.Ю. Visual Basic 6.0: разработка приложений. СПб.: BHV-Санкт-Петербург, 



2000. 

5.

 



Гетц  К.,  Гилберт  М.  Программирование  на Visual Basic 6.0 и VBA. Руководство 

разработчика: Пер. с англ. К.: Издательская группа BHV, 2001. 



 

№4 зертханалық жұмысқа әдістемелік нұсқа 

Матрицаны өңдеу 

Жұмыс  мақсаты – Матрицаны  енгізу  және  шығару  арқылы,  енгізілген  циклді 

құрылымдарды 

алгоритмдеумен 

программалаудан 

жаңа 

білім 


алу, 

оларды 


программалауда жаңа әдістер қолдану.  

Өздік дайындыққа арналған сұрақтар 

1. Білу керек: 

 

матрица  элементтерін  таңдау  ретін  есепке  ала,  енгізу  циклын  ұйымдастыру 



ережесі; 

 



енгізілген циклді құрылымдарда программалау әдістерін қолдану ережесі; 

 



программалау тіліндегі матрицаны енгізу және шығару әдістері. 

Есеп қойылымы 

1.

 



ПК-де  матрицаны 3 кестеде  көрсетілген  вариант  бойынша  жаттығулары  бойынша 

өңдеу керек. 

2.

 

Бастапқы матрица элементтерін кесте түрінде экранға шығару керек. 



3.

 

Алынған мәлімметтерді көпшілік мақұлдаған түрде экранға шығару керек. 



Жұмыстың орындалу тәртібі 

1.

 



Жаттығуға байланысты есеп алгоритмін өңдеу. 

2.

 



Есеп шешу программасын құру. 

3.

 



Бастапқы мәліметтер мен программаның мәтіндік вариантын дайындау. 

4.

 



Программаны іске қосу. 

3-кесте 

Вариа


нт 

Матрица 


өлшемдері 

Жаттығу 


Ескерту 

 

1 2 





A (10, 15) 

Матрицаның әр бағанасындағы оң таңбалы элементтер 

саны мен қосындыларын есептеп, есте сақтау керек. 

Нәтижесін екі жол ретінде басып шығару керек. 

i j


>0 

A (N, M) 



Матрицаның әр жолындағы элементтердің саны мен 

қосындыларын есептеп, есте сақтау керек. Нәтижесін 

екі бағана ретінде басып шығару 

≤ 20 



≤ 15 


B (N, N) 

Басты диагональмен матрицаның өзінде жатқан 

элементтердің саны мен қосындысын есептеу 

≤ 12 


C (N, N) 

Басты диагональда жатқан оң таңбалы матрица 

элементтерінің саны мен қосындысын есептеу 

C

 i j


>0 

≤ 12 



D (K, K) 

Матрицаның теріс таңбалы элементтерінің орнына 

нольдерді жазу, көпшілік мақұлдаған түрде баспаға 

шығару 



≤10 



D (10, 10) 

Матрицаның теріс элементтерінің орнына нольдерді, 

оң элементтердің орнына бірді енгізу. Төменгі 

үшбұрышты матрицаны көпшілік мақұлдаған түрде 

баспаға шығару 

– 



F (N, M) 



Матрицаның жолында максималды және  минималды 

элементтерді табу, оны бірінші және соңғы жолдарға 

сәйкесінше орналастыру. Матрицаны көпшілік 

мақұлдаған түрде баспаға шығару 

≤ 20 


≤ 10 


F (10, 10) 

Матрицаны тасымалдап, бас диаганаль, диаганаль және 

басты диагональ астында орналасқан элементтерді 

баспаға шығару. Нәтижесін бір жолда орналастыру 

– 


1 2 



A (10, 15) 

Матрицаның әр жолындағы теріс таңбалы 

элементтерін есептеу және санын есте қалдыру. 

Нәтижесін екі жол ретінде баспадан шығару 

i j



>0 

10 


F (10, 10) 

Матрицаны тасымалдап, басты диагональ, диагональ 

және басты диагональ астында орналасқын 

элементтерді баспаға жіберу. Нәтижесін екі жолда 

орналастыру 

– 

11 



N (10, 10) 

Бүтін санды матрицалар үшін әр жолдар үшін бес еселі 

және алынған нәтижелерге байланысты жоғарғы мәнін, 

элементтер санын табу 

N

i j


 >0 

12 


N (10, 10) 

Матрицаның оң таңбалы элементтерінен N, оларды 

матрица жолдарына орналастыра M (10, KMAX) 

матрица жасау. Мұнда KMAX- матрица жолындағы оң 

таңбалы элементтердің максималды саны N. Бос 

элементтердің орнын 0 мен толықтыру. Екі 

матрицаныда көпшілік мақұлдаған түрде баспаға 

шығару 


– 

13 


P (N, N) 

Әр жолдан жоғарғы элементті тауып оларды бас 

диагональдағы элементтер орнымен алмастыру. 

Алынған матрицаны көпшілік мақұлдаған түрде 

баспаға шығару 

≤ 15 



14 

D (12, 15) 

Матрицаның әр жолындағы теріс таңбалы 

элнменттерінің саны мен қосындысын есептеп, есте 

сақтау. Нәтижесін екі жол ретінде шығару 

– 

15 



R (K, N) 

Матрицаның ең үлкен және ең кіші мәндерін тауып, 

олардың орындарын ауыстыру 

≤ 20 



≤ 10 


 

 

СДЖ- ге арналған  тапсырмалары 

1.

 



Клавиатурадан диалогтық мәліметтерді енгізу арқылы есеп шешімін жүзеге асыру. 

2.

 



Есеп шартына байланысты енгізілетін айнымалыларды шектеу диапозонын алдын-

ала ескеру. 

3.

 

Жалған  мәліметтер  енгізуге  болмайтынын  (әріп,  үлкен  сандар,  түбір  астындағы 



өрнектің теріс болуы және т.б.) алдын-ала ескеру  

4.

 



Программаға қалқымалы жауаптар қосу.  

 

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

1. Енгізілген циклдарды ұйымдастырудың басты ережелерін көрсету. 

2. Ішкі циклдан шығудың басты әдісін көрсету. 

3. матрицаның шығуының көпшілік мақұлдаған түрі қандай? 

4. төменгі үшбұрышты матрицаның шығуының көпшілік мақұлдаған түрі қандай? 

5. N*M элементті матрица өлшемін қалай енгізуге болады? 



 

№4 зертханалық жұмысты орындауға мысал 

 

D(K, K), k<=10 матрица берілген. Матрицаның теріс элементтерінің орнына нольдер 

жазып, D матрицасын қайтадан экранға шығару керек.  

 Енгізу/шығару мәліметтерін сипаттау 



Идентифик

атор 

Тип 

Назначения 

Описание 

D() Single 

Входная величина 

Матрица 


элементов  

Идентифик

атор 

Тип 

Назначения 

Описание 

k Integer

Входная величина 

Размер массива 

i,j  

Integer


Вспомогательные  

величины 

Параметры 

цикла 


 

Шешу алгоритмі 

1.

 



Клавиатурадан – k<=10 шектеулікті  ескере  отырып, D матрицасының  жол  мен 

бағана санын енгіземіз. 

2.

 

D(k,k) матрица элементтерін формалаймыз. 



3.

 

D матрицасының бастапқы элементтерін экранға шығарамыз. 



4.

 

D(k,k) матрицасын, матрицаның осы элементі теріс таңбалы элемент екенін тексере 



отырып,  екі  циклде  анализдейміз.  Егер  де  шарт  орындалса , онда  осы  мәнді  нольге 

алмастырамыз 

5.

 

Экранға өзгертілген D матрицасын шығарамыз. 



 

Алынған алгоритмді графикалық түрде көрсетеміз: 

 

басы


k

1

d[i,j



5

i:=1,k


j:=1,k

3

4



k>10 


2

Жо

 

 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

4.1-сурет Есепті шешу алгоритмі (1-бет) 



 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



4.1-сурет есепті шешу алгоритмі (2-бет) 

d[i,j] 


13

i:=1,k 


j:=1,k 

11

12



  соңы

d[i,j] 


8

i:=1,k 


j:=1,k 

6

7



d[i,j]<0 

9

 



d[i,j]=0 

1

Да



жо

4.2-суретте орындалу режиміндегі есеп формасы көрсетілген. 

 

4.2-сурет Есептеменің Visual Basic ортасындағы формасы 



 

Объект қасиеттерінің мәні 

Объект 


аты 

Қасиет


і 

Мәні 


Name Form1 

Caption D 

матрицасының өзгеруі  

MaxBu


tton 

False 


Form1 

MinBut


ton 

False 


Label1 Caption 

D, k<=10 матрицасының  жол  мен  бағана  санын 

енгізіңіз  

Label2 Caption 

Бастапқы матрица 

Label3 Caption 

Өзгертілген матрица 

Name Command1 

Command1 

Caption 


Есептеме 

Name Command2 

Command2 

Caption 


Шығу 

Name Flex1 

MSFlexGri

d1 


Visible False 

Name Flex2 

MSFlexGri

d2 


Visible False 

 

Программа листингі 

Option Explicit 

Option Base 1 

'Айнымалыларды көрсету 

Dim D() As Single 

Dim i As Integer, j As Integer, k As Integer 

'Батырманы бас, өқиғаны өңдеу процедурасы 

Private Sub Command1_Click() 

k = Val(Text1.Text) '1 енгізу аумағынан k мәнін иеленеміз 

If k < 10 Then 

    ReDim D(k, k) As Single 'D массивінің өлшемін қайта анықтаймыз  

    Flex1.Visible = True 'Кестені көрінетіндей етеміз 

    Flex2.Visible = True 

    Flex1.Rows = k + 1 'Кестенің жол санын анықтаймыз 

    Flex1.Cols = k + 1 'Кестенің бағана санын анықтаймыз 


    Flex2.Rows = k + 1 

    Flex2.Cols = k + 1 



'Кесте басын жазамыз 

Flex1.TextMatrix(0, 0) = "D(i)" 

Flex2.TextMatrix(0, 0) = "D(i)" 

'Кестені бүтіндей және енін анықтаймыз 

Flex1.Width = 500 * k + 600 

Flex2.Width = 500 * k + 600 

For i = 0 To k 

    Flex1.ColWidth(i) = 500 

    Flex2.ColWidth(i) = 500 

Next i 

Randomize 



For i = 1 To k 

    For j = 1 To k 

        D(i, j) = 5 - Int(10 * Rnd) ' Массив элементтерін формалаймыз 

    Next j 

Next i 

For i = 1 To k 



    Flex1.TextMatrix(i, 0) = i 

    For j = 1 To k 

        Flex1.TextMatrix(0, j) = j 

        Flex1.TextMatrix(i, j) = D(i, j) ' Бастапқы массивті шығару 

        If D(i, j) < 0 Then D(i, j) = 0  ' Өзгерту 

    Next j 

Next i 

For i = 1 To k 



    Flex2.TextMatrix(i, 0) = i 

    For j = 1 To k 

        Flex2.TextMatrix(0, j) = j 

        Flex2.TextMatrix(i, j) = D(i, j) ' Өзгертілген массивті шығару 

    Next j 

Next i 


Else 

    i  =  MsgBox("k  мәні  кемінде 10 рет  болуы  керек", vbInformation, "Назар 

аударыңыз!") 

    Text1.Text = Empty 

    Text1.SetFocus 

End If 


End Sub 

 

Private Sub Command2_Click() 



    End 

End Sub 


 

Private Sub Form_Load() 

    Text1.Text = Empty 

End Sub 


 

 

 

 

Ұсынылған әдебиет 

1.

 



Карасев  Н.И.,  Калинин  А.А. "Конструирование Windows-приложений  в  среде 

программирования Visual Basic. Информатика  для  энергетиков":  Учебное  пособие. 

Караганда: КарГТУ, 2002. 

2.

 



Жумагулова Д.К., Калинин А.А., Карасев Н.И., Телбаева Ш.З. Методические указания  

к лабораторным работам по дисциплине "Технология программирования". Караганда: 

КарГТУ, 2006. 

3.

 



Электронный учебник «Информатика» для дистанционного обучения. Сертификат № 

109 КарГТУ, 2004 

4.

 

Гарнаев А.Ю. Visual Basic 6.0: разработка приложений. СПб.: BHV-Санкт-Петербург, 



2000. 

5.

 



Гетц  К.,  Гилберт  М.  Программирование  на Visual Basic 6.0 и VBA. Руководство 

разработчика: Пер. с англ. К.: Издательская группа BHV, 2001. 



 

№5 зертханалық жұмысқа әдістемелік нұсқау 

Нүктелік  және  бөлшек-сызықты  графиктерді  монитор  экранына  шығаруды 

программалау процесі 

Жұмыс  мақсаты  –  функция  графиктерін  шығаруды,  программалауды  тәжірибе 

жүзінде игеру және методологияны игеру . 



Өздік дайындыққа арналған сұрақтар 

Білу керек: 

 

өңдеу және шығару  үшін программалау тілдер мүмкіндіктерін;  



 

графикалық ақпараттарды; 



 

монитордың графикалық режимдерін және оларды басқаруды; 



 

нүкте, кескін, үзілген сызықтардың бейнеленуін; 



 

графикалық режимде текстік мәліметтерді шығару; 



 

экранда нүктелік және бөлшек-сызықты графиктерді салу әдістерін. 



Есеп қойылымы 

1.

 



4-кестеде  көрсетілген  жаттығу  варианты  бойынша  монитор  экранында  У= F(x) 

функциясының нүктелік графигін салу. Мұнда х аргументі a-дан b-ға дейінгі диапазонда 

өзгереді және оның график нүктелер саны n<= 100. 

2.

 



x, y координаталарын,  бөлшектерге  бөлу  арқылы  салуды  қамтамасыз  ету,  x, y 

координаттары бойынша масштабтар мәнін шығару. 

3.

 

Кесте түрінде функцияның мәнімен аргументін экранға шығаруды жүзеге асыру. 



4.

 

Алынған мәліметтерді график түрінде экранға шығару. 



Жұмыстың орындалу тәртібі 

1.

 



Есепке сәйкес шешу алгоритмін өңдеу. 

2.

 



Есепті шешу программасын өңдеу. 

3.

 



Функция  мәнінің  есептелу  дұрыстығын  тексеру  үшін  мәліметтердің  текстік 

жинағын дайындау керек.   

4.

 

Программаны іске қосу. 



4-кесте 

Жатты


ғу 

варианты 

y=f(x) 

функциясының түрі 



а 

аргументінің 

сол 

жақ 


шекарасы 

аргументінің  оң 



жақ шекарасы 

графигінің 



нүктелер 

саны 


 

1 2 




1 Sin 

-



π/2 +π/2 

50 


2 Cos 



+3

π/2 


75 

| Sin x | + | Cos x 



π 



100 

1 2 



| Sin x | - | Cos x |



π 

100 



2 Sin x + 3 Cos x

π 

+



π 

50 


Sin x + Cos (2x) 

-

π 

+



π 

75 


2 - Cos x 

3

π/2 



75 

Sin (



2x

) + Cos 


2



π 

50 


2 Sin (2x) + 1 

-

π/2 +π/2 



50 

10 


Sin x + Cos x -1 

-

π 



+

π 

100 



11 

2

2 +



x

 

-3 5  100 



12 10/(1+ 

x

2



) -3 

100 



13 (x-3)/(x

2

+2) -1 



75 


14 

x Cos (2x) 

-1 



75 



15 x

2

e



-| x |

 -1 3  50 




Достарыңызбен бөлісу:
1   2   3   4   5   6   7




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

    Басты бет