Pascal是否支持将参数传递给函数?

我是Pascal新手,我正在尝试编写一个简单的程序,但在函数之间传递值时遇到了问题。这是我所拥有的一小部分: program numberConverter; const maxValue = 4999; minValue = 1; var num: integer; function convertNumeral(number: integer):string; var j: integer; begin if ((number < minValue) OR (nu

vim不';t正确缩进pascal代码

我正在尝试使用VIM缩进一个大型pascal程序 在网上搜索,但没有找到任何有用的东西 发现文件pascal.vim中的最后一次更改是在2011年。这个脚本文件应该相应地缩进一个pascal代码,但是像“begin”、“if”、“var”这样的基本关键字不会在它们之后缩进块代码 执行时 gg=G 例如,要自动缩进所有代码,它就不起作用 我已经设置了选项“自动缩进”、“智能缩进”、“tabstop”、“shiftwidth”。很抱歉耽搁了。我正在做的项目结束了,所以问题解决了。感谢您的评论。“…

Pascal 生成梯形运动轮廓的位置设定点

我正在为一个运动控制器做一个原型,它将把马达加速到最大速度,以最大速度滑行,然后在正确的位置开始减速,让马达停在目标位置 每个时间步的理论位置将与正交编码器的反馈进行比较,产生的误差将受到PID回路的影响,PID回路的结果将使用PWM表示 我目前有以下代码来确定每个时间步的理论位置: Pos:=0; Vel:=0; Acc:=3; Demand:=300; Max_Vel:=19; AccDist := (Max_vel/Acc * Max_vel) / 2; DecelPoint := D

0到Pascal中的变量

让我们以这段代码为例 If (Random) <> (0 to Variable) then 如果(随机)(0到变量)那么 这很简单,我只是想让它做一些事情,如果随机数与该变量中设置的另一个数字的0不同,我不知道如何做。抱歉,我应该更好地解释,它们都是整数,随机数不能使用,因为它是一条指令,它必须是随机数1。 但答案是 “如果不是(在[0..Variable]中为Random1),则为[0..Variable]” 非常感谢@Lougler。如果

发生Pascal unhandles异常

当我运行此过程时 procedure displaydir; var count:integer; directoryfile: file of tdir; directory:array [1..100] of tdir; begin assignfile(directoryfile, 'directory.bin'); reset(directoryfile); count:=0; repeat read(directory

写整数还是只写Int更好? 我们通常在我们学校使用PASCAL进行编程,但在我个人生活中,我更喜欢新的语言,如Python、C或C++。这三种语言都使用Int数据类型,但Pascal使用Integer。实际上是一样的,但“整数”稍微长一点。是这样写的:

Type int=integer一个“好”还是“坏”的习惯?我认为在Pascal中,这是一个坏习惯,不管人们如何看待C、Cpp或其他语言,也不管int在这些语言中是否好 用一种语言重新定义类型,或者以任何方式试图用Pascal或其他语言创建另一种语言,通常都不是一个好主意。如果你不喜欢Pascal,你就不应该使用它,但是如果你重新定义一些东西,Pascal程序员理解或检查你的代码会更加困难,也会花费更多的时间 说到这里,有些语言(比如Ruby)允许创建非常好的DSL(领域特定语言),如果我理解正

在Pascal中将分数转换为十进制

我正在尝试将分数转换为小数,括号中重复的小数位数最少。应该是这样的: 对于n=100,m=5输出应为20 对于n=184,m=5输出应为36.8 对于n=1,m=3输出应为0。(3) 对于n=11,m=24输出应为0.458(3) 对于n=100,m=7输出应为14。(285714) 我的程序最后一次失败(100/7)。我做错了什么?有人能帮我吗 这是我的代码: Program fraction2decimal(output); var n,m,remainder: integer; begi

Pascal变量不可用

所以我需要用pascal创建一个食品订购系统,我已经完成了这个程序,但是当我订购了2种或更多类型的食品时,这个程序只给我一行食品 program orderfood; var choice,ramen,sashimi,nigi,tei:integer; nramen,nsashimi,nnigi,ntei:integer; Money:Text; count:integer; NigiMoney,RamenMoney,TeiMoney,SashimiMoney,FinalMoney:in

Pascal TStringList.Sort能否返回已排序的索引?

使用TStringList.Sort对自由pascal中的字符串集合进行排序,我需要记住初始顺序。是否有可能返回已排序的索引? 如果没有,如何有效地执行此操作?您可以使用object属性存储项目的原始索引 因此,您可以通过这种方式插入项目 SL.AddObject('Item 1', TObject(SL.Count)); SL.AddObject('Item 2', TObject(SL.Count)); 并在对TStringList排序后检索原始索引 Index := Integer

用Pascal将记录从文本文件读入数组

1.这是我的代码我想在pascal中将一条记录从文本文件读入数组我的程序是关于制作一个酒店助手的,我已经有一个包含酒店数据的文本文件,然后我应该从文本文件中读取它并将其存储在数组中。。但我面临错误103退出代码文件未打开。。。。请帮忙 程序Hotel1输入、输出; 在var块中声明了两个Text类型的变量df和f 您可以使用以下行打开df: assign(df,filename); reset(df); 然后从f中读取,该文件不是您在上面打开的文件,分为几行,例如: Read (f, num)

Pascal 如何将值从字符转换为数字

如何将字母转换成数字。 假设A=5,B=10。 当输入为AB时,我希望输出结果为A+B(510) 我将对字母表中的所有字符执行此操作。我不是pascal专家,但这应该可以: 获取每个字母的序号 n:=ord(s) 然后,您可以将其ascii“A”的Ord减去10,如果您希望10表示A,11表示B,等等 如果您想将字母映射到您自己的数字,您可以使用一个数组,该数组在与顺序位置“A”对应的索引处包含5,在位置B处包含10,等等 然后申请 str() 对每个结果n 然后使用 + 或 要将字符串

Pascal 阵列理货图

我试图根据数组中存储的值创建一个理货图 我知道在Python中可以做到这一点,但是有没有办法在Pascal中做到这一点,将编码量保持在最低限度 var numbers:array [0..9] of integer; Sum,aNumber, count,count2:integer; Average:real=0; begin randomize; // Put 10 Random numbers into an array for count:= 0 to 9 do

Pascal t管道清洁(拉扎勒斯)

请告诉我,TPanel是否有清除TPanel上所有对象的方法 例如,如果将某些标签放置在TPanel(Label.Visible=true),则在应用该方法后,它们变为不可见(Label.Visible:=false)。当然可以使用 Panel.Visible = false; 将面板作为父对象的所有图元都将更改可见性 如果在运行时创建控件,则应使用 myLabel.Parent = Panel; 要销毁TPanel上的所有对象还是只需隐藏 如果您只需要隐藏面板的所有组件,此代码可能会帮助您

任何人都可以更正这个Pascal代码

我需要这个代码的帮助。我不认识帕斯卡。但我必须用pascal编写一个代码。我试过了。但是有一些错误,有人能帮我吗 Program Arrayexamp(output); Var counter,index,input: Integer; A: Array[1..15] of Integer; B: Array[1..15] of Integer; begin For index := 1 to 15 do begin read(input)

pascal中的数组语法

我是java程序员,但现在我开始学习更多关于pascal编程的知识 你能帮助我如何用pascal编写这个java语法吗 A[m] = scan.nextInt(); 程序要求用户输入“大小”,然后输入元素。。。(使用数组) 我已经这样做了: writeln('How many Number you would like to sort:'); readln(size); For m := 1 to size do Begin if m=1 then beg

Pascal初学者程序

这是我编译后得到的警告 Program q2; Var input: integer ; Var repeatvar: char ; Procedure display(input : integer) ; Begin If (input = 9) then Write ('********************************************************') ; Write ('9! = 9 x 8 x 7 x 6 x 5 x 4 x 3

Pascal 拉扎勒斯:如何检查文件是否正在使用?

在尝试访问某个文件之前,我需要检查该文件是否正在使用中。有没有办法在Lazarus环境中执行此操作?使用FileOpen(FileName、fmOpenReadWrite或fmShareExclusive)打开文件并检查结果 更新(感谢肯·怀特的评论)。这不是对您问题的直接回答,因为FileOpen实际上可以访问该文件,但是您不应该执行检查然后打开该文件,否则您将获得竞争条件。您应该打开文件,然后检查打开是否成功 使用FileOpen打开文件并通过其句柄访问文件可能看起来不熟悉。当在try ex

关于自由Pascal的程序

我对Pascal比较陌生,虽然我对该语言有相当的了解,但仍有一些东西我不知道如何实现。我遇到了这个问题,在我自己尝试了几个小时并在互联网上寻找类似的案例后,我没有发现任何东西。我希望这个问题是公平的,因为,老实说,我不知道如何解决这个问题 事情是这样的 我有一个应用程序,它可以动态创建文本框(本例中为文本编辑),并将它们添加到面板中进行显示。问题是,我需要对新创建的元素执行一些过程。我在我的应用程序中添加了一个新过程(仅用于解释): 然后,我继续在表单的“实现”部分下面“开发”我的程序 proc

pascal类使用上的SIGSEV错误

在Lazarus中使用以下类代码时,我在writeln(woman.name,'has born')上得到以下错误;行:“项目我的应用程序引发了异常类‘External SIGSEV’。其他pascal代码似乎工作正常 program project1; uses wincrt; type human = class private health : integer; public name : string; constructor born(

自由Pascal上的虚方法表

我要做的是在没有实例的类中获取字段列表。。。例如: TAClass=class a_: Integer; b_: Integer; constructor (a,b Integer); end; 我无法从VMT获取fieldTable: ovmt: PVmt; ftable: PVmtFieldTable; finfo: PVmtFieldEntry; ovmt:=PVmt(TAClass); ftable := ovmt^.vfieldtable finfo := ftable^.f

带参数的过程:绘制直线(pascal)

我想用pascal做一个程序,计算两个数字的和。我还希望该程序在数字2和(两个数字的)总数之间画一条线。用户必须选择要绘制的线条的大小和符号。这就是我目前的情况: Program oef1; Uses CRT; VAR number1,number2,total:real; procedure drawline(size:integer;symbol:char); VAR i:integer; begin FOR i:= 1 to size do writ

pascal将tedit文本添加到记录

我在将我输入到tedit中的文本添加到记录中时遇到问题。 以下是我目前拥有的代码: procedure TForm7.AddNewQuestionClick(Sender: TObject); var w: integer; QuestDesc, QuestAnsr: string; begin NewQuestID.text:=(GetNextQuestionID); //Increments QuestionID part of record w:=Length

Pascal 帕斯卡的成本和利润

我刚刚开始学习帕斯卡语言,一个新的关于这个论坛2。原谅我的错误,告诉我如何继续。我想在这个算法的最后用Pascal语言写下正确的输出,有人能帮我吗?我收到这个消息:Sitax错误在37行(最后一行),CPY不是预期的 Program MotorsFabric ; var Production, { Production of types of motors} CPM: array [1..12,1..2] of integer;

Pascal 帕斯卡,can';不要让别人工作(初学者)

我试图在我的代码中使用Else语句,但我无法找出正确的sintaxe。这个错误在哪里?如果我添加注释,“Else”行代码编译得很好 Procedure im_dumb; begin If (1 > 2) Then begin AddToDebugJournal('if'); end; else begin AddToDebugJournal('else'); end; end. Program New; begin im_dumb; end. 不要在“else”前面加分号。这是

Pascal 读取MPEG-2时间码

我使用多年前的一些旧代码来计算MPEG-2视频的持续时间。似乎有什么改变了,因为我得到了一个49秒的视频1小时49秒 最后一个GOP头在文件中找到,4字节的时间码提取为“040E2AC0”。在一个32位长字中,它以小尾声形式读作3223981572 然后使用汇编函数bswap eax交换endian。结果是68037312。一些Pascal代码然后像这样提取持续时间 Hours := (TimeCode shr 26) and $1F; Minutes := (TimeCode shr 20

Pascal 如何在数组中使用变量?

我在做一门课程时使用PASCAL,我在做作业时遇到了问题,在我的程序中,我使用了两个数组,它们使用来自用户输入的变量,但当我运行程序时,它出现了一个错误:无法计算常量表达式。阵列的代码为: Var x : integer; s : array[1..x] of real; n : array[1..x] of string[30]; 这里x是用户的输入,数组是否有从1到x的方法?如果x是一个变量,那么它实际上不会工作。所谓的静态数组的范围必须是一

Pascal Can';不要使用break语句。非法表达式错误

在for循环中,我使用break语句在一些匹配之后中断循环。但当我编译代码时,我得到了一个错误: Error: Illegal expression 你能帮我吗?我应该加一些单位吗 for i:=0 to length(carsList)-1 do begin if numer <> carsList[i].numer then begin tmpKw2 := carsList

Pascal中#的用法

问题1:这意味着什么:WriteLn(#$0b) $0b应该是十六进制的0x0b,但是#符号呢 问题2: #5是指五吗?那么#符号是什么意思 非常感谢。数字前面的#表示一个具有指示值的字符(可以接受十进制数字和前面有$的十六进制数字)。所以#5与chr(5)或CtrlE相同。啊,记忆 正如赛义德所说,#x实际上相当于chr(x) 我想补充一点信息。 扩展键,即箭头键,发送零和字符代码: ch := ReadKey; if ch = #0 then begin // extended

幻方FreePascal

程序必须输出正方形是否为幻方 我必须从文件中读出正方形 幻方-所有行、所有列和两条对角线的总和必须相等 程序显示正确答案,但这16个数字必须从文本文件中读取 文本文件如下所示: 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 程序本身: var m:array[1..4,1..4] of integer; i:byte; j:byte; r1,r2,r3,r4,c1,c2,c3,c4,d1,d2:integer; begin for i:=1 to 4 d

输出窗口不显示Pascal(Lazarus编译器)

我试图制作一个小测试程序来计算字母“a”在不使用字符串类型的情况下在文本中出现的次数: program PascalTest; uses WinCrt; var a:integer; ch:char; begin a:=0; writeln('Input text: '); read(ch); while ch <>'.' do // '.' marking the end of text ("eoln" could've been used instead)//

如何在Pascal中使用声音

我试着用不同的“x”值来使用Sound(x)命令,但它只显示一声嘟嘟声,同样的声音 program Sounds; uses crt; begin Sound(1000); Sound(500); Delay(1000); Sound(300); Sound(150); Delay(1000); NoSound; end. 这个代码怎么了 声音在Windows上不再工作 我做了一个可以在某些系统上运行的测试,但他们并不真正关心它 -- Soun

FreePascal-Lazarus的遗传

我正在学习使用Lazarus IDE的免费pascal,我不知道如何以派生形式继承方法 我想要这样的东西: 形式基础或父亲: procedure HelloWorld; begin ShowMessage('Hello World from base form or father'); end; 和派生形式或子项: procedure HelloWorld; begin inherited; ShowMessage('Hello World from derived form or

Pascal 每行中的最大值

我有个问题要问你。我需要在每行中写入最大元素。例如,我的表格: 1 2 3 4 5 6 7 8 9 10 11 12 我想要4,8,12 我试过了,但没有结果: Program Lab2; type A=array[1..5,1..5] of integer; var x:A; i,j,s,max:integer; Begin writeln('Write date:'); for i:=1 to 5 do for j:=1 to 5 do read(x[i,j]); fo

用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; su

OpenVMS Pascal常量用作大小初始值设定项时不是常量

我认为证明这个问题最简单的方法就是举个例子。守则: PROGRAM CONSTANTSTRING(OUTPUT); CONST C_MaxLength = 30; VAR small_string : VARYING[5] OF CHAR VALUE 'alpha'; PROCEDURE LocalProc( localstring : VARYING[C_MaxLength] of CHAR ); BEGIN writeln('localstring le

Pascal-如何使用字符串变量引用类型的字段?

例如,我有一个类型: type_test =record x : Integer; y : Integer; z : Integer; end; var test_var : type_test; test_str : string; 如何使用test_str分配test_var.x、y和z的值?如果像这样的东西能起作用那就太好了: test_str := x; test_var.test_str := 99; writeln(test_var.x);

Pascal 找不到数组声明的错误

上面说 致命:语法错误,为变量lo的预期值,但为[found] 但我真的看不出有什么问题。 我试图更改变量名,但似乎不起作用 procedure reg( index, gen : char; fname, sname, loginname, passwords, pid : string; var lo : array [1..26,1..1025] of bucket ; var

Pascal 为什么将Char变量设置为nil会导致编译失败?

在我下面的例子中,在读取文件的第一个字符之前,我不希望将c分配给任何内容 我尝试将Char变量c设置为nil(c:=nil;),但编译失败。我试过下面这样的空字符串,但仍然不起作用 当我将它设置为一个空的空间时,它会工作,但我必须这样做似乎很奇怪 是否有任何方法可以像在其他语言中一样将Char初始化为null类值 program CSVToMarkdown; {$mode objfpc}{$H+}{$J-} uses Sysutils; var f: File of Ch

如何在Pascal中加快文件读取速度?

我有以下代码: program test; var       testarray: array [1 .. 100000] of longint;       a, b: longint;       counter: longint;       testf: text; begin       assign (testf, 'test.txt');       reset (testf);       for counter: = 1 to 10000000 do    

Pascal 如何从源代码编译P4?

我是一名计算机科学专业的学生,我正在用Pascal学习编程 我发现了一个有趣的Pascal编译器,P4() 为了了解更多关于Pascal的信息,我正在尝试编译他们的源代码,但失败了 在这个网页上,他们说: 用Pascal编译器编译pcom.p和pint.p。显然,您已经有了一个Pascal编译器。这将为您提供一个生成P4代码的Pascal编译器(pcom)和一个运行P4代码的解释器(pint) 要使用编译器,请将Pascal程序作为标准输入运行pcom。这将在标准输出上生成任何诊断,并在称为p

关于选择变量的简单pascal

假设有10个变量,每个变量都有一个由用户指定的数字。 我想让程序只添加大于20的,我该怎么做???因为我不知道你到底想要什么,这里有两个选项: program name; var numbers:array[10]of integer; sum:integer; begin sum:=0; for i:=1 to sizeof(numbers)do begin writeln('Insert a number'); readln(numbers[i])

Pascal 如何查找文本文件?

我使用一个文本文件来存储一些数据,以便以后可以使用它创建报告,但我存储的数据是多行的 1 1 2 2 比如说,如果我想从数字2读取数据,我如何能够在没有1的情况下将变量分配给第三行和第四行(实际数据中的数字将不相同)。Seek()无法工作,因为它是一个文本文件,如果我更改了类型,我将无法使用writeln()。我是否可以不使用记录就这样做 编辑:总共有96行,所有行的位数可能不相同。由于输入文件很小,您可以使用TStringList来处理它。这里有一个例子 名为adrian.txt的示例文本文

Pascal 尝试验证文本文件中的字符时出现循环卡滞

我必须制作一个程序,从文本文件中读取一些“随机”的字母和数字字符串,并检查它们是否满足某些条件,从而使它们成为有效的密码 条件为:-正好有4位数字 -正好有8个字符 -至少有一个大写字母和一个小写字母 程序读取文件并输出有效密码的数量 这是文本文件的格式: “eR68G12a 91jY643ebjp eRty74kLh 24fG92 aj85gt32 dGb9357jKoup2”(单线) 守则: ' 程序Ej23\u版本3; 变量 char1,char2:char; mayus,减号:布尔;//

Pascal 弗里帕斯卡闰年

投入年 产出——是否为闰年 我试过了 Program LeapYear; var Year:Integer begin writeln('Insert year'); readln(Year) if Year MOD 4 = 0 and Year MOD 100 = 0 and not Year MOD 400 = 0 then begin writeln(Year,'is leap year')

Pascal 外部文件写入未完成

当我用Pascal编写外部文件时,外部文件并没有完全写入,即使编码是完美的 procedure save; {Menyimpan data penerbangan ke dalam file eksternal} begin write('> '); write('nama file: '); readln(namafisik); assign(d,namafisik); {$I-}; rewrite(d)

Pascal,读取未知数量的整数

我的问题是如何读取用户在标准输入中输入的一些整数,并将它们放入数组中。但我不知道用户将输入多少个数字,我不能问他这个问题?用户在一行中输入数字。好的,根据评论,演示了三种方法: program readmultiint; {$mode objfpc}{$H+} uses StrUtils; const CMaxValues = 3; var s: string; darr: array of Integer; sarr: array [0..CMa

Pascal readkey命令问题

我使用readkey命令两次。 第一次可以,第二次就不行了。 我希望该程序等待我的按键,但程序会自动结束 代码: 程序窗口1; 使用阴极射线管; 变量x,y:整数; 开始 clrsc; 窗口(1,1,80,25); readkey; //只写窗口边框 对于x:=1到80 do 对于y:=1到25 do 开始 如果(x>=2)和(x=2)和(y 我按了向上箭头键 键盘上的一些键生成所谓的扩展键。箭头键(以及其他键)就是这样的键。它们返回两个字符,而不是一个。第一个字符是ASCII 0,第二个是按下

Pascal 具有无限参数的函数

我不知道是否有可能按照我的意愿去做 我在Pascal中有一个函数,它以某种独占格式在屏幕上打印文本 procedure printLine(line1:string;line2:string;line3:string;line4:string;line5:string); begin writeln('**** ',line1,' ',line2,' ',line3,' ',line4,' ',line5); end; 我想知道是否有一种方法可以使它看起来像writeln,并用

在Pascal中使用TYPE关键字

我试图理解pascal中关键字TYPE的定义。我知道C中的typedef只是给类型起了一个新名称(alasing)。但据我所知,Pascal中的TYPE并不是这样工作的。它将创建一个新的唯一类型 我试图搜索并创建一个简单的示例,显示TYPE的机制。我试图创建一个创建一些类型和函数的示例。之后,每次它都将其中一个类型传递给该函数。它应该失败,因为函数应该只获得一个类型,这证明了这些类型不仅仅是别名。由于我缺乏帕斯卡语法的知识,我每次都失败了 你能分享一个简单的简短程序来证明类型的威力吗 编辑: 我

Pascal 帕斯卡重复ABC直到

有一个密码 program roots; var a, b, c, d,x1, x2,x:real; begin writeln('Введите коэффиценты квадратного уравнения'); write('a='); readln(a); write('b=');readln(b); write('c=');readln(c); begin while a=0 then writeln(''); repeat else un

  1    2   3   4   5   6  ... 下一页 最后一页 共 8 页