Задачи с графичен потребителски интерфейс
Създай приложение, съдържащо три командни бутона и една текстова кутия, както е показано на фиг. 1.
За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:
При щракване върху бутон “Покажи” се визуализира надпис “Hello World!”, а при щракване върху бутон “Скрий” надписът се скрива. В даден момент от изпълнение на задачата трябва да бъде достъпен само единият от тези два бутона, тъй като те изпълняват противоположни действия.
Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:
- btnShow
- btnHide
- btnExit
Създай приложение за пресмятане на xn. При въвеждане на стойности за x и n в текстови полета. С помощта на команден бутон „Пресметни“ да се извърши пресмятането и получения резултат да се визуализира в текстова кутия. С помощта на бутона „Изчисти“ да се изчиства въведената информация за x, n и получения вече резултат. От бутона „Изход“, приложението трябва да се затваря. На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:
Време е за код! Най-важната част от всяко приложение е кодът. Ето и програмните фрагменти към всеки от бутоните:
Време е за тестване!
Създай приложение за пресмятане на квадратен корен на дадено число. При въвеждане на дадено число в текстово поле, с помощта на команден бутон да се пресмята квадратния корен на числото и полученият резултат да се визуализира в текстова кутия. Да се ограничи въвеждането на всички други символи от клавиатурата, различни от цифрите от 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 е показан един възможен изглед на прозореца на програмата.
Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.
Време е за код! За да може в програмата да не използвам различни променливи във всеки от методите, ще прибягна към глобалните променливи:
Така декларираните променливи са достъпни от всеки метод в кода на приложението.
Продължавам с кода на сумиращия бутон:
Предизвикателство: Допиши кода на оставащите бутони от приложението. Оптимизирай решението, така, че да може да работи и с числа от реален тип.
Време е за тестване!
Време е за тестване!
Създай приложение „FractionCalculator„, което да събира, изважда, умножава, и дели две обикновени дроби. След избора на операция, програмата
трябва да извежда резултата от нея, като обикновена дроб.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:
Да помислим по алгоритъма!
Нашето приложение
Сега ще ти припомня правилата при различните действия с обикновени дроби.
Събиране на дроби с еднакъв знаменател:
Събиране на дроби с различен знаменател:
Изваждане на дроби с еднакъв знаменател:
Изваждане на дроби с различен знаменател:
Умножение на обикновени дроби:
Деление на обикновени дроби:
Време е за код!
Кодът който ще представя е в доста опростен вариант и може да бъде оптимизиран. Помисли над това след като приключиш със задачата!
Започвам с декларация на глобалните променливи. Така декларирани променливите са видими от всички методи в кода.
Променливите a и b са съответно числител и знаменател на първата дроб, а променливите c и d са числител и знаменател на втората дроб. Последните две променливи са за пресмятане на резултата.
Преминавам към кода за бутон btnAdd:
Първо прочитам въведените от потребителя числа, като ги конвертирам в цяло число.
Сега е време за няколко условни проверки:
Ако някои от знаменателите е равен на нула на екрана ще се изведе подходящо съобщение към потребителя с помощта на MessageBox. В противен случай кодът продължава изпълнението на алтернативата else, а в нея следва още една условна проверка. Ако въведените знаменатели b и d са равни изчислявам числителя, а знаменателя директно присвоявам на променливата denominator. Ако условието, обаче не е изпълнено програмата преминава към алтернативата, където числителят и знаменателят се изчисляват по правилото което показах малко по-горе.
Недостатък на този алгоритъм е, че приложението няма функционалност за съкращаване на числителя и знаменателя, когато това е възможно. Помисли как може да оптимизираш кода!
Ще ти подскажа малко – трябват ти два вложени for цикъла.
Кодът на бутона за действието изваждане е напълно аналогичен, затова преминавам към btnMultiply.
Тук нещата са много по-лесни. Само една условна проверка и няколко изчисления.
Време е за тестване!
Предизвикателство: Допиши кода на бутоните, които не показах в решението.
Създай приложение „Season„, което при въведен месец от годината – число в интервала от 1 до 12, извежда на екрана информация за годишния сезон. При натискане на бутона „Проверка“ изображението в pictureBox1 трябва да се сменя според годишния сезон.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:
За задачата ще ти трябват предварително изтеглени изображения, които да съхраниш в папката на проекта („Име на проект“ – bin – Debug). При създаването на pictureBox1 импортирах картинката която да се визуализира при стартиране на формата.
Да помислим по алгоритъма!
Има 4 основни сезона в една година: пролет, лято, есен и зима. Към всеки сезон се отнасят по три месеца. За решението на задачата ще се спра на switch-case оператора, тъй като ще имам серия от проверки.
Време е за код!
В началото инициализирам целочислена променлива month, за която ще правя проверките. В следващите редове добавям 4 стрингови променливи, като на всяка присвоявам името на съответното изображение.
Продължаваме към switch-case оператора:
Ако стойността на month е равна на някоя от тези стойности – 12, 1 или 2, извеждам съобщението: „Зима е!“, променям изображението в pictureBox1 и спирам по-нататъшното изпълнение на кода с оператора break. Тези действия се повтарят и за останалите сезони.
Предизвикателство: Допиши липсващите части от кода, както и на оставащите бутони от приложението. Опитай да добавиш default конструкция при която ако потребителят е въвел грешна стойност за месец, да се извежда подходящо съобщение за грешка.
Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Време е за тестване!
Създай приложение „Division„, което при въведено цяло число N, отпечатва числата, делящи се без остатък на 7 в интервала от 1 до N, тяхната сума и произведение.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата в режим на тестване.
Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.
Време е за код!
- btnResult
Огледай хубаво кода!
Предизвикателство: Допиши кода на оставащите бутони от приложението. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение! Из
Време е за тестване!
Какъв е проблемът с получения резултат? Опитай да оптимизираш кода!
Създай приложение „GCD„, което при въведени две цели числа a и b намира най-големия общ делител на двете числа.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.
Да помислим по алгоритъма!
Най-голям общ делител на две естествени числа a и b, поне едното от които е различно от нула, е най-голямото число, което дели едновременно и a и b без остатък.
За решението на задачата, аз ще използвам алгоритъм на Евклид, като приложа многократно деление. Делението се повтарят, докато получим остатък 0. Делителят, при който частното няма остатък, е най-голям общ делител.
Пример:
Нека a = 75 и b = 45. По-голямото число е a! Минавам към сметките.
75/45 = 1 – остатък 30
45/30 = 1 – остатък 15
30/15 = 2 – остатък 0
НОД (75, 45) = 15
Време е за код!
- btnResult
Огледай хубаво действията в цикъла! Чрез тях си спестявам проверката за по-голямото от двете въведени числа. При всяка итерация стойността на a се заменя с остатъка от деление на другото число. Това се повтаря докато едно от двете числа не стане 0. Тогава отговорът се държи от числото b.
Предизвикателство: Допиши кода на оставащите бутони от приложението. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Време е за тестване!
Създай приложение „PrimeNumbers„, което при въведено естествено число n, по-голямо от едно, определя дали числото е просто.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.
Да помислим по алгоритъма!
Едно естествено число, е просто, ако няма други делители освен 1 и себе си. Това означава, че търсим делителите на числото n в интервала от 1 до n – 1. Но делителите се намират в първата половина на интервала и число от втората половина не може да е делител. Ето защо оптимизирам кода, като съкращавам интервала чрез обхождане на всички числа в интервала от 2 до n/2.
Време е за код!
- btnResult
Огледай хубаво кода! Имам една булева променлива, на която задавам начална стойност true, като по този начин приемам, че въведеното число е просто. С if оператора проверявам дали i е делител на въведеното число. Решението на тази задача може да се направи с всяка от познатите ти циклични конструкции.
Предизвикателство: Допиши липсващите части от кода, както и на оставащите бутони от приложението. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Време е за тестване!
Създай приложение „SumOfDigits„, което при въведено цяло число в интервала [ 0;1000] извежда сумата от всички цифри в числото. Ако въведеното число не е в дадения интервал на екрана да се изведе подходящо съобщение към потребителя.
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
Наименувай правилно всеки от компонентите на интерфейса и направи подходящи настройки.
Да помислим по алгоритъма!
Две са аритметичните операции, които ще ти трябват за задачата – целочислено деление на 10 и остатък от целочислено деление – пак на 10. Запомни ги тези действия ще ти потрябват и при други задачи.
Време е за код!
- btnResult
Огледай хубаво кода! Първо е условната проверка за въведеното число. Ако то не е в посочения интервал на екрана се извежда подходящо съобщение към потребителя. В противен случай кодът преминава към алтернативата. Решението на тази задача може да се направи с всяка от познатите ти циклични конструкции.
Предизвикателство: Допиши липсващите части от кода, както и на оставащите бутони от приложението. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Време е за тестване!
Създай приложение „Shapes“, в което потребителят въвежда вида и размерите на геометрична фигура и пресмята лицето й. Резултатът трябва да бъде закръглен до два знака след десетичната запетая. Фигурите са шест вида:
- квадрат (square), правоъгълник (rectangle), кръг (circle), триъгълник (triangle), успоредник (parallelogram) и трапец (trapezoid).
На Фиг. 1 е показан един възможен изглед на прозореца на програмата.
За създаването на този интерфейс, ще ти трябват следните компоненти със съответните настройки:
Да помислим по изпълнението!
За задачата ще ти трябват предварително изтеглени изображения, които да съхраниш в папката на проекта („Име на проект“ – bin – Debug). При създаването на pictureBox1 импортирах картинката която да се визуализира при стартиране на формата.
Приложението трябва да пресмята лицето на определена геометрична фигура, която се избира от компонентата ComboBox, както е показано на Фиг.2:
За да въведеш имената на фигурите, кликни върху черната стрелка на ComboBox и избери Edit Items, както е показано на Фиг.3:
В появилия се прозорец въведи наименуванията на фигурите на отделни редове и натисни бутона OK, както е показано на Фиг.4:
При стартиране на приложението първо потребителят трябва да избере вида на фигурата:
- Ако фигурата е квадрат, на екрана се визуализира етикет с надпис „a =“ и текстово поле за въвеждане на едно число – дължина на страната му. Като допълнение изображението в компонентата PictureBox трябва да се смени.
- Ако фигурата е правоъгълник, на екрана се визуализират етикети с надписи „a =“ и „b=“, както и текстови полета за въвеждане на две числа – дължините на страните му. Като допълнение изображението в компонентата PictureBox трябва да се смени.
- Ако фигурата е кръг, на екрана се визуализира етикет с надписи „r =“, както и текстовo поле за въвеждане на числo – дължините на радиуса. Като допълнение изображението в компонентата PictureBox трябва да се смени.
По аналогичен начин се подхожда и при останалите фигури.
Време е за код!
Започваме с декларация на глобалните променливи. Така декларирани променливите са видими от всички методи в кода.
Следващата стъпка е да задам функционалност на компонентата ComboBox1. Кликни два пъти с ляв бутон на мишката върху компонентата и ще видиш следния програмен фрагмент:
Идеята е да програмираме желаните действия, а именно: добавяне на променливи за картинките; чрез оператора switch-case, задавам какво да се изпълни на екрана при избор на конкретна фигура.
Остава бутона „Пресметни“. Пак се спирам на switch-case оператора. След като променливите които ми трябват вече са декларирани, сега само им присвоявам стойност. Според избраната от потребителя фигура програмата ще изпълни съответния case. Навсякъде използвам метoда Math.Round, за да направя необходимото закръгляне на резултата.
Предизвикателство: Допиши липсващите части от кода, както и на оставащите бутони от приложението. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Време е за тестване!
Конзолни приложения
Създай конзолно приложение с име 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“.
Упътване: За решението на задачата изпълни следните стъпки:
- Прочети две цели числа от конзолата.
- Сравни, дали първото число e по-голямо от второто.
- Отпечатай по-голямото число.
Време е за код!
Вариант №1: За решението на задачата ще използвам кратка форма на условен оператор. Изначално приемам, че първото въведено число е по-голямо.
Сега е време да стартираш приложението и да провериш резултата!
Вариант №2: За решението на задачата ще използвам пълна форма на условен оператор. Сега вече не ми е необходима допълнителна променлива.
Обърни внимание, че не използвам съставен оператор. Това е така защото имам само по едно действие отнасящо се към if и else операторите.
Сега е време да стартираш приложението и да провериш резултата!
Предизвикателство: Опитай да решиш задачата като направиш сравнение на три цели числа. Ще ти помогна малко, като ти покажа част от моето решение.
При условната проверка използвам съставен булев израз, за да проверя дали първото въведено число е едновременно по-голямо от второто и третото число. Ако това е така значи имам победител в класацията за максимално число. Ако условието не е изпълнено, обаче преминавам към алтернативата и нова условна проверка. Опитай да допишеш липсващата част от булевия израз.
Създай конзолно приложение, в което инициализирай целочислен масив с 10 елемента. Отпечатай елементите на масива на един ред.
Стъпка по стъпка:
- Инициализирай целочислен масив с произволни 10 елемента.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Използвай методът Write() за отпечатване на елементите на един ред.
Време е за код!
Вариант 1: За решението на задачата ще използвам цикъл for.
Сега е време да стартираш приложението и да провериш резултата!
Вариант 2: За решението на задачата ще използвам цикъл foreach. Той много често се използва при обхождането на елементи на масив. Обърни внимание, че при foreach няма условие за край на цикъла, което означава, че той продължава изпълнението си докато не мине през всеки елемент.
Сега е време да стартираш приложението и да провериш резултата!
Създай конзолно приложение, в което декларирай целочислен масив с 10 елемента. Елементите трябва да се въвеждат от потребителя. Отпечатай елементите на масива на един ред.
Стъпка по стъпка:
- Декларирай целочислен масив с 10 елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи. Определи дължината на масива чрез свойството Length.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Използвайте методът Write() за отпечатване на елементите на един ред.
Време е за код!
За решението на задачата ще използвам цикъл for.
Сега е време да стартираш приложението и да провериш резултата!
Предизвикателство: Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Създай конзолно приложение, което добавя n на брой елемента в целочислен масив. Елементите трябва да се въвеждат от потребителя. Отпечатай елементите на масива на един ред.
Стъпка по стъпка:
- Декларирай целочислен масив с n елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Използвайте методът Write() за отпечатване на елементите на един ред.
Време е за код!
Сега е време да стартираш приложението и да провериш резултата!
Предизвикателство: Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Създай конзолно приложение, което добавя n на брой елемента в целочислен масив. Елементите трябва да се въвеждат от потребителя. Отпечатай елементите на масива на един ред в обратен ред.
Стъпка по стъпка:
- Декларирай целочислен масив с n елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Използвайте методът Write() за отпечатване на елементите на един ред.
Време е за код!
На картинката показвам само фрагмента с отпечатване на масива в обратен ред.
Предизвикателство: Опитай да допишеш липсващата част от кода, като използваш решението от предходната задача. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Сега е време да стартираш приложението и да провериш резултата!
Създай конзолно приложение, което добавя n на брой елемента в целочислен масив. Елементите трябва да се въвеждат от потребителя. Отпечатай сумата на елементите от масива.
Стъпка по стъпка:
- Декларирай целочислен масив с n елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Добави допълнителна променлива за пресмятане сумата на елементите.
Време е за код!
На картинката показвам само фрагмента с пресмятане и отпечатване сумата на елементите в масива.
Предизвикателство: Опитай да допишеш липсващата част от кода. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Сега е време да стартираш приложението и да провериш резултата!
Създай конзолно приложение, което добавя n на брой елемента в целочислен масив. Елементите трябва да се въвеждат от потребителя. Отпечатай минималният и максималния елемент от масива.
Стъпка по стъпка:
- Декларирай целочислен масив с n елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Добави две допълнителни променливи maxElement и minElement.
Време е за код!
На картинката показвам само фрагмента с пресмятане и отпечатване на максималния и минималния елемент в масива. Използвам две допълнителни целочислени променливи (защото масивът ми е целочислен): minElement и maxElement. Изначално приемам, че първият елемент в масива е едновременно най-малък и най-голям. При обхождането на масива, сравнявам всеки елемент с текущите минимални и максимални стойности и така след всички итерации на цикъла ще имам търсеният резултат.
Предизвикателство: Опитай да допишеш липсващата част от кода. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Сега е време да стартираш приложението и да провериш резултата!
Създай конзолно приложение, което добавя n на брой елемента в целочислен масив. Елементите трябва да се въвеждат от потребителя. Отпечатай индексите на минималният и максималния елемент от масива.
Стъпка по стъпка:
- Декларирай целочислен масив с n елемента.
- Използвай цикъл for за добавяне на прочетените от конзолата елементи.
- Обходи масива с цикъл for (foreach), за да отпечаташ елементите.
- Добави две допълнителни променливи maxElement и minElement.
- Добави две допълнителни променливи minIndex и maxIndex.
Време е за код!
На картинката показвам само фрагмента с пресмятане и отпечатване на максималния и минималния елемент в масива и индексите на които се намират те.
Предизвикателство: Опитай да допишеш липсващата част от кода. Задачата може да бъде решена и по друг начин – опитай с твое примерно решение, като използваш цикъл foreach!
Сега е време да стартираш приложението и да провериш резултата!
Обърни внимание, че дори при еднакви минимални стойности програмата работи съвсем коректно, като отпечатва първото срещнато минимално число.
Създай конзолно приложение, което чете два масива от конзолата и проверява дали са еднакви.
Упътване: Два масива са еднакви, когато имат еднаква дължина и стойностите на елементите в тях съответно съвпадат.
Време е за код!
Започвам с булева променлива с начална стойност true. Приемам, че масивите са еднакви, а при проверката в кода ще установя дали това е така. Този програмен фрагмент прочита само елементите на първия масив.
Идеята е, че ако дължините на масивите не са еднакви не е необходимо да продължа с въвеждането на елементите на втория масив. Ето защо следва условна проверка:
Ако условната проверка мине успешно кодът продължава с прочитане елементите на втория масив и цикъл for чрез който обхождайки масивите проверявам дали текущите елементи са различни. Ако това е така на ред 35 извеждам подходящо съобщение към потребителя. На булевата променлива присвоявам стойност false и чрез оператора break спирам понататъшното изпълнение.
Предизвикателство: Задачата може да бъде решена и по друг начин – опитай с твое примерно решение!
Сега е време да стартираш приложението и да провериш резултата!
Обърни внимание, че дори при еднакви минимални стойности програмата работи съвсем коректно, като отпечатва първото срещнато минимално число.
Последни коментари