我是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缩进一个大型pascal程序
在网上搜索,但没有找到任何有用的东西
发现文件pascal.vim中的最后一次更改是在2011年。这个脚本文件应该相应地缩进一个pascal代码,但是像“begin”、“if”、“var”这样的基本关键字不会在它们之后缩进块代码
执行时
gg=G
例如,要自动缩进所有代码,它就不起作用
我已经设置了选项“自动缩进”、“智能缩进”、“tabstop”、“shiftwidth”。很抱歉耽搁了。我正在做的项目结束了,所以问题解决了。感谢您的评论。“…
我正在为一个运动控制器做一个原型,它将把马达加速到最大速度,以最大速度滑行,然后在正确的位置开始减速,让马达停在目标位置
每个时间步的理论位置将与正交编码器的反馈进行比较,产生的误差将受到PID回路的影响,PID回路的结果将使用PWM表示
我目前有以下代码来确定每个时间步的理论位置:
Pos:=0;
Vel:=0;
Acc:=3;
Demand:=300;
Max_Vel:=19;
AccDist := (Max_vel/Acc * Max_vel) / 2;
DecelPoint := D
让我们以这段代码为例
If (Random) <> (0 to Variable) then
如果(随机)(0到变量)那么
这很简单,我只是想让它做一些事情,如果随机数与该变量中设置的另一个数字的0不同,我不知道如何做。抱歉,我应该更好地解释,它们都是整数,随机数不能使用,因为它是一条指令,它必须是随机数1。
但答案是
“如果不是(在[0..Variable]中为Random1),则为[0..Variable]”
非常感谢@Lougler。如果
当我运行此过程时
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
Type int=integer一个“好”还是“坏”的习惯?我认为在Pascal中,这是一个坏习惯,不管人们如何看待C、Cpp或其他语言,也不管int在这些语言中是否好
用一种语言重新定义类型,或者以任何方式试图用Pascal或其他语言创建另一种语言,通常都不是一个好主意。如果你不喜欢Pascal,你就不应该使用它,但是如果你重新定义一些东西,Pascal程序员理解或检查你的代码会更加困难,也会花费更多的时间
说到这里,有些语言(比如Ruby)允许创建非常好的DSL(领域特定语言),如果我理解正
我正在尝试将分数转换为小数,括号中重复的小数位数最少。应该是这样的:
对于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创建一个食品订购系统,我已经完成了这个程序,但是当我订购了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
使用TStringList.Sort对自由pascal中的字符串集合进行排序,我需要记住初始顺序。是否有可能返回已排序的索引?
如果没有,如何有效地执行此操作?您可以使用object属性存储项目的原始索引
因此,您可以通过这种方式插入项目
SL.AddObject('Item 1', TObject(SL.Count));
SL.AddObject('Item 2', TObject(SL.Count));
并在对TStringList排序后检索原始索引
Index := Integer
1.这是我的代码我想在pascal中将一条记录从文本文件读入数组我的程序是关于制作一个酒店助手的,我已经有一个包含酒店数据的文本文件,然后我应该从文本文件中读取它并将其存储在数组中。。但我面临错误103退出代码文件未打开。。。。请帮忙
程序Hotel1输入、输出;
在var块中声明了两个Text类型的变量df和f
您可以使用以下行打开df:
assign(df,filename);
reset(df);
然后从f中读取,该文件不是您在上面打开的文件,分为几行,例如:
Read (f, num)
如何将字母转换成数字。
假设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
然后使用
+
或
要将字符串
我试图根据数组中存储的值创建一个理货图
我知道在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
请告诉我,TPanel是否有清除TPanel上所有对象的方法
例如,如果将某些标签放置在TPanel(Label.Visible=true),则在应用该方法后,它们变为不可见(Label.Visible:=false)。当然可以使用
Panel.Visible = false;
将面板作为父对象的所有图元都将更改可见性
如果在运行时创建控件,则应使用
myLabel.Parent = Panel;
要销毁TPanel上的所有对象还是只需隐藏
如果您只需要隐藏面板的所有组件,此代码可能会帮助您
我需要这个代码的帮助。我不认识帕斯卡。但我必须用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)
我是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
这是我编译后得到的警告
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
lazarusfile-accessfile-in-use
在尝试访问某个文件之前,我需要检查该文件是否正在使用中。有没有办法在Lazarus环境中执行此操作?使用FileOpen(FileName、fmOpenReadWrite或fmShareExclusive)打开文件并检查结果
更新(感谢肯·怀特的评论)。这不是对您问题的直接回答,因为FileOpen实际上可以访问该文件,但是您不应该执行检查然后打开该文件,否则您将获得竞争条件。您应该打开文件,然后检查打开是否成功
使用FileOpen打开文件并通过其句柄访问文件可能看起来不熟悉。当在try ex
我对Pascal比较陌生,虽然我对该语言有相当的了解,但仍有一些东西我不知道如何实现。我遇到了这个问题,在我自己尝试了几个小时并在互联网上寻找类似的案例后,我没有发现任何东西。我希望这个问题是公平的,因为,老实说,我不知道如何解决这个问题
事情是这样的
我有一个应用程序,它可以动态创建文本框(本例中为文本编辑),并将它们添加到面板中进行显示。问题是,我需要对新创建的元素执行一些过程。我在我的应用程序中添加了一个新过程(仅用于解释):
然后,我继续在表单的“实现”部分下面“开发”我的程序
proc
在Lazarus中使用以下类代码时,我在writeln(woman.name,'has born')上得到以下错误;行:“项目我的应用程序引发了异常类‘External SIGSEV’。其他pascal代码似乎工作正常
program project1;
uses wincrt;
type human = class
private
health : integer;
public
name : string;
constructor born(
我要做的是在没有实例的类中获取字段列表。。。例如:
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做一个程序,计算两个数字的和。我还希望该程序在数字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
我在将我输入到tedit中的文本添加到记录中时遇到问题。
以下是我目前拥有的代码:
procedure TForm7.AddNewQuestionClick(Sender: TObject);
var
w: integer;
QuestDesc, QuestAnsr: string;
begin
NewQuestID.text:=(GetNextQuestionID); //Increments QuestionID part of record
w:=Length
我刚刚开始学习帕斯卡语言,一个新的关于这个论坛2。原谅我的错误,告诉我如何继续。我想在这个算法的最后用Pascal语言写下正确的输出,有人能帮我吗?我收到这个消息:Sitax错误在37行(最后一行),CPY不是预期的
Program MotorsFabric ;
var
Production, { Production of types of motors}
CPM: array [1..12,1..2] of integer;
我试图在我的代码中使用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”前面加分号。这是
我使用多年前的一些旧代码来计算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,我在做作业时遇到了问题,在我的程序中,我使用了两个数组,它们使用来自用户输入的变量,但当我运行程序时,它出现了一个错误:无法计算常量表达式。阵列的代码为:
Var
x : integer;
s : array[1..x] of real;
n : array[1..x] of string[30];
这里x是用户的输入,数组是否有从1到x的方法?如果x是一个变量,那么它实际上不会工作。所谓的静态数组的范围必须是一
在for循环中,我使用break语句在一些匹配之后中断循环。但当我编译代码时,我得到了一个错误:
Error: Illegal expression
你能帮我吗?我应该加一些单位吗
for i:=0 to length(carsList)-1 do
begin
if numer <> carsList[i].numer then
begin
tmpKw2 := carsList
问题1:这意味着什么:WriteLn(#$0b)
$0b应该是十六进制的0x0b,但是#符号呢
问题2:
#5是指五吗?那么#符号是什么意思
非常感谢。数字前面的#表示一个具有指示值的字符(可以接受十进制数字和前面有$的十六进制数字)。所以#5与chr(5)或CtrlE相同。啊,记忆
正如赛义德所说,#x实际上相当于chr(x)
我想补充一点信息。
扩展键,即箭头键,发送零和字符代码:
ch := ReadKey;
if ch = #0 then
begin // extended
标签: Pascal
freepascalmagic-square
程序必须输出正方形是否为幻方
我必须从文件中读出正方形
幻方-所有行、所有列和两条对角线的总和必须相等
程序显示正确答案,但这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
我试图制作一个小测试程序来计算字母“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)//
我试着用不同的“x”值来使用Sound(x)命令,但它只显示一声嘟嘟声,同样的声音
program Sounds;
uses
crt;
begin
Sound(1000);
Sound(500);
Delay(1000);
Sound(300);
Sound(150);
Delay(1000);
NoSound;
end.
这个代码怎么了 声音在Windows上不再工作
我做了一个可以在某些系统上运行的测试,但他们并不真正关心它
--
Soun
我正在学习使用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
我有个问题要问你。我需要在每行中写入最大元素。例如,我的表格:
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
freepascalpascalscriptturbo-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
我认为证明这个问题最简单的方法就是举个例子。守则:
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
例如,我有一个类型:
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);
上面说
致命:语法错误,为变量lo的预期值,但为[found]
但我真的看不出有什么问题。
我试图更改变量名,但似乎不起作用
procedure reg( index, gen : char;
fname, sname, loginname, passwords, pid : string;
var lo : array [1..26,1..1025] of bucket ;
var
在我下面的例子中,在读取文件的第一个字符之前,我不希望将c分配给任何内容
我尝试将Char变量c设置为nil(c:=nil;),但编译失败。我试过下面这样的空字符串,但仍然不起作用
当我将它设置为一个空的空间时,它会工作,但我必须这样做似乎很奇怪
是否有任何方法可以像在其他语言中一样将Char初始化为null类值
program CSVToMarkdown;
{$mode objfpc}{$H+}{$J-}
uses
Sysutils;
var
f: File of Ch
我有以下代码:
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学习编程
我发现了一个有趣的Pascal编译器,P4()
为了了解更多关于Pascal的信息,我正在尝试编译他们的源代码,但失败了
在这个网页上,他们说:
用Pascal编译器编译pcom.p和pint.p。显然,您已经有了一个Pascal编译器。这将为您提供一个生成P4代码的Pascal编译器(pcom)和一个运行P4代码的解释器(pint)
要使用编译器,请将Pascal程序作为标准输入运行pcom。这将在标准输出上生成任何诊断,并在称为p
假设有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])
我使用一个文本文件来存储一些数据,以便以后可以使用它创建报告,但我存储的数据是多行的
1
1
2
2
比如说,如果我想从数字2读取数据,我如何能够在没有1的情况下将变量分配给第三行和第四行(实际数据中的数字将不相同)。Seek()无法工作,因为它是一个文本文件,如果我更改了类型,我将无法使用writeln()。我是否可以不使用记录就这样做
编辑:总共有96行,所有行的位数可能不相同。由于输入文件很小,您可以使用TStringList来处理它。这里有一个例子
名为adrian.txt的示例文本文
我必须制作一个程序,从文本文件中读取一些“随机”的字母和数字字符串,并检查它们是否满足某些条件,从而使它们成为有效的密码
条件为:-正好有4位数字
-正好有8个字符
-至少有一个大写字母和一个小写字母
程序读取文件并输出有效密码的数量
这是文本文件的格式:
“eR68G12a 91jY643ebjp eRty74kLh 24fG92 aj85gt32 dGb9357jKoup2”(单线)
守则:
'
程序Ej23\u版本3;
变量
char1,char2:char;
mayus,减号:布尔;//
标签: Pascal
freepascalleap-year
投入年
产出——是否为闰年
我试过了
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
freepascallazarusprocedural-programmingturbo-pascal
当我用Pascal编写外部文件时,外部文件并没有完全写入,即使编码是完美的
procedure save;
{Menyimpan data penerbangan ke dalam file eksternal}
begin
write('> ');
write('nama file: ');
readln(namafisik);
assign(d,namafisik);
{$I-};
rewrite(d)
我的问题是如何读取用户在标准输入中输入的一些整数,并将它们放入数组中。但我不知道用户将输入多少个数字,我不能问他这个问题?用户在一行中输入数字。好的,根据评论,演示了三种方法:
program readmultiint;
{$mode objfpc}{$H+}
uses
StrUtils;
const
CMaxValues = 3;
var
s: string;
darr: array of Integer;
sarr: array [0..CMa
我使用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中有一个函数,它以某种独占格式在屏幕上打印文本
procedure printLine(line1:string;line2:string;line3:string;line4:string;line5:string);
begin
writeln('**** ',line1,' ',line2,' ',line3,' ',line4,' ',line5);
end;
我想知道是否有一种方法可以使它看起来像writeln,并用
我试图理解pascal中关键字TYPE的定义。我知道C中的typedef只是给类型起了一个新名称(alasing)。但据我所知,Pascal中的TYPE并不是这样工作的。它将创建一个新的唯一类型
我试图搜索并创建一个简单的示例,显示TYPE的机制。我试图创建一个创建一些类型和函数的示例。之后,每次它都将其中一个类型传递给该函数。它应该失败,因为函数应该只获得一个类型,这证明了这些类型不仅仅是别名。由于我缺乏帕斯卡语法的知识,我每次都失败了
你能分享一个简单的简短程序来证明类型的威力吗
编辑:
我
有一个密码
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 页