怎么用pascal语言来编程?

作者&投稿:菜清 (若有异议请与网页底部的电邮联系)
学校考试用pascal语言编程 怎么编~

http://218.22.0.84/teacherhomepage/xinxi/pascal/pascal.htm


先看一个简单的PASCAL程序:
program exam1(input,output);
var r,s,c:real;
begin
readln(r);
c:=3.14*2*r;
s:=3.14*r*r;
writeln(c,s)
end.

从这个简单的程序可以看到:
  1、 一个PASCAL程序分为两个部分:程序首部和程序体(或称分程序)。
  2、程序首部是程序的开头部分,它包括:
  ⑴ 程序标志。用“program”来标识“这是一个PASCAL 程序”。PASCAL规定任何一个PASCAL程序的首部都必须以此字开头。在Turbo pascal语言中,首部也可省略。
  ⑵ 程序名称。由程序设计者自己定义,如例中的exam1。
  在写完程序首部之后,应有一个分号。

  3、程序体是程序的主体。程序体包括说明部分(也可省略)和执行部分两个部分。
  ⑴ 说明部分用来描述程序中用到的变量、常量、类型、过程与函数等。本程序中第二行是“变量说明”,用来定义变量的名称、类型。

PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、过程与函数、记录、文件等数据都必须在说明部分进行定义(或称“说明”)。也就是说,不允许使用未说明先使用。
⑵ 执行部分的作用是通知计算机执行指定的操作。如果一个程序中不写执行部分,在程序运行时计算机什么工作也不做。因此,执行部分是一个PASCAL程序的核心部分。
  执行部分以“begin”开始,以“end”结束,其间有若干个语句,语句之间以分号隔开。执行部分之后有一个句点,表示整个程序结束。
4、 PASCAL程序的书写方法比较灵活。 应以程序结构清晰、易读为目的。在编写程序时尽量模仿本书中例题程序格式。
5、在程序中,一对大括号间的文字称为注释。注释的内容由人们根据需要可用英语书写。注释可以放在任何空格可以出现的位置。执行程序时计算机对注释不予理睬。
6、保留字后不加标点符号(END除外)。

Turbo pascal 声音编程

一、使用Pascal进行声音操作前的准备

首先需要说明的是我们所说的Pascal声音操作,并不是指实现Pascal对于声卡进行操作,而是利用Pascal对计算机的PC喇叭操作,使它发出声音。

在Turbo Pascal中有一个叫做CRT单元的东西,CRT单元实现了一系列强大的可以充分地控制你计算机的功能CRT单元提供了控制显示模式、扩展键盘代码、显示颜色、窗体和声音的功能。

若是要在Turbo Pascal中实现声音操作,就必须要调用CRT单元。那么怎么样来调用CRT单元呢?现在介绍一下单元调用语句:USES

USES的语法:
USES 单元表识符,……,单元表识符;
说明:
扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件。

二、Pascal声音操作的全部——三个过程

其实,Pascal的声音操作是十分简单的,一共可以使用的过程也只有3个,由此可见,你可以用很少的时间使你的PC喇叭发出你所希望的长度、你所希望的频率的声音

(1)SOUND过程

调用SOUND的方法: SOUND(HZ);

说明:在调用SOUND的时候,它的参数HZ必须是WORD,也就是说变量HZ必须在0~65535这个范围中,变量HZ就是使PC喇叭发出等于HZ变量数值的频率的声音,由此可见人耳可以听见的范围远远小于这个范围。

(2)DELAY过程

调用DELAY的方法: DELAY(TIME);
说明:当你在调用了SOUND过程之后,必须指定它发出变量HZ所指定的频率的声音的时间长度,DELAY就是用来指定这个长度的过程,变量TIME必须是大于等于零的整数,并且当TIME=1000时,它所延迟的时间是1秒,也就是说TIME的单位是千分之秒。

(3)NOSOUND过程

调用DELAY的方法: NOSOUND;
说明:NOSOUND是一个无参过程,它的作用从过程名上就可以看出——用来使PC喇叭停止发声,在调用SOUND之后,最好是要调用NOSOUND使PC喇叭停止发声。

例:用于上过程编写一个警报程序:
PROGRAM Alert;
USES Crt;
VAR
Hz : Word;
Count : Word;
BEGIN
REPEAT
Count:=Count+1;
Hz := 262;
WHILE Hz <= 524 DO
BEGIN
Sound(Hz);
Delay(2);
Hz := Hz + 1;
END;
UNTIL Count = 10;
Nosound;
END.

注意,在不同的机器上发出的声音有所差异。这是因为计算机主频不同。还有,在试验这个程序,或者说试验这种发声程序之前,最好先准备一个调用NOSOUND使PC喇叭停止发声的简单程序,以免异常中断,使喇叭响个不停。

========================= ========================

