繁体   English   中英

Pascal将用户输入插入到数组中

[英]Pascal insert user input to an array

我想在功能编程方面做得更好。 作为一个开始,我打算尝试使用Pascal,Scheme,ML等几种语言。首先我开始使用Pascal。 我试图将用户输入插入到pascal中的整数数组中,然后将它们反向。

  1 program ReverseList;
  2 
  3 var
  4         i: Integer;
  5         k: Integer;
  6         a: array[1..100] of Integer;
  7 begin   
  8         i := 0;
  9         repeat  
 10                 writeln('Enter a number');
 11                 readln(k);
 12                 if k > -1 then 
 13                         i := i + 1;
 14                         a[i] := k;
 15         until(k < 0);
 16         for i := 1 to i do    
 17                 writeln(a[i]);
 18 end.

在过去,我主要是一个java开发人员,所以我很自定,使用所有可用的列表。 理想情况下,我想知道是否可以构建一个列表,我可以根据该列表中的元素数量迭代列表。

如果有人能指出我在函数式编程的良好教程的方向以及上述编程语言的语法,那将是很棒的。

您的计划有几个问题:

  • 该数组未初始化。
  • 没有输入检查,i = 0和i> 100都导致非法数组索引。
  • 数组索引和值是一样的,这是正确的吗?
  • 您只能编写前10个数字(但您使用的是不同的索引,肯定会超出范围)。
  • 输出不是相反的。

还有几个pascal教程

顺便说一句,Pascal不是一种功能语言。 因此,如果您真的想学习一种函数式语言,最好再试一次(比如Lisp,Ml或者可能是F#)。

这是一个很好的做法,我设法找到了解决方案。 我确信有更好的方法,而且这看起来并不像我正在使用函数式编程的功能。 但如果有人想提供更好的解决方案,请这样做,

{author: Null-Hypothesis}

program ReverseList;

var
        i: Integer; {integer to keep the array length}
        k: Integer; {user input value}
        a: array[1..100] of Integer; {array to store the user inputs}
begin
        i := 0;
        repeat  {iterate until user input is negative or number of inputs exceed array size}

                writeln('Enter a number or enter negative value to exit the program.');
                readln(k);
                if(k > -1) and (i < 100) then   {check for negative value and size of the array}
                begin
                        i := i + 1;     {increase array index}
                        a[i] := k       {assign value to array}
                end
                else
                        break;  {exit if array size exceed the limit of array}
        until(k < 0);
writeln;

{Printing the user input before the reversing the list}
writeln('Original order of the list');
for i := 1 to i do
        writeln(a[i]);
writeln;

{Printing the reverse list}
writeln('Reversed List');
for i := i downto 1 do  {decrement array index}
        writeln(a[i]);
writeln('Bye!!!');
end.

快乐的编码,关闭到下一个语言......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM