edu.semgu.kz · web viewҚазақстан Республикасы білім және ғылым...

88
Қазақстан Республикасы білім және ғылым министрлігі Программалау тілдері негіздері пәнінен машықтану жұмыстар нұсқаулары

Upload: others

Post on 31-Dec-2019

39 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

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

Программалау тілдері негіздері пәнінен машықтану жұмыстар нұсқаулары

Семей 2016

Page 2: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

ПРАКТИКАЛЫҚ ЖҰМЫСТАР

ПРАКТИКАЛЫҚ ЖҰМЫС №1

C#-ТА ҚОСУ, АЗАЙТУ, КӨБЕЙТУ, БӨЛУ АМАЛДАРЫ 

Беріліп отырған тапсырмада арқылы біз қарапайым математикалық амалдарды C#-та қолдануды үйренеміз.

Ол үшін үш негізгі типті қолданамыз:Int – мәліметтердің бүтін типі. Атауы айтып тұрғандай, өзіне тек бүтін

сандарды ғана меншіктей алады. Мысалы, 0, 10, 123, -5 және т.б. Алайда, тек -2 147 483 648 пен 2 147 483 647 аралығында ғана, себебі int типі 32-биттік тип болып табылады.

Float – бұл жылжымалы үтірі бар тип, яғни ол өзіне ондық бөлшектерді қамтиды. Сонымен қатар, үтірден соң алты орынды санға дейін жуықтайды.

Double – бұл тип Float типіне ұқсас, тек айырмашылығы float 32-битті болса, double 64-битті. Қарапайым сөзбен, float аз орын алады, алайда дәлдігі төмен. Double оған қарағанда көбірек жадыны қамтиды, бірақ нақтылығы жоғары болып келеді. Ол үтірден соң 14 санға дейін жуықтай алады.

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

1.         Visual C# бағдарламасын жүктейік2.         «Консольды қосымша» (Консольное приложение) таңдаймы. Сол

кезде бағдарлама негізгі қаңқасын жүктейді:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication2{

class Program{

static void Main(string[] args){}

}}

3.         Барлық кодты мына аралықта жазамыз.static void Main(string[] args){}

4.         Int типті айнымалылар үшін екі санның қосындысын табу бағдарламасы былай болады:Console.WriteLine("Қосу амалы үшін бірінші санды енгіз:");string s = Console.ReadLine();

Page 3: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

int a = Convert.ToInt32(s);Console.WriteLine("Қосу амалы үшін екінші санды енгіз:");string s2 = Console.ReadLine();int b = Convert.ToInt32(s2);int c = a + b;Console.WriteLine("Екі санның қосындысы:");Console.WriteLine(c);Console.ReadLine();

5.         Нәтижесі

6.         Double типі үшінConsole.WriteLine("Введите первое число для сложения:");string s = Console.ReadLine();double a = Convert.ToDouble(s); Console.WriteLine("Введите второе число для сложения:");string s2 = Console.ReadLine();double b = Convert.ToDouble(s2); double c = a + b;Console.WriteLine("Сумма данных чисел:");Console.WriteLine(c);Console.ReadLine();

7.          Float типі үшін:Console.WriteLine("Введите первое число для сложения:");string s = Console.ReadLine();float a = float.Parse(s); Console.WriteLine("Введите второе число для сложения:");string s2 = Console.ReadLine();float b = float.Parse(s2); float c = a + b;Console.WriteLine("Сумма данных чисел:");Console.WriteLine(c);Console.ReadLine();

8.         Азайт, көбейту, бөлу амалдары келесідей орындалады.int c = a - b;float c = a * b;

Page 4: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

double c = a / b;

Page 5: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

ПРАКТИКАЛЫҚ ЖҰМЫС №2

ЕКІ САННЫҢ ҚОСЫНДЫСЫН WINDOWS FORM-ҒА ШЫҒАРУ 

Енді екі санның қосындысын консольда емес, формаға салып үйренейік. Файлы – Создать проект – Visual C# – Приложение Windows Forms таңдап, Элементтер панелінен компоненттерді формаға орналастырамыз. 3 Label, 3 TextBox компоненті қолданылған келесі форма жасаймыз:

1.         Әр элементтің қасиеттер панеліндегі Text атауларын береміз

2.         Енді форманы екі рет шертіп, айнымалыларды жариялаймыз:string s;double a;double b;double c;

3.         TextBox1-ді екі рет шертіп, келесі кодты жазамыз:private void textBox1_TextChanged(object sender, EventArgs e){

Page 6: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

s = textBox1.Text;a = Convert.ToDouble(s);

}4.         TextBox2 үшін:

private void textBox2_TextChanged(object sender, EventArgs e){

s = textBox2.Text;b = Convert.ToDouble(s);

}5.         Енді осы екі санның қосындысы үшінші TextBox-ты тышқанмен

басқанда шығуы үшін, Қасиеттер панелінедегі Оқиғалар қалташасын таңдап, MouseClick-ті екі рет шертіп, пайда болған аймаққа келесі кодты тереміз:

private void textBox3_MouseClick(object sender, MouseEventArgs e){

c = a + b;textBox3.Text = Convert.ToString(c);

}6.         Нәтижесі төмендегідей болуы керек:

7.         Толық листингісі:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;

Page 7: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; namespace summ{

public partial class Form1 : Form{public Form1()

{InitializeComponent();

}string s;double a;double b;double c; 

private void textBox1_TextChanged(object sender, EventArgs e){

s = textBox1.Text;a = Convert.ToDouble(s);

}private void textBox2_TextChanged(object sender, EventArgs e){

s = textBox2.Text;b = Convert.ToDouble(s);

}private void textBox3_MouseClick(object sender, MouseEventArgs e){

c = a + b;textBox3.Text = Convert.ToString(c);

}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №3

ДӘРЕЖЕ 

Math.Pow әдісін қолдана отырып, санның дәрежесін консольға шығаратын бағдарлама құрайық.

Сонымен, жоба құрамыз, екі айнымалы белгілейміз.Олардың типін double деп таңдап, а және b деп атайық. Өз қалауымызша

кез-келген типті таңдауға болады.double a;double b;double c;

Мұндағы а-біз енгізетін кез-келген сан, b-оның дәрежесі, с-нәтижесі.

Page 8: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Алдымен, барлығы түсінікті болуы үшін экранға хабарлама шығарайық:Console.WriteLine("Сіз санның дәрежесін шығаратын бағдарламаны тамашалап отысыз");Console.WriteLine("Өтініш, белгілі бір сан енгізіңіз: ");

Енді, қолданушы енгізген санды оқу керек:a = Convert.ToDouble(Console.ReadLine());

Дәрежесін көрсету үшін қолданушыға хабарлама шығаруымыз керек:Console.WriteLine("Рахмет, енді дәрежесін көрсетіңіз "+a+":");b = Convert.ToDouble(Console.ReadLine());

Math.Pow әдісін қолдану арқылы есептеу қалды.c = Math.Pow(a, b);

Енді пайда болған есептің шешімін экранға шығару ғана қалдыConsole.WriteLine("Дайын! "+a+" дәрежесі "+b+" тең болады "+c+"!");Console.ReadLine();

Бағдарламаның толық листингісі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace vstepen{class Program{static void Main(string[] args){double a;double b;double c; Console.WriteLine("Сиз саннын дарежесин шыгаратын багдарламаны тамашалап отырсыз");Console.WriteLine("Отиниш, белгили бир сан енгизиниз:");a = Convert.ToDouble(Console.ReadLine());Console.WriteLine("Рахмет, енди дарежесин корсетиниз " + a + ":");b = Convert.ToDouble(Console.ReadLine());

Page 9: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

c = Math.Pow(a, b);Console.WriteLine("Дайын! "+a+" дарежеси "+b+" тен болады "+c+"!");Console.ReadLine();}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №4

КАЛЬКУЛЯТОР 

1.         Microsoft Visual Studio 2015 бағдарламасын жүктейміз.2.         Файлы => Создать проект => Visual C# => Приложение Windows

Form таңдаймыз3.         Жобаны «Калькулятор» деп атайық

4.         Бізде форма пайда болды. Осы формаға түрлі компоненттер орналастыру арқылы Windows қосымшасын жасауға болады

5.         Формамызға 3 TextBox және 6 Button компоненттерін орналастырып, сәйкесінше атаулар береміз

Page 10: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

6.         Қасиеттер терезесінде әр компоненттің атауын жазамыз, Форма қасиетінде Форма атауын «Калькулятор» деп көрсетеміз

7.         Форманы екі рет шертіп, Form1.cs терезесіне өтеміз. Бұл бағдарламаның негізгі коды жазылатын аймақ

Page 11: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

8.         Калькуляторымызда қолданылатын математикалық амалдарды осы аймаққа жазамыз.public static double kosu(double a, double b){return a + b;}public static double azaitu(double a, double b){return a - b;}public static double kobeitu(double a, double b){return a * b;}public static double bolu(double a, double b){return a / b;}public static double darezhe(double a, double b){return Math.Pow(a, b);}public static double tubir(double a, double b){return Math.Pow(a, 1 / b);}

9.         Енді осы амалдарды батырмаларымызбен байланыстыру қалды. Ол үшін формамыздағы батырмамызды екі рет шертіп, пайдаболған жолаққа тиісті кодты жазамыз.

10.     Қосу батырмасы үшінtextBox3.Text = Convert.ToString(kosu(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)));

11.     Азайту батырмасы үшінtextBox3.Text = Convert.ToString(azaitu(Convert.ToDouble(textBox1.Text),Convert.ToDouble(textBox2.Text)));

12.     Көбейту батырмасы үшінtextBox3.Text = Convert.ToString(kobeitu(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)));

13.     Бөлу батырмасы үшінtextBox3.Text = Convert.ToString(bolu(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)));

14.     Дәреже батырмасы үшінtextBox3.Text = Convert.ToString(darezhe(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)));

15.     Түбір батырмасы үшінtextBox3.Text = Convert.ToString(tubir(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text)));

16.     Калькуляторымыз дайын, енді оны іске қосайық

Page 12: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

ПРАКТИКАЛЫҚ ЖҰМЫС №5

C#-ТАҒЫ КЕЗДЕЙСОҚ САНДАР. RANDOM ФУНКЦИЯСЫ 

Random функциясының көмегімен кездейсоқ сандарды шығаратын кодты жазайық.

Ең алдымен кездейсоқ сандар класын жариялаймыз. Ол үшін:Random rand = new Random();

жазамыз.Енді қолданушы өзіне қанша кездейсоқ сан керек екенін жазады:

Console.WriteLine("Қанша сан шығарғыңыз келеді?");string s = Console.ReadLine();int a = Convert.ToInt32(s);

Енді  For циклін қолданамыз:for (int i=0;i<a;i++){Console.WriteLine(rand.Next(100));}

