作业帮 > 体裁作文 > 教育资讯

编程pascal,小作文

来源:学生作业帮助网 编辑:作业帮 时间:2024/09/24 19:22:00 体裁作文
编程pascal,小作文体裁作文

篇一:Pascal编程及答案

Pascal编程及答案

一、乘车费用(100分)(存盘程序名:T1)

星期天上午小明乘出租车去本市的外婆家。出租车计价方案为:2公里以内起步价是6元,超过2公里之后按1.8元/公里计价,超过10公里之后在1.8元/公里的基础上加价50%,另外,停车等候则按时间计费:1元/3分(注:不满3分钟不计费)。已知:小明到外婆家路程为N公里,中间停车等候时间总共M分钟,请计算小明到外婆家的出租车费用是多少元?

输入:N M(N,M都是整数)

输出:一个实数(表示车费,精确到0.1元)

例如:输入:8 7

输出:18.8

参考答案:

---------------------------------------

Program t1;

var n,m:integer;

s,zj:real;

Begin

if n>10 then s:=6+(n-2)*1.8+n*1.8*0.5

else if n>2 then s:=6+(n-2)*1.8

else if n<=2 then s:=6;

zj:=s+m div 3;

writeln(zj:5:1);

End.

二、报数游戏(100分)(存盘程序名:T2)

小明和小红一起玩报数游戏:小明按1-A1循环报数,小红按1-A2循环报数。两人同时开始,并以同样的速度报数,当两人都报了N个数时,统计出两人同时报相同数的次数,先算对者获胜。请你算出正确答案,当他俩的裁判。 输入:N(N<=100)

A1 A2 (A1、A2取值范围:2..10)

输出:一个整数

例如:输入:10

2 3

输出:4

参考答案:

program t2;

var t,n,a1,a2,s,aa1,aa2:integer;

begin

writeln('shu ru n');

readln(n);

writeln('shu ru a1 a2');

readln(a1,a2);

t:=0;s:=1; aa1:=1; aa2:=1;

repeat

t:=t+1;

aa1:=aa1+1; if aa1>a1 then aa1:=1;

aa2:=aa2+1; if aa2>a2 then aa2:=1;

if aa1=aa2 then s:=s+1;

until t=n;

writeln(s);

end.

三、单词恢复(100分)(存盘程序名:T3)

小明已学会了N个英语单词,妈妈常帮助他加强记忆:她从这N个单词中挑出一个,并将该单词中的字母顺序变乱,例如:boy变为ybo,再让小明恢复单词的原样。你能编程完成小的任务吗?

输入:N(1<=N<=50)

单词1 单词2 …… 单词N(单词中字母都是小写,单词之间以一个空格分隔)

一个变乱字母顺序的单词

输出:恢复的正确的单词(注:若正确单词不止一个,则每行输出一个单词)

例如:输入:4

School boy student tree

ybo

输出:boy

参考答案:

program t3;

var n,i,j,k:integer;

a:array[1..50]of string;

s,b:string;

flag:boolean;

begin

readln(n);

readln(s);

readln(b);

j:=1;

repeat

i:=pos(' ',s); if i<>0 then begin

a[j]:=copy(s,1,i-1);

j:=j+1;

delete(s,1,i);

end

else begin

a[j]:=s; s:=' '; end;

until s=' ';

{ for j:= 1 to n do

write(a[j]);

end.}

k:=length(b); flag:=false;

for j:=1 to n do begin

for i:=1 to k do

if pos(b[i],a[j])<>0 then flag:=true else break; if flag then begin writeln(a[j]); break; end; end;

end.

四、摘红苹果(100分)(存盘程序名:T4)

小明爷爷家有棵苹果树,树上高低不一的长了N个苹果。一天,M个小朋友到爷爷家做客,爷爷说:你们每人最多可以摘两个苹果,而且只许伸手摘,不允许借助其它工具,摘下的苹果大家分享。由于小朋友的身高参差不齐,怎样才能使他们摘的苹果总数最多呢?请你计算机小朋友们最多能摘到多少个苹果?

输入:N M(N<=100,M<=20)

N个整数(以空格相隔),分别表示每个苹果的高度

M个整数(以空格相隔),分别表示每个小朋友伸手能达到的高度。

篇二:pascal编程

编程pascal 小作文

第一章 简单程序............................................................................................................ 1

