标签: turbo-pascal

检查Pascal中的数组元素是否为空

我很抱歉打扰你这种过时的语言,但有没有办法检查pascal中的特定数组元素是否为空?它是一个整数数组,因此检查元素是否为空字符串会导致类型不匹配(我喜欢这种语言!).谢谢你的时间.

pascal turbo-pascal

2
推荐指数
1
解决办法
2719
查看次数

如何修复exitcode 201?

我有一个任务是在Pascal中编写一个程序.当我运行程序时,结果是exitcode 201.

我不知道如何解决这个错误.

    program convertTime;
    uses crt;
    Type
            Jam = record
                  hh:integer ;
                  mm:integer ;
                  ss:integer;

    end;
    var
            J : Jam;
            P,totaldetik,sisa : integer;

    begin
            J.hh:= 16;
            J.mm:= 10;
            J.ss:= 34;

            write('masukkan waktu(menit): ');read(p);

            totaldetik:= (J.hh*3600) + (J.mm*60) + J.ss + (p*60);

            J.hh:= totaldetik div 3600;
            sisa:= totaldetik mod 3600 ;
            J.mm:= sisa div 60;
            J.ss:= sisa mod 60;

            writeln('total the time: ',J.hh,' Hour ',J.mm,' Minute ',J.ss,' second');
            readln;
    end.
Run Code Online (Sandbox Code Playgroud)

pascal freepascal turbo-pascal

2
推荐指数
1
解决办法
5339
查看次数

Turbo Pascal中的动态数组

我正在研究我的学校项目,我想使用动态(非静态)数组.我使用ObjectPascal,所以我习惯了一些语法.但现在我在旧的TurboPascal编程(我正在使用Turbo Pascal 7 for Windows).

它似乎不知道ObjectPascal,所以我想,你Turbo Pascal不知道动态数组.

如果我的理论是正确与否,有人能告诉我吗?我试图谷歌,但我没有成功.基本上我问"Turbo Pascal 7中的动态数组怎么样?" 谢谢你的所有反应.

delphi pascal dynamic-arrays turbo-pascal

2
推荐指数
1
解决办法
1836
查看次数

帕斯卡(免费或涡轮)阅读

我试图理解fpc -Mtp -vw在 Linux 下以 Turbo 模式(特别是)编译的 Free Pascal 中看到的某种神奇的行为。代码来自 Jack Crenshaw 的“让我们构建编译器”,第四部分,特别是带有InputOutput程序的最后一个版本,可在http://www.pp4s.co.uk/main/tu-trans-comp-jc-04找到html的。我发现“神奇”的是程序中的Read(Table[GetName]);那一行Input。根据 FP 文档,“Read从文件 F 中读取一个或多个值,并将结果存储在 V1、V2 等中;如果未指定文件 F,则读取标准输入。” 在Read是在GetChar过程中,它似乎行为很像C'S getchar(),即检索标准输入缓冲区中的下一个字符。在里面Input调用它似乎表现得像一个复杂的scanf()自动跳过空格并将多位数字转换为整数,并消除对GetNum函数的需要,如果你使用,它不会被调用,例如?i 345,但会被调用如果你尝试i=345,如果你=在解析错误的结果两边留一个空格。是否有其他一些文件证实了 Free、Turbo 甚至通用 Pascal 的明显多功能性Read

pascal freepascal turbo-pascal

2
推荐指数
1
解决办法
300
查看次数

CASE <var> OF 实际上意味着 CASE <var> EQUALS 吗?

CASE <var/expr> OF
      1: <do statement>;
      2: <do statement>;
   3..5: <do statement>;
END;
Run Code Online (Sandbox Code Playgroud)

始终有效意味着:

(in) CASE <var/expr> EQUALS
      1: <do statement>;
      2: <do statement>;
   3..5: <do statement>;
     ^ value/char in range
END;
Run Code Online (Sandbox Code Playgroud)

翻译成自然语言?我只是想知道为什么会做出这样的措辞选择。否则,Pascal 语法看起来读起来很自然、符合语法。但也许我对“案例陈述”的理解不正确?

编辑:添加范围大小写,并在 (in) 周围添加括号,因为它会让人们感到困惑。

delphi pascal freepascal turbo-pascal

2
推荐指数
1
解决办法
155
查看次数

外部文件写入未完成

当我写入Pascal中的外部文件时,即使编码完美无缺,外部文件也不会完全写入.

procedure save;
  {Menyimpan data penerbangan ke dalam file eksternal}
      begin
         write('> ');
     write('nama file: ');
     readln(namafisik);
     assign(d,namafisik);
     {$I-};
     rewrite(d);
     {$I+};
     if (IOresult=0) then
         begin
            for i:=1 to Neff do
             writejadwal(i);
         end;
      end;