Біз 0-ге тең жаңа і айнымалысын енгіземіз. Кейін,оған шарт қоямыз. і а санынан кіші болса, жақша ішіндегі шарт орындалады. Әр кез орындалған соң оған бірлік қосылып отырады.  100 саны кездейсоқ сан 0-ден 100 аралығында болатынын көрсетеді.

rand.Next(50, 1000); деп көрсетсек, ол 50 мен 1000 арасында болады.Соңында, for аймағынан бөлек тұсқа,

Console.ReadLine();деп көрсетуді ұмытпаймыз. Бұл жолақсыз, консоль тез арада жоғалып

кете беретін болады.Нәтижесі:

Page 13: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Бағдарламаның толық листингісі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace random{class Program{static void Main(string[] args){Random rand = new Random(); Console.WriteLine("Канша сан шыгаргыныз келеди?");string s = Console.ReadLine();int a = Convert.ToInt32(s);for (int i=0;i<a;i++){Console.WriteLine(rand.Next(100));}Console.ReadLine();}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №6

ПАСКАЛЬ ҮШБҰРЫШЫ 

Паскаль үш бұрышын консольға шығаратын бағдарлама құрамыз. Паскаль үшбұрышының қанша жоақтан тұратынын қолданушы өзі енгізуі керек.

Page 14: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Суретте көрсетілгендей Паскаль үшбұрышы шетінде 1-лерден, ал ортасындағы сан, маңындағы екі санның қосындысына тең.

1.         Алдымен, айнымалыларды белгілейміз, қолданушы енгізген жол санын оқу үшін келесі коды жазамыз:int i, n, c;Console.WriteLine("Паскаль ушбурышынын кажетти жол санын енгиз:");string s = Console.ReadLine();n = Convert.ToInt32(s);

2.         Алдын-ала факториал функциясын жазамыз, жай ғана n!=123…n формуласын кодқа келтіреміз:public static float factorial(int n){float i, x = 1;for (i = 1; i <= n; i++){x *= i;}return x;}

3.         Енді, қажетті үшбұрыш түріне келтіріп, сандарды есептейміз:for (i = 0; i < n; i++){for (c = 0; c <= (n - i); c++){Console.Write(" ");}for (c = 0; c <= i; c++){Console.Write(" ");Console.Write(factorial(i) / (factorial(c) * factorial(i - c)));}Console.WriteLine();Console.WriteLine();}Console.ReadLine();

4.         Үшбұрыш элементтерін Ньютон биномы арқылы есептеп шығарамыз. Ол үшін келесі формуланы қолдандық:

Page 15: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

5.         Нәтижесі:

6.         Толық листингісі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace paskal{class Program{static void Main(string[] args){int i, n, c;Console.WriteLine("Паскаль ушбурышынын кажетти жол санын енгиз:");string s = Console.ReadLine();n = Convert.ToInt32(s); for (i = 0; i < n; i++){for (c = 0; c <= (n - i); c++){Console.Write(" ");}for (c = 0; c <= i; c++){Console.Write(" ");Console.Write(factorial(i) / (factorial(c) * factorial(i - c)));}

Page 16: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Console.WriteLine();Console.WriteLine();}Console.ReadLine();}public static float factorial(int n){float i, x = 1;for (i = 1; i <= n; i++){x *= i;}return x;}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №7

ПАСКАЛЬ ҮШБҰРЫШЫ 

Паскаль үш бұрышын консольға шығаратын бағдарлама құрамыз. Паскаль үшбұрышының қанша жоақтан тұратынын қолданушы өзі енгізуі керек.

Суретте көрсетілгендей Паскаль үшбұрышы шетінде 1-лерден, ал ортасындағы сан, маңындағы екі санның қосындысына тең.

1.         Алдымен, айнымалыларды белгілейміз, қолданушы енгізген жол санын оқу үшін келесі коды жазамыз:int i, n, c;Console.WriteLine("Паскаль ушбурышынын кажетти жол санын енгиз:");string s = Console.ReadLine();n = Convert.ToInt32(s);

2.         Алдын-ала факториал функциясын жазамыз, жай ғана n!=123…n формуласын кодқа келтіреміз:public static float factorial(int n){float i, x = 1;for (i = 1; i <= n; i++){x *= i;}

Page 17: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

return x;}

3.         Енді, қажетті үшбұрыш түріне келтіріп, сандарды есептейміз:for (i = 0; i < n; i++){for (c = 0; c <= (n - i); c++){Console.Write(" ");}for (c = 0; c <= i; c++){Console.Write(" ");Console.Write(factorial(i) / (factorial(c) * factorial(i - c)));}Console.WriteLine();Console.WriteLine();}Console.ReadLine();

4.         Үшбұрыш элементтерін Ньютон биномы арқылы есептеп шығарамыз. Ол үшін келесі формуланы қолдандық:

5.         Нәтижесі:

6.         Толық листингісі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace paskal

Page 18: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

{class Program{static void Main(string[] args){int i, n, c;Console.WriteLine("Паскаль ушбурышынын кажетти жол санын енгиз:");string s = Console.ReadLine();n = Convert.ToInt32(s); for (i = 0; i < n; i++){for (c = 0; c <= (n - i); c++){Console.Write(" ");}for (c = 0; c <= i; c++){Console.Write(" ");Console.Write(factorial(i) / (factorial(c) * factorial(i - c)));}Console.WriteLine();Console.WriteLine();}Console.ReadLine();}public static float factorial(int n){float i, x = 1;for (i = 1; i <= n; i++){x *= i;}return x;}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №8

ТАЙМЕР1.         Таймер бағдарламасын жасақтау үшін C# тілін жүктеп, суретегідей

форма жасаймыз. Ол үшін 8-Label, 3-TextBox және 3-Button мен Timer-дің өзі керек болады.

Page 19: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

2.         Timer компонентін орналастырған кезде ол көрінбейді, себебі визуалды емес элемент

3.         Алдымен, айнымалыларды белгілейік. Оны формны екі рет шертіп, модуль терезесіне жазамыз.int h, m, s;// сағат, минут, секунд

4.         Старт батырмасын екі рет шертіп, келесі мәндерді беремізh = Convert.ToInt32(textBox1.Text);m = Convert.ToInt32(textBox2.Text);s = Convert.ToInt32(textBox3.Text);timer1.Start();

5.                  Timer компонентін екі рет шертіп, келесі кодты жазамызs = s - 1;if (s == -1){m = m - 1;s = 59;}if (m == -1){h = h - 1;m = 59;}if (h == 0 && m == 0 && s == 0){timer1.Stop();MessageBox.Show("Уақыт бітті!");

Page 20: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

}6.         Енді уақыттың азайып отырғанын көріп отыру үшін Label

компоненттерін жариялаймыз. Ол үшін жоғарыдағы жазбаға келесі кодты қосып жазамыз.label1.Text = Convert.ToString(h);label3.Text = Convert.ToString(m);label5.Text = Convert.ToString(s);

7.         «Стоп» батырмасы үшінprivate void button2_Click(object sender, EventArgs e){timer1.Stop();}

8.         «Жаңадан» батырмасы үшінprivate void button3_Click(object sender, EventArgs e){timer1.Stop();label1.Text = "0";label3.Text = "0";label5.Text = "0";}

9.         Соңында таймерімізді жүктесек, келесі түрге келеді

 

ПРАКТИКАЛЫҚ ЖҰМЫС №9

КВАДРАТ ТЕҢДЕУІН ШЕШУ 

Біз бүгін кез-келген квадрат теңдеуін шешетін бағдарлама құрастырамыз. Дискриминант пен екі бірдей түбірін табамыз. Бағдарламаны жасау үшін бізге:

Квадрат теңдеуінің формуласы:

Дискриминантты табу формуласы:

Егер дискриминант нөлден үлкен жағдайда түбірлерін табу формуласы:

Дискриминант нөлге тең жағдайдағы түбірлерін табу формуласы:

Page 21: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Керек болады.Енді бағдарламаны жасауға көше беруге болады.1.         Келесі форманы жасауымыз керек

Мұнда 3-textBox, 2-label, 1-Button компоненттері қолданылған. Шешімін арнайы MessageBox-та жариялаймыз

2.         Button батырмасын екі рет шертіп, айнымалыларды жариялаймызdouble a = Convert.ToDouble(textBox1.Text);double b = Convert.ToDouble(textBox2.Text);double c = Convert.ToDouble(textBox3.Text);

3.                  Дискриминантты жариялаймызdouble d = b * b - 4 * a * c;

4.         Енді біз уақиғаның үш түрлі өрлеуі мүмкін екенін білеміз:1)        Егер дискриминант нөлден үлкен болса, оның екі түбірі болады2)        Егер дискриминант нөлге тең болса, бір ғана түбірі болады3)        Егер дискриминант нөлден кіші болса, мүлдем түбірі болмайды5.         Олай болса келесі шарттар орындалуы керек

if (d < 0){MessageBox.Show("D<0. Түбірі жоқ");}if(d == 0){double x=(-b/2*a);MessageBox.Show("D=0. Түбірі "+x+".");}if(d > 0){double x1 = ((-b - Math.Sqrt(d)) / 2 * a);double x2 = ((-b + Math.Sqrt(d)) / 2 * a);MessageBox.Show("D= " +d+ ". Бірінші түбірі= "+x1+". Екінші түбірі= "+x2+".");}

6.         Бағдарламаны жүктеп, оған мәндер беріп, тексеріп көрейік

 

Page 22: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

ПРАКТИКАЛЫҚ ЖҰМЫС №10

C#-ТА ФИБОНАЧЧИ САНЫНЫҢ N-ШІ МҮШЕСІН ТАБУ 

Жоғарыда біз Фибоначчи сандар тізбегін біз енгізген санға дейін шығаратын бағдарлама құрған болатынбыз. Енді тек қана, бізге керек N-ші мүшесін экранға шығаратын бағдарлама құрамыз.

Фибоначчи сандарын еске түсірейік:

Енді, қолданушы көргісі келетін элемент нөмірін алуымыз керек.Ол үшін келесіні тереміз:

Console.WriteLine("Фибоначчи тізбегінін қандай мүшесін көргіңіз келеді?");int number = Convert.ToInt32(Console.ReadLine());

Консольға біздің сұранысты шығарып, қолданушы енгізген мәнді string типінен int типіне конвертациялаймыз.

Int 32-разрядты бүтін сандар типі болғандықтан, оның диапазовны біршама кең, бірақ шексіз емес (-2 147 483 648 пен 2 147 483 647 аралығындағы сандар). Сондықтан, шексіз Фибоначчи санын көру үшін қоданушы енгізетін аралықты шектейміз. Ол аралықтан шықпайтын сан 48-ші сан болғандықтан if операторын қолданамыз:if (number > 48){Console.WriteLine("Кешіріңіз, бағдарлама Фибоначчи сандар тізбегін тек 48 мүшесіне дейін есептей алады");}

Егер енгізген сан 48-ден үлкен болса, бағдарлама келесі хабарламаны шығарады:

Page 23: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Сонымен қоса, біз бірден кіші сандарды енгізуге тиым саламыз.Жалпы бағдарламамызда үш шарт болады: егер енгізген сан 48-ден үлкен

болса, егер енгізілген сан 1-ден кем болса және 1-48 арасындағы элементтер. Бұл жағдайларда if-else операторы қолданылады:If(шарт 1){Бірінші амалдың орындалуы;}else if (шарт 2){Екінші амалдың орындалуы;}else{Үшінші амалдың орындалуы;}

Осы қағида бойынша екінші шартты жазамыз:else if (number < 1){Console.WriteLine("Фибоначчи тизбегинде ондай элемент жок");}

Консольда ол былай бейнеленеді:

Енді, бізге қажетті аймақтағы элементті есептеп шығаруға көшеміз:

Page 24: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

else{int bir = 1;int eki = 1;int sum = 0; int j = 2;while (j <= number){sum = bir + eki;bir = eki;eki = sum;j++;}Console.WriteLine("Номерли болып " + number + " Фибоначчи тизбегинде турган сан " + bir);}

Бастапқы екі элемент әрқашан 1-ге тең, sum-ға бірінші және екінші қосындысын енгіземіз, яғни bir пен eki. Оған қоса j-айнымалысын енгіземіз. Ол тізбектің элементтерін санауға, қажетті элементті анықтауға керек болады.Console.ReadLine();

жолағын ұмытпаймыз.Нәтижесінде келесідей болып консольға шығады:

Бағдарламаның толық листингісі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace fibo{class Program{static void Main(string[] args)

Page 25: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

{Console.WriteLine("Фибоначчи тизбегинин кандай мушесин коргиниз келеди?");int number = Convert.ToInt32(Console.ReadLine());if (number > 48){Console.WriteLine("Кешириниз, багдарлама Фибоначчи сандар тизбегин тек 48 мушесине дейин есептей алады");  }else if (number < 1){Console.WriteLine("Фибоначчи тизбегинде ондай элемент жок");}else{int bir = 1;int eki = 1;int sum = 0; int j = 2;while (j <= number){sum = bir + eki;bir = eki;eki = sum;j++;}Console.WriteLine("Номерли болып " + number + " Фибоначчи тизбегинде турган сан" + bir);}Console.ReadLine();}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №11

ПОЛИНДРОМ 

Берілген мәтін, сан немесе символ полиндром бола ма? Жоқ па? Екенін шығаратын бағдарлама жасайық. Ол үшін алдымен қарапайым форма жасап алайық.

Мұнда 1-Button, 1-TextBox және 1-Label компоненттері қолданылған

Page 26: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

1.         Енді «Тексеру» батырмасын екі рет шертіп, келесі кодты жазамызstring text = textBox1.Text;char[] obrtext = text.ToCharArray();Array.Reverse(obrtext);string finaltext = new string(obrtext);if(text==finaltext){MessageBox.Show("Мәтін палиндромом");}if (text!=finaltext){MessageBox.Show("Мәтін палиндромом емес.");}

2.         Алдымен, біз қолданушы жазған мәтінді оқып, оны text айнымалысына қабылдаймыз. Содан соң, char типті символдар массивін құрамыз. Ол символдарды бір-бірден оқу үшін керек. Осының көмегімен, соңында енгізілген текстті кері аударамыз. ToCharArray көмегімен мәтінді жолақтық форматтан, символдар массивіне конвертациялаймыз

3.         TextBox-та енгізілген мәтінді Array.Reverse(obrtext) әдісі кері оқиды4.         Бағдарламаны тексеру үшін «қазақ» сөзін теріп көрейік. Сонда, келесі

хабарлама шығады

 

ПРАКТИКАЛЫҚ ЖҰМЫС №12

СПАМЕР 

C# бағдарламасы көмегімен спамер жасаймыз. Оны кез-келген жерде қолдануға болады: skype, вконтакте, түрлі чаттарда, комментарийлерде және т.б.

Алдымен форма жасаймыз:

Page 27: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

TextBox-та біз мәтін теріп жазамыз. Ол TrackBar-да көрсетілген жылдамдықпен жіберіліп отырады. Сонымен қатар формамызға Timer орналастырамыз. Оның көмегімен, жіберілу интервалы анықталады.

TrackBar-ды төмендегідей баптаймыз:

Біздің TrackBar-дің мәні 1-ден 1000 аралығында болады, ал жылжымалы жүгіртпені бағдарламаны жүктегенде ортасына қоямыз – 500. Бұл сандар – миллисекундтар. Біз TrackBar-да көрсеткен секундтан соң хабарлама қайта жіберілетін болады.

TrackBar-дың астына Label орналастырамыз, ол қанша миллисекунд екенін көрсететін болады.

Енді кодтауға көшейік:1.         «Старт» батырмасын екі рет шертіп, жазамыз:

private void button1_Click(object sender, EventArgs e){timer1.Start();}

«Старт» батырмасын басқан кезде біз таймерді іске қосамыз және ол уақытты есептей бастайды.

«Стоп» батырмасы үшін де осылай жасаймыз, бірақ ол үшін келесі кодты жазамыз:private void button2_Click(object sender, EventArgs e){timer1.Stop();}

«Стоп» батырмасын басқан соң таймер тоқтайтын болады. Содан соң, біз терезедегі   белгіні екі рет шертіп, келесіні тереміз:private void timer1_Tick(object sender, EventArgs e){SendKeys.Send(textBox1.Text);SendKeys.Send("{ENTER}");}

Бұл екі жолақ біздің спамеріміздің «жүрегі» болып табылады. Бірінші жолда біз TextBox жазылған мәтінді оқып, жолдаймыз. Екінші жолда біз «Enter» батырмасын басуды жібереміз. Яғни бағдарлама, TextBox-та енгізілген мәтінді оқып, оны жіберіп, Enter батырмасын басады. Ол біз тоқтатқанша қайталана беретін болады.

Қайда жіберетіні түсініксіз болса? Барлығы қарапайым. Ол бұл хабарламаны тышқан тұрған белсенді аймаққа жібереді.

Page 28: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Енді бізге TrackBar-ды баптау қалды. Оны екі рет шертіп, келесі кодты жазамыз:

private void trackBar1_Scroll(object sender, EventArgs e){label3.Text = trackBar1.Value + " мс";timer1.Interval = trackBar1.Value;}Бірінші жолда біз TrackBar астындағы Label-ді жүгіртпенің жылжуына

қарай өзгеріп отыратындай баптаймыз

Алынған мән үшін «мс» тіркеп жазамыз, ол қолданушыға уақыттың қалай есептелетінін көріп отыру үшін керек.

Екінші жолда біз TrackBar-дағы мәнмен таймерді «синхронизациялаймыз». Осы жолақ арқасында жіберілу жиілігі реттеледі.

Осылай біздің Спамеріміз дайын. Тексеріп көрейік. Алдымен блокнотта тексерейік:

Page 29: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Бағдарламаның толық листингісі:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; namespace spamer{public partial class Form1 : Form{public Form1(){InitializeComponent();} private void button1_Click(object sender, EventArgs e){timer1.Start();} private void button2_Click(object sender, EventArgs e){timer1.Stop();} private void timer1_Tick(object sender, EventArgs e){SendKeys.Send(textBox1.Text);SendKeys.Send("{ENTER}");} private void trackBar1_Scroll(object sender, EventArgs e){label3.Text = trackBar1.Value + " мс";timer1.Interval = trackBar1.Value;}}}

ПРАКТИКАЛЫҚ ЖҰМЫС №13

САНАУ ЖҮЙЕЛЕРІ 

Ондық санау жүйесінен екілік, сегіздік, он алтылық санау жүйелеріне ауыстыратын бағдарлама құру

Page 30: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

1.         Алдымен келесідей форма құрамыз

2.         Мұнда 2-Label, 3-RadioButton және 2-TextBox қолданылған3.         Қолданушы 1-TextBox-қа ондық санау жүйесіндегі бір санды енгізеді

де, үш RadioButton-ның біреуін таңдайды, яғни қай санау жүйесіне ауыстырғысы келетініне. 2-TextBox-та нәтижесі бірден шығатын болады.

4.         Енді форманы кодтауға көшейік. 1-ші RadioButton-ды екі рет шертіп, келесі жазбаны тереміз:

private void radioButton1_CheckedChanged(object sender, EventArgs e){int i = Convert.ToInt32(textBox1.Text);textBox2.Text = Convert.ToString(i, 2);}Қолданушы TextBox-та енгізген санды бүтін сандық форматқа

конвертациялайды. Екілік санау жүйесін көрсетіліп жазылды. Сол сияқты, сегіздік және он алтылық санау жүйесіне аудару кодынтереміз

5.         Жалпы жазбасы, төмендегідей болуы керек:private void radioButton1_CheckedChanged(object sender, EventArgs e){

int i = Convert.ToInt32(textBox1.Text);textBox2.Text = Convert.ToString(i, 2);}private void radioButton2_CheckedChanged(object sender, EventArgs e){int i = Convert.ToInt32(textBox1.Text);textBox2.Text = Convert.ToString(i, 16);}private void radioButton3_CheckedChanged(object sender, EventArgs e){int i = Convert.ToInt32(textBox1.Text);textBox2.Text = Convert.ToString(i, 8);

}6.         Бірінші тұрған TextBox-ты екі рет шертіп, жазамыз:private void textBox1_TextChanged(object sender, EventArgs e){int i = Convert.ToInt32(textBox1.Text);if (radioButton1.Checked == true){

Page 31: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

textBox2.Text = Convert.ToString(i, 2);}else if (radioButton2.Checked == true){textBox2.Text = Convert.ToString(i, 16);}else if (radioButton3.Checked == true){textBox2.Text = Convert.ToString(i, 8);}}7.         Бағдарлама келесі түрде болуы керек:

ПРАКТИКАЛЫҚ ЖҰМЫС №14

C# БИОЦЕНТРЛІК КООРДИНАТТАР НЕГІЗІНДЕ ҮШБҰРЫШТАРДЫ РАСТЕРИЗАЦИЯЛАУ

 Біз биоцентрлік координаталар негізінде үшбұрыштарды атрибуттар

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

Қысқасы, келесі суретті экранға шығаратын бағдарлама құрамыз:

Page 32: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Енді, бәрін кезекпен.Бізде алты үшбұрыш бар, олардың координаталары берілген, олардың

атрибуттары енгізілген. Үшбұрыш төбелерінің түсін біле тұра, бояп шықсақ, өзіндік градиент пайда болады.

Ескерту. Интерполяция – белгілі мәндер негізінде көлемнің аралық мәндерін алу.

Мысалы, бізде өлшемі 800x600 пиксель болатын pictureBox берілсін. Координаттар басы деп сол жақ жоғарғы бұрышты аламыз.

For циклінде координаталық жазықтық бойынша (пиксель бойынша) солдан оңға қарай жылжытамыз. Біздің мақсатымыз – ағымдағы пиксельдер координатасы қандай да бір үшбұрышқа тиісті болады ма екенін анықтау. Бұл тапсырманы шешу үшін бізге барицентрлік координаталарды қолдану керек. Олардың формуласы:

Page 33: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Мұндағы x1, y1, x2, y2, x3, y3 – үшбұрыш төбелерінің координаталары, ал x, y – ағымдағы нүктенің координатасы. Ағымдағы нүкте үшбұрышқа келесі шарт орындалса тиісті болады:

(яғни, барлық үш биоцентрлік координаталар [0,1] аралығында болуы керек)

Сонымен, бізде үшбұрышты растеризациялаудың келесі алгоритмі пайда болады:

1)        Ағымдағы нүктенің түсінің мәніне фон түсі меншіктеледі2)        Ағымдағы нүктенің биоцентрлік координаталары үшбұрыштың

төбелеріне қатысты анықталады3)        Нүктенің үшбұрышқа тиістілігін тексеру шарты орындалады4)        Егер шарт дұрыс болса, нүкте үшбұрышқа тиісті және түсі ретінде

үшбұрыш төбелерінің атрибуттарын интерполяциялау кезіндегі түс меншіктеледі. Өзгеше болса, келесі үшбұрышқа өтеміз

5)        Ағымдағы нүктені шығару, келесіге және 1-пунктке көшуСонымен, Visual Studio-да Windows Forms жобасын құрайық. Бұл формаға

