Как хранить char как переменные в паскале и других вопросах - PullRequest
0 голосов
/ 12 ноября 2018

Я очень новичок в программировании, и я пытаюсь создать программу (на Паскале), которая хранит букву, выбранную пользователем несколько раз, например:

sizes: set of char = ['a' .. 'f'];

Nings: integer = 1 or 2 or 3 or 4 or 5;

writeln ('Choose the number of pizzas (min:1 e max:5)');

read (Nings);

while (Nings => 1) do

    Begin

        writeln ('a- extra small');

        writeln ('b- small');

        writeln ('c- regular');

        writeln ('d- medium');

        writeln ('e- large');

        writeln ('f- extra large');

        read (sizes);

        Nings:= Nings-1;

    End;

Как я уже сказал, я очень новичок в этом, и я хотел сохранить количество букв, равное количеству выбранных пицц, и ​​я не знаю как. (Это всего лишь часть кода.) Любая помощь будет оценена!

1 Ответ

0 голосов
/ 13 ноября 2018

Вам необходимо проверить, что такое тип set. Внутренне набор состоит из отдельных битов для каждого значения, которое может содержать набор. Ваш набор символов может отслеживать только один «a», один «b» и т. Д. («A» есть или нет в наборе; «b» есть или нет в наборе ...) ,

Поскольку вам нужно отслеживать до пяти пицц, каждая из шести предлагаемых вами размеров, вам необходимо хранить информацию о размере в массиве, скажем, array[1..5] of char. Вы можете использовать переменную Nings в качестве индекса для массива sizes, например read(sizes[Nings]) в цикле while.

Кстати, переменные ограниченного диапазона объявляются одним из двух способов:

1) как тип, который объявляет значения, а затем переменную этого типа:

type
  TNings = 1..5;
var
  Nings: TNings;

2) использование числовых или символьных поддиапазонов в качестве типа в объявлении переменной:

  Nings: 1..5
...