№ 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 суретте орындалу режиміндегі есеп формасы берілген.
басы
n
1
c[i]
7
i=1, n
А
А
8
imin=1
Сmin=c[1]
Соңы
Cmin, imin
12
i=2, n
9
c[i]
10
Cmin=c[i]
imin=i
Да
Нет
11
c[i]
3
c[i]<0
4
2
i=1, n
5
С[i]<0
енгізіңіз
Жоқ
6
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
3
4
1
A (10, 15)
Матрицаның әр бағанасындағы оң таңбалы элементтер
саны мен қосындыларын есептеп, есте сақтау керек.
Нәтижесін екі жол ретінде басып шығару керек.
A
i j
>0
2
A (N, M)
Матрицаның әр жолындағы элементтердің саны мен
қосындыларын есептеп, есте сақтау керек. Нәтижесін
екі бағана ретінде басып шығару
N
≤ 20
M
≤ 15
3
B (N, N)
Басты диагональмен матрицаның өзінде жатқан
элементтердің саны мен қосындысын есептеу
N
≤ 12
4
C (N, N)
Басты диагональда жатқан оң таңбалы матрица
элементтерінің саны мен қосындысын есептеу
C
i j
>0
N
≤ 12
5
D (K, K)
Матрицаның теріс таңбалы элементтерінің орнына
нольдерді жазу, көпшілік мақұлдаған түрде баспаға
шығару
K
≤10
6
D (10, 10)
Матрицаның теріс элементтерінің орнына нольдерді,
оң элементтердің орнына бірді енгізу. Төменгі
үшбұрышты матрицаны көпшілік мақұлдаған түрде
баспаға шығару
–
7
F (N, M)
Матрицаның жолында максималды және минималды
элементтерді табу, оны бірінші және соңғы жолдарға
сәйкесінше орналастыру. Матрицаны көпшілік
мақұлдаған түрде баспаға шығару
N
≤ 20
M
≤ 10
8
F (10, 10)
Матрицаны тасымалдап, бас диаганаль, диаганаль және
басты диагональ астында орналасқан элементтерді
баспаға шығару. Нәтижесін бір жолда орналастыру
–
1 2
3
4
9
A (10, 15)
Матрицаның әр жолындағы теріс таңбалы
элементтерін есептеу және санын есте қалдыру.
Нәтижесін екі жол ретінде баспадан шығару
A
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)
Әр жолдан жоғарғы элементті тауып оларды бас
диагональдағы элементтер орнымен алмастыру.
Алынған матрицаны көпшілік мақұлдаған түрде
баспаға шығару
N
≤ 15
14
D (12, 15)
Матрицаның әр жолындағы теріс таңбалы
элнменттерінің саны мен қосындысын есептеп, есте
сақтау. Нәтижесін екі жол ретінде шығару
–
15
R (K, N)
Матрицаның ең үлкен және ең кіші мәндерін тауып,
олардың орындарын ауыстыру
K
≤ 20
N
≤ 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
6
k>10
2
Жо
4.1-сурет Есепті шешу алгоритмі (1-бет)
3
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)
функциясының түрі
а
аргументінің
сол
жақ
шекарасы
b
аргументінің оң
жақ шекарасы
N
графигінің
нүктелер
саны
1 2
3
4
5
1 Sin
x
-
π/2 +π/2
50
2 Cos
x
0
+3
π/2
75
3
| Sin x | + | Cos x
|
0
π
100
1 2
3
4
5
4
| Sin x | - | Cos x |
0
π
100
5
2 Sin x + 3 Cos x
-
π
+
π
50
6
Sin x + Cos (2x)
-
π
+
π
75
7
2 - Cos x
0
3
π/2
75
8
Sin (
2 x
) + Cos
x
0
2
π
50
9
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
3
100
13 (x-3)/(x
2
+2) -1
4
75
14
x Cos (2x)
-1
4
75
15 x
2
e
-| x |
-1 3 50
0>0>0>0>0> Достарыңызбен бөлісу: |