pictureBox компонентін орналастырып, қасиеттер панелінде 800 x 600 өлшемін берейік:

Енді, бұл жобада файл құрастырайық (мысалы оның атауын, data.cs дейік). Оған келесі код жазылады:using System;namespace triangle{class data{public static int n = 6; public static double[] x1 = { 100, 250, 400, 100, 250, 400 };public static double[] y1 = { 250, 100, 250, 350, 500, 350 }; public static double[] x2 = { 250, 400, 550, 250, 400, 550 };public static double[] y2 = { 100, 250, 100, 500, 350, 500 }; public static double[] x3 = { 400, 550, 700, 400, 550, 700 };public static double[] y3 = { 250, 100, 250, 350, 500, 350 }; public static UInt32[] colorA = { 0xFFcc1343, 0xFF7a50c0, 0xFF58d70c, 0xFFf6310a, 0xFFFF0000, 0xFFfcff00 };public static UInt32[] colorB = { 0xFFeae817, 0xFFbe1fb8, 0xFF0fe6ee, 0xFFfff600, 0xFF00FF00, 0xFF2cf3f1 };public static UInt32[] colorC = { 0xFF92eeaf, 0xFFea8208, 0xFFf91dec, 0xFFb482f8, 0xFF0000FF, 0xFF058726 };

Page 34: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

}}

