Следващата част от алгоритъма ни е да обработим символите от командите, спрямо следните правила от условието:
- Ако символът е главна буква, Лина получава 50% намаление, което означава, че трябва да намалите парите, които тя има, с 50% от цифровата репрезентация ASCII символа.
- Ако символът е малка буква, Лина получава 70% намаление, което означава, че трябва да намалите парите, които тя има, с 30% от цифровата репрезентация ASCII символа.
- Ако символът е ”%”, Лина прави покупка, която намалява парите ѝ на половина.
- Ако символът е ”*“, Лина изтегля пари от дебитната си карта и добавя към наличните си средства 10 лева.
- Ако символът е различен от упоменатите горе, Лина просто прави покупка без намаления и в такъв случай просто извадете стойността на ASCII символа от наличните ѝ средства.
Нека разгледаме проблемите от първото условие, които стоят пред нас. Единият е как можем да разберем дали даден символ представлява главна буква. Можем да използваме един от двата начина:
action >= 'A' && action <= 'Z'
, за да проверим дали нашият символ се намира в интервала от големи букви.char.IsUpper(..)
.Другият проблем е как можем да пропуснем даден символ, ако той представлява операция, която изисква повече пари, отколкото Лина има? Това е възможно да бъде направено с използване на continue
конструкцията.
Примерната проверка за първата част от условието изглежда по следния начин:
Забележка: purchases
е променлива от тип int
, в която държим броя на всички покупки.
Смятаме, че читателят не би трябвало да изпита проблем при имплементацията на всички други проверки, защото са много сходни с първата.