第一节 Pascal 程序结构和基本语句 ......................................................................... 2

第二节 顺序结构程序与基本数据类型 ...................................................................... 6

第二章 分支程序............................................................................................................ 9

第一节 条件语句与复合语句 .................................................................................... 9

第二节 情况语句与算术标准函数 ........................................................................... 11

第三章 循环程序.......................................................................................................... 14

第一节 for 循环 .................................................................................................... 14

第二节 repeat 循环 ............................................................................................... 20

第三节 While 循环 ............................................................................................... 24

第四章 函数与过程 ...................................................................................................... 29

第一节 函数.......................................................................................................... 29

第二节 自定义过程 ............................................................................................... 32

第五章 Pascal的自定义数据类型 ................................................................................ 37

第一节 数组与子界类型 ........................................................................................ 37

第二节 二维数组与枚举类型 ................................................................................. 44

第三节 集合类型................................................................................................... 52

第四节 记录类型和文件类型 ................................................................................. 56

第五节 指针类型与动态数据结构 ........................................................................... 64

第六章 程序设计与基本算法 .......................................................................................... 69

第一节 递推与递归算法 ........................................................................................ 69

第二节 回溯算法................................................................................................... 76

第七章 数据结构及其应用............................................................................................ 81

第一节 线性表 ...................................................................................................... 81

第二节 队列.......................................................................................................... 85

第三节 栈 ............................................................................................................. 88

第四节 数组.......................................................................................................... 91

第八章 搜索 .................................................................................................................. 94

第一节 深度优先搜索............................................................................................ 94

第二节 广度优先搜索...........................................................................................105

第九章 其他常用知识和算法 .........................................................................................108

第一节 图论及其基本算法....................................................................................108

第二节 动态规划..................................................................................................114 备注 注意事项及跟C的差别 .....................................................................................118

第一章 简单程序

无论做任何事情,都要有一定的方式方法与处理步骤。计算机程序设计比日常生活中的事务处理更具有严谨性、规范性、可行性。为了使计算机有效地解决某些问题,须将处理步

骤编排好,用计算机语言组成“序列”,让计算机自动识别并执行这个用计算机语言组成的“序列”,完成预定的任务。将处理问题的步骤编排好,用计算机语言组成序列,也就是常说的编写程序。在Pascal语言中,执行每条语句都是由计算机完成相应的操作。编写Pascal程序,是利用Pascal语句的功能来实现和达到预定的处理要求。“千里之行,始于足下”,我们从简单程序学起,逐步了解和掌握怎样编写程序。

第一节 Pascal 程序结构和基本语句

在未系统学习Pascal语言之前,暂且绕过那些繁琐的语法规则细节,通过下面的简单例题,可以速成掌握Pascal程序的基本组成和基本语句的用法,让初学者直接模仿学习编简单程序。

[例1.1]编程在屏幕上显示“Hello World!”。

Pascal程序:

Program ex11;

Begin

Writeln(‘Hello World!’);

ReadLn;

End.

这个简单样例程序,希望大家的程序设计学习能有一个良好的开端。程序中的Writeln是一个输出语句,它能命令计算机在屏幕上输出相应的内容,而紧跟Writeln语句后是一对圆括号,其中用单引号引起的部分将被原原本本地显示出来。

[例1.2]已知一辆自行车的售价是300元,请编程计算a辆自行车的总价是多少?

解:若总售价用m来表示,则这个问题可分为以下几步处理:

= 1 \* GB3 ①从键盘输入自行车的数目a;

= 2 \* GB3 ②用公式 m=300*a 计算总售价;

= 3 \* GB3 ③输出计算结果。

Pascal程序:

Program Ex12; {程序首部}

Var a,m : integer; {说明部分}

Begin {语句部分}

Write(‘a=’);

ReadLn(a); {输入自行车数目}

M := 300*a; {计算总售价}

Writeln(‘M=’,m); {输出总售价}

ReadLn; {等待输入回车键}

End.

此题程序结构完整,从中可看出一个Pascal 程序由三部分组成:

(1)程序首部

由保留字Program开头,后面跟一个程序名(如:Exl1);其格式为:

Program 程序名;

程序名由用户自己取,它的第一个字符必须是英文字母,其后的字符只能是字母或数字和下划线组成,程序名中不能出现运算符、标点符和空格。

(2)说明部分

