记录类型的伪代码有问题,显示每行的最后一列

时间:2019-02-18 23:20:03

标签: pseudocode

在这种情况下,我无法创建伪代码:
“每一行都有不同的列数,我的任务是显示每行的最后一列”

type Row is record
Integer: ColumnsAmount
Columns is array [1..ColumnsAmount) of Integer

type Chart is record
Integer: RowsAmount
rows is array [1..RowsAmount) of Row

Chart: tab

确保它必须是从1到RowsAmount的循环,并在循环中:显示选项卡[ColumnsAmount](显示最后一列)

这是我的尝试:

for f:=1..RowsAmount step 1{

   display(tab[f].tab[ColumnsAmount]) **<-- PROBLEM IN THIS PART**
 }
}

作为参考,还有另一个正确的任务(我的目标是做上面的类似事情): “写伪代码将显示每个公司拥有的每辆汽车”

type Company is record
 String: name
 Integer: CarAmount
 car is array[1..CarAmount] of Car
end

type Car is record
 String: name
end

data is array[1..10] of Company

纠正这种情况下的伪代码:

for f:=1..10 step 1{
 for a:=1..data[f].CarAmount step 1{
   display(data[f].car[a].name)
 }
}

在行/列情况下,我该如何做类似的事情?

1 个答案:

答案 0 :(得分:0)

为使用的标识符(用[]表示数组)创建层次结构。请记住,ColumnsAmount每行只能出现一次,但是有几行。为了标识正确的ColumnsAmount,有必要包括完整的参考。这些是参考:

tab
  rows[]
    ColumnsAmount

tab
  rows[]
    Columns[]

填写所用的下标,包括第一个作为第二个的下标:

tab
  rows[f]
    ColumnsAmount

tab
  rows[f]
    Columns[tab.rows[f].ColumnsAmount]

然后编写代码:

for f:=1..RowsAmount step 1 {
    display(tab.rows[f].Columns[tab.rows[f].ColumnsAmount])
}

或者,您可以考虑分离嵌套的引用(看起来更容易):

for f:=1..RowsAmount step 1 {
    a:=tab.rows[f].ColumnsAmount
    display(tab.rows[f].Columns[a])
}

所引用的示例也是如此,还需要考虑两个引用。 CarAmount出现了10次,因此需要完整的参考来确定哪个CarAmount

data[]
  CarAmount

data[]
  car[]
    name

添加下标:

data[f]
  CarAmount

data[f]
  car[a]
    name

然后输入代码:

for f:=1..10 step 1 {
  for a:=1..data[f].CarAmount step 1 {
    display(data[f].car[a].name)
  }
}