Алматы экономика және статистика академиясы



Pdf көрінісі
бет8/11
Дата07.04.2017
өлшемі1,49 Mb.
#11217
1   2   3   4   5   6   7   8   9   10   11

№ 1 тәжірибелік жұмыс  

Тақырып: Сызықтық алгоритмдер, формулалар бойынша есептеу. 

Тапсырма: Берілген формула бойынша есептеулерді орындайтын программа жазыңыздар. 

Есеп беру:Программа мәтіні мен нәтижесі.  

Ескерту:Төмендегі кестеде формулалар бойынша есептеу кезінде қажетті математикалық 

функциялардың C# тілінде жазылуы берілген. 

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

функциялар 

C# 

тілінде жазылуы 



e

x

 



Exp(x) 

sin x 


Sin(x) 

cos x 


Cos(x) 

tg x 


Tan(x) 

arctg x 


ATan(x) 

| x | 


Abs(x) 

ln x 


Log(x) 

lgx 


Log10(x) 

√x 


Sqrt(x) 

 

Математикалық функциялар —Math класы 

Математикалық  функциялар,  мысалы,  синус,  косинус,  дәрежелеу  System  атаулар 

кеңістігінде  анықталған  Mathкласында  орындалады.  Осы  класс  тәсілдері  арқылы  мыналар 

есептелінеді: 

 

тригонометрииялық функциялар: Sin, Cos, Tan



 

кері тригонометрииялық функциялар: ASin,ACos,ATan,ATan2



 

гиперболалық функциялар: Tanh, Sinh, Cosh



 

экспонента мен логарифмдікфункциялар: Exp,Log,Log10



 

модуль (абсолюттік шама), квадрат түбір, таңбаны анықтау: Abs,Sqrt,Sign



 

дөңгелектеу: Ceiling,Floor,Round



 

минимум, максимум: Min, Max



 

дәрежелеу, қалдық табу: Pow, IEEEReminder



 

екі бүтін шаманың толық көбейтіндісі: BigMul



 

бөлу және бөлгендегі қалдықты табу: DivRem



Мұнан басқа кластың екі пайдалы өрістері бар: πсаны мене саныТәсілдер мен өрістер 

сипаттамалары кестеде көрсетілген.  

Math 

класының негізгі өрістері мен статикалық функциялары 



Аты 

Сипатталуы 

Нәтижесі 

Түсініктемесі 

Abs 


Модуль 

Перегружен

1

  \



х\→ Abs(х)болып жазылады 

Acos 


Арккосинус

2

 



double 

Acos(double x) 

Asin 

Арксинус 



double 

Asin(double x) 

Atan 

Арктангенс 



double 

Atan(double x) 

Atan2 

Арктангенс 



double 

Atan2(double x, double y) –



у-тіx-

ке бөлгенде шығатын тангенс 

бұрышы  

BigMul 


Көбейту 

long 


BigMul (int x, int 

у) 


Ceiling 

Үлкен бүтін санға қарай 

дөңгелектеу 

double 


CeilingCdouble x) 

                                                 

1

 

Бұл мәліметтердің бірнеше типтеріне арналған нұсқалар бар екенін білдіреді.  



 

2

Бұрыш радианмен беріледі



 

60 

 

Cos 



Косинус 

double 


Cos(doublex) 

Cosh 


Гиперболалықкосинус 

double 


Cosh(doublex) 

DivRem 


Бөлу мен қалдық табу 

әртүрлі 


DivRenKx

, у, rem) 

Е 

Натураллогарифм негізі (е 



саны) 

double 


2,71828182845905 

Аты 

Сипатталуы 

Нәтижесі 

Түсініктемесі 

Ехр 


Экспонента 

double 


e

x

→ Ехр(х) болып жазылады 

Floor 

Кіші бүтін санға қарай 



дөңгелектеу 

double 


Floor(doublex) 

IEEE-


Remainder 

Бөлгендегі қалдықты табу  double 

IEEERemainder(double x, 

double 


у) 

Log 


Натурал логарифм 

double 


log

e

х → Log(x) болып жазылады 



