8 клас

Урок №6 – Интегрирана среда за програмиране Visual Studio

Тест за самопроверка на знанията: https://forms.gle/E6PatX9WySCMBVnr8

Инструкции за инсталиране на Visual Studio IDE

За да инсталирате VS 2022 (или по-нова) трябва да посетите този адрес: https://visualstudio.microsoft.com/vs/

Избирате опцията за изтегляне на Community 2022 (безплатна е за ползване). И на компютъра ви започва да се изтегля инсталаторът на продукта.

Стартирате изтегления инсталатор и минавате през обичайните прозорци за информиране и съгласяване.

Натискате бутона Continue.

После следва прозорецът за изтегляне.

Визуализира се и прозорец с възможности за инсталиране на различни компоненти на средата. Препоръчвам ви да поставите отметки на [Universal Windows Platform development], [.NET desktop development] и [ASP.NET and web development], след което натискате бутона [Install]. Това е достатъчно, за да можете да пишете програми на C# за начинаещи програмисти.

При инсталирането се теглят и инсталират елементи, така че се въоръжете с добра интернет-връзка и доста търпение.

Урок №7 – Структура на програма

Тест за самопроверка на знанията: https://forms.gle/iTqBirthGqTRWXXG8

Задачи с графичен потребителски интерфейс

Създай приложение с име Hello, в което от потребителя се въвежда име и след натискане на бутон се извежда поздрав, както е показано на фиг. 1.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмния фрагмент към бутона „Поздрав“:

  • button1

 

Създай приложение с име Поздрав, в което от потребителя се въвежда име и възраст, а след натискане на бутон се извежда поздрав, както е показано на фиг. 1.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnResult

  • btnExit

  •  

Създай приложение, съдържащо три командни бутона и една текстова кутия, както е показано на фиг. 1.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

При щракване върху бутон “Покажи” се визуализира надпис “Hello World!”, а при щракване върху бутон “Скрий” надписът се скрива. В даден момент от изпълнение на задачата трябва да бъде достъпен само единият от тези два бутона, тъй като те изпълняват противоположни действия.

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnShow

  • btnHide

  • btnExit

Създай приложение, в което се въвежда страната на един квадрат (цяло положително число) и се извежда периметърът му. С помощта на команден бутон „Пресметни“ да се извърши пресмятането и получения резултат да се визуализира в текстова кутия. С помощта на бутона „Изчисти“ да се изчиства въведената информация и получения вече резултат. От бутона „Изход“, приложението трябва да се затваря. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnResult

  • btnClear

  • btnExit

Време е за тестване!

Създай приложение, в което се въвежда страната и височина на един произволен триъгълник и се извежда лицето му. С помощта на команден бутон „Пресметни“ да се извърши пресмятането и получения резултат да се визуализира в текстова кутия. С помощта на бутона „Изчисти“ да се изчиства въведената информация и получения вече резултат. От бутона „Изход“, приложението трябва да се затваря. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnResult

  • btnClear

  • btnExit

Време е за тестване!

Създай приложение, в което се въвеждат стойности на три целочислени променливи. С помощта на команден бутон „Пресметни“ да се извърши пресмятането на аритметичния израз „(++a) – b / c / a + b % c„, а полученият резултат да се визуализира в текстова кутия. С помощта на бутона „Изчисти“ да се изчиства въведената информация и получения вече резултат. От бутона „Изход“, приложението трябва да се затваря. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnResult

  • btnClear

  • btnExit

Време е за тестване!

Предизвикателство: Опитай да смениш аритметичния израз който се изчислява в приложението.

Създай приложение за пресмятане на xn. При въвеждане на стойности за x и n в текстови полета. С помощта на команден бутон „Пресметни“ да се извърши пресмятането и получения резултат да се визуализира в текстова кутия (фиг. 1). С помощта на бутона „Изчисти“ да се изчиства въведената информация за x, n и получения вече резултат. От бутона „Изход“, приложението трябва да се затваря.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

Време е за тестване!

Създай приложение за пресмятане на квадратен корен на дадено число. При въвеждане на дадено число в текстово поле, с помощта на команден бутон да се пресмята квадратния корен на числото и полученият резултат да се визуализира в текстова кутия. Да се ограничи въвеждането на всички други символи от клавиатурата, различни от цифрите от 0 до 9 и десетичната запетая. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:

  • btnResult

  • btnClear

  • btn.Exit