可以使用CLRSCR函数在需要处清屏
不过如果要使用 CLRSCR(清屏过程,在 DOS单元中)的话,必须在程序头部加上: USES DOS;

你照着打打看
Var{定义变量:}
longint
k,m,n;
{定义k,m,n为长整型,在C里应该是long或long
long}
delta1,delta2
:
real;
{定义delta1,delt12为实型}
Begin
{相当于C的花括号左边}
write('k=');
{这个懂,printf("k=");}
readln(k);
{
键盘输入k,应该是scanf
}
m:=k;
{将k赋给m}
while
m>=1
do
{While型循环,当m>=1时就做下面的}
begin
{又是花括号左边}
delta1:=sqrt(5.0*m*m+4);{赋值}
if
(delta1-trunc(delta1))<1e-9
then
{如果
delta1减去取整的delta1
小于
1*10^(-9)
那么就}
begin
{……}
n:=trunc((m+delta1)/2);
{trunc是取整,右赋左}
if
n<=k
then
begin
writeln(m,',',n);halt;
end;
{如果n小于等于k那么就输出m和n}
end;
delta2:=sqrt(5.0*m*m-4);
{sqrt是取平方根}
if
(delta2-trunc(delta2))<1e-9
then
{同上}
begin
n:=trunc((m+delta2)/2);
{同上}
if
n<=k
then
begin
writeln(m,',',n);halt;
end;
{如果n小于等于k那么就输出m和n,同上}
end;
dec(m);
{dec就是把m减1}
end;
end;

先学基本语句....if
for
and
so
on
多学点数学
对编写程序有很多好处...

可以到大规模的电脑公司找工程师来教你

pascal编程
答:var a,b,c:longint;st1,st2,st3:string;f,g,h:boolean;function fd(st:string):boolean;var i,l:integer;begin l:=length(st) ;fd:=true;for i:=1 to l div 2 do if st[i]<>st[l+1-i]then fd:=false;end;begin for a:=1 to 999 do begin;b:=a*a;c:=a*a*a;str(a...

pascal 编程
答:你的快排是有错的。举个例子 n:=5;a[1]..a[5]:1,5,3,4,9 m:=3;从两头开始找,(X是从左边,Y是从右边)X:=1,Y:=1时 a[x]:=1<m;a[y]:=9>m 继续 x:=x+1;y:=y-1;a[x]:=5>m(当大于的时候,X就停止);a[y]:=4>m 继续y:=y-1;a[y]:=3=m 所以交换a...

pascal编程 高手请进
答:var n:integer;begin readln(n);if n>0 then writeln('T');if n=0 then writeln(0);if n<0 then writeln('F');readln;end.var n:integer;begin readln(n);if n>0 then writeln('T')else if n=0 then writeln(0)else writeln('F');readln;end....

谁知道PASCAL编程的技巧?
答:PASCAL编程有什么技巧可言么?我觉得学好基础知识,多去编些程序练习下,熟练了就好了啊``

pascal 编程
答:如上图,输入、输出的截图 var a,b,c,x,y,t:double;begin readln(a,b,c);t:=b*b-4*a*c;if t>0 then begin x:=-b/(2*a); y:=sqrt(t)/(2*a);writeln('x1=',x+y:0:3,' x2=',x-y:0:3);end else if t=0 then writeln('x=',-b/(2*a):0:3)else begin x...

pascal编程
答:n皇后?我发一个吧,这个程序是回溯的基础,很重要滴...var a:array[1..1000] of integer;b,c,d:array[-100..7000] of integer;t,i,j,k,n:integer;procedure print;var k:integer;begin inc(t);write('No.',t,':');for k:=1 to n do write(a[k],' ');writeln;end;procedu...

pascal编程
答:var a:array[1..10000]of longint;x,n,i,j:longint;begin assign(input,'xj.in'); reset(input);assign(output,'xj.out'); rewrite(outnput);readln(n);for i:=1 to 2 do for j:=1 to n do begin read(x); inc(a[j],x) end;for i:=1 to n-1 do write(a[i],' '...

pascal编程
答:var a,b,c,d,e,f,g,i:byte;begin for a:=1 to 6 do for b:=1 to 6 do if b<>a then for c:=1 to 6 do if (c<>b)and(c<>a) then for d:=1 to 6 do if not (d in [a,b,c]) then for e:=1 to 6 do if not (e in [a,b,c,d]) then begin inc(i...

请用pascal语言编写程序7、乘法计算器:编程由键盘输入两个整数a和b...
答:var a,b:longint;begin readln(a,b);writeln(a*b);end.

简单编程 pascal
答:r没有定义。就算有定义也没读取 应该是:program lx_1;const pi=3.1415;var a:real;begin readln(a);writeln('C=',2*pi*a);writeln('S=',pi*a*a);end.