我对编程非常陌生,我正在尝试制作一个程序(以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;
正如我所说的,我对此很陌生,我想存储的字母数量等于所选披萨的数量,我也不知道该怎么做。 (这只是一部分代码。)任何帮助将不胜感激!
答案 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