7-ші жолақта үшбұрыштар саны көрсетілген (біздің жағдайда 6 үшбұрыш). 9-16 жолдарда үшбұрыштың төбелерінің координаталары (бірінші бағанда бірінші үшбұрыштікі, екіншісінде екінші үшбұрыштікі және т.с.с.) көрсетілген. 18-20 жолдарда үшбұрыш төбелерінің атрибуттары – олардың түсі көрсетілген.

Әрі қарай, Form1.cs класының кодына көшеміз. Using директивасын қолдана отырып, data.cs файлынан атаулар аймағын байланыстырамыз:using triangle;

Bitmap класының экземплярын жариялаймыз (суреттерді сақтау үшін керек):public static Bitmap image;

Form1.cs класының конструкторында InitializeComponent()-дан кейін келесі коды тереміз:public Form1(){    InitializeComponent();     image = new Bitmap(pictureBox1.Width, pictureBox1.Height);    Rasterization();    pictureBox1.Image = image;}

Мұнда біз өлшемі pictureBox1 болатын image орнатамыз, Rasterization() функциясын шақырып, суретті Bitmap image-ден pictureBox1-ге ауыстырамыз.

Енді, Rasterization() функциясын қосайық, ол жазықтықтағы барлық пискельдерді тексеріп, шыққан нүкте түсін Bitmap image-ге енгізеді:public void Rasterization(){    for (int y = 0; y < pictureBox1.Height; y++)        for (int x = 0; x < pictureBox1.Width; x++)            image.SetPixel(x, y, Color.FromArgb((int)ShadeBackgroundPixel(x, y)));}

ShadeBackgroundPixel(x, y) – (x, y) координаталарымен пиксель түсін анықтайды.

Color.FromArgb() – түсті ARGB-дан Color класына көшіреді, ол image.SetPixel() функциясының жұмысы үшін керек.

ShadeBackgroundPixel(x, y) функциясына көшейік:public UInt32 ShadeBackgroundPixel(int x, int y){    UInt32 pixelValue; //цвет пикселя с координатами (x, y)     double l1, l2, l3;    int i;    pixelValue = 0xFFFFFFFF; //присваиваем цвет фона - белый    for (i = 0; i < data.n; i++)    {        l1 = ((data.y2[i] - data.y3[i]) * ((double)(x) - data.x3[i]) + (data.x3[i] - data.x2[i]) * ((double)(y) - data.y3[i])) /

Page 35: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

            ((data.y2[i] - data.y3[i]) * (data.x1[i] - data.x3[i]) + (data.x3[i] - data.x2[i]) * (data.y1[i] - data.y3[i]));        l2 = ((data.y3[i] - data.y1[i]) * ((double)(x) - data.x3[i]) + (data.x1[i] - data.x3[i]) * ((double)(y) - data.y3[i])) /            ((data.y2[i] - data.y3[i]) * (data.x1[i] - data.x3[i]) + (data.x3[i] - data.x2[i]) * (data.y1[i] - data.y3[i]));        l3 = 1 - l1 - l2;        if (l1 >= 0 && l1 <= 1 && l2 >= 0 && l2 <= 1 && l3 >= 0 && l3 <= 1)        {            pixelValue = (UInt32)0xFF000000 |                ((UInt32)(l1 * ((data.colorA[i] & 0x00FF0000) >> 16) + l2 * ((data.colorB[i] & 0x00FF0000) >> 16) + l3 * ((data.colorC[i] & 0x00FF0000) >> 16)) << 16) |                ((UInt32)(l1 * ((data.colorA[i] & 0x0000FF00) >> 8) + l2 * ((data.colorB[i] & 0x0000FF00) >> 8) + l3 * ((data.colorC[i] & 0x0000FF00) >> 8)) << 8) |                (UInt32)(l1 * (data.colorA[i] & 0x000000FF) + l2 * (data.colorB[i] & 0x000000FF) + l3 * (data.colorC[i] & 0x000000FF));            break;        }    }     return pixelValue;}

Мұнда біз UInt32 мәліметтер типімен жұмыс істейміз, бұл еш белгісіз 32-разрядты бүтін сан.

Нәжите:

Page 36: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Бағдарламаның толық листингі:namespace triangleRasterization{    partial class Form1    {              private System.ComponentModel.IContainer components = null;             protected override void Dispose(bool disposing)        {            if (disposing && (components != null))            {                components.Dispose();            }            base.Dispose(disposing);        }           private void InitializeComponent()        {            this.pictureBox1 = new System.Windows.Forms.PictureBox();            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();            this.SuspendLayout();                      this.pictureBox1.Location = new System.Drawing.Point(12, 12);            this.pictureBox1.Name = "pictureBox1";            this.pictureBox1.Size = new System.Drawing.Size(800, 600);            this.pictureBox1.TabIndex = 0;            this.pictureBox1.TabStop = false;                     this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;            this.ClientSize = new System.Drawing.Size(823, 623);            this.Controls.Add(this.pictureBox1);            this.Name = "Form1";            this.Text = "ҮШБҰРЫШТАРДЫ РАСТЕРИЗАЦИЯЛАУ";            ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();            this.ResumeLayout(false);         }           private System.Windows.Forms.PictureBox pictureBox1;    }}

ПРАКТИКАЛЫҚ ЖҰМЫС №15

 C# ДАТА ЖӘНЕ УАҚЫТ 

Page 37: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Бүгін біз жүктеген кезде цифрлы сағат пен датаны көрсететін бағдарлама жасаймыз.

Алдымен келесі форманы жасаймыз:

Мұнда 2-Label мен +Timer ғана бар.Өз қалауымызша Label-ді баптаймыз.Енді кодқа көшейік, Форманы тышқанның оң жағымен шертіп, сәйкес

команданы таңдаймыз.public partial class Form1 : Form жолынан кейін бірден таймерді

жариялаймыз.Ол былай жасалынады:

