Чрез които нашата програма може да има различно действие, в зависимост от дадено условие


Упътване Както обикновено, първо трябва да добавим нов C# конзолен проект



страница5/5
Дата28.04.2023
Размер0.78 Mb.
#117481
ТипПрограма
1   2   3   4   5
Глава 3.1. Прости проверки
Свързани:
Телекомуникации - all lectures, Programirane UPR1, Programirane BIT 1, Programirane BIT0, Spravochnik 2021 22, Глава 2.1. Прости пресмятания с числа, tema 1, tema 2
Упътване
Както обикновено, първо трябва да добавим нов C# конзолен проект в съществуващия solution. За кода на програмата ни е необходима единична if-else конструкция. Може да си помогнете частично с кода от картинката, който е умишлено замъглен, за да помислите как да го допишете сами:

След като сме готови с имплементацията на решението, стартираме програмата с [Ctrl+F5] и я тестваме:

Задача: Изписване на число до 9 с думи.
Да се напише програма, която въвежда цяло число в диапазона [0 … 9] и го изписва с думи на английски език. Ако числото е извън диапазона, изписва “number too big”.

Примерен вход и изход:

Вход

Изход

5

five

1

one

9

nine

10

number too big

Упътване
Може да използваме поредица if-else конструкции, с които да разгледаме възможните 11 случая.

Задача: Познай паролата.
Да се напише програма, която въвежда парола (един ред с произволен текст) и проверява дали въведеното съвпада с фразата “s3cr3t!P@ssw0rd”. При съответствие да се изведе “Welcome”, а при несъответствие да се изведе “Wrong password!”.

Примерен вход и изход

Вход

Изход

qwerty

Wrong password!

s3cr3t!P@ssw0rd

Welcome

s3cr3t!p@ss

Wrong password!

Упътване:
Използвайте if-else конструкцията.


Задача: Число от 100 до 200.
Да се напише програма, която въвежда цяло число и проверява дали е под 100между 100 и 200 или над 200. Да се отпечатат съответно съобщения, като в примерите по-долу.

Примерен вход и изход:

Вход

Изход

95

Less than 100

120

Between 100 and 200

210

Greater than 200


Задача: Еднакви думи.
Да се напише програма, която въвежда две думи и проверява дали са еднакви. Да не се прави разлика между главни и малки букви. Да се изведе “yes” или “no”.

Примерен вход и изход:

Вход

Изход

Hello
Hello

yes

SoftUni
softuni

yes

Soft
Uni

no

beer
vodka

no

HeLlO
hELLo

yes

Упътване:
Преди сравняване на думите, ги обърнете в долен регистър, за да не оказва влияние размера на буквите (главни/малки): word = word.ToLower().

Задача: Информация за скоростта.
Да се напише програма, която въвежда скорост (десетично число) и отпечатва информация за скоростта. При скорост до 10 (включително), отпечатайте “slow”. При скорост над 10 и до 50, отпечатайте “average”. При скорост над 50 и до 150, отпечатайте “fast”. При скорост над 150 и до 1000, отпечатайте “ultra fast”. При по-висока скорост, отпечатайте “extremely fast”.

Примерен вход и изход:

Вход

Изход

8

slow

49.5

average

126

fast

160

ultra fast

3500

extremely fast


Задача: Лица на фигури.
Да се напише програма, която въвежда размерите на геометрична фигура и пресмята лицето й. Фигурите са четири вида: квадрат (square), правоъгълник (rectangle), кръг (circle) и триъгълник (triangle).
На първия ред на входа се чете вида на фигурата (square, rectangle, circle, triangle).

  • Ако фигурата е квадрат, на следващия ред се чете едно число – дължина на страната му.

  • Ако фигурата е правоъгълник, на следващите два реда се четат две числа – дължините на страните му.

  • Ако фигурата е кръг, на следващия ред се чете едно число – радиусa на кръга.

  • Ако фигурата е триъгълник, на следващите два реда се четат две числа – дължината на страната му и дължината на височината към нея.

Резултатът да се закръгли до 3 цифри след десетичния знак.

Примерен вход и изход:

Вход

Изход

square
5

25

rectangle
7
2.5

17.5

circle
6

113.097

triangle
4.5
20

45


Задача: Време + 15 минути.
Да се напише програма, която въвежда час и минути от 24-часово денонощие и изчислява колко ще е часът след 15 минути. Резултатът да се отпечата във формат hh:mm. Часовете винаги са между 0 и 23, а минутите винаги са между 0 и 59. Часовете се изписват с една или две цифри. Минутите се изписват винаги с по две цифри и с водеща нула, когато е необходимо.

Примерен вход и изход:

Вход

Изход

1
46

2:01

0
01

0:16

23
59

0:14

11
08

11:23

12
49

13:04

Упътване:
Добавете 15 минути и направете няколко проверки. Ако минутите надвишат 59, увеличете часовете с 1 и намалете минутите с 60. По аналогичен начин разгледайте случая, когато часовете надвишат 23. При печатането на минутите, проверете за водеща нула.


