Определить сумму покупки

Задача: 

В один массив записаны наименования товаров, в другую - их цена. Написать программу, вычисляющую общую стоимость покупки при условии, что пользователь может указывать приобретаемый товар и его количество.

Описание переменных: 
  • goods - массив-константа названий товаров;
  • price - массив-константа цен товаров;
  • i - счетчик;
  • g - введенный пользователем номер товара;
  • q - введенное пользователем количество товара;
  • sum - сумма покупки.
Алгоритм решения задачи: 

Присвоить переменной sum значение 0, после чего в цикле выполнять действия:

  1. Запросить у пользователя номер очередного товара, который он хочет приобрести.
  2. Если был введен 0, то выйти из цикла.
  3. Запросить количество данного товара.
  4. Добавить к переменной sum произведение цены товара на его количество.

После завершения цикла вывести значение sum на экран.

Программа на языке Паскаль: 

const
    N = 10;
    goods: array[1..N] of string = ('Груши','Яблоки','Огурцы','Помидоры','Укроп','Петрушка','Курица','Сыр','Масло','Молоко');
    price: array[1..N] of real = (40.50,31.20,21.80,35.00,150.00,145.00,200.00,400.00,81.40,53.35);
var
    i, g: byte;
    sum, q: real;
begin
    for i:=1 to N do 
        writeln(i,') ', goods[i], ' - ',price[i]:5:2,' руб.');
 
    writeln('Что берём? (вводите № товара; если ничего, то 0)');
    sum := 0;
    while True do begin
        write('Товар: '); readln(g);
        if g = 0 then break;
        write('Количество: '); readln(q);
        sum := sum + price[g] * q;
    end;
    writeln('Сумма к оплате: ',sum:6:2);
end.

Проверка работы программы:

1) Груши - 40.50 руб.
2) Яблоки - 31.20 руб.
3) Огурцы - 21.80 руб.
4) Помидоры - 35.00 руб.
5) Укроп - 150.00 руб.
6) Петрушка - 145.00 руб.
7) Курица - 200.00 руб.
8) Сыр - 400.00 руб.
9) Масло - 81.40 руб.
10) Молоко - 53.35 руб.
Что берём? (вводите № товара; если ничего, то 0)
Товар: 2
Количество: 0.5
Товар: 5
Количество: 0.1
Товар: 7
Количество: 1.2
Товар: 8
Количество: 0.3
Товар: 10
Количество: 1
Товар: 0
Сумма к оплате: 443.95