Допълнение: При въвеждане на данни от клавиатурата в режим на изпълнение често се налага да се извършва контрол на въведената информация.  Ето защо ще добавим ограничение: в текстовото поле да се въвеждат от клавиатурата само неотрицателни числа, за да се пресмята квадратният корен на число.

Маркирай компонента textBox1. От панела Properties – Events – Key, кликни два пъти с мишката върху KeyPress

В текстовия редактор се записва следният код:

По този начин, при стартиране на приложението  потребителят няма да има възможност да въведе стойност различна от изброените. 

Предизвикателство: Опитай да зададеш изброените в задачата ограничения чрез if-else конструкция!

Време е за тестване!

Време е за тестване!

Създай приложение „Calculator„, което да събира, изважда, умножава, дели целочислено и дели с остатък  две цели числа.

Пояснение: Числата ще бъдат въвеждани от потребителя в текстови кутии textBox1 и textBox2. Изборът на операция ще става с натискане на един от бутоните – button1, надписан с „+“, button2, надписан с „„, button3 с надпис „*“, button4 с надпис „/“ и button5 с надпис „%“. Програмата трябва да изведе в етикета label1 сбора, разликата, произведението, частното и остатъка от делението на числата, според натиснатия бутон. С бутона button6, надписан с „Изчисти“, потребителят ще изчиства съдържанието на двете кутии и етикета, когато поиска. Приложението трябва да съдържа и бутон „Изход“ за затваряне на формата. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.

Време е за код! За да може в програмата да не използвам различни променливи във всеки от методите, ще прибягна към глобалните променливи:

Така декларираните променливи са достъпни от всеки метод в кода на приложението.

Продължавам с кода на сумиращия бутон:

 

Предизвикателство: Допиши кода на оставащите бутони от приложението. Оптимизирай решението, така, че да може да работи и с числа от реален тип.

Време е за тестване!

Време е за тестване!

 

Създай приложение „QuadraticEquation„, което при въведени коефициенти a, b и c на квадратно уравнение, изчислява и извежда неговите реални корени.

На Фиг. 1 е показан един възможен изглед на прозореца на програмата.

За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:

Да помислим по алгоритъма!

За изчисляване на корените на квадратно уравнение първо се намира стойността на дискриминантата (D) по следната формула:

Време е за код! 

 

 

 

Предизвикателство: Допиши кода на оставащите бутони от приложението. Оптимизирай решението, така, че да може да работи и с числа от реален тип.

Време е за тестване!

 

 

 

Конзолни приложения

Създай конзолно приложение с име Hello, в което от потребителя се въвежда име и след изпълнение се извежда поздрав, както е показано на фиг. 1

Да започваме!

Първо създай нов C# конзолен проект с име „Hello„.

Създайте променливата name от тип string и запази в нея името, прочетено от конзолата:

Време е да отпечаташ резултата на конзолата като използваш следния шаблон:

Как работи примера? Методът Console.WriteLine ни позволява в кръглите скоби да записваме поредица от символи – {0}, {1}, {2}…, които дефинират място за текстова стойност в крайния текст, който ще бъде принтиран на конзолата. В примера тази стойност ще бъде стойността на променливата name, която сме подали със запетайка след края на текста за принтиране.

Задачата може да бъде решена и с метода на конкатенация (долепяне) на string стойности и метода Console.WriteLine:

Създай конзолно приложение с име Concatenate, което прочита от конзолата име, фамилия, възраст и град и отпечатва съобщение от следния вид: „Ти си <firstName> <lastName>, на <age>-години от <town>.“, както е показано на фиг. 1

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „Concatenate“, като избереш с десен бутон върху проекта Add -> New Project…

Време е за код!

Въведи входните данни и ги запиши в променливи с подходящи имена и тип на данните. Изведи на конзолата форматирания изход.

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение с име Area, което прочита от конзолата цяло число ‘a’ и пресмята лицето на квадрат със страна ‘a’, както е показано на фиг. 1

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „Area“, като избереш с десен бутон върху проекта Add -> New Project…

