【问题标题】:Pascal File: How do I find the MAX and MIN occurrences of an integer from a file?Pascal 文件:如何从文件中找到整数的 MAX 和 MIN 出现次数?
【发布时间】:2019-07-03 09:24:34
【问题描述】:

我是 Pascal 的新手,并且有一个包含以下整数的 sample.txt 文件:

1 2 
2 1
1 3
3 1
1 4

如何从文件中找到在 Pascal 语言中出现次数最少和最多的整数?在上面的示例中,最大出现次数为整数 1(出现 5 次),最小值为 4(出现一次)。

我知道我必须打开文件并读取其中的值,到目前为止我已经弄清楚了很多。有没有更短的方法来执行此操作?

var
  V1, V2, V3, V4, V5, V6, V7, V8, V9, V10: Integer; 
begin 
  Assign(F, 'sample.txt');
  Reset(F);
  read(F, V1);  
  read(F, V2);
  read(F, V3);
  read(F, V4);
  read(F, V5);
  read(F, V6);
  read(F, V7);
  read(F, V8);
  read(F, V9);
  read(F, V10);

  writeln('Max Occurrence')
  writeln('Min Occurrence')

  Close(F);
  writeln; 

提前致谢!

【问题讨论】:

  • 使用循环读取文件内容。你知道什么是循环吗?
  • 没有电脑,用铅笔和纸你会怎么做?一旦你弄清楚了,编写代码来用 Pascal 表达它。提示:当您开始编码时,array 是一种方便的数据结构,可用于存储和处理数据。您可以通过扫描数组或对其进行排序来找到您需要的答案;两者都是您需要学习如何做的基本操作。如果有人只是发布您的问题的解决方案,您将一无所获。
  • @MartynA:实际上,如果您必须不断添加项目,并且如果不确定要添加多少项,则列表是一种更好的数据结构。但是对于一个完整的初学者来说,一个列表可能有点太多了。
  • @RudyVelthuis:当然,我的第一个想法是一个(链接的)列表——我对数组有一个预德尔福的厌恶——但是,正如你所说,这个练习可能有点太多了.
  • @MartynA:我的意思是一个简单的股票 TList,而不是一个链表。链表会比初学者的视野更远。

标签: file max pascal lazarus minimum


【解决方案1】:

基本上

 writeln('Max Occurrence',max(v1,max(v2,max(v3,max(v4,max(v5,max(v6,max(v7,max(v8,max(v9,v10)))))))))))
 writeln('min Occurrence',min(v1,min(v2,min(v3,min(v4,min(v5,min(v6,min(v7,min(v8,min(v9,v10)))))))))));

给予或接受“)”, 但是老师可能不会接受它作为没有循环的解决方案,因为它不会随着输入的数量而扩展。

原理是最终最大值为临时最大值+下一个数据项的最大值

【讨论】:

    猜你喜欢
    • 2020-08-19
    • 2023-03-20
    • 1970-01-01
    • 2021-01-15
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    • 2021-12-14
    相关资源
    最近更新 更多