public partial class Form1 : Form{Timer timer = new Timer();

Оны ең басында жариялаймыз, себебі барлық жазылатын функциялар оны ескеруі керек.

Таймерді қосу үшін формаға барып, оны тышқанның сол жақ батырмасымен екі рет шертеміз.

Форма жүктелген кезде орындалатын кодқа көшеміз. Бұл жерге жазамыз:private void Form1_Load(object sender, EventArgs e) {     timer.Interval = 1000;      timer.Tick += new EventHandler(timer1_Tick);     timer.Start();          }

Бірінші жол таймердің жаңару интервалын орнатады. 1000 саны таймердың әр 1000 миллисекунд, яғни 1 секунд сайын жаңаратынын білдіреді.

Екінші жол өте маңызды – ол таймердың қандай да бір «Tick» оқиғасы кезінде орындалады. 1000 миллисекунд сайын орындалады. Соның арқасында қолданушы циферблаттың өзгеруін көре алады. Оқиғаның өзін біз төменде timer1_Tick функциясында сипаттаймыз.

Үшінші жолда біз таймерді іске қосамыз.Енді формаға оралып таймердың суретін   екі рет шертеміз.Міне timer1_Tick функциясы ашылды. Мұнда белгілі бір код жазамыз

және әр 1000 миллисекунд сайын бұл қайта орындалып отырады.Біздің функциямыздың ішінде алдымен кейбір айнымалыларды

жариялаймыз:int h = DateTime.Now.Hour;int m = DateTime.Now.Minute;int s = DateTime.Now.Second; 

Page 38: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

string time = "";h айнымалысына сағат, m айнымалысына минут, s айнымалысына секунд

жазамыз.string типті Time айнымалысы бізге алғашқы үш айнымалыны формаға

шығару үшін жазамыз.if (h < 10) {     time += "0" + h; } else {     time += h; }  time += ":";  if (m < 10) {     time += "0" + m; } else {     time += m; }  time += ":";  if (s < 10) {     time += "0" + s; } else {     time += s; }

Алдымен біз шарт қоямыз. Егер h<10 болса, яғни сағат 0-ден 9-аралығында уақытты көрсетсе, time жолындағы h-тың алдына нөл саны жазылуы керек. Тек сағат 5 деп емес, сағат 05 деп шығуы керек. Басқа жағдайда (else) біз time жолындағы h айнымалысына нөлсіз уақытты экранға көрсетеміз.

Осыны минут пен секунд үшін де жазамыз, тек сағат пен минут арасына және минут пен секунд арасына қос нүкте қоюды ұмытпаймыз.

Не істегенімізді толығырақ түсіну үшін time жолағының жұмысы туралы білейік. Біз кезекпен оған сағатты (нөлмен немесе нөлсіз), минутты (ұқсас) және секундты (ұқсас) жазамыз. Олардың арасына қос нүкте қойдық. Сондықтан, алғашқы екі шарттан кейін бізде жолақтар болады:time += ":";

Сонымен, программа жұмысының басында бізде time жолағы бос (оң жағынан бос тырнақша қойып жоғарыда солай етіп жазған болатынбыз: string time = “”). Таймер іске қосылғаннан соң жолаққа алдымен 10-нан үлкен не кем есенін ескеріп, сағат жазылады, яғни жолақтағы бос аймақтың орнына егер қазір

Page 39: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

сағат 12 болса, «12» сынды. Содан соң, біз минутты жазамыз, мысалы «12:06», тағы да қос нүкте қойып, секундты жазамыз «12:06:34». Әр 1000 миллисекунд, яғни 1 секунд сайын қайта жаңарып жазылып отырады.

Енді біздің қолданушы уақытты әзірге көре алмайды. Сондықтан, біз жолақты Label арқылы формаға шығарамыз. Бізде бұл ең үлкен қаріпі бар Label2.label2.Text = time;

Біздің сағат дайын. Жобаны іске қосып, уақыттың зымырап өтіп бара жатқанын тамашалауға болады. Алайда, біз оған қоса датаны да шығарғымыз келеді. Ол да осыған ұқсас жасалады. Сондықтан төменде жазамыз:string data = "";int day = DateTime.Now.Day;int month = DateTime.Now.Month;int year = DateTime.Now.Year; if (day < 10){    data += "0" + day;}else{    data += day;}data += ".";if(month<10){    data += "0" + month;}else{    data += month;}data += ".";data += year;label1.Text = data;

Айырмашылығы тек нөлдерді айлар мен күндер алдына ғана қоямыз. Жылдан өзі төрт орынды санан тұрады. Қос нүкте орнына жай ғана нүкте қоямыз. Нәтижесінде мына түрге келеді: 16.02.2015.

Басқа Label-ға жоғарыдағы сияқты жазамыз.Нәтижесінде мынадай бағдарлама пайда болады:

Бағдарламаның толық листингі:using System;

Page 40: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; namespace chasy{    public partial class Form1 : Form    {        Timer timer = new Timer();         public Form1()        {            InitializeComponent();        }                 private void Form1_Load(object sender, EventArgs e)        {            timer.Interval = 1000;            timer.Tick += new EventHandler(timer1_Tick);            timer.Start();                 }          private void timer1_Tick(object sender, EventArgs e)        {                     int h = DateTime.Now.Hour;           int m = DateTime.Now.Minute;           int s = DateTime.Now.Second;            string time = "";            if (h < 10)           {               time += "0" + h;           }           else           {               time += h;           }            time += ":";            if (m < 10)           {               time += "0" + m;           }           else

Page 41: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

           {               time += m;           }            time += ":";            if (s < 10)           {               time += "0" + s;           }           else           {               time += s;           }           label2.Text = time;            string data = "";             int day = DateTime.Now.Day;            int month = DateTime.Now.Month;            int year = DateTime.Now.Year;             if (day < 10)            {                data += "0" + day;            }            else            {                data += day;            }            data += ".";            if(month<10)            {                data += "0" + month;            }            else            {                data += month;            }            data += ".";            data += year;            label1.Text = data;         }      }}

ПРАКТИКАЛЫҚ ЖҰМЫС №16

Page 42: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

ОЯТҚЫШ 

Дыбысы бар оятқыш бағдарламасын жасаймыз.1.         Алдымен келесідей форма жасаймыз:

2.         Формада бірінші болып Label компоненті тұр. Қасиеттері:

3.         Оның астында MaskedTextBox компоненті тұр. Оны қажетімізше баптау үшін компоненттің   белгісіне басып, «Установка маски» таңдаймыз.

MaskedTextBox-қа оятқыштың уақытын жазатын боламыз. Стандарт бойынша уақыт (сағат:минут:секунд) түрінде, қос нүктемен ажыратылып, жазылады.

4.         «Установка маски» таңдаған соң келесі түрдегі терезе ашылады. Бұл жерде Time жолын таңдаймыз. Ол қолданушы енгізген мәліметті бірден DateTime форматына ауыстырады және арасындағы қос нүктемен айналысудың қажеті туындамайды.

Page 43: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

5.         MaskedTextBox-тың қасиетін де өзгертеміз:

6.         MaskedTextBox-тың артында Label2 тығылып тұр:

Ол бізге MaskedTextBox-тан мәндерді өзіне қабылдап алу үшін керек. Соған негізделе отырып, біздің бір таймер, қашан іске қосылу керек екенін білетін болатын.

7.         Оның астында екі Button орналасқан. Біріншісі оятқышты іске қосады, ал екіншісі қоңырау болған соң оны өшіретін болады.

8.         Екі Timer орналастырамыз. Біріншісі уақытты көрсететін болады, ал екіншісі оятқыштың уақытында іске қосылуына жауап береді.

9.         Енді форманы ерекшелеп, тышқанның оң жағын басамыз. «Перейти к коду» таңдаймыз.

10.     Алдымен дыбыстар кітапханасын қосу үшін келесіні код басына жазамыз:using System.Media;

11.     Енді бірнеше айнымалыларды жариялаймыз:public partial class Form1 : Form    {        Timer timer01 = new Timer();        SoundPlayer sp = new SoundPlayer("F:\\1.wav");        bool b = false;

Page 44: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Алдымен бірінші таймерді жарияладық, содан соң қажетті мелодияны іске керек кезде қосатын айнымалыны жарияладық. Кейін, бізге қажетті мелодияны іске қосатын айнымалыны жаздық. (F:\\1.wav) мелодияның орналасқан жерін білдіреді.

Ескерту:System.Media кітапханасы тек WAV PCM кеңейтілімі бар файлдармен жұмыс

жасай алады.Оған қоса bool (true немесе false деген екі мәнді ғана қабылдайды) типті

айнымалыны жарияладық. Ол «Қосу» батырмасының жұмыс істеу принципін өзгерту үшін керек.

12.     Формаға қайт оралып, тышқанның сол жақ батырмасын екі рет шертеміз. Ол бізді форманың жүктелу тұсына апарады. Осы жерге жазылған код, форма жүктелген уақытта бірден орындалады:private void Form1_Load(object sender, EventArgs e)        {            button2.Enabled = false;            timer01.Interval = 1000;            timer01.Tick += new EventHandler(timer1_Tick);            timer01.Start();        }

Мұндағы,button2.Enabled = false жолы «Өшіру» батырмасы қызметін тоқтатады. Оны

қолданушы алдын-ала бұл батырмаға баспауы үшін жасадық. Кейін, оны қайта іске қосатын боламыз.

timer01.Interval ==1000 жолы арқылы біздің таймер әр 1000 миллисекунд сайын жаңарып отыратынын білдіреді.

Үшінші жолда таймер Tick оқиғасына жауап қататыны көрсетілген. Ол төменірек сипатталады.

13.     Енді таймерімізді іске қосайық. Форма жүктелген соң ол бірден ағымдағы уақытты көрсететін болады.

14.     Формамызға қайта оралып,   суретін екі рет шертеміз. Осы жерде timer1_Tick атауы бар код бөлігі пайда болды. Бұл жерге келесі кодты жазамыз:label1.Text = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");

Бұл ағымдағы уақытты шығаруы керек:

Page 45: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Мұнда біз алдымен сағатты, одан соң минутты, кейін секундты жаздық. Сағатқа жауап беретін кодтың түрі: DateTime.Now.Hour.ToString(“00″).

15.      «Қосу» батырмасымен айналысайық. Оны екі рет шертеміз. Пайда болған аймаққа келесі кодты жазамыз:if (b == false){label2.Text = maskedTextBox1.Text;timer2.Start();maskedTextBox1.Visible = false;button1.Text = "Оятқышты алып тастау";b = true;}

 16.     Жоғарыдағы кодқа келесіні тіркейміз:  else if(b==true)            {                label2.Text = "00:00";                timer2.Stop();                maskedTextBox1.Visible = true;                button1.Text = "Завести будильник";

Page 46: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

                b = false;            }17.     Енді Timer2-мен айналысу керек. Формаға қайта өтіп Timer2-ні екі рет

шертеміз, пайда болған аймаққа келесіні жазамыз:if (label1.Text == label2.Text + ":00")            {                button2.Enabled = true;                sp.Play();             }

18.     «Өшіру» батырмасын кодтау ғана қалды. Формаға барып, оны екі рет шертеміз де келесі кодты жазамыз:sp.Stop(); button2.Enabled = false; maskedTextBox1.Visible = true; button1.Text = "Завести будильник"; b = false;

Мұнда, батырмаға басқан соң мелодия тоқтайды, кейін «Өшіру» батырмасы қайтадан басуға рұқсат етілмеген күйге келеді.

19.     Оятқышымыз дайын. Іске қосып көрейік:

20.     Бағдарламаның толық листингі:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Media; namespace Будильник{    public partial class Form1 : Form    {        public Form1()

Page 47: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            InitializeComponent();        }        Timer timer01 = new Timer();        SoundPlayer sp = new SoundPlayer("C:\\Users\\IDEA_SEMEY\\Desktop\\3133.wav");        bool b = false;         private void Form1_Load(object sender, EventArgs e)        {            button2.Enabled = false;            timer01.Interval = 1000;            timer01.Tick += new EventHandler(timer1_Tick);            timer01.Start();         }         private void timer1_Tick(object sender, EventArgs e)        {            label1.Text = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");        }         private void button1_Click(object sender, EventArgs e)        {            if (b == false)            {                label2.Text = maskedTextBox1.Text;                timer2.Start();                maskedTextBox1.Visible = false;                button1.Text = "Оятқышты алып тастау";                b = true;            }            else if (b == true)            {                label2.Text = "00:00";                timer2.Stop();                maskedTextBox1.Visible = true;                button1.Text = "Қосу";                b = false;            }        }         private void timer2_Tick(object sender, EventArgs e)        {            if (label1.Text == label2.Text + ":00")            {                button2.Enabled = true;                sp.Play();            }        }         private void button2_Click(object sender, EventArgs e)

Page 48: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            sp.Stop();            button2.Enabled = false;            maskedTextBox1.Visible = true;            button1.Text = "Қосу";            b = false;        }    }}

ПРАКТИКАЛЫҚ ЖҰМЫС №17

ОЯТҚЫШ 

Дыбысы бар оятқыш бағдарламасын жасаймыз.1.         Алдымен келесідей форма жасаймыз:

2.         Формада бірінші болып Label компоненті тұр. Қасиеттері:

3.         Оның астында MaskedTextBox компоненті тұр. Оны қажетімізше баптау үшін компоненттің   белгісіне басып, «Установка маски» таңдаймыз.

MaskedTextBox-қа оятқыштың уақытын жазатын боламыз. Стандарт бойынша уақыт (сағат:минут:секунд) түрінде, қос нүктемен ажыратылып, жазылады.

Page 49: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

4.         «Установка маски» таңдаған соң келесі түрдегі терезе ашылады. Бұл жерде Time жолын таңдаймыз. Ол қолданушы енгізген мәліметті бірден DateTime форматына ауыстырады және арасындағы қос нүктемен айналысудың қажеті туындамайды.

5.         MaskedTextBox-тың қасиетін де өзгертеміз:

6.         MaskedTextBox-тың артында Label2 тығылып тұр:

Ол бізге MaskedTextBox-тан мәндерді өзіне қабылдап алу үшін керек. Соған негізделе отырып, біздің бір таймер, қашан іске қосылу керек екенін білетін болатын.

7.         Оның астында екі Button орналасқан. Біріншісі оятқышты іске қосады, ал екіншісі қоңырау болған соң оны өшіретін болады.

8.         Екі Timer орналастырамыз. Біріншісі уақытты көрсететін болады, ал екіншісі оятқыштың уақытында іске қосылуына жауап береді.

9.         Енді форманы ерекшелеп, тышқанның оң жағын басамыз. «Перейти к коду» таңдаймыз.

10.     Алдымен дыбыстар кітапханасын қосу үшін келесіні код басына жазамыз:using System.Media;

11.     Енді бірнеше айнымалыларды жариялаймыз:public partial class Form1 : Form    {        Timer timer01 = new Timer();

Page 50: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        SoundPlayer sp = new SoundPlayer("F:\\1.wav");        bool b = false;

Алдымен бірінші таймерді жарияладық, содан соң қажетті мелодияны іске керек кезде қосатын айнымалыны жарияладық. Кейін, бізге қажетті мелодияны іске қосатын айнымалыны жаздық. (F:\\1.wav) мелодияның орналасқан жерін білдіреді.

Ескерту:System.Media кітапханасы тек WAV PCM кеңейтілімі бар файлдармен жұмыс

жасай алады.Оған қоса bool (true немесе false деген екі мәнді ғана қабылдайды) типті

айнымалыны жарияладық. Ол «Қосу» батырмасының жұмыс істеу принципін өзгерту үшін керек.

12.     Формаға қайт оралып, тышқанның сол жақ батырмасын екі рет шертеміз. Ол бізді форманың жүктелу тұсына апарады. Осы жерге жазылған код, форма жүктелген уақытта бірден орындалады:private void Form1_Load(object sender, EventArgs e)        {            button2.Enabled = false;            timer01.Interval = 1000;            timer01.Tick += new EventHandler(timer1_Tick);            timer01.Start();        }

Мұндағы,button2.Enabled = false жолы «Өшіру» батырмасы қызметін тоқтатады. Оны

қолданушы алдын-ала бұл батырмаға баспауы үшін жасадық. Кейін, оны қайта іске қосатын боламыз.

timer01.Interval ==1000 жолы арқылы біздің таймер әр 1000 миллисекунд сайын жаңарып отыратынын білдіреді.

Үшінші жолда таймер Tick оқиғасына жауап қататыны көрсетілген. Ол төменірек сипатталады.

13.     Енді таймерімізді іске қосайық. Форма жүктелген соң ол бірден ағымдағы уақытты көрсететін болады.

14.     Формамызға қайта оралып,   суретін екі рет шертеміз. Осы жерде timer1_Tick атауы бар код бөлігі пайда болды. Бұл жерге келесі кодты жазамыз:label1.Text = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");

Бұл ағымдағы уақытты шығаруы керек:

Page 51: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Мұнда біз алдымен сағатты, одан соң минутты, кейін секундты жаздық. Сағатқа жауап беретін кодтың түрі: DateTime.Now.Hour.ToString(“00″).

15.      «Қосу» батырмасымен айналысайық. Оны екі рет шертеміз. Пайда болған аймаққа келесі кодты жазамыз:if (b == false){label2.Text = maskedTextBox1.Text;timer2.Start();maskedTextBox1.Visible = false;button1.Text = "Оятқышты алып тастау";b = true;}

 16.     Жоғарыдағы кодқа келесіні тіркейміз:  else if(b==true)            {                label2.Text = "00:00";                timer2.Stop();                maskedTextBox1.Visible = true;                button1.Text = "Завести будильник";

Page 52: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

                b = false;            }17.     Енді Timer2-мен айналысу керек. Формаға қайта өтіп Timer2-ні екі рет

шертеміз, пайда болған аймаққа келесіні жазамыз:if (label1.Text == label2.Text + ":00")            {                button2.Enabled = true;                sp.Play();             }

18.     «Өшіру» батырмасын кодтау ғана қалды. Формаға барып, оны екі рет шертеміз де келесі кодты жазамыз:sp.Stop(); button2.Enabled = false; maskedTextBox1.Visible = true; button1.Text = "Завести будильник"; b = false;

Мұнда, батырмаға басқан соң мелодия тоқтайды, кейін «Өшіру» батырмасы қайтадан басуға рұқсат етілмеген күйге келеді.

19.     Оятқышымыз дайын. Іске қосып көрейік:

20.     Бағдарламаның толық листингі:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Media; namespace Будильник{    public partial class Form1 : Form    {        public Form1()

Page 53: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            InitializeComponent();        }        Timer timer01 = new Timer();        SoundPlayer sp = new SoundPlayer("C:\\Users\\IDEA_SEMEY\\Desktop\\3133.wav");        bool b = false;         private void Form1_Load(object sender, EventArgs e)        {            button2.Enabled = false;            timer01.Interval = 1000;            timer01.Tick += new EventHandler(timer1_Tick);            timer01.Start();         }         private void timer1_Tick(object sender, EventArgs e)        {            label1.Text = DateTime.Now.Hour.ToString("00") + ":" + DateTime.Now.Minute.ToString("00") + ":" + DateTime.Now.Second.ToString("00");        }         private void button1_Click(object sender, EventArgs e)        {            if (b == false)            {                label2.Text = maskedTextBox1.Text;                timer2.Start();                maskedTextBox1.Visible = false;                button1.Text = "Оятқышты алып тастау";                b = true;            }            else if (b == true)            {                label2.Text = "00:00";                timer2.Stop();                maskedTextBox1.Visible = true;                button1.Text = "Қосу";                b = false;            }        }         private void timer2_Tick(object sender, EventArgs e)        {            if (label1.Text == label2.Text + ":00")            {                button2.Enabled = true;                sp.Play();            }        }         private void button2_Click(object sender, EventArgs e)

Page 54: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            sp.Stop();            button2.Enabled = false;            maskedTextBox1.Visible = true;            button1.Text = "Қосу";            b = false;        }    }}