procedure writejadwal(i:integer);
{Menuliskan jadwal ke file eksternal pada indeks ke-i}
      begin
           write(d,T.KodePenerbangan[i]);
           write(d,' | ');
           write(d,T.KotaKeberangkatan[i]);
           write(d,' | ');
           write(d,T.KotaKedatangan[i]);
           write(d,' | ');
           if ((T.TKeberangkatan[i].Day) < 10 ) then
              begin
                   x:=T.TKeberangkatan[i].Day;
                   str(x,y);
                   s:=y;
                   write(d,'0'+s);
              end
           else
               begin
               write(d,T.TKeberangkatan[i].Day);
               end;
           write(d,':');
           if ((T.TKeberangkatan[i].Month) < 10 ) then
              begin …
Run Code Online (Sandbox Code Playgroud)

pascal procedural-programming freepascal lazarus turbo-pascal

1
推荐指数
1
解决办法
72
查看次数

在 Pascal 中计算数组中的素数

我在 PAscal 中遇到了问题。我想计算素数但没有结果:我的代码是:

Program arrayToFunction;
const
 size = 5;
type
  a = array [1..size] of integer;
var
 aNumbers:  a = (1, 7, 3, 4, 5);
 iCountNumbers: integer;
function countPrimeNumbers( var arr: a) : integer;
  var
   i :0..size;
   sum,j,count: integer;
  begin
  sum := 0;count:=0;
  for i := 0 to size do
  begin
      for j := 2 to arr[i] do
          begin
               if(arr[i] mod j = 0) then sum:=1;
          end;
      if(sum=0) then count:=count+1;

  end;
 countPrimeNumbers := count;
end;
begin
 iCountNumbers := countPrimeNumbers( aNumbers …
Run Code Online (Sandbox Code Playgroud)

pascal freepascal pascalscript turbo-pascal

1
推荐指数
1
解决办法
1543
查看次数

如何在一个 case 语句中使用多个语句?

所以我正在使用 pascal,并且我想向一种情况添加多个语句。我尝试了这段代码,但收到错误:“错误:常量和 CASE 类型不匹配”

procedure pay;
begin
loop:=loop+1;
CASE loop OF
1: 
writeln('E-Mail: ');
readln(mailO[1]);
writeln('amount: ');
readln(amount[1]);


end;
Run Code Online (Sandbox Code Playgroud)

pascal freepascal turbo-pascal

1
推荐指数
1
解决办法
4137
查看次数

使用Turbo Pascal中的装配更改屏幕颜色

我在turbo pascal中的语法有问题,这在调试中工作没有问题,但我不能使它在Turbo Pascal中工作.

program foo;

begin
asm
    mov ah,06h;
    mov bh,$21;
    mov cx,$0000;
    mov bx,$1950; 
    int 10h;
    mov ah,00h;
    int 16h;  
end;
end.
Run Code Online (Sandbox Code Playgroud)

我不知道出了什么问题.

PD:这个东西中的h,$和b是什么意思?

assembly turbo-pascal

1
推荐指数
1
解决办法
300
查看次数

是否可以将语句转换为表达式?

在C中,您可以在一行中分配两个变量

b = a = sqrt(10);
Run Code Online (Sandbox Code Playgroud)

在德尔福

b := a := Sqrt(10);
Run Code Online (Sandbox Code Playgroud)

不被允许.

有了Delphi中讨论IfThen三元运算符?:的"替代" - 相当于C#的三元运算符?总之,IfThen似乎并非绝对必要.

所以也许还有这样的东西:

function AssignAndReturn(var LHS: Integer; RHS: Integer): Integer;
begin
  LHS := RHS;
  Result := RHS;
end;

(...)

var
  a, b: Integer;
begin
  b := AssignAndReturn(a, Round(Sqrt(10)));
Run Code Online (Sandbox Code Playgroud)

我不是想"让一切看起来像C".我刚才注意到,有时再次在同一行中"重用"赋值的右侧会很好.(参见Lazarus/Free Pascal:如何改进while循环的编码风格(避免使用无限循环),例如,每次传递都会重新分配布尔表达式.)

delphi pascal freepascal lazarus turbo-pascal

1
推荐指数
1
解决办法
1156
查看次数

如何编写指数函数(e^x)?

我希望能够将整数值传递给函数 - e^x 并返回结果。基于 e^x 的递归关系。有人可以帮我弄这个吗?

提前致谢。

pascal exponential turbo-pascal

1
推荐指数
1
解决办法
190
查看次数

将字符串更改为整数 - pascal

我不知道“xa”如何在 pascal 中转换为 10。我只是使用:

Val('xa',value,return);
Run Code Online (Sandbox Code Playgroud)

并且 value = 10,return = 0。我只是一个新手,有人可以解释一下吗?我知道这不会喜欢只是一个字符的 ASCII 原因。

我正在使用 Free Pascal :)

我在 Free Pascal 中进行了测试,当使用xa,0xa$xa. 所以,我认为它理解像“$”、“0”这样的特殊字符而不调用它。那正确吗?

delphi pascal freepascal turbo-pascal

-1
推荐指数
1
解决办法
1129
查看次数