Program n_5;
var a, d: integer;
b, c, f: real;
begin
d := random(1, 8);
writeln('Для выбора А-92 введите 1. Цена: 20.00руб. за литр');
writeln('Для выбора А-95 введите 2. Цена: 25.00руб. за литр');
writeln('Для выбора А-98 введите 3. Цена: 30.00руб. за литр');
write('Введите марку бензина - ');
readln(a);
write('Введите количество литров - ');
readln(b);
if (a < 1) or (a > 3) or (b <= 0) then
write('Ошибка. Введены некорректные значения');
case a of
1: c := 20 * b;
2: c := 25 * b;
3: c := 30 * b
end;
writeln;
writeln('.........Кассовый чек.........');
writeln('АЗС: "Полный бак"');
writeln('Адрес: г.Волгоград, улица Новослободская д.32');
writeln('Кассир: Иванова Ирина Викторовна');
writeln('Номер колонки: ', d);
case a of
1: writeln('Бензин: А-92');
2: writeln('Бензин: А-95');
3: writeln('Бензин: А-98');
end;
write('Введите размер оплаты - ');
readln(f);
writeln('Сумма к оплате - ', f);
if f > c then
writeln('Сдача: ', f - c)
else
writeln('Не достаточно средств');
write('Хорошего дня');
end.
Ошибок тут больше одной.
Во-первых, в операторе вывода стоит вызов функции ups, которой в качестве второго аргумента передается неизвестная переменная a. Если имелся в виду символ "а", его надо было заключить в одинарные кавычки.
Во-вторых, в теле функции ups определяется значение n в цикле. Даже, если искомый символ найден и n получит значение позиции этого символа в слове, то если слово просмотрено не полностью, следующий же проход по циклу снова сбросит n в ноль. Следовательно, эта функция будет выдавать верный результат только если искомая буква - последняя в слове.
var
slovo: string;
i: integer;
function ups(var s: string; ch: char): integer;
var
i, n: integer;
begin
i:=1;
n:=0;
while (i<=length(s)) and (n=0) do
begin
if s[i] = ch then n := i;
i:=i+1
end;
ups:=n
end;
begin
writeln('vvedite slovo');
readln(slovo); writeln('N = ', ups(slovo, 'a'));
end.
Замечание: в языке Паскаль имеется функция Pos, производящая поиск подстроки в строке...