ПРАКТИКАЛЫҚ ЖҰМЫС №18

ПРОЦЕНТТІК СТАВКАНЫ ЕСЕПТЕЙТІН БАҒДАРЛАМА 

Проценттік ставка көлемін есептейтін бағдарлама құрастырамыз, яғни қажетті салымның белгілі бір уақыттан кейін қаншалықты өсетінін есептеп шығаратын бағдарлама.

1.         Форма құрастырамыз. 5 Label, 3 NumericUpDown, ComboBox және Button компоненттері қолданылған:

2.         Бірінші NumericUpDown компонентін  қасиеттер панелінің «Разработка» қалташасындағы атауын  numstartcount деп көрсетеміз:

Сонымен қоса келесі қасиеттерін өзгертеміз:

Page 55: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Мұндағы,Value бастапқыда енгізілетін санды көрсетеді.DecimalPlaces үтірден кейінгі цифр санын көрсетеді.Increment үстіге не астыға басқандағы NumericUpDown мәні қаншалықты

өзгеретінін көрсетеді.Maximum беріліп отырған элементтің өзіне қамти алатын мәнінің

максималдылығын көрсетеді.Minimum беріліп отырған элементтің өзіне қамти алатын мәнінің

минималдылығын көрсетеді.ThousandsSeparator True мәнінде мың деген көрсеткішпен бөліндіні береді.3.         Екінші NumericUpDown компонентін  қасиеттер панелінің «Разработка»

қалташасындағы атауын  numpercent деп көрсетеміз. Оның қасиетінде тек DecimalPlaces мәнін 2 деп өзгертеміз.

4.         Келесі NumericUpDown-ның атауы numyears. Бұл жерде қолданушы неше жылға салым салатынын көрсетеді.

5.         Одан соң ComboBox компоненті тұр. «Разработке» деген жерде оған comboprocessатауын береміз. Қолданушы бұл компонент арқылы есептеуді күні бойынша, айы, тоқсан, жарты жыл не жылдық деп көрсететін болады.

6.         Ол үшін ComboBox компонентінің   батырмасын басамыз. 

7.         Терезе ашылып, «Изменить элементы» батырмасын басамыз. Төмендегі терезе ашылып, әр жолға элементтерімізді жазамыз.

Page 56: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

8.         Оның астында соңғы NumericUpDown орналасқан. Оның «Разработка»-дағы атауы total. Ол жерге қолданушыға қажетті есептеулердің нәтижесі шығарылатын болады.

9.         Қасиеттер панелі арқылы келесі өзгерістерді жасаймыз. Алдымен біз қолданушыға әдемі болып көрінуі үшін мәтін қаріпін өзгерттік:

Кейін, бізге белгілі DecimalPlaces, Maximum және ThousandsSeparator қасиеттерін өзгертеміз:

10.  «Есептеу» батырмасы ғана қалды. Оның «Разработка»-дағы атауы calc.11.  Форманы ерекшелеп, тышқанның оң жақ батырмасын басып, «Перейти к коду»

таңдаймыз.12.  public Form1() функциясын тауып, оның ішіне (InitializeComponent() жолының

астына) келесі жолды жазамыз:

Page 57: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

total.Controls[0].Visible = false;13.  Формаға оралып, ондағы Button-ды екі рет шертеміз. Ол жерге келесіні теріп

жазамыз:double startcount = Convert.ToDouble(numstartcount.Value);double rate = Convert.ToDouble(numpercent.Value);int years = Convert.ToInt32(numyears.Value);

14.  Оның астына тіркейміз:rate = rate / 100;int periods = 0;

