如何在pascal和其他问题中将char存储为变量

时间:2018-11-12 20:09:59

标签: char pascal

我对编程非常陌生,我正在尝试制作一个程序(以Pascal为单位),该程序存储用户多次选择的字母,如下所示:

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 :(得分:0)

您需要检查set是什么类型。在内部,一个集合由该集合可以保存的每个值的单个位组成。您的字符集只能跟踪一个'a',一个'b'等(集合中的'a'是或不是;集合中的'b'是或不是...) 。

由于您最多需要跟踪五个披萨,因此要提供的六种尺寸中的每一种都需要,因此需要将尺寸信息存储在一个数组中,例如array[1..5] of char。您可以将Nings变量用作sizes数组的索引,就像while循环中的read(sizes[Nings])一样。

顺便说一句,使用两种方式之一声明了范围有限的变量:

1)作为声明值的类型,然后声明该类型的变量:

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

2)使用数字或字符子范围作为变量声明中的类型:

  Nings: 1..5