我试图编写一个程序来跟踪工厂中7台机器生产的产品,这些产品都生产相同的10种产品。
程序要求用户输入机器ID(A,B,C ... G) 然后是产品ID(0,1,2 ... 9) 最后,程序要求0或1将产品标记为质量好或质量差。
我把所有这些信息都放到了三个数组中。我接下来要做的就是我坚持的部分。我必须从所有信息中创建两个表。
第一张桌子是一张优质产品的表格。它必须是一个二维表,其中MachineIDs沿顶部运行,ProductIDs沿着侧面运行。
每台机器和每件产品都需要运行总计。因此,在单元格[A0]中,需要总计机器A生产product0的次数,并将其标记为GOOD。然后[A1]依此类推[G9]
第二个表格完全相同,只是这次只计算坏产品。
在底部需要有每台机器生产的所有产品。在右手边,必须有所有单独的产品都是所有机器。
到目前为止,这是我的代码。
program Production;
var machine: array of char;
var product: array of integer;
var quality: array of integer;
var min, number, extra: integer;
var machineID: array[1..7] of char;
var productID: array[1..10] of char;
var x, y, count: integer;
begin
x:= 0;
y:= 0;
number := 0;
min := 5;
extra := 5;
SETLENGTH( machine, min );
SETLENGTH( product, min );
SETLENGTH( quality, min );
writeln('Input Machine ID ( A, B, C, D, E, F or G ) ');
readln(machine[number] );
while (machine[number] <> '*') do
begin
while ( ORD( machine[number] ) < 65 ) or ( ORD( machine[number] ) > 71 ) do
begin
writeln('Input Invalid. Please try again.');
readln(machine[number] );
end;
writeln('Input Product Number ( 0, 1, 2, 3, 4, 5, 6, 7, 8 or 9 ) ');
readln(product[number] );
while ( product[number] < 0 ) or ( product[number] > 9 ) do
begin
writeln('Input Invalid. Please try again.');
readln(product[number] );
end;
writeln('Quality Control Check. Input 0 for GOOD or 1 for BAD.');
readln(quality[number] );
while ( quality[number] <> 0 ) and ( quality[number] <> 1 ) do
begin
writeln('Input Invalid. Please try again.');
readln(quality[number] );
end;
number := number + 1;
writeln('Input Machine ID ( A, B, C, D, E, F or G ) ');
readln(machine[number] );
end;
for count := 0 to number - 1 do
begin
writeln('Machine ID = ',machine[count] );
writeln('Product ID = ',product[count] );
writeln('Quality = ',quality[count] );
end;
writeln('');
writeln('');
writeln('EXIT');
readln;
end.
有人能告诉我甚至如何去做吗?我完全不知所措。
答案 0 :(得分:1)
我会稍微改变一下这个问题。在我记录了用户输入的一个数据(机器,产品和质量)之后,我将它存储在一个表中 - 或者在这种情况下以三维数组存储。如果我没记错的话,你可以创建如下内容:
var myTable: array[1..7, 1..10, 1..2] of integer;
表格的尺寸如下:
一旦我收到用户的所有输入,我只需在表格中增加相应的字段。例如。假设用户输入是:{机器B,产品2,好}然后我们
myTable[1, 2, 0] := myTable[1, 2, 0] + 1;
因此,当我们想要打印出我们的表格时,我们可以:
for i := 0 to 7 do
begin
for j := 0 to 10 do
begin
write(myTable[i,j,0] + ' '); { i,j,0 for the good; i,j,1 for the bad values }
end;
writeln('');
end;