Question>这是pascal吗?
PROCEDURE AddCode (node: PNode; code: INTEGER; VAR word: Str255);
VAR
branch: INTEGER;
BEGIN
IF LENGTH (word) = 0 THEN
BEGIN
IF node^.leaf OR (node^.branch [0] <> NIL) OR
(node^.branch [1] <> NIL) THEN
BEGIN
WR
这是我最近在处理的一个简单的问题..在Pascal中,这段代码的替代方案是什么?有没有可能用类似的语法来实现?
for (i=1; i<11; i++) {
j= x*10;
x= x+1;
}
问题是,在for循环中,我基本上为同一行上的i和一个操作(增量i)分配了所需的范围。
有了Pascal,我只能
FOR i:=1 to 10 DO
但是,一旦进入循环,我就无法控制循环条件(i)中涉及的变量。这会产生不同的结果。
我目前正在研究快速排序算法的伪代码。在某些行上,它是这样写的:
i := left
:=代表什么?是+=还是一个普通的=?
仅供参考:这是完整的伪代码(德语):
funktion teile(links, rechts)
i := links
// Starte mit j links vom Pivotelement
j := rechts - 1
pivot := daten[rechts]
wiederhole
// Suche von links ein Element, welches größer als das Pivotelement ist
我们知道,在C语言中,如果有一个数组
int data[100];
然后,在gdb中,我们可以通过键入以下命令将data4打印到data14:
print *(data+4)@11
所以,问题是:当我们用Pascal语言编程时,我们可能会有一个数组:
var
data: array[0..100] of Integer;
当我们在gdb中调试它时,如何将data4的值输出到data14
非常感谢。
为了引入类似C#/Java语言的语法,通过预处理命令重新定义C++访问修饰符可能会产生什么影响?
#include <iostream>
// The access modifiers are redefined here.
#define public public:
#define protected protected:
#define private private:
class Halo
{
public Halo(int xx)
{
x = xx;
}
public int getX()
{
我对帕斯卡有意见。
在Javascript中我可以这样做:
window.b = 'hello';
var a = 'b';
/* And I can get variable b having only variable a */
console.log(window[a]); // output = hello
如何在Pascal中获得相同的结果?
感谢您提前回答:)
今天下午我一直在Inno Setup中编写代码,我读到了一些,上面说exit是用来退出循环的。我尝试在我的代码中使用它,但是它退出了函数。例如,在此函数中,永远不会显示消息框:
function NextButtonClick(CurPageID: Integer): Boolean;
var i: Integer;
begin
Result := True;
for i := 0 to 4 do
begin
exit
end;
MsgBox('test',mbInformation,MB_OK);
end;
我做了更
在Delphi (或任何Pascal)中,您可以声明子范围类型,因此,如果尝试从外部允许的范围中赋值,则会得到编译器错误。
var
i: 1..8;
begin
i := 8; // i := 9 would not work
这能在C#中完成吗?我可以想象创建自定义结构,类似于SubrangeType<byte>,但我正在寻找内置的东西。
编辑:xanatos和DavidHeffernan的评论给了我更具体的问题。Delphi中的子范围检查在运行时和编译时都可用.在C#中使用自定义结构可以在运行时实现该功能,但是否可以在C#中实现对编译时的检查?
Paul Graham写了这个,但对我来说,这看起来一点也不特别或明确。
ISTM认为编程语言由两件事定义:它的编译器或解释器,它通过fiat定义语言的语法和语义;以及它的标准库,它在很大程度上定义了熟练用户在用该语言编写代码时将使用的习惯用法和技术。
除了一些特殊的例外(例如,.NET家族的非C#成员),大多数语言的标准库都是用这种语言编写的,原因有两个:因为它将共享相同的语法定义、函数调用约定和该语言的通用“外观”,以及因为可能为编程语言编写标准库的人是它的用户,特别是它的设计者。所以没有什么特别的;这是非常标准的。
再说一次,一种语言的编译器本身并没有什么特别或不寻常的地方。C编译器是用