Правоъгълник е зададен с координатите на два от своите срещуположни ъгъла (x1, y1) – (x2, y2). Да се пресметнат площта и периметъра му.
Входът се чете от конзолата. Числата x1, y1, x2 и y2 са дадени по едно на ред.
Изходът се извежда на конзолата и трябва да съдържа два реда с по една число на всеки от тях – лицето и периметъра.
Задача: Конзолен конвертор - от градуси °C към градуси °F
Напишете програма, която чете градуси по скалата на Целзий (°C) и ги преобразува до градуси по скалата на Фаренхайт (°F).
Потърсете в Интернет подходяща формула, с която да извършите изчисленията. Закръглете резултата до 2 символа след десетичния знак.
Ето няколко примера:
Примерен вход и изход
Вход
Изход
25
77
0
32
-5.5
22.1
32.3
90.14
Задача: Конзолен конвертор - от радиани в градуси.
Напишете програма, която чете ъгъл в радиани (rad) и го преобразува в градуси) (deg). Потърсете в Интернет подходяща формула. Числото π в C# програмите е достъпно чрез Math.PI. Закръглете резултата до най-близкото цяло число използвайки метода Math.Round(…).
Примерен вход и изход
Вход
Изход
3.1416
180
6.2832
360
0.7854
45
0.5236
30
Задача: Конзолен конвертор - USD към BGN
Напишете програма за конвертиране на щатски долари (USD) в български лева (BGN). Закръглете резултата до 2 цифри след десетичния знак. Използвайте фиксиран курс между долар и лев: 1 USD = 1.79549 BGN.
Примерен вход и изход
Вход
Изход
20
35.91 BGN
100
179.55 BGN
12.5
22.44 BGN
Задача: * Конзолен междувалутен конвертор.
Напишете програма за конвертиране на парична сума от една валута в друга. Трябва да се поддържат следните валути: BGN, USD, EUR, GBP. Използвайте следните фиксирани валутни курсове:
Курс
USD
EUR
GBP
1 BGN
1.79549
1.95583
2.53405
Входът e сума за конвертиране, входна валута и изходна валута.
Изходът е едно число – преобразуваната сума по посочените по-горе курсове, закръглен до 2 цифри след десетичната точка.
Примерен вход и изход
Вход
Изход
20
USD
BGN
35.91 BGN
100
BGN
EUR
51.13 EUR
12.35
EUR
GBP
9.53 GBP
150.35
USD
EUR
138.02 EUR
Графични приложения с числови изрази За да упражним работата с променливи и пресмятания с оператори и числови изрази, ще направим нещо интересно: ще разработим настолно приложение с графичен потребителски интерфейс. В него ще използваме пресмятания с дробни числа.
Графично приложение: конвертор от BGN към EUR От нас се изисква да създадем графично приложение (GUI application), което пресмята стойността в евро (EUR) на парична сума, зададена в лева (BGN). При промяна на стойността в лева, равностойността в евро трябва да се преизчислява автоматично (използваме курс лева / евро: 1.95583).
Тази задача излиза извън изучавания в книгата материал и има за цел не да ви научи как да програмирате GUI приложения, а да ви запали интереса към разработката на софтуер. Да се залавяме за работа.
Добавяме към текущото Visual Studio решение (solution) още един проект. Този път създаваме Windows Forms приложение със C# с име "BGN-to-EUR-Converter":
Подреждаме следните UI контроли във формата:
NumericUpDown с име numericUpDownAmount – ще въвежда сумата за конвертиране
Label с име labelResult – ще показва резултата след конвертиране
Още два Labelкомпонента, служещи единствено за статично изобразяване на текст
Графичният редактор за потребителски интерфейс може да изглежда по подобен начин:
Задаваме следните настройки на формата и на отделните контроли:
Настройка
Снимка
FormConverter:
Text = "BGN to EUR",
Font.Size = 12,
MaximizeBox = False,
MinimizeBox = False,
FormBorderStyle = FixedSingle
numericUpDownAmount:
Value = 1,
Minimum = 0,
Maximum = 10000000,
TextAlign = Right,
DecimalPlaces = 2
Дефинираме следните обработчици на събития по контролите:
След това хващаме следните събития:
FormConverter.Load (като кликнем върху формата 2 пъти с мишката)
numericUpDownAmount.ValueChanged (като кликнем върху NumericUpDown контролата 2 пъти)
numericUpDownAmount.KeyUp (избираме Events от таблото Properties и кликнем 2 пъти върху KeyUp)
Събитието Form.Load се изпълнява при стартиране на програмата, преди да се появи прозореца на приложението. Събитието NumericUpDown.ValueChanged се изпълнява при промяна на стойността в полето за въвеждане на число. Събитието NumericUpDown.KeyUp се изпълнява след натискане на клавиш в полето за въвеждане на число. При всяко от тези събития ще преизчисляваме резултата.
За хващане на събитие ползваме иконката със събитията (Events) в Properties прозореца във Visual Studio:
Ще използваме следния C# код за обработка на събитията:
private void FormConverter_Load(object sender, EventArgs e)
{
ConvertCurrency();
}
{
ConvertCurrency();
}
Всички прихванати събития извикват метода ConvertCurrency(), който конвертира зададената сума от лева в евро и показва резултата в зелената кутийка.
Трябва да напишем кода (програмната логика) за конвертиране от лева към евро:
Графично приложение: *** Хвани бутона!
Създайте забавно графично приложение „хвани бутона“: една форма съдържа един бутон. При преместване на курсора на мишката върху бутона той се премества на случайна позиция. Така се създава усещане, че „бутонът бяга от мишката и е трудно да се хване“. При „хващане“ на бутона се извежда съобщение-поздрав.
Упътване: напишете обработчик за събитието Button.MouseEnter и премествайте бутона на случайна позиция. Използвайте генератор за случайни числа Random. Позицията на бутона се задава от свойството Location. За да бъде новата позиция на бутона в рамките на формата, можете да направите изчисления спрямо размера на формата, който е достъпен от свойството ClientSize.
Можете да ползвате следния примерен код:
private void buttonCatchMe_MouseEnter(object sender, EventArgs e)
{
Random rand = new Random();
var maxWidth = this.ClientSize.Width - buttonCatchMe.ClientSize.Width;
var maxHeight = this.ClientSize.Height - buttonCatchMe.ClientSize.Height;
this.buttonCatchMe.Location = new Point(
rand.Next(maxWidth), rand.Next(maxHeight));
}