singlepost

Помогите грамотно написать условие. << На главную или назад  

Здравствуйте.
Пишу программу заказа пиццы.
Помогите грамотно написать условие.
Есть 6 разновидностей пицц которые включают в себя по 2 размера (большая, маленькая).
Есть возможность выбора количества от 0 до 4.
Т.е. можно выбрать первый тип пиццы большого размера в кол-ве 3 штук, третий тип пиццы маленького размера в кол-ве 2 штук и третий тип пиццы большого размера в кол-ве 1 штуки одновременно.
В GUI интерфейсе использовал 12 spinner(ов) значение которых изменяется от 0 до 4. т.е. если значение spinner(a) не равно 0, значит эта пицца выбрана.

1 spinner – маленькая пицца 1 типа.
2 spinner – большая пицца 1 типа.
3 spinner – маленькая пицца 2 типа.
4 spinner – большая пицца 2 типа.
5 spinner – маленькая пицца 3 типа.
6 spinner – большая пицца 3 типа.
7 spinner – маленькая пицца 4 типа.
8 spinner – большая пицца 4 типа.
9 spinner – маленькая пицца 5 типа.
10 spinner – большая пицца 5 типа.
11 spinner – маленькая пицца 6 типа.
12 spinner – большая пицца 6 типа.

Нужно выводить на экран только те пиццы, значение которых не равно 0.
Нужно выводить тип пиццы, размер, и кол-во.

Затрудняюсь в написание условий. Не знаю, как правильно написать, чтобы не получился слишком большой код было грамотно написано.

Пишу на JAVA, но думаю язык здесь значения не имеет, так как условия во всех языках похожи.

2 ответов в теме “Помогите грамотно написать условие.”

  1. 2
    Антон Кононов ответил:

    язык значения не имеет? :) ) Delphi:

    for i:=1 to 12 do // цикл по спинерам
    begin

    cnt := TSpinEdit(FindComponent('SpinEdit')+IntToStr(i)).Value; // берем значение спинера по его номеру

    if cnt>0 then // проверка выбрано или нет
    begin

    nom := ((i-1) div 2)+1; // делим i-1 нацело на 2 (без остатка), плюс 1, получим номер пиццы

    razmer := (i-1) mod 2; // размер пицы – это остаток от деления на 2

    if razmer=0 then raz := 'маленькая' else raz:='большая';

    Memo1.Lines.Add('Выбрана '+raz+' пицца номер '+IntToStr(nom)+' в количестве '+IntToStr(cnt)+' штук'); // вывод на экран

    end;

    end;

  2. 1
    Владимир Стебунов ответил:

    я так подозреваю что у тебя один спиннер, это один заказанный вид пиццы, тогда остаток от деления на 2у тебя размер пиццы, а результат округленный в большую сторону – тип.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.