15.  Енді, ең қиыны – бізге проценттік ставкаларды есептеп шығаратын формуланы шығару керек. Формуламыздың түрі:

p=c(1+r/n)^ntМұндағы,p – қолданушы алатын қорытынды сомма,с – қолданушы салатын бастапқы сомма,r/n – ақшаның түсу күніне бөлінген проценттік ставкаn*t – ақша түсетін күндер санының жылдар санына көбейтіндісі

16.  ComboBox компоненті үшін шартты операторларды қолданамыз.17.  Бірінші, қолданушы «Күніне» деп таңдаса келесі кодты жазамыз:

  if (comboprocess.SelectedIndex==0)            {                double dayRate = rate / 365;                periods = years * 365;                startcount = startcount * Math.Pow((1 + dayRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }

18.  «Айына» үшін:else if (comboprocess.SelectedIndex == 1)            {                double monthRate = rate / 12;                periods = years * 12;                startcount = startcount * Math.Pow((1 + monthRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }

19.  «Тоқсанына» үшін:else if (comboprocess.SelectedIndex == 2)            {                double quarterRate = rate / 4;                periods = years * 4;                startcount = startcount * Math.Pow((1 + quarterRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }

20.  «Жарты жыл бойынша» үшін:else if (comboprocess.SelectedIndex == 3)            {                double halfyearRate = rate / 2;                periods = years * 2;                startcount = startcount * Math.Pow((1 + halfyearRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }

21.  «Жылына» үшін:else if (comboprocess.SelectedIndex == 4)

Page 58: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

            {                double yearRate = rate;                periods = years;                startcount = startcount * Math.Pow((1 + yearRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }

22.  Енді біз ComboBox-тың өзі үшін келесіні жазамыз:else            {                comboprocess.Text = "Процесс таңдалмады";            }

23.  Осымен бағдарламамыз дайын. Нәтижесі

24.  Бағдарламаның толық листингі:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; namespace percentCalc{      public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            total.Controls[0].Visible = false;        }         

Page 59: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        private void button1_Click(object sender, EventArgs e)        {            double startcount = Convert.ToDouble(numstartcount.Value);            double rate = Convert.ToDouble(numpercent.Value);            int years = Convert.ToInt32(numyears.Value);             rate = rate / 100;            int periods = 0;              if (comboprocess.SelectedIndex==0)            {                double dayRate = rate / 365;                periods = years * 365;                startcount = startcount * Math.Pow((1 + dayRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));             }            else if (comboprocess.SelectedIndex == 1)            {                double monthRate = rate / 12;                periods = years * 12;                startcount = startcount * Math.Pow((1 + monthRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }            else if (comboprocess.SelectedIndex == 2)            {                double quarterRate = rate / 4;                periods = years * 4;                startcount = startcount * Math.Pow((1 + quarterRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }            else if (comboprocess.SelectedIndex == 3)            {                double halfyearRate = rate / 2;                periods = years * 2;                startcount = startcount * Math.Pow((1 + halfyearRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }            else if (comboprocess.SelectedIndex == 4)            {                double yearRate = rate;                periods = years;                startcount = startcount * Math.Pow((1 + yearRate), periods);                total.Text = Convert.ToString(Math.Round(startcount, 2));            }            else            {                comboprocess.Text = "Процесс таңдалмады";            }                   }

Page 60: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

            }}

ПРАКТИКАЛЫҚ ЖҰМЫС №19

ЭКРАННЫҢ СКРИНШОТЫН ЖАСАУ 

Бүгін біз экранның скриншотын жасайтын бағдарлама құрастырамыз. Ол үшін бізге екі форма қажет болады. Алғашқы формаға екі Button батырмасын орналастырамыз:

            Содан кейін, екінші форманы жасаймыз. Ол үшін «Обозреватель решений» терезесінде орналасқан жобамызды тышқанның оң жақ батырмасымен басып, «Добавить» - «Создать элемент» деп басамыз.

Пайда болған терезеде «Форма Windows Forms» пунктін таңдап, оған «ScreenShot» деген атау береміз. Соңында «Добавить» батырмасын басамыз.

Page 61: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Екінші формада да «Сақтау» және «Жабу» деген екі батырма орнатамыз. Сонымен қоса, PictureBox компонентін суреттегідей қоямыз:

Екінші форма көлемі жағынан үлкен болуы керек, себебі соның көмегімен скриншот жасайтын боламыз.

Бірінші формаданың кодында, бірден public partial class Form1 : Form жолынан кейін келесі кодты жазамыз:public static Bitmap BM = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);

«Скриншот жасау» батырмасын екі рет шертіп, келесіні жазамыз:private void button1_Click(object sender, EventArgs e){Graphics GH = Graphics.FromImage(BM as Image);GH.CopyFromScreen(0, 0, 0, 0, BM.Size);

 ScreenShot SI = new ScreenShot();

 SI.ShowDialog();}

«Шығу» батырмасы үшін келесі команданы жазамыз:Application.Exit();

Енді, екінші формаға өтеміз. Форманы Инициализациялау коды бар аймаққа жазамыз:public ScreenShot(){

Page 62: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

InitializeComponent();pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;pictureBox1.Image = Form1.BM;}

«Жабу» батырмасы үшін жазылатын код «Шығу» батырмасына ұқсас болады:private void button2_Click(object sender, EventArgs e){this.Close();}

«Сақтау» батырмасы үшін:private void button1_Click(object sender, EventArgs e){SaveFileDialog SFD = new SaveFileDialog();SFD.Filter = "PNG|*.png|JPEG|*.jpg|GIF|*.gif|BMP|*.bmp";if (SFD.ShowDialog() == DialogResult.OK){Form1.BM.Save(SFD.FileName);}}

Бағдарлама нәтижесі:

Бағдарламаның толық листингі:1.         Форма 1 үшін:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;

Page 63: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

 namespace screenshot{    public partial class Form1 : Form    {        public static Bitmap BM = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);        public Form1()        {            InitializeComponent();        }         private void button1_Click(object sender, EventArgs e)        {            Graphics GH = Graphics.FromImage(BM as Image);            GH.CopyFromScreen(0, 0, 0, 0, BM.Size);             ScreenShot SI = new ScreenShot();             SI.ShowDialog();        }         private void button2_Click(object sender, EventArgs e)        {            Application.Exit();        }    }}

2.         Форма 2 үшін:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; namespace screenshot{    public partial class ScreenShot : Form    {        public ScreenShot()        {            InitializeComponent();             pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;            pictureBox1.Image = Form1.BM;        }         private void button2_Click(object sender, EventArgs e)

Page 64: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            this.Close();        }         private void button1_Click(object sender, EventArgs e)        {            SaveFileDialog SFD = new SaveFileDialog();            SFD.Filter = "PNG|*.png|JPEG|*.jpg|GIF|*.gif|BMP|*.bmp";            if (SFD.ShowDialog() == DialogResult.OK)            {                Form1.BM.Save(SFD.FileName);            }        }    }}

ПРАКТИКАЛЫҚ ЖҰМЫС №20

СҰРЫПТАУ 

Бүгін біз сұрыптауға тоқталамыз.Алгорим сипаттамасы:Сұрыптаудың негізгі идеясы массивтегі көршілес элементтерді жұптап салыстыру

болып табылады. Бағдарлама орындалған соң кішісінен үлкен элементке қарай сұрыптау жүргізілетін болады.

Мысалы:Бізде келесі массив бар: 7 2 9 4 1 0Алғашқы итерация. Массивтің нөлінші элементін (мұнда 7) көршілес тұрған

элементпен салыстырамыз:7<>2 9 4 1 07 саны 2-ден үлкен болғандықтан олардың орнын ауыстырамыз. Келесі массив

шығады:2 7 9 4 1 0Содан соң, 7 мен 9-ды салыстырамыз.2 7<>9 4 1 09 саны 7-ден үлкен болғандықтан өз орнында қалады. Енді, 9 санын көршілес

элементтерімен салыстаратын боламыз. Орындары келесідей ауысады:2 7 9<>4 1 02 7 4 9<>1 02 7 4 1 9<>02 7 4 1 0 99-дан үлкен сан болмағандықтан, алғашқы итерацияны аяқтаймыз. Енді біз мәні 9-

дан кіші, бірақ басқаларынан үлкен санды табамыз. 9-ға тиісудің қажеті болмайды, себебі ол онсыз да ең үлкен элемент. Сондықтан, итерация қадамдары 1-ге кемитін болады (n-1).

Екінші итерация. Біз қайтадан массивтің нөлінші элементін (2) алып, көршілес элементпен салыстырамыз.

2<>7 4 1 0 92 саны 7-ден кем, бірақ олар орындарымен ауыспайды. Келесі қадамда 7 санын

көршілес элементпен салыстыру болады.2 7<>4 1 0 9Келесі:

Page 65: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

2 4 7<>1 0 9Келесі:2 4 1 7<>0 9Тамаша, біз екінші элементті таптық, ол массивте соңынан санағанда екінші орын

алады. Екінші итерация аяқталды. Итерация қадамын 1-ге кішірейтеміз. Өйткені, 7-мен салыстырудың қажеттілігі жоқ.

Екінші итерациядан кейінгі біздің массивтің күйі:2 4 1 0 7 9Үшінші итерация. Барлығын осылай қайталаймыз. Нөлінші элементтен бастап,

қалған сандардың ішінен үлкенін іздейміз.2<>4 1 0 7 92 4<>1 0 7 92 1 4<>0 7 9Қорытындысы:2 1 0 4 7 9Үшінші итерация аяқталды. Төртіншіні бастаймыз.2<>1 0 4 7 91 2<>0 4 7 91 0 2 4 7 9Соңғы итерация қалды. Екі санды ғана салыстырамыз:1<>0 2 4 7 9Сұрыптау аяқталды. Біздің реттелген массивіміз келесі түрге келді:0 1 2 4 7 9Бағдарлама коды:Бағдарламаны консольда жасаймыз. Алдымен сұрыптау функциясын құрамыз

(main функциясының алдына):static int[] BubbleSort(int[] mas)        {            int temp;            for (int i = 0; i < mas.Length; i++)            {                for (int j = i + 1; j < mas.Length; j++)                {                    if (mas[i] > mas[j])                    {                        temp = mas[i];                        mas[i] = mas[j];                        mas[j] = temp;                    }                                  }                       }            return mas;        }

Біз BubbleSort функциясын пайдаланамыз. Оған сұрыптау үшін сандармен толтырылған mas массиві беріледі. Бұл жерде біз алдыңғы элемент (i) пен келсіні (j) салыстырамыз. Беріліп отырған функция сұрыпталған mas массивін қайтарады (return mas).

Енді негізгі main функциясын талдайық:static void Main(string[] args)        {            Console.WriteLine("Неше санды сұрыптаймыз?");            int N = Convert.ToInt32(Console.ReadLine());

Page 66: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

            Console.WriteLine("Сұрыптау үшін сандарды енгізіңіз:");            int[] mas=new int[N];            for (int i = 0; i < mas.Length; i++)            {                mas[i] = Convert.ToInt32(Console.ReadLine());            }            BubbleSort(mas);            Console.WriteLine("сұрыптаудан соң:");            for (int i = 0; i < mas.Length; i++)            {                Console.WriteLine(mas[i]);            }            Console.ReadLine();        }Нәтижесі:

Бағдарламаның толық листингі:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace ConsoleApplication1{    class Program    {        static int[] BubbleSort(int[] mas)        {            int temp;            for (int i = 0; i < mas.Length; i++)            {                for (int j = i + 1; j < mas.Length; j++)                {                    if (mas[i] > mas[j])                    {                        temp = mas[i];

Page 67: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

                        mas[i] = mas[j];                        mas[j] = temp;                    }                }            }            return mas;        }          static void Main(string[] args)        {            Console.WriteLine("Неше санды сурыптаймыз?");            int N = Convert.ToInt32(Console.ReadLine());            Console.WriteLine("Сурыптау ушин сандарды енгизиниз:");            int[] mas = new int[N];            for (int i = 0; i < mas.Length; i++)            {                mas[i] = Convert.ToInt32(Console.ReadLine());            }            BubbleSort(mas);            Console.WriteLine("Сурыптаудан сон:");            for (int i = 0; i < mas.Length; i++)            {                Console.WriteLine(mas[i]);            }            Console.ReadLine();        }    }}

ПРАКТИКАЛЫҚ ЖҰМЫС №21

ТАҢДАУ ӘДІСІ БОЙЫНША СҰРЫПТАУ 

Алгоритм сипаттамасы:Массивтің алғашқы қадамында минималды мәні бар элемент тұрады, кейін ол

массивтің нөлінші позициясында тұрған элементпен орын ауыстырады (егер минималды элемент онсыз да, нөлінші позицияда тұратын болса, орын ауыстыру сәйкесінше болмайды). Содан соң, сұрыптау үрдісінен таңдалып алынады. Келесі итерацияда қалған элементтердің ішіндегі минималды элемент алынады. Ол бірінші позициядағы элементпен орын ауыстырады. Содан кейін минималды болып отырған үшінші элемент ізделінеді, үшінші позициядағы элеменетпен орын ауыстырады. Солай жалғаса береді. Барлық итерациялардан соң минималды мәннен максималды мәнге дейін сұрыпталған массив пайда болады.

Мысалы:Бізде келесі массив бар: 3 9 1 4 0Бірінші итерация. Массивтің минималды элементін іздейміз. Ол үшін бірінші

позициядағы санды алып, шартты түрде оны минималды деп, өзгелермен салыстырамыз. Егер ағымдағы саннан кіші сан табылатын болса, ол минималды деп танылып, кейін осы әдіспен басқаларымен салыстырылады. Соңында, барлық массивті өткен соң, ең минималды мәні бар санды табамыз.

Page 68: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Содан кейін, біз табылған минималды мәнді массивтің нөлінші позициясындағы элементпен орнын ауыстырып, осы «нөлінші» позицияны сұрыптау үрдісінен шығарамыз.

Ағымдағы минималды элемент қалыңдатылған қаріппен белгіленетін болады.3 9 1 4 0Беріліп отырған минималды элемент 9-бен салыстырылады. Ол 9-дан кіші.

Сондықтан, келесі элементпен салыстырылады. 1 саны 3-тен кіші, сәйкесінше 1 бұл біздің қазіргі минималды элементіміз.

3 9 1 4 0Салыстыруды жалғастырамыз. 1 кіші 4-тен, бірақ 0 кіші 1-ден, енді ол минималды

болып есептеледі.3 9 1 4 0Біз массивті қарап шығып, оның ең кіші элементін таптық.Енді осы элементті нөлінші позициядағы элементтің орнымен ауыстырамыз да

ештеңемен салыстырмайтын боламыз (ол мәнсіз және артық уақытты алады). Итерация қадамыз 1-ге азайтып отырамыз.

0 9 1 4 3Екінші итерация. Реттелмеген сандардың ішінен бірінші элементті минималды деп

қабылдап, басқаларымен салыстрамыз.0 9 1 4 3Бірлік 9-дан кіші, енді ол минималды.0 9 1 4 3Бірлік 4 пен, 3 пен салыстырылады, бірақ оладың бәрі үлкен. Сәйкесінше, бұл

біздің келесі минималды элемент болады.Біз оны массивтің бірінші позициясындағы элементпен орнын ауыстырамыз және

итерация қадамының санын тағы да 1-ге қысқартамыз.0 1 9 4 3Үшінші итерация. Осы жолмен келесі минималды санды іздейміз.0 1 9 4 3Төрт тоғыздан кіші.0 1 9 4 3Үш төрттен кіші. Біз массивтің барлығын қарап шықтық, олай болса 3 минималды

мән болып табылады. Оның орын массивтің екінші позициясындағы элементпен ауыстырамыз.

0 1 3 4 9Төртінші итерация. Қалған сандарды салыстырамыз. Ағымдағы минималды 4 саны

9-дан кіші. Олай болса, ол орнында қалады. Одан кейін массивтегі 9 саны ғана қалғандықтан, ол массивтің максималды элементі болады. Сұрыптау аяқталды.

Таңдау әдісінің нәтижесінде келесі массив қалады:0 1 3 4 9

 Бағдарлама коды:static int[] ViborSort(int[] mas)        {                       for (int i = 0; i < mas.Length - 1; i++)            {                //минималды санды іздеу                int min=i;                for (int j = i + 1; j < mas.Length; j++)                {                    if (mas[j] < mas[min])                    {

Page 69: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

                        min = j;                    }                }                //элементтерді ауыстыру                int temp = mas[min];                mas[min] = mas[i];                mas[i] = temp;            }            return mas;        }Енді біз main функциясында не болатынын қарастырайық:static void Main(string[] args)        {            Console.WriteLine("Сұрыптау үшін неше сан керек екенін жазыңыз:");            int N = Convert.ToInt32(Console.ReadLine());            Console.WriteLine("Сұрыптау үшін сандар енгізіңіз:");            int[] mas = new int[N];            for (int i = 0; i < mas.Length; i++)            {                mas[i] = Convert.ToInt32(Console.ReadLine());            }            ViborSort(mas);            Console.WriteLine("Сұрыпталған массив:");            for (int i = 0; i < mas.Length; i++)            {                Console.WriteLine( mas[i]);            }            Console.ReadLine();        }Нәтижесі:

ПРАКТИКАЛЫҚ ЖҰМЫС №22

КАЛЬКУЛЯТОР 

Page 70: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

Өткен сабақтарда біз қарапайым калькулятор жасаған болатынбыз. Енді, күрделірек түрін жасаймыз.

Мұнда 19 Button, 1 TextBox және 1 бос Label қолданылған. Осы түрдегі форма жасаймыз. TextBox-тың енін MultiLine-ды қолдана отырып  үлкейттік.

1.      TextBox пен Label-дің қасиеттерінде қаріп көлемін 12 пт деп өзгертеміз.

2.      «0» батырмасын екі рет шертіп, келесі кодты жазамыз:private void button17_Click(object sender, EventArgs e){textBox1.Text = textBox1.Text + 0;}

3.      Бұл қадамды барлық батырмалар үшін қайталап шығамыз (әр батырманы екі рет шертіп, пайда болған аймаққа сәйкесін тауып жазамыз):

private void button13_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 1;        }         private void button14_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 2;        }         private void button15_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 3;        }         private void button9_Click(object sender, EventArgs e)

Page 71: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

        {            textBox1.Text = textBox1.Text + 4;        }         private void button10_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 5;        }         private void button11_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 6;        }         private void button5_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 7;        }         private void button6_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 8;        }         private void button7_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + 9;        }

4.      «.» батырмасы үшін:private void button18_Click(object sender, EventArgs e)        {            textBox1.Text = textBox1.Text + ",";        }

5.      Енді стандартты математикалық амалдарды орындау үшін келесі айнымалыларды код басында жариялаймыз:

float a, b;int count;bool znak = true;

6.      «+» батырмасы үшін:private void button4_Click(object sender, EventArgs e)        {            a = float.Parse(textBox1.Text);            textBox1.Clear();            count = 1;            label1.Text = a.ToString() + "+";            znak = true;        }

7.      Жоғарыда көрсетілген сияқты «-», «*» және «/» батырмалары үшін келесі кодты жазамыз:

        private void button8_Click(object sender, EventArgs e)        {            a = float.Parse(textBox1.Text);

Page 72: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

            textBox1.Clear();            count = 2;            label1.Text = a.ToString() + "-";            znak = true;        }         private void button12_Click(object sender, EventArgs e)        {            a = float.Parse(textBox1.Text);            textBox1.Clear();            count = 3;            label1.Text = a.ToString() + "*";            znak = true;        }         private void button16_Click(object sender, EventArgs e)        {            a = float.Parse(textBox1.Text);            textBox1.Clear();            count = 4;            label1.Text = a.ToString() + "/";            znak = true;        }

8.      «=» батырмасы үшін:private void button19_Click(object sender, EventArgs e)        {            calculate();            label1.Text = "";        }

9.      Енді, calculate функциясын қолданамыз:private void calculate()        {            switch(count)            {                case 1:                    b = a + float.Parse(textBox1.Text);                    textBox1.Text = b.ToString();                    break;                case 2:                    b = a - float.Parse(textBox1.Text);                    textBox1.Text = b.ToString();                    break;                case 3:                    b = a * float.Parse(textBox1.Text);                    textBox1.Text = b.ToString();                    break;                case 4:                    b = a / float.Parse(textBox1.Text);                    textBox1.Text = b.ToString();                    break;                 default:

Page 73: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері

                    break;            }         }

10.  «С» батырмасы үшін:private void button3_Click(object sender, EventArgs e)        {            textBox1.Text = "";            label1.Text = "";        }

11.  «<–» батырмасы үшін:private void button2_Click(object sender, EventArgs e)        {            int lenght = textBox1.Text.Length - 1;            string text = textBox1.Text;            textBox1.Clear();            for (int i = 0; i < lenght; i++)            {                textBox1.Text = textBox1.Text + text[i];            }        }

12.  «+/-» батырмасы үшін:private void button1_Click(object sender, EventArgs e)        {            if(znak==true)            {                textBox1.Text = "-" + textBox1.Text;                znak = false;            }            else if (znak==false)            {                textBox1.Text=textBox1.Text.Replace("-", "");                znak = true;            }

13.  Бағдарлама нәтижесі:

Page 74: edu.semgu.kz · Web viewҚазақстан Республикасы білім және ғылым министрлігі. Программалау тілдері негіздері