Log10 

Ондық логарифм 

double 

log


to

x → Log10(х) 

Мах 

Екі санның максимумы 



әртүрлі 

Мах(х, у) 

Min 

Екі санның минимумы 



әртүрлі 

M i n (x ,  

у) 

PI 


πсанының мәні 

double 


3,14159265358979 

Pow 


Дәрежелеу  

double 


x

y

 

→Pow(x, у) 



Round 

Дөңгелектеу 

Перегружен  Round (3.1) нәтижесі 3,  

Round (3.8) 

нәтижесі 4 болады 

Sign 


Сан таңбасын анықтау 

int 


Аргументтер асыра жүктелген 

Sin 


Синус 

double 


Sin(doublex) 

Sinn 


Гиперболалықсинус 

double 


Sinh(double x) 

Sqrt 


Квадрат түбір 

double 


√х

→ Sqrt(x) 

Tan 

Тангенс 


double 

Tan(doublex) 

Tanh 

Гиперболалықтангенс 



double 

Tanh(double x) 

Төмендегі  программада  Math  класының  екі  тәсілі  көрсетілген,  қалғандары  да  солай 

қолданылады.  



Листинг. Math класының тәсілдері 

using System; 

namespace ConsoleApplication1 

{       class Classl 

{       static void Main() 



Console.Write( " х engiz: " ); 

string buf = Console.ReadLine(); 

double x = double.Parse( buf ); 

Console.WriteLine( " sin mani: " + Math.Sin(x) ); 

Console.Wri

te( " у engiz: " ); 

buf = Console.ReadLine(); 

double у = double.Parse( buf ); 

Console.WriteLine( " Maximum : " + Math.Max(x, y) ); 





 

Тәжірибелік жұмысты қорғау сұрақтары: 

6.

 



Оператор дегеніміз не?  

7.

 



C#  

тілінің алфавитіне қандай символдар кіреді?  

8.

 

Мәндерді енгізу (шығару) үшін қандай функцияларды пайдаланамыз?  



9.

 

Бүтін, нақты айнымалыларды сипаттап, оларды енгізетін операторларды жазыңыз. 



61 

 

10.



 

Меншіктеу операторы қалай жазылады? 



Тапсырмалар варианттары

1. 


Кубтың қабырғаларының ұзындығы берілген. Оның көлемі мен қабырғасының бетінің 

ауданын табыңдар. 

2.Тікбұрышты  үшбұрыштың  катеттері  берілген.  Оның  гипотенузасы  мен  ауданын 

табыңдар. 

3. 

Теңбүйірлі үшбұрыштың жақтары берілген. Үшбұрыштың ауданын табыңдар. 



4.  x

1

, y



1

 

және  x



2

, y


координаталарымен берілген нүктелердің ара қашықтығын табыңдар. 

5. 

Нақты x саны берілген. Тек көбейту, қосу және азайту амалдарын қолданып 2x



4

 – 3x


4x



– 

5x + 6 есептеңіз. 4 көбейту, 4 қосу және 4 азайту амалын қолдануға болады (Горнер 



схемасын пайдалану керек). 

6. 


Нақты x саны берілген. Тек көбейту, қосу және азайту амалдарын қолданып 1 – 2x + 3x

2

 



– 4x

3

 



и 1 + 2x + 3x

2

 + 4x



3

 

есептеңіз. Тек 8 операция қолдануға болады (Горнер схемасын 



пайдалану керек). 

7. x, y, z 

берілген.  a, b есептеңіздер. 

,

 



8. x, y, z 

берілген. a және b есептеңіздер. 

 

9. x, y, z 



берілген. a және b есептеңіздер. 

 

10. x, y, z 



берілген. a және b есептеңіздер. 

 

 



№ 2 тәжірибелік жұмыс 

Тақырып:Тармақталу алгоритмдері. Шартты оператор. 

Тапсырма:Қойылған есепті шешуге арналған алгоритм құрып, программа жазыңыздар. 

Есеп беруі: Блок-схема және программа мәтіні, есептің шығарылған нәтижесі. 

Тәжірибелік жұмысты қорғау сұрақтары: 

5.

 



Тармақталу алгоритмдері.  

6.

 



Шартты оператор.  

7.

 



Құрама оператор.  

8.

 



Логикалық операциялардың жазылуы.  

9.

 



Тармақталу процестері бар алгоритмдерді ұйымдастыру үшін шартты және таңдау 

операторлары пайдаланылады.  



2 мысал.ах

2

+b



х+c = 0 теңдеуін шығару программасын құру керек. 

 

 



 

 

 



62 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

using System; 

namespace Proba2 

{ class QuadrEquation 

{static void Main()  

{ double a = 0.5, b = -

2.7, с = 3.5, d;

 

if (Math.Abs(a) ==0) // a=0 

екенін

 

тексеру

 

Console.WriteLine("x1 = x2 = " +(-

с/b));

 // a=0 

 else  

{                      // a # 0

, яғни а нөлге тең емес

 

if ((d = b*b-

4*a*с)< 0.0) 

 

{        // Комплексті түбірлер  

 

 d = 0.5*Math.Sqrt(-d)/a;   

 a = -0.5*b/a; 

Console.WriteLine("x1 = "+a+"+i"+d+", x2 = "+a+"-i"+d);   



else  

{                    // нақты түбірлер 

 

d =0.5*Math.Sqrt(d)/a;   

a = -0.5*b/a;  

Console.WriteLine("x1 = "+(a+d)+", x2 = "+(a-d));   

}   

}   

}   



 

Программа жұмысы нәтижесі: 



x1 = 3.23851648071345, x2 = 2.16148351928655 

иә 


жоқ

 

бсы 



a,b,c

енгізу 


a = 0 ? 

x1=x2= – 

с/b 


???????????? = ????????????

2

− 4???????????????????????? 



d

<0

 ? 


???????????? = 0.5√−????????????/???????????? 

????????????  =  0.5????????????/???????????? 



x1 = a + id 

x2 = aid 

???????????? = 0.5√????????????/???????????? 

????????????  = −0.5????????????/???????????? 

x1 = a + d 

x2 = ad 

соңы 


иә 

жоқ


 

63 

 

 



Тапсырмалар варианттары: 

1.

 



Нақты x, y ( x ≠ y ) берілген. Кішісін олардың жарты қосындысымен, ал үлкенін - екі 

еселенген көбейтіндісімен алмастырыңыз.  

2.

 

Үш нақты сан берілген. Теріс емес сандарды квадраттаңыздар.  



3.

 

Егер  берілген  нақты  x, y, z  сандарының  қосындысы  1-ден  кем  болса,  онда  бұл  үш 



санның  ең  кішісін  қалған  екі  санның  жарты  қосындысымен  алмастырыңыз,  кері 

жағдайда   x және y-тің кішісін қалған екеуінің жарты қосындысымен алмастырыңыз.  

4.

 

Нақтыa, b, c, d сандары берілген. Егерa<=b<=c<=d болса, онда әр санды ең үлкен 



санмен алмастырыңыз, егерa>b>c>d болса, садарды өзгеріссіз қалдырыңыз, кері 

жағдайда барлық сандарды олардың квадратымен алмастырыңыз.  

5.

 

Нақты x, y, z сандары берілген. Егер  x y-ке қалдықсыз бөлінсе және yz-ке қалдықсыз 



бөлінсе, онда барлық сандарға 1-ді қосыңыз, кері жағдайда барлық сандарды нөлге 

теңестіріңіз.  

6.

 

Нақты а саны берілген f(a) –ны есптеңіз. 



 

7.

 



Нақты а саны берілген f(a) –ны есптеңіз. 

 

8.



 

Нақты а саны берілген f(a) –ны есптеңіз. 

 

9.

 



Нақтыa, b, c  сандары  берілген  ( a  ≠  0).  ax

2

+bx+c=0 



теңдеуінің  нақты  түбірлері  бар 

екенін тексеріңіз. Егер бар болса оларды есептеңіз, кері жағдайда экранда “нақты түбір 

жоқ”деген мәлімдеме шығу керек.  

10.


 

Нақты  x, y  сандары  берілген.  Егер  x  және  y  оң  сан  болса,  онда  оларды  түбірден 

шығарыңыз; егер тек біреуі оң болса, онда оларды квадраттаңыз. Егер x және y теріс 

сан болса, онда олардың абсолют шамасын табыңыз.  

 

№3 тәжірибелік жұмыс 

 

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



 

20 


2

2

)



1

2

4



(

x

e

x

x

y

+

+



=

 

0 1



1

,

≤ ≤



x

 

15 



 

x0=0,1;  xk=1;  n=15; 

 

 

Бұл есепті шарты алдында тексерілетін цикл бойынша ( while)  шығарамыз. 



using

 System; 

namespace

 Listing4_3 



64 

 

class



Classl 

    { 


staticvoid

 Main() 


        { 

int


 n = 15; 

double


 x0 = 0.1, xk = 1, dx, y; 

            dx = (xk - x0) / (n - 1); 

Console

.WriteLine(



"|    x   |  у     |"

); 


 

Console


.WriteLine(

"-------------------"

); 

double


 x = x0; 

while


 (x <= xk) 

            { 

                y = (x * x / 4 + x / 2 + 1) * 

Math


.Exp(x / 2); 

Console


.WriteLine(

"|  {0,4:f2}  |  {1,4:f2}  |"

, x, y); 

                x += dx; 

            } 

Console


.WriteLine(

"-------------------"

); 

        } 



    } 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



3.3 

Енді осы есепті арифметикалық цикл бойынша (for) табу программасы мен 

алгоритм схемаcын келтірейік. 

 

using



 System; 

namespace

 Listing4_8 

class



Class1 

    { 


staticvoid

 Main() 


        { 

Басы 


х

=x



жоқ 

иә 


x≤x

y=f(x) 



x=x+dx 

x, y 


Соңы 

x

0



,x

k

,nенгізу 



d

х

=(xk-x



0

)/n 


Шексіз қосындыны do while 

арқылы есептеу алгоритмі  

65 

 

double



 e = 1e-6; 

Console


.Write(

"

Аргументенгiз: "



); 

string


 buf = 

Console


.ReadLine(); 

double


 x = 

Convert


.ToDouble(buf); 

double


 ch = 1, 

у = ch; 


for

(

int



 n = 0; 

Math


.Abs(ch)> e; n++) 

            { 

                ch *= x * x / (2 * n + 1) / (2 * n + 2); 

у += ch; 

// 

мүшеніқосындылау 



            } 

Console


.WriteLine(

"

Косынды - "



 + 

у); 


    } 


 

 



 

 

 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№ 4  тәжірибелік жұмыс 

 

Тақырып:Бір өлшемді массивтермен  жұмыс жасау. 

Тапсырма:  Берілген есепті шығарудың блок-схемасы мен программасын 

жазыңыздар. 



Есеп беру:    Блок-схема және программа. 

 

1.

 

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

 

         



Массив  деп  бір  атауменбелгіленіп,  реттеліп  біріктірілген  бір  типтегі 

мәліметтертобын айтады. Мысалы, нақты сандардан құрылған төмендегі тізбекті  

 

1.6,14.9,-5.0,8.5,0.46, 2.25, -9.85, 6.27, 5.7, -3.2   



Шексіз қосындыны for 

арқылы есептеу алгоритмі  

n= 0, |ch| >

ε

, n++ 


сh=1;s =ch;  

ε

, х   

енгізу

 

басы 



ch *=x

2

/(2n+1)/2n+2);



 

y += ch;  

соңы 


66 

 

бір өлшемді массивдеп, оған А деп атау беруге болады. Массивтің әр элементі массивтің 



атымен белгіленеді де, тік жақша ішіне оның индексі қойылады, яғни массивэлементтері 

индекстері бойынша реттеліп жазылады.Массивтің кез келген элементін оның реттелген 

нөмірін, яғни индексін көрсету жолымен пайдалана аламыз.Индекстер нақты типтен басқа 

кез  келген  скалярлы  (реттелген)  тұрақты  немесе  өрнек  күйінде  бола  береді. 

Массивэлементтерінің саны  оның  индексінің мәнімен  және  олардың  өзгеру  аралығымен 

анықталады.  Массивті  сипаттау  үшін  оны  алдымен  анықтап  алу  керек.  Оның  жазылу 

форматы:  

типі[ ] аты = new типі [ ] { инициалдау_тізімі }; 

int[ ] d = new int[ ] { 61, 2, 5,  -9 };   

Мысал.  Алты  бүтін  саннан  тұратын  а  жиымының  теріс  элементтерінің  қосындысы  мен 

санын және ең үлкен элементін анықтайтын программа құру керек.  

 

using System; 

namespace Listing4_1 

{ class Class1 

    { static void Main()  

{   const int n = 6; 

 int[ ] a = new int[n] { 3, 12, 5, -9, 8, -4 }; 

 

Console.WriteLine("Берілген жиым:" );  

 for ( int i = 0; i < n; ++i ) 

         Console.Write( "\t" + a[i] );  

 Console.WriteLine( ); 

 

long sum = 0; // теріс элементтері қосындысы 

 

int num = 0; // теріс элементтері  саны 

for ( int i =0; i < n; ++i )  

          if ( a[i] < 0 )  

             {  sum += a[i];  

 ++num;  

             }  

Console.WriteLine(" Теріс сандар қосындысы = " + sum );  

Console.WriteLine(" Теріс сандар саны = " + num ); 

int max = a[0];        // максимал элемент  

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

         if ( a[i] > max ) max = a[i];  

Console.WriteLine( "Максимал элементі = " + max );  

} 

    } 

 } 

 

 



 

2. Тапсырмалар варианттары: 

 

1. А(10) массиві берілген. Ең бірінші нөлдік элементің алдындағы оң таңбалы 

     

элементтердің қосындысы мен санын табыңыз. 



 

2.  А(20)  массиві  берілген.  Массивтің  ең  үлкен  және  ең  кіші  элементтерін  және 

олар- 

    


дың реттік нөмірін табыңыз. 

 

3. А(15) массиві берілген. Массивтің  тақ  орындарында орналасқан  элементтердің 



67 

 

    



ішінен ең  кішісін табыңыз және  ең  бірінші  кіші элементтен кейін  орналасқан 

    


нөлге тең емес элементтердің көбейтіндісі мен санын анықтаңыз. 

 

4. А(30) массив берілген. Ең кіші және ең үлкен элементтердің аралығында орнала- 



    

сқан оң таңбалы элементтердің  қосындысы мен санын табыңыз. 

 

5. Егер А(30)   массивінде берілген В-ға тең элемент болса,  Х айнымалысына ең 



бірінші    сондай  элементтің      алдындағы  оң  таңбалы    жұп    элементтердің  

қосындысының    мәнін,    керісінше  жағдайда  нөл  мәнін  меншіктеп,  нәтижені 

экранға шығарыңыз. 

 

6.  Егер  А(20)  массивінде  соңғы  элементтің  квадратына  тең  элемент  бар  болса, 



содан  кейінгі  элементтерді  квадраттау  керек,  керісінше  жағдайда  массив  

өзгермейді. 

 

7. Егер В(40) массивінің элементтері өсу реттілігімен орналасса, Х айнымалысын 



1-

ге теңестіру керек, керісінше жағдайда ол  нөлге тең. 

 

8. А(10) массиві берілген. Массивтің ең үлкен элементін табу керек, содан кейінгі 



элементтерді кему ретімен орналастырыңыз. 

 

9.  Берілген екі массивтер бойынша үшінші массив құрастырылады, оның басында 



бірінші  массивтің  элементтері, аяғында екінші  массивтің элементтері орналасуы 

тиіс. 


 

10. В(20) мен С(30) массив элементтерінен өсуі бойынша реттелген А(50) массивін 

құру керек. В(20) мен С(30) алдын ала өсу бойынша реттелген болуы тиіс. 

 



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




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

    Басты бет