程序中所用的常量、变量,或类型、及过程与自定义函数,需在使用之前预先说明,定义数据的属性(类型)。[例1.2] 程序中 Var S,R,C: Real; 是变量说明,此处说明S,R,C三个变量均为实数类型变量。只有被说明为某一类型的变量,在程序中才能将与该变量同类型的数值赋给该变量。变量说明的格式为:

Var 变量表:类型;

(3)语句部分

指由保留字 Begin (开始)至 End. (结尾)之间的语句系列,是解决问题的具体处理步骤,也是程序的执行部分。

Pascal程序不管是哪部分,每句末尾都必须有分号(;),但允许最接近 End 的那个语句末尾的分号省略;程序结束的End末尾必须有圆点(. ),是整个程序的结束标志。

程序中花括号“{ }”之间的部分为注释部分。

Pascal程序结构可归纳用如下来表示:

Program 程序名; 程序首部

标号说明; (Label)

常量说明; (Const) 说明部分

类型说明; (Type)

变量说明; (Var)

过程或函数说明;

Begin 程序体 (主程序)

语句系列; 语句部分

End.

把处理问题的步骤编成能从上到下顺序执行的程序,是简单程序的基本特征。再来分析下面两道例题的Pascal程序结构和继续学习基本语句。

[例1.3]编程计算半径为R的圆的面积和周长。

解:这是一个简单问题,按数学方法可分以下几步进行处理:

① 从键盘输入半径的值R; { 要求告诉圆的半径R }

② 用公式 S=πR2 计算圆面积;

③ 用公式 C=2πR 计算圆周长;

④ 输出计算结果。

Pascal程序:

Program Ex13; {程序首部 }

Var R,S,C: Real; {说明部分 }

Begin {语句部分 }

Write ('R=?');

Readln(R); {输入半径 }

S:=Pi*R*R; {圆面积公式S=πR2}

C:=2*Pi*R; {圆周长公式C=2πR}

Writeln('S=',S); {输出结果 }

Writeln('C=',C);

Readln {等待输入回车键}

End.

程序中Pi是Pascal提供的标准函数,它返回圆周率的近似值:3.1415926…。

(:=)是赋值符号,赋值语句的格式为:

变量:=表达式;

赋值语句的作用是将:=右边表达式的值记录到左边的变量中。

Writeln是输出语句,输出语句有三种格式:

① Write (输出项1,输出项2) ; {执行输出后光标不换行}

② Writeln (输出项1,输出项2) ; {执行输出后光标换到下一行}

③ Writeln {仅输出空白且光标换到下一行}

Writeln语句后面的圆括号以内部分均为输出项,可以是多项,各项间用逗号分隔; 对单引号里的内容按照引号内的原样(字符)输出显示。如果输出项是表达式,则只输出表达式的值,而不是表达式本身。

[例1.4] 输出两个自然数相除的商和余数。

解:设被除数、除数、商和余数,分别为A,B,C,D,均为变量,且都是整数类型。题中未给出具体的自然数A、B,可采用键盘输入方式。

① 给出提示,从键盘输入a, b;

② ③ ④ ⑤ 显示两数相除的数学形式; 求出a除以b的商c; 求出a除以b的余数d; 紧接等式后面输出显示商和余数。

Pascal程序:

Program Ex14;

Var a,b,c,d : integer;

Begin

Write('INPUT A,B:'); {给出提示信息}

Readln(a,b); {输入a,b}

Writeln; {输出一空行}

Write(a,'/',b,'='); {输出等式之后不换行}

c:=a div b; {整除运算,取商的整数部分}

d:=a mod b; {相除求余运算,取商的余数部分}

Writeln(C,'?',d); {输出后自动换行 }

Readln {等待输入回车键 }

End.

执行本程序中第一个Write语句,输出其引号以内的一串提示信息,是给紧接着的输入语句提供明确的提示(要求),有“一目了然,人机对话”之效果。

Readln是一个特殊的输入语句,要求输入一个回车(换行)才能往下执行。

Readln是输入语句,它的一般格式为:

① Read (变量1,变量2);

② Readln (变量1,变量2);

③ Readln

