新人求救
pascal吧
全部回复
仅看楼主
level 9
老师先生出作业题,[泪]就是不会做,题目没有输入,只有输出,输出是两行:
12345
hello
program homework;
procedure func();
begin
{请下面空白处添加n行代码}
{其他地方将为0分}
{用write,writeln,halt语句0分}
{代码填空区结束}
end;
procedure x();
var
s:string;
begin
s:='12345';
writeln(s);
func();
writeln(s);
end;
begin
x();
end.
运行结果是:
12345
hello
2015年02月24日 06点02分 1
level 9
可以少填吗
2015年02月24日 07点02分 2
填空区多少航
2015年02月24日 07点02分
回复
��xǧҶ����V
:填多少行都可以,但是其它地方一个字母都不可以填啊
2015年02月24日 07点02分
level 13
orz不会
下面有输出s的语句,必须修改s
可s不能直接修改,难道得塞汇编改内存?
2015年02月24日 07点02分 3
你塞汇编吧,反正能完成作业就行,要无所不用其极,管不了那么多了[乖]
2015年02月24日 07点02分
level 12
assert(false,'hello');
[乖]大触好,我是什么都不懂的新人,上面这行是我随便打的,肯定不能运行吧
2015年02月24日 08点02分 4
好厉害
2015年02月24日 11点02分
好像是c或Java的
2015年02月25日 07点02分
@先睡觉😪再说 果然不行啊……
2015年02月25日 08点02分
level 13
LZ已经用汇编搞出来了orz
2015年02月24日 14点02分 7
感谢7楼的汇编大法建议[大拇指]
2015年02月24日 14点02分
level 9
今天你们老师讲完回来告诉我们正解。。。我不认为竞赛会用到汇编
2015年02月25日 03点02分 8
回来了吗,你们老师好强大的感觉
2015年02月25日 04点02分
回复
��xǧҶ����V
:快来看大犇的答案,有人做出来啦[乖]
2015年02月25日 08点02分
level 9
路过
2015年02月25日 04点02分 9
输出是两行: 12345 hello program homework; procedure func(); begin {请下面空白处添加n行代码} {其他地方将为0分} {用write,writeln,halt语句0分} s:='hello'; {代码填空区结束} end
2015年02月25日 04点02分
@圣羊头人八嘎 [乖]原来是这样,感谢
2015年02月25日 05点02分
level 12
如果显示没有变化,就在s:='12345';那句下面先加一句writeln(longint(@s[1])); 用这个数字替换21036629
2015年02月25日 07点02分 10
不会吧,这么吊
2015年02月25日 07点02分
得到数字后,记得擦掉那句writeln
2015年02月25日 07点02分
@82111668_2012 难道现在都不学MOVE了?
2015年02月25日 07点02分
好像只能在begin下面添代码,不能添变量定义来着……
2015年02月25日 08点02分
level 7
除了改变s的值,否则别无他法
2015年02月25日 08点02分 11
level 12
按要求改过了
2015年02月25日 08点02分 12
楼主好厉害,这下我的作业可以完成了[乖]
2015年02月25日 08点02分
你好,move不是移动数组的吗?这是怎么做到的?可以讲接一下原理吗?谢谢。
2015年02月25日 09点02分
回复 风x千叶翔龙V 那串数字表示什么?
2015年02月25日 09点02分
回复
��xǧҶ����V
:move是复制内存块,谁告诉你只是用来移动数组的 ┳_┳
2015年02月25日 09点02分
level 12
program homework;
procedure func();
begin
{请下面空白处添加n行代码}
{其他地方将为0分}
{用write,writeln,halt语句0分}
end;
procedure writeln(var s:string);
begin
system.writeln(s);
s:='hello'
{代码填空区结束}
end;
procedure x();
var
s:string;
begin
s:='12345';
writeln(s);
func();
writeln(s);
end;
begin
x();
end.
[揉脸]看到 @风x千叶翔龙V 说的“把writeln这个过程重新定义”我就真试着重新定义一下,原来真的可以啊……
2015年02月25日 10点02分 15
重载了。。。好强大,老师再也不用担心我的作业不会做了
2015年02月25日 10点02分
我真蠢居然没想到
2015年02月25日 11点02分
但是还是犯规了
2015年02月25日 11点02分
出现了writeln
2015年02月25日 11点02分
level 9
其实。
你可以。
在func中写一个readln;然后在程序停下来的时候,用CE修改器把12345改成hello。这样就没问题了
2015年02月25日 11点02分 16
外挂都出现啦
2015年02月25日 11点02分
level 5
老师?你在哪个
2015年02月26日 01点02分 18
你们老师也出这个题?哪我们同校吗?
2015年02月26日 12点02分
level 12
program homework;
procedure func();
begin
{请下面空白处添加n行代码}
{其他地方将为0分}
{用write,writeln,halt语句0分}
end;
{$macro on}
{$define func:=s:='hello';www}
procedure www();
begin
{代码填空区结束}
end;
procedure x();
var
s:string;
begin
s:='12345';
writeln(s);
func();
writeln(s);
end;
begin
x();
end.
[委屈]我还是不喜欢换个机器就可能失效的代码……所以以上就是我的最终答案
2015年02月26日 12点02分 19
[大拇指]不明觉厉,这个太强大了,就是不太明白中间的{}注释是什么意思
2015年02月26日 12点02分
level 12
你们都好厉害...
我只想到s:=`hello`;
根本没想到修改内存[黑线][汗]
2015年03月01日 08点03分 20
level 7
用pascal最最禁忌方法:打inc
打inc直接无视'{用write,writeln,halt语句0分}'
代码:
program homework;
procedure func();
begin
{请下面空白处添加n行代码}
{其他地方将为0分}
{用write,writeln,halt语句0分}
{$I ***.inc}
{代码填空区结束}
end;
procedure x();
var
s:string;
begin
s:='12345';
writeln(s);
func();
writeln(s);
end;
begin
x();
end.
再在.pas的目录建个***.inc
打入该代码:
writeln('hello');
halt;
就只不过把***.inc里的代码用编译开关将***.inc插入.pas中,并保证.pas没有writeln('hello');halt;
2021年04月18日 03点04分 21
1