Време е за код!

Инициализирай променлива side и в нея запиши стойността въведена от конзолата:

Инициализирай втора променлива area, в която да запишеш стойността за лицето на правоъгълника, получена по формулата side * side. Принтирай получения резултат. При решението на задачата се спирам на uint за тип на данните, тъй като е беззнаков, а както знаем от математиката – няма геометрична фигура с отрицателна стойност за страна.

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение с име Triangle_Area, в което се въвежда страната и височина на един произволен триъгълник и се извежда лицето му, както е показано на фиг. 1

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „Triangle_Area“, като избереш с десен бутон върху проекта Add -> New Project…

Време е за код!

Инициализирай променливи a и h, като в тях запиши стойността въведена от конзолата. След това помисли по коя формула се изчислява лице на произволен триъгълник и опитай да допишеш липсващата част от кода.

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение с име Trapezoid_Area, в което се въвеждат двете основи и височина на един трапец и се извежда лицето му, както е показано на фиг. 1. Резултатът трябва да бъде закръглен до два знака след десетичната запетая.

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „Trapezoid_Area“, като избереш с десен бутон върху проекта Add -> New Project…

Време е за код!

Инициализирай променливи a, b и h, като в тях запиши стойностите въведени от конзолата. След това помисли по коя формула се изчислява лице на трапец и опитай да допишеш липсващата част от кода.

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение с име Inch, което преобразува произволно числото прочетено от конзолата от инчове в сантиметри, както е показано на фиг. 1

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „Inch“, като избереш с десен бутон върху проекта Add -> New Project…

Упътване: За решението на задачата използвай зависимостта, че 1 инч = 2.54 сантиметра.

Време е за код!

Oпитай да допишеш липсващата част от кода и да завършиш задачата.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като направиш обратното преобразуване – от сантиметри в инчове.

Създай конзолно приложение с име TemperatureConverter, което преобразува температурата от градуси по Фаренхайт в градуси по Целзий, както е показано на фиг. 1. Резултатът трябва да бъде закръглен до два знак след десетичната запетая.

Да започваме!

Добави към текущото Visual Studio решение още един конзолен проект с име „TemperatureConverter, като избереш с десен бутон върху проекта Add -> New Project…

Упътване: За решението на задачата използвай формулата: °C = (°F – 32) / 1,8.

Време е за код!

За решението на задачата се спирам на double за тип на данните, тъй като е по-обхватен, а и очакваният резултат е реално число. Обърни внимания, че при отпечатването на резултата използвам метода Math.Round, за да закръгля полученото при изчислението число.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като направиш обратното преобразуване – от градуси по Целзий в градуси по Фаренхайт.

Създай конзолно приложение с име „MaxNumber“, което извежда по-голямото от две цели числа, както е показано на фиг. 1. 

 

Да започваме!

Създай конзолен проект с име „MaxNumber“.

Упътване: За решението на задачата изпълни следните стъпки:

  1. Прочети две цели числа от конзолата.
  2. Сравни, дали първото число e по-голямо от второто.
  3. Отпечатай по-голямото число.

Време е за код!

Вариант №1: За решението на задачата ще използвам кратка форма на условен оператор. Изначално приемам, че първото въведено число е по-голямо.

Сега е време да стартираш приложението и да провериш резултата!

Вариант №2: За решението на задачата ще използвам пълна форма на условен оператор. Сега вече не ми е необходима допълнителна променлива.

Обърни внимание, че не използвам съставен оператор. Това е така защото имам само по едно действие отнасящо се към if и else операторите.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като направиш сравнение на три цели числа. Ще ти помогна малко, като ти покажа част от моето решение.

При условната проверка използвам съставен булев израз, за да проверя дали първото въведено число е едновременно по-голямо от второто и третото число. Ако това е така значи имам победител в класацията за максимално число. Ако условието не е изпълнено, обаче преминавам към алтернативата и нова условна проверка. Опитай да допишеш липсващата част от булевия израз.

Създай конзолно приложение с име „EvenNumber“, което чете цяло число въведено от потребителя и отпечатва на конзолата, дали е четно или нечетно, както е показано на фиг. 1. 

Да помислим по алгоритъма!