前两种格式均要从键盘给变量输入数据,输入时,所键入的数据之间以空格为分隔,以回车为输入结束。若多输入了数据(即数据个数超过变量个数),Read语句读完数据之后,能让后续的读语句接着读取多下来的数据;而Readln 语句对本行多输入的数据不能让后续语句接着读取多下来的数据。为了防止多输入的数据影响下一个输入语句读取数据,建议尽量使用Readln语句输入数据。第三种格式不需输入数据,只需按入一个回车键。

322[例1.5]自然数的立方可以表示为两个整数的平方之差,比如4=10-6,请输出自然数1996

32的这种表示形式。(这里的4用自乘三次的形式4*4*4表示;10也用自乘二次的形式10*10

表示)

解:此题没有现成的计算公式能直接利用,但可以自行推出处理方法或构建适当的运算公式,按着构想的处理方案编排出各步骤。

设这个自然数为N,两个平方数分别为X,Y, 将问题表示为求 N=X—Y

① 先找出X的值,仔细观察题中的示例,用数学方法归纳可得出X=N*(N+1)/2;(构成本题可用的计算公式)

② 再仔细观察,发现Y值比X小一个N值,即 Y=X—N;

③ 输出等式 N=X—Y 或N*N*N=X*X—Y*Y

Pascal程序:

Program Ex15;

Const N=1996; {常量说明 }

Var X,Y: Longint; {变量说明,此题计算中的数值较大,用长整型 }

Begin

X:=N*(N+1) div 2; { div 是整除运算 }

Y:=X-N;

Writeln(N,'*',N,'*', N,'=', X,'*', X,'—',Y,'*',Y); { 输出结果 }

Readln

End.

本程序中N是常量,X,Y是变量,为长整数类型(Longint); 程序中的div 是整除运算,其结果只取商的整数部分;

2[例1.6] 求一元二次方程x+3x+2=0的两个实数根。

解:方程的系数是常量,分别用a,b,c表示,可运用数学上现成的求根公式求方程的根,采取如下方法:

① 先求出d=b2-4ac;(求根公式中需用开方运算的那部分)

② 再用求根公式算出x1,x2的值。(x1,x2 = ? )

③ 输出x1,x2.

Pascal程序:

program Ex16;

Const a=1; {常量说明 }

b=3;

c=2; {a,b,c表示方程系数}

Var d : integer; {d为整型变量}

X1,X2: Real; {X1,X2为实型变量}

Begin

322322

篇三:PASCAL图形操作教程

基本几何图形的绘制

的自编程序中。

Turbo Pascal图形编程教程

Pascal是一款有很强图形功能的开发工具,它可以编制各种图形窗口,并且听说还支持鼠标.但是时过境迁,

在vb,vc一统天下的今天,关于Pascal图形操作的书已经像古董一样难于寻找了,我现在将Tp 7.0的Help文件

中的一些有关图形操作的过程与函数整理了一下,并自己写了一些例子,加入了一些自己的看法,便得到了这篇

教程.其中如有错误,望各位不吝赐教。阅读之前希望大家做好准备,比如:找一些食品放在跟前,因为你可能

因为钻研一个函数而耗费大量的时间,还有你可能因为初始化无法完成而大动肝火。

第一章 使用Pascal进行图形操作前的准备

在 Turbo Pascal 中有一个 CRT 单元及一个 GRAPH 单元,简单的说 crt 单元是为了实现 字符的显示与处理,另外的那个称为 GRAPH 单元是专门用来处理图形的。我们看到的有关图形的程序往往都要用到。所以若是要在 Turbo Pascal 中实现图形操作,就必须要调用 CRT 单元及GRAPH 单元。那么怎么样来调用 CRT 及 GRAPH 单元呢?现在线来介绍一下单元调用语句:USES

USES的语法:

USES 单元表识符,……,单元表识符;

说明:

扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件。

位置:变量说明var之前。

讲到这里,我还是要顺便提一下什么是单元?是这样的:我们在编程序的时候,要用到 procedure 或者 function ,中文名称一个是过程另一个是函数。做不同的程序时,往往要用到一些相同的过程或者相同的函数。如果统统放到程序中,程序会硕大无比,比例与调试与编译,并且在过去 “惜kb如金”的年代里,这样的程序也很浪费。于是,简单的讲,人们把它们做成“包”--我 们称之为单元。一来,免去很多重复的痛苦,大家共享代码也很简单,另外,很多不愿意让别人看到源程序的人也很乐于如此----这只是我的杜撰。生产 pascal 语言的公司也提供一些做好的单元,放在安装盘上方便实用。 crt ,graph 即使如此,还有 dos ,system 等等。

