Обработване на символите от командите

Следващата част от алгоритъма ни е да обработим символите от командите, спрямо следните правила от условието:

  • Ако символът е главна буква, Лина получава 50% намаление, което означава, че трябва да намалите парите, които тя има, с 50% от цифровата репрезентация ASCII символа.
  • Ако символът е малка буква, Лина получава 70% намаление, което означава, че трябва да намалите парите, които тя има, с 30% от цифровата репрезентация ASCII символа.
  • Ако символът е "%", Лина прави покупка, която намалява парите ѝ на половина.
  • Ако символът е "*", Лина изтегля пари от дебитната си карта и добавя към наличните си средства 10 лева.
  • Ако символът е различен от упоменатите горе, Лина просто прави покупка без намаления и в такъв случай просто извадете стойността на ASCII символа от наличните ѝ средства.

Нека разгледаме проблемите от първото условие, които стоят пред нас. Единият е как можем да разберем дали даден символ представлява главна буква. Можем да използваме един от двата начина:

  • Имайки предвид, факта, че буквите в азбуката имат ред, можем да използваме следната проверка action >= 'A' && action <= 'Z', за да проверим дали нашият символ се намира в интервала от големи букви.
  • Можем да използваме функцията char.IsUpper(..).

Другият проблем е как можем да пропуснем даден символ, ако той представлява операция, която изисква повече пари, отколкото Лина има? Това е възможно да бъде направено с използване на continue конструкцията.

Примерната проверка за първата част от условието изглежда по следния начин:

Note: purchases е променлива от тип int , в която държим броя на всички покупки.

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

results matching ""

    No results matching ""