Ако едно цяло число е кратно на числото 2 (при деление на 2 се получава друго цяло число без остатък), числото е четно. Всички останали цели числа са нечетни.

Упътване: За решението на задачата изпълни следните стъпки:

  1. Прочети едно цяло число от конзолата.
  2. Провери, дали числото е четно, като използваш целочислено деление с остатък на 2 и отпечатай подходящо съобщение.
  3. В противен случай отпечатай съобщение, че числото е нечетно.

Време е за код!

За решението на задачата ще използвам пълна форма на условен оператор. 

Обърни внимание, че използвам съставен оператор. Това обаче не е задължително защото имам само по едно действие отнасящо се към if и else операторите. Само ти демонстрирам и този вариант при използването на условни конструкции в кода. 

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение, което пресмята и извежда на екрана сумата и произведението на три положителни цели числа въведени от клавиатурата. Ако числата не са положителни на екрана да се извежда подходящо съобщение за грешка, както е показано на фиг. 1. 

Изпълнение на програмата при въведени 3 положителни числа:

Упътване: За решението на задачата изпълни следните стъпки:

  1. Прочети три цели числа от конзолата.
  2. Инициализирай две променливи sum (за търсената сума) и product (за търсеното произведение).
  3. Провери, дали сред въведените числа има отрицателни и отпечатай подходящо съобщение.
  4. В противен случай отпечатай търсената сума и произведение.

Време е за код!

За решението на задачата ще използвам пълна форма на условен оператор. 

Обърни внимание, че използвам съставно булево условие с което проверявам дали някое от въведените числа е по-малко от 0. Правилната логическа операция е дизюнкция.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като обърнеш логиката на изпълнение. Ако булевият израз е изпълнен на екрана да се отпечатат сумата и произведението на числата. В противен случай да се изведе подходящо съобщение към потребителя.

Създай конзолно приложение, което пресмята и отпечатва на екран сумата на числата в интервала от 1 до 10 включително, както е показано на фиг. 1. 

Да помислим по алгоритъма!

Имаме повтарящи се действия – това е ключово при избор на подходящ оператор за решаването на задачата. При решението ще използвам цикличен оператор.

Време е за код!

Вариант 1: За решението на задачата ще използвам цикъл while

В началото започвам с целочислена променлива на която присвоявам началото на интервала. Следва инициализация на променливата за търсената сума – целочислена е и има начална стойност нула (това го запомни добре – нулата няма да ти обърка сметките при сумиране). Цикълът ще продължи изпълнението си, докато стойността на num е по-малка или равна на 10. А в тялото на цикъла имам две действия, което налага да ги оградя в блок оператор. Отпечатването на резултата е извън тялото на цикъла, тъй като ще искам да видя крайно пресметнатата сума.

Сега е време да стартираш приложението и да провериш резултата!

Вариант 2: За решението на задачата ще използвам цикъл dowhile

Обърни внимание, че кодът е почти аналогичен на предходния вариант, който ти показах. В повечето случаи цикличните конструкции са взаимнозаменяеми при решаването на задачи. 

Сега е време да стартираш приложението и да провериш резултата!

Вариант 3: За решението на задачата ще използвам цикъл for

Кодът на задачата е по-кратък и оптимален. Сега не ми необходима променливата num защото итераторът i ми върши същата работа. Тъй като в тялото на цикъла имам само едно действие, то не ми е необходим и блок оператор.

Сега е време да стартираш приложението и да провериш резултата!

Създай конзолно приложение, което пресмята и отпечатва на екран сумата на числата в интервала от 1 до N, както е показано на фиг. 1. 

Да помислим по алгоритъма!

Имаме повтарящи се действия – това е ключово при избор на подходящ оператор за решаването на задачата. При решението ще използвам цикличен оператор.

Време е за код!

За решението на задачата ще използвам цикъл while

Кодът на задачата има малка разлика с този показан в предходната задача. Сега дясната граница на интервала се определя от потребителя и се държи от променливата n. В булевото условие числото 10 е заменено от n. Има и още една съществена разлика – по условие интервалът ни е от 1 до N. Ето защо в булевото условие използвам операторът „<„.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като използваш цикъл do-while или цикъл for.

 