第二章 Pascal图形模式的初始化及退出

1.初始化

Pascal的图形操作在使用之前必须先进行初始化。如果说你编写图形程序中出现问题,是有八九十卡在这里了。 这也是非常令我头疼的问题。 用过程

initgraph(GraphDriver,GraphMode,PathToDriver)

其中 GraphDriver , GraphMode 为整形变量, PathToDriver为字符串变量, GraphDriver为图形驱动器,GraphMode为图形模式 , PathToDriver指定的路径名中建筑图形驱动程序(以.BGI为后缀)。initgraph使用方法见下例:

program t001 (input,output);

uses crt,graph;

var

gd:gm:integer; {定义GraphDriver,GraphMode变量}

begin

gd:=detect;

initgraph(gd,gm,''); {调用initgraph过程,PathToDriver缺省则表示在当前目录中寻找

《-------这个很重要,一般也可以写成 initgraph(gd,gm,'c:\tp\bgi'); 当然

如果你是如此安装的话。}

bar(100,100,200,200); {画一个以(100,100),(200,200)为顶点的矩形,这是一个标准过程,

你在后面还会看到一个名为bar3d的东东,那个是画立体矩形的}

delay(1000); {将此图形保留一秒,10000就是10秒,依此类推}

end.

2.退出

Closegraph过程

功能:退出图形模式.

在图形模式下如果使用 write 等等文本输出可能会出问题---比如无法看到等等。好像还可能引起显示上的问题,反正养成一个好习惯也没什么不好的。这里有一个技巧,当你发现无论如何调整都无法显示图形时,你可以调用自带的例子,用来测试,看看是否是程序本身的问题。

注意,这里有一个不属于图形的,但是非常容易遇到的问题。前面我们说过,在图形编程使用 graph 单元的时候,我们也常常会使用crt单元,这就有一个问题:crt 单元在主频高的机器上无法正常运行。会出现 200 号错误!!!请下载补丁,在我们的网站上就有。还有一种情况,就是出了问题没有提示!表现是运行程序什么反应也没有。如果你出现这种情况,首先检查程序,如果没有问题,非常有可能使这种情况,也请下载补丁!据报告奔腾180以上的机器具都不同程度存在这种问题!

第三章 基本几何图形的绘制

画直线:

1.Line过程

描述:procedure Line(x1, y1, x2, y2: Integer);两点确定一直线.够简单吧!

2.Lineto过程

描述:procedure LineTo(X, Y: Integer);从当前点项目标点(x,y)作直线.

画圆:

1.Circle过程

功能:以(X,Y)为圆心、Radius为半画一圆。

描述:procedure Circle(X,Y:Integer;Radius:Word);

示例:Circle(100,100,200) {画一个以(100,100)为圆心,200为半径的圆}

画椭圆:

1. Ellipse过程

功能:画一个以(X,Y)为中心,XRadius和YRadius为半轴,StAngle和EndAngle为始角和终角的椭圆弧。

描述:procedure Ellipse(X,Y:Integer;StAngle,EndAngle:Word;XRadius,YRadius:Word); 说明:角度沿逆时针方向,单位是度。0度指向东。

画圆弧:

篇四:Pascal语言编程基础程序

Pascal语言编程基础程序

(常州市)

十进制转二进制 var i,n,j:longint;

a:array[1..100] of longint; begin

readln(n); i:=1;

while n<>0 do begin

a[i]:=n mod 2; i:=i+1; n:=n div 2; end; write('Bin:');

for j:= i-1 downto 1 do write(a[j]) end. 数组元素删除

var a:array[1..10]of longint; i,t,x:longint; begin read(x);

for i:=1 to 10 do a[i]:=2*i-1; t:=a[x];

for i:=x+1 to 10 do a[i-1]:=a[i]; for i:=1 to 9 do write(a[i]:4); end.

数组元素删除2

var a:array[1..11]of longint; i:longint; begin

for i:=1 to 10 do a[i]:=i; a[11]:=a[1]; for i:= 1 to 10 do a[i]:=a[i+1]; for i:= 1 to 10 do write(a[i]:4);

end.

数组元素的移动

var a:array[1..10] of longint; s,n,i,x,t:longint; begin

readln(n); for i:=1 to n do read(a[i]); readln(x); s:=a[x];

