Главная страница
Навигация по странице:

  • Abs, Sqrt, Sign ; дөңгелектеу: Ceiling,Floor,Round ; минимум, максимум: Min, Max

  • 2- Зертханалық сабақ. Шартты операторлар. 2 зертханалы жмыс. Шартты операторлар жне Math каласыны дістерін пайдалану. Math класы


    Скачать 130.71 Kb.
    Название2 зертханалы жмыс. Шартты операторлар жне Math каласыны дістерін пайдалану. Math класы
    Дата02.02.2022
    Размер130.71 Kb.
    Формат файлаdocx
    Имя файла2- Зертханалық сабақ. Шартты операторлар.docx
    ТипДокументы
    #349191

    2- Зертханалық жұмыс. Шартты операторлар және Math каласының әдістерін пайдалану.

    Math класы. C# тілінде математикалық формулаларды есептеу үшін арнайы 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.



    Аты

    Сипатталуы

    Нәтижесі

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

    Abs

    Модуль

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

    \х\ → 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)

    Cos

    Косинус

    double

    Cos(doublex)

    Cosh

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

    double

    Cosh(doublex)

    DivRem

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

    әртүрлі

    DivRenKx, у, rem)

    Е

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

    double

    2,71828182845905

    Ехр

    Экспонента

    double

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

    Floor

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

    double

    Floor(double x)




    дөңгелектеу







    IEEE- Remainder

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

    double

    IEEERemainder(double x, double у)

    Log

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

    double

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

    Log10

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

    double

    logtox → Log10(х)

    Мах

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

    әртүрлі

    Мах(х, у)

    Min

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

    әртүрлі

    Min(x, у)

    PI

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

    double

    3,14159265358979

    Pow

    Дәрежелеу

    double

    xy→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(double x)

    Tanh

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

    double

    Tanh(double x)


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

    С# тілінде кездескен кез-келген математикалық формулаларды Math класының 2.3 – кестегі сәйкес әдістері бойынша программалаймыз. Бұл әдістерді осы курста түрлі тақырыптар бойынша мысал келтіру барсында қолданатын боламыз. Төменде Math класының әдістері қолданылатын формула бойынша есептеу программасын құру мысалын көрсетейік:



    Мұндағы енгізілетін айнымалыларымыз (мәндер) - х пен а. Олардың типтері көрсетілмегендіктен нәтижемен қоса бәрін double типінде сипаттаймыз. Бұл өрнекте квадрат түбір, π, экспонента, дәреже, тангенс, логарифм бар. Сондықтан программа құрған кезде сол бойынша math класының әдістерін қолданамыз.

    Берілген формула бойынша есептеу программасы:
    using System;

    namespace ConsoleApplication1

    { class Class1

    { static void Main()

    {

    double x, a, y;

    Console.WriteLine(" х = ");

    x = Convert.ToDouble(Console.ReadLine());

    Console.WriteLine(" alfa = ");

    a = double.Parse(Console.ReadLine());

    y = Math.Sqrt(Math.PI * x) - Math.Exp(0.2 * Math.Sqrt(a)) + 2 * Math.Tan(2 * a) + 1.6e3 * Math.Log10(Math.Pow(x, 2));

    Console.WriteLine(" x = {0} , alfa = {1} болса, ", x, a);

    Console.WriteLine(" y ={0,10:F3}",y);}

    }
    }
    Шартты операторлар және шартты операция

    Программалау барысында белгілі бір шарт аясында таңдау жасауға тура келетін тармақталу алгоритмдері шартты операторлар арқылы жүзеге асады. Жалпы тармақталу алгоритмдері екі түрде кездеседі, олар "таңдау" және "аттап өту" мүмкіндіктері болып бөлінеді.

    "Таңдау" жолымен тармақталуда берілген шарт тексеріледі (2.1-су­рет), егер ол шарт орындалса (орындалуы ақиқат болса), онда 1-амал жүзеге асырылып, содан кейін келесі 3-амалға көшеміз. Ал, егерде шарт орындалмаса, яғни оның орындалу мүмкіндігі жал­ған болса, онда 2-амал атқарылып, содан кейін 3-амал атқарылады. Сонымен, шарт­тың ақи­қат немесе жалған болуына байланысты 1-амал немесе 2-амал орындалады.

    "Аттап өту" (2.2-сурет) алгоритмінде шарт орындалмаса (жоқ), 1-амалды аттап өтіп, бір­ден 2-амалды, содан кейін 3-амалды орындаймыз. Ал шарт ақиқат болса, онда 1-амал міндетті түрде орындалып, одан кейін 2- және 3-амалдар жүзеге асырылады. Тармақ­талу кезе­ңін­де шартты тексеру блогы орындалуы барысында, алгоритмнің екі мүмкіндігінің тек біреуі ғана таңдап алынып жүзеге асырылады да, ал екінші таңдап алынбаған тармақ біріктіру нүктесіне дейін орындалмай қалады. Енді осыған нақты мысалдар келтірейік.



    2.1-сурет. "Таңдау" алгоритмі 2.2-сурет."Аттап өту" алгоритмі

    Яғни тармақталған операторлар тізбегінен берілген шарт бойынша бір тармақ­тың нәтижесін алу үшін шартты операторлар қолданылады. Мұнда беріл­ген шарт тексеріледі, егер ол ақиқат болса, онда бірінші оператор, ал жалған болса екінші оператор орындалады. Шартты операторлар if түйінді сөзінен басталады. Жалпы if шартты операторының толық түрінің жазылу формасы (2.1-сурет) келесідей:

    if (шарт) 1-оператор;

    else 2-оператор;

    Ал енді аттап өту алгоритмін орындау кезінде оң жақтағы операторды жазбай кетуге болады (2.2-сурет). Бұл else бөлігі жазылмаған жағдайға сәйкес келеді, орындалатын 1-оператор ғана жазылып – шартты оператордың қысқаша түрі қолданылады. Опе­раторды орындау барысында шарт мәні тексеріледі. Егер оның мәні «ақиқат» («иә») бол­са, онда 1-оператор орындалады. Егер шарт «жалған» («жоқ») болса, онда 1-оператор атталып өтіледі де, бірден 3-оператор атқарылады (2.2-сурет). Сонымен, if шартты операторының қысқаша түрінің жазылу формасы:

    if (шарт) 1-оператор;

    Шартты операторларды орындау барысында салыстыру операциялары қолданылады. Ал оның тармақталуы шарт бойынша анықталады. Мысал ретінде, төмендегі өрнекте шартты оператордың қалай қолданылатынын көрсетейік:


    

    Берілген математикалық функцияда х айнымалысын π-дің мәнімен салыстыру арқылы у айнымалысының мәнін есептейтін өрнек таңдалады. Сондықтан бұл өрнекте шартты оператор келесідей түрде қолданылады:

    if (x >= pi) y=Math.Sin(Math.Sqrt(x));

    else y=x*Math.Exp(x+1);

    Шартты оператордың қысқаша түріне мысал ретінде айнымалы мәні теріс болған жағ­дайда оның абсолюттік ша­масын табатын өрнекті келтіру­ге болады:

    if (x<0) y=Math.Abs(x);

    Кей жағдайда шартқа байланысты шартты оператор екіден артық тармақ­тардан тұрады. Ондай жағдайда шартты оператордың бірінен кейін бірі келетін if – else if – else нұсқасы қолданылады. Бұны қабаттасқан шартты операторлар деп атайды. Қабаттасқан шартты оператордың жалпы жазылу формасы:

    if (шарт-өрнек 1 ) 1-оператор;

    else

    if (шарт-өрнек 2 )

    2-оператор;



    else if (шарт-өрнек n )

    n оператор;

    else

    n+1 оператор;

    if операторын қабаттастыра отырып, күрделі өрнек мәндерін анықтай­тын жағдайлар да жиі кездесіп отырады, мысалы келесі мысалды санды енгізу арқылы апта күнін анықтау программасы жазылған:

    class Program

    {

    static void Main(string[] args)

    {

    int c;

    Console.Write(" c = ");

    c = int.Parse(Console.ReadLine());

    if (c == 1) Console.WriteLine("Bugin duysenbi");

    else if (c == 2) Console.WriteLine("Bugin seysenbi");

    else if (c == 3) Console.WriteLine("Bugin sarsenbi");

    else if (c== 4) Console.WriteLine("Bugin beysenbi");

    else if (c== 5) Console.WriteLine("Bugin juma");

    else if (c == 6) Console.WriteLine("Bugin senbi");

    else if (c == 7) Console.WriteLine("Bugin jeksenbi");

    else Console.Write("qate, 1…7 sandaryn engizu kerek");

    Нәтижесі:

    Бұл мысалда if – else нұсқасы 7 рет қайталанып, шарт бойынша 8 оператор­дың бірі орындалады. Мұндай кездерде компилятор else түйінді сөзін оның алдындағы ең соңғы if операторымен байланыстырады. Сондықтан else түйінді сөзін соған сәйкес if сөзімен бір деңгейде жазған ыңғайлы болады Ал келесі мысалда нақты x санының қабылдайтын мәніне байланысты у өрнегін есептеп шығару керек.



    Бұл өрнекте х үш түрлі аралықта мән қабылдайды, соған сәйкес if – else нұсқасы үш рет жазылады. Х айнымалысының қай аралыққа кіретінін тексеріп, соған сәйкес өрнек есептеледі. Программа кодының негізгі бөлігі:

    s tatic void Main()

    { double x,y;

    const double p = 3.14159;

    Console.Write("Enter x: ");

    x=double.Parse(Console.ReadLine());

    if (x>1) { y=x*x-p*Math.Sin(x); }

    else if (0
    else { y=0; }

    Console.WriteLine("x={0,5:f2} y={1,7:f3}",x,y);

    }

    Кейбір кездерде шартты оператор орнына оның қысқаша үш орындық операция түрінде жазылған нұсқасы қолданылады.

    Шартты операция ( ? : ) – тернарлық операция үш операндтан тұрады. Оның жазылу форматы:

    1-операнд ? 2-операнд : 3-операнд

    Егер оның шарты (бірінші операнды) ақиқат болса, өрнек мәні екінші операндқа тең; егер жалған болса, онда — үшіншіге тең. Мысалы:

    max_ab = a > b? a : b;

    abs_x = x < 0? -x : x;

    Мысалы келесі программада екі санның үлкенін анықтайтын шартты операция қолданылған.

    using System;

    namespace Ternar1

    { class Program

    { static void Main()

    { int a = 11, b = 4;

    int max = b > a ? b : a;

    Console.WriteLine("max=" + max ); // Нәтиже 11

    }

    }

    }

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

    Бұл мысалда бірінші операнд b > a шарты тексеріледі. Егер шарт ақиқат болса өрнектің мәні b aйнымалысы (екінші операнд), шарт жалған болса а айнымалысы мәніне (үшінші операнд) тең болады. Бұл жерге а айнымалысының мәні 11, b айнымалысының мәні 4 болғандықтан, шарт жалған болып, үшінші операндтың мәні шығады. Екі санның үлкені ретінде а айнымалысының мәні 11 болады.

    2 зертханалық жұмысқа арналған тапсырмалар

    1. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    2. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    3. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    4. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    5. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    6. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    7. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    8. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    9. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    10. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    11. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    12. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    13. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    14. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    15. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    16. х – аргументіне берілген мән бойынша f(x) функциясын есептеу программасын және алгоритмнің блок-схемасын құру. f(x) функциясының мәні шартты оператор көмегімен есептеледі.



    написать администратору сайта