Създай конзолно приложение, което, при въведени две цели числа N и M, пресмята и отпечатва произведението на всички цели числа в интервала  [N;M], както е показано на фиг. 1. 

Да помислим по алгоритъма!

Имаме повтарящи се действия – това е ключово при избор на подходящ оператор за решаването на задачата. При решението ще използвам цикличен оператор.

Време е за код!

За решението на задачата ще използвам цикъл do-while

Освен променливите n и m имам и променлива за пресмятане на произведението на числата в посочения интервал. Избрах тип long за нея, за да може приложението ми да пресмята и по-големи числа при тестване.

Решението на тази задача може да се направи с всяка от познатите ти циклични конструкции.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като използваш цикъл while или цикъл for.

Създай конзолно приложение, което при въведено цяло число n от клавиатурата, пресмята неговия факториел, както е показано на фиг. 1. 

Да помислим по алгоритъма!

Факториел е функция, дефинирана за всички цели неотрицателни числа n, равна на произведението на всички естествени числа, по-малки или равни на n.

За пресмятането на факториел се използва следната формула: n! = (n-1)! * n

Пример:

Нека n = 5, тогава неговият факториел ще пресметна така: 5! = 5*4*3*2*1 = 120

Време е за код!

За решението на задачата ще използвам цикъл for.

Имам една променлива за пресмятане на произведението (факториела) на числата. Има начална стойност 1. Ето защо променливата i започва със стойност 2. При първата итерация на цикъла ще имам точно 1*2, което означава, че извършвам пресмятанията в обратен на показания във формулата ред. Това съвсем не е грешно – ти можеш да опиташ и с твое примерно решение на задачата. Обърни внимание на типа на данните за всяка от променливите! Тъй като ще обработвам само цели неотрицателни числа използвам uint и ulong

Решението на тази задача може да се направи с всяка от познатите ти циклични конструкции.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като използваш цикъл while или цикъл do-while.

Създай конзолно приложение, което при въведено цяло положително число n по-голямо от 1, пресмята и отпечатва сумата от неговите цифри, както е показано на фиг. 1. 

Да помислим по алгоритъма!

Имаме повтарящи се действия – това е ключово при избор на подходящ оператор за решаването на задачата. При решението ще използвам цикличен оператор. Две са аритметичните операции, които ще ни трябват –  целочислено деление на 10 и остатък от целочислено деление – пак на 10.

Време е за код!

За решението на задачата ще използвам цикъл while

Докато въведеното число е различно от 0, ще се изпълняват действията в тялото на цикъла. Към текущата стойност на променливата sum добавям цифрата на единиците от въведеното число. След това актуализирам стойността на n, като премахвам вече обработената цифра. Тези действия се повтарят докато има цифри за сумиране.

Решението на тази задача може да се направи с всяка от познатите ти циклични конструкции.

Сега е време да стартираш приложението и да провериш резултата!

Предизвикателство: Опитай да решиш задачата като използваш цикъл do-while или цикъл for.

  1. Въведение в програмирането със C#, Светлин Наков, Веселин Колев & Колектив, SoftUni, София, 2015
  2. Основи на програмирането със C#, Светлин Наков & Колектив, SoftUni, София, 2017

  3. Принципи на програмирането със C#, Светлин Наков, Веселин Колев & Колектив, SoftUni, София, 2018
  4. Практическо ръководство по програмиране на C#, Христо Крушков, Коала Прес, Пловдив, 2020
  5. C# основи на езика в примери, Алексей Василев, изд. Асеневци, 2018
  6. C# разширени възможности на езика в примери, Алексей Василев, изд. Асеневци, 2019
  7. C# 24 часово обучение – Второ издание, Род Стивънс, изд. Алекс Софт
  8. Информатика 8. клас, Краси Манев, Нели Манева, Велислава Христова, изд. Изкуства, София, 2017
  9. Информатика 8. клас, Галина Момчева, Тодорка Глушкова, Росица Маринова, издателска къща Анубис, изд. Булвест 2000, София, 2017
  10. Информатика 8. клас, Светлана Бойчева, Николина Николова, Елиза Стефанова, Антон Денев, изд. Просвета – София, 2017

Leave Your Comment Here