for i:=x+1 to n do a[i-1]:=a[i]; for i:=1 to n-1 do write(a[i],' '); write(s); end.

排除所有异形基因

var a:array[1..100] of longint; n,g,j,i,wz:longint; begin

readln(n);

for i:=1 to n do read(a[i]); g:=0;

for i:=1 to n do if sqr(a[i]) mod 7=1 then begin wz:=i;

for j:=wz+1 to n do a[j-1]:=a[j]; g:=g+1 end; write(a[1]); for i:=2 to n-g do write(' ',a[i]); writeln; end.

排除第一个异形基因

var a:array[1..100] of longint; n,i,wz:longint; begin

readln(n);

for i:=1 to n do read(a[i]); for i:=1 to n do if sqr(a[i]) mod 7=1

then begin wz:=i; break; end; for i:=wz+1 to n do a[i-1]:=a[i]; write(a[1]); for i:=2 to n-1 do write(' ',a[i]); writeln; end. 排除所有 var i,n,j,s:longint;

a:array[0..100] of longint; begin

readln(n); i:=0;

while n<>0 do begin

a[i]:=n mod 2; i:=i+1; n:=n div 2; end; s:=0;

for j:=i-1 downto 0 do begin

if (s=0)and(a[j]=1) then begin write(j);s:=1; end

else if (a[j]=1) then write(' ',j); end; writeln; end. 排名

var a:array[1..100] of real; xh:array[1..100]of longint; n,j,i,k:longint; t:real; begin read(n);

for i:=1 to n do read(a[i]); for i:=1 to n do begin for j:=1 to n-1 do

if a[j]

end; end;

for i:=1 to n do writeln('NO',i,':',xh[i ]); end. 排队迟到

var n,x,y,wz,xwz,i :longint; a:array[1..100]of longint; begin

readln(n,x,y);

for i:=1 to n do read(a[i]); for i:=1 to n do

if x=a[i] then xwz:=i; wz:=xwz+1;

for i:=n downto wz do a[i+1]:=a[i]; a[wz]:=y ; write(a[1]); for i:=2 to n+1 do write(' ',a[i]); writeln; end.

元素插入有序数组 var n,i,x,y,wz,m:longint; a:array[1..100]of longint; begin

readln(n); readln(m); for i:=1 to m do read(a[i]); wz:=m+1; for i:= 1 to m do

if n<=a[i] then begin wz:=i; break;end;

if wz<>0 then

for i:=m downto wz do a[i+1]:=a[i]; a[wz]:=n ; write(a[1]);

for i:=2 to m+1 do write(' ',a[i]); writeln; end. 数组平移

var a:array[1..11]of longint; i:longint; begin

for i:=1 to 10 do a[i]:=i; a[11]:=a[1]; for i:= 1 to 10 do a[i]:=a[i+1]; for i:= 1 to 10 do write(a[i]:4); end.

排除第一个异形基因

var a:array[1..100] of longint; n,i,wz:longint; begin

readln(n);

for i:=1 to n do read(a[i]); for i:=1 to n do if sqr(a[i]) mod 7=1

then begin wz:=i; break; end; for i:=wz+1 to n do a[i-1]:=a[i]; write(a[1]); for i:=2 to n-1 do write(' ',a[i]); writeln; end. 各位数之和2 var a:string; s,i:longint; begin

readln(a); s:=0;

for i:=1 to length (a) do s:=s+ord(a[i])-48; writeln(s); end.

八进制回文数-提高

var a:array[1..100] of longint; n,i,j,t,l,r,f:longint; begin read(n); i:=1;

while n<>0 do begin

a[i]:=n mod 8; i:=i+1; n:=n div 8; end; write('Oct:' );

for j:=i-1 downto 1 do write(a[j]); f:=0;l:=1;r:=i-1; while l<=r do

if a[l]=a[r] then begin l:=l+1;r:=r-1; end else begin f:=1;break; end; writeln;

if f=0 then writeln('YES') else writeln('NO'); end. 最大公约数2 var ans,n,r,i,t:longint;

function work(a,b:longint):longint; begin

if a mod b=0 then work:=b

else work:=work(b,a mod b); end; begin readln(n); read(ans); for i:=2 to n do begin read(r); if

r

then

begin

t:=r;r:=ans;

ans:=t;end;