Задача: Еднакви 3 числа.
Да се напише програма, в която се въвеждат 3 числа и се отпечатва дали те са
еднакви (yes / no).


Примерен вход и изход:

Вход

Изход

5
5
5

yes

5
4
5

no

1
2
3

no


Задача: * Изписване на число от 0 до 100 с думи.
Да се напише програма, която превръща число в диапазона [0 … 100] в текст.


Примерен вход и изход:

Вход

Изход

25

twenty five

42

forty two

6

six

Упътване:
Проверете първо за едноцифрени числа и ако числото е едноцифрено, отпечатайте съответната дума за него. След това проверете за двуцифрени числа. Тях отпечатвайте на две части: лява част (десетици = числото / 10) и дясна част (единици = числото % 10). Ако числото има 3 цифри, трябва да е 100 и може да се разгледа като специален случай.

Графично (desktop) приложение
След като направихме няколко упражнения върху условни конструкции (проверки), сега нека направим нещо по-интересно: приложение с графичен потребителски интерфейс за конвертиране на валути. Ще използваме знанията от тази глава, за да избираме измежду няколко налични валути и съответно да извършваме пресмятания по различен курс спрямо избраната валута.
Задача: конвертор за валути
Нека разгледаме как да създадем графично (GUI) приложение за конвертиране на валути. Приложението ще изглежда приблизително като на картинката по-долу:

Този път създаваме нов Windows Forms Application с име “Currency-Converter”:

Нареждаме следните контроли във формата:

  • Една кутийка за въвеждане на число (NumericUpDown);

  • Един падащ списък с валути (ComboBox);

  • Текстов блок за резултата (Label);

  • Няколко надписа (Label);

Нагласяме размерите и свойствата им, за да изглеждат долу-горе като на картинката:

Задаваме следните настройки на контролите:

  • За главната форма (Form), която съдържа всички контроли:

    • (name) = FormConverter

    • Text = "Currency Converter"

    • Font.Size = 12

    • MaximizeBox = False

    • MinimizeBox = False

    • FormBorderStyle = FixedSingle

  • За полето за въвеждане на число (NumericUpDown):

    • (name) = numericUpDownAmount

    • Value = 1

    • Minimum = 0

    • Maximum = 1000000

    • TextAlign = Right

    • DecimalPlaces = 2

  • За падащия списък с валутите (ComboBox):

    • (name) = comboBoxCurrency

    • DropDownStyle = DropDownList

    • Items =

      • EUR

      • USD

      • GBP

  • За текстовия блок за резултата (Label):

    • (name) = labelResult

    • AutoSize = False

    • BackColor = PaleGreen

    • TextAlign = MiddleCenter

    • Font.Size = 14

    • Font.Bold = True

Трябва да хванем следните събития, за да напишем C# кода, който ще се изпълни при настъпването им:

  • Събитието ValueChanged на контролата за въвеждане на число numericUpDownAmount:



  • Събитието Load на формата FormConverter

  • Събитието SelectedIndexChanged на падащия списък за избор на валута comboBoxCurrency

Ще използваме следния C# код за обработка на събитията:

private void FormConverter_Load(object sender, EventArgs e)


{
this.comboBoxCurrency.SelectedItem = "EUR";
}

private void numericUpDownAmount_ValueChanged(object sender, EventArgs e)


{
ConvertCurrency();
}

private void comboBoxCurrency_SelectedIndexChanged(object sender, EventArgs e)


{
ConvertCurrency();
}
Задачата на горния код е да избере при стартиране на програмата валута “EUR” и при промяна на стойностите в полето за сума или при смяна на валутата, да изчисли резултата, извиквайки ConvertCurrency() метода.
Следва да напишем действието ConvertCurrency() за конвертиране на въведената сума от лева в избраната валута:
private void ConvertCurrency()
{
var originalAmount = this.numericUpDownAmount.Value;
var convertedAmount = originalAmount;
if (this.comboBoxCurrency.SelectedItem.ToString() == "EUR")
{
convertedAmount = originalAmount / 1.95583m;
}
else if (this.comboBoxCurrency.SelectedItem.ToString() == "USD")
{
convertedAmount = originalAmount / 1.80810m;
}
else if (this.comboBoxCurrency.SelectedItem.ToString() == "GBP")
{
convertedAmount = originalAmount / 2.54990m;
}
this.labelResult.Text = originalAmount + " лв. = " +
Math.Round(convertedAmount, 2) + " " + this.comboBoxCurrency.SelectedItem;
}

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


numericUpDownAmount и избраната
валута за резултата от полето comboBoxCurrency.
След това с условна конструкция, според избраната валута, сумата се дели на валутния курс (който е фиксиран твърдо в сорс кода).
Накрая се генерира текстово съобщение с резултата (закръглен до 2 цифри след десетичния знак) и се записва в зелената кутийка labelResult

Сподели с приятели:
1   2   3   4   5




©obuch.info 2024
отнасят до администрацията

    Начална страница