ans:=work(r,ans); end; writeln(ans); end. 走台阶

var n:longint;

function ztj(a:longint):longint; begin

if a=1 then ztj:=1 else

if a=2 then ztj:=2 else

ztj:=ztj(a-1)+ztj(a-2); end; begin readln(n); writeln(ztj(n)); end. 自然数拆分 var n:longint;

a:array[1..100]of longint;

procedure try(dep,lasti,r:longint); var i:longint; begin if r<=0

then if r=0 then begin

for i:=1 to dep-1 do write(a[i]:3); writeln end else

else for i:=lasti downto 1 do begin a[dep]:=i; try(dep+1,i,r-i); end; end; begin read(n); try(1,n,n); end. 自然数拆分2 var n:longint;

a:array[1..100]of longint; procedure cfs(dep,n,x:longint); var i:longint; begin if n=0 then begin

for i:=1 to dep-2 do write(a[i],' '); writeln(a[dep-1]);

end else begin

for i:=x to n do

begin a[dep]:=i; cfs(dep+1,n-i,i);

end;

end;

end; begin readln(n); cfs(1,n,1); end. 自然对数的底 var

i,n,m,cc,p,k : longint;

a,b,c : array[0..10010] of longint; Procedure addb; var

j: longint; begin

if m>cc then cc:=m; for j:=1 to cc do inc(c[j],b[j]); for j:=cc downto 1 do begin

inc(c[j-1], c[j] div 10); c[j]:= c[j] mod 10; end; end;

Procedure divi(k:longint); var

j,t: longint; begin t:=0; j:=1;

while (j<=n+10) do begin

b[j]:=(a[j]+t*10) div k; t:=(a[j]+t*10) mod k; if j>m then m:=j; inc(j);

if (t=0) and (j>m) then break; end; a:=b; end; begin

readln(n);

fillchar(b,sizeof(b),0); fillchar(c,sizeof(c),0); fillchar(a,sizeof(a),0); a[1]:=10; m:=1; cc:=1; i:=2; k:=0; while k=0 do begin divi(i); addb; inc(i); k:=1;

for p:=1 to cc do if b[p]<>0 then begin k:=0; break; end; end; write('2.'); for i:=1 to n do write(c[i]); writeln; end. 字符串逆序 Var n:string;

procedure w(s:longint); begin if s<1 then writeln else begin write(n[s]); w(s-1); end; end; begin readln(n); w(length(n)); end. 猪猪的反击

Var n,m,i,j,s:longint;

a:array [1..100,1..100] of longint; begin readln(n,m);

fillchar(a,sizeof(a),0); for i:=1 to n do for j:=1 to m do read(a[i,j]); i:=1; j:=1; s:=a[1,1]; while i

if a[i+1,j]

Var m,n,i,j,t:longint;

a:array[1..100,1..3] of longint; begin readln(m,n); t:=0;

for i:=1 to n do

readln(a[i,1],a[i,2],a[i,3]); for i:=0 to m do if i mod 5=0 then begin

for j:=1 to n+1 do

if j=n+1 then

inc(t,16) else

if (i>=a[j,1]) and (i<=a[j,2]) then begin inc(t,a[j,3]); break; end

篇五:Pascal语言编程环境

信息学奥赛第五讲(上) Pascal语言编程环境

戴 勇

一、 本课任务

(一) 掌握Free Pascal的下载、安装和启动。

(二) 了解Free Pascal IDE的菜单。

(三) 掌握简单Free Pascal程序的编辑、编译和运行。 二、 主要内容

(一) Free Pascal的下载、安装和启动

1、 根据你的系统下载对应的文件(FPascal4NOI-2kXP或FPascal4NOI-win98)

a. http://162.105.81.201/noip/FP4NOI/fp4noi.html (权威!但较慢)

b. /retype/zoom/46bc039251e79b89680226d0?pn=1&x=0&y=0&raww=644&rawh=245&o=jpg_6_0_______&type=pic&aimh=182.60869565217394&md5sum=45c19f1eb449bd2286a768783c2c0bf1&sign=0ed114cf35&zoom=&png=0-6936&jpg=0-100967" target="_blank">点此查看

h. Options菜单(略)

j. Help菜单(略)

三、 练习

(一) 下载并安装FPascal4NOI。

(二) 试着编辑、调试运行一个Pascal程序。

体裁作文