用pascal编程

作者&投稿:晏览 (若有异议请与网页底部的电邮联系)
使用Pascal编程~

素数的求法是最基本的数论算法之一,也是各类竞赛中比较常用的工具之一。求素数的源程序你应该知道吧,很多书都有,网上一大堆。

这个题目只学要在求素数的基础上添加一个条件,即如果这个数是素数,那么再将他的数字的位置对话后再一次判断它是否还是素数,如果是那么就是绝对素数,如果不是就继续判断其他的数。

题目中说只需求二位数的素数,所以

procedure
素数的判断;(自己完成)

for
i:=10
to
99
do

begin

先用函数判断i是否是素数,不是i则变为i+1,继续下一轮循环;如果是,那么先将i用str(i,s)函数把i变为字符形式,然后把字符中的两个数字对换后,再用val(s,i,p)函数把对换后的字符s变为数字i,所以i就成了 数字位置经过对换数字,最后再函数判断数字位置经过对换后的i是否还是素数,如果是那么就输出他,如果不是那么就继续下一轮循环i变为i+1.

end;

var
a,b:array[1..10] of longint;
ta,tb,sum,i,j:longint;
avg:real;
begin
ta:=0;tb:=0;sum:=0;avg:=0;
for i:=1 to 10 do begin
read(j);
if odd(j) then begin
sum:=sum+j;
inc(ta);a[ta]:=j;
end
else begin
avg:=avg+j;
inc(tb);b[tb]:=j;
end;
for i:=1 to ta do write(a[i],' ');
writeln;writeln(sum);
for i:=1 to tb do write(b[i],' ');
writeln;
if tb>0 then writeln(avg/tb:0:4)
else =writeln(0);
end.

怎么觉得有点复杂??

我用了不少时间做这么多题 多给点分吧~

、(附加题)输入一串字符,以“?”结束输出其中小写字母个数与数字个数。
program ex;
var
ch:char;
t,t1:integer;
begin
t:=0;t1:=0;
read(ch);
while ch<>'?' do begin
if (ord(ch)>=97)and(ord(ch)<=122) then t:=t+1;
if (ord(ch)>=48)and(ord(ch)<=57) then t1:=t1+1;
read(ch);
end;
writeln;
writeln(t,' ',t1);
end.

编程求下式中n的最大值:2×2+4×4+6×6+...+n×n<1500。
program ex1;
var s,n:integer;
begin
n:=2;
s:=0;
while s<1500 do
begin
s:=s+n*n;
n:=n+2;
end;
writeln(n);
readln
end.

打印下列图案:
*
* * *
* * * * *
program ex2;
var i,j,n:integer;
begin
readln(n);
for j:=1 to n do
if n mod 2<>0 then
for i:=1 to j do
begin
write('*');
if j=i then writeln;
end;
end.

打印下列图案
# @ *
# # @ @ * *
# # # @ @ @ * * *
program ex3;
var i,j,n:integer;
begin
readln(n);
i:=1;
while i<=n do
begin
for j:=1 to i do write('#');
for j:=1 to i do write('@');
for j:=1 to i do write('*');
writeln;
i:=i+1;
end;
end.

试编程找出能被各位数字之和整除的一切两位数。
program ex4;
var i,j,s,k:integer;
begin
for i:=10 to 99 do
begin
j:=i div 10;
k:=i mod 10;
s:=j+k;
if i mod s=0 then write(i,' ');
end;
readln
end.

一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数,例如13。试找出所有两位数的绝对素数。
program ex5;
var n,i,j:integer;
function sz(a:integer):boolean;
var k,s:integer;
begin
s:=0;
for k:=2 to a-1 do
if a mod k=0 then s:=s+1;
if s=0 then sz:=true else sz:=false;
end;
begin
for i:=10 to 99 do
begin
j:=i div 10;
n:=i mod 10;
n:=10*n+j;
if sz(i) and sz(n) then write(i,' ');
end;
readln
end.

输入一个奇数,输出下列图形;
输入:3
*
***
*
输入:5
*
***
*****
***
*
输入一个奇数,输出下列图形;
输入:3
*
***
*
输入:5
*
***
*****
***
*
输入一个奇数,输出下列图形;
输入:3
*
***
*
输入:5
*
***
*****
***
*
program ex6;
var i,n,j:integer;
begin
readln(n);
for i:=1 to n do
if i mod 2<>0 then
for j:=1 to i do
begin
write('*');
if j=i then writeln
end;

for i:=n-1 downto 1 do
if i mod 2<>0 then
for j:=1 to i do
begin
write('*');
if j=i then writeln
end;
readln
end.

打印下列图形:
1
121
12321
1234321
12321
121
1
program ex7;
var i:integer;

procedure draw(a:integer);
var n:integer;
begin
for n:=1 to a do write(n);
for n:=a-1 downto 1 do write(n);
writeln;
end;

begin
for i:=1 to 4 do draw(i);
for i:=3 downto 1 do draw(i);
readln
end.

附加题:
var
s,i:char;
a:array['a'..'z']of integer;
b:array['0'..'9']of integer;
begin
for i:='a' to 'z' do a[i]:=0;
{将每个字母计数器清零,当然如果读入是没有这个字母那还是0}
repeat
read(s);
if (s>='a')and(s<='z') then a[s]:=a[s]+1;
if (s>='0')and(s<='9') then b[s]:=b[s]+1;
{读入并计算每个字母或数字出现次数}
until s='?';
for i:='a' to 'z' do begin write(i,':'); write(a[i],' '); end;
writeln;
writeln;
for i:='0' to '9' do begin write(i,':'); write(b[i]); end;
{输出}
end.
都对,可以看懂吧!O(∩_∩)O哈哈~ 其他题太多了。
网上都可以查到,都是些经典的题。
要加分哦O(∩_∩)O!!

var
s,i:char;
a:array['a'..'z']of integer;
b:array['0'..'9']of integer;
begin
for i:='a' to 'z' do a[i]:=0;

var
a,b:string;
function
get_post(a,b:string):string;
var

al,ar,bl,br,t:string;

mid:integer;
begin

if
(a='')
or
(b='')
then

get_post:=a+b

else
begin

mid:=pos(b[1],
a);

if
mid=0
then

get_post:='error'

else
begin

al:=copy(a,1,mid-1);

ar:=copy(a,mid+1,
length(a)-mid);

bl:=copy(b,2,mid-1);

br:=copy(b,mid+1,length(b)-mid);

get_post:=get_post(al,
bl)+get_post(ar,
br)+b[1];

end;

end;
end;
begin

readln(a);

readln(b);

writeln(get_post(a,b));
end.

附加题:
program ex;
var
ch:char;
t,t1:integer;
begin
t:=0;t1:=0;
read(ch);
while ch<>'?' do begin
if (ord(ch)>=97)and(ord(ch)<=122) then t:=t+1;
if (ord(ch)>=48)and(ord(ch)<=57) then t1:=t1+1;
read(ch);
end;
writeln;
writeln(t,' ',t1);
end.

帕斯克(Pascal)-一门流行的编程语言
答:帕斯卡(Pascal)是一门流行的编程语言,由于其简洁、易学、易用的特点,被广泛应用于计算机科学、工程学、数学、物理学等领域。1.帕斯卡的起源 帕斯卡是由尼古拉斯·维尔特(NiklausWirth)于1968年发明的。维尔特是瑞士苏黎世联邦理工学院的教授,他发明帕斯卡的初衷是为了教授编程课程。帕斯卡最初的版本是为...

用PASCAL编程
答:1、冒泡法 program lxi05(input,output);var a:array[1..5] of real;i,j,n:integer; t:real;begin n:=12;for i:=1 to n do readln(a[i]);for i:=1 to n-1 do for j:=1 to n-i do if a[j]>a[j+1] then begin t:=a[j];a[j]:=a[j+1];a[j+1]:...

pascal编程的语言
答:Turbo Pascal规定了两个预定义整型常量标识符maxint和maxlonint,他们各表示确定的常数值,maxint为32767, longint为2147483647,他们的类型分别是integer 和longint 2.实型 一个实型数据用来存放实数。Turbo Pascal支持五种预定义实型,它们是real(基本实型)、 single(但精度实型)、double(双精度实型)、extended(扩展...

Pascal是什么编程语言
答:实际上,Pascal是一种程序设计语言的名称(从一般意义上说,Pascal也可以是指人名,它的取名原本就是为了纪念十七世纪法国著名哲学家和数学家Blaise Pascal),而不是编程工具。刚才我是纯粹从字面意思上来回答这个问题。“在turbo pascal中不能使用标准pascal的紧缩字符型数组!turbo pascal建立文件也有自己的...

如何用Pascal语言进行声音编程
答:Turbo pascal 声音编程 一、使用Pascal进行声音操作前的准备 首先需要说明的是我们所说的Pascal声音操作,并不是指实现Pascal对于声卡进行操作,而是利用Pascal对计算机的PC喇叭操作,使它发出声音。在Turbo Pascal中有一个叫做CRT单元的东西,CRT单元实现了一系列强大的可以充分地控制你计算机的功能CRT单元提供...

pascal编程
答:var s:string; i,j,k,n:integer; f:boolean; begin readln(s); //读数 for i:=1 to (length(s)-2) do //设定起点 for j:=(i+2) to length(s) do //设定终点 begin f:=true; //默认为升序串成立 k:=i; //游动指针,表示每次所...

Pascal编程
答:4、 从键盘上读入小写的"pascal",利用CHR()和ORD()函数,输出大写的"PASCAL"。program Noname10;uses crt;var c:packed array[1..10]of char;p:integer;begin read (c);p:=1;while ord(c[p])<> 0 do begin write(chr(ord (c[p])-32));inc(p);end;readkey;end.5、 从键盘...

用Pascal编程求满足下列条件的三位数:该三位数等于它数字的立方和。_百...
答:Pascal程序:Program ex33;var s,a : integer;Begin S := 0; For a := 1 to 100 do S := S+a; Writeln(‘S=’,S); Readln;End.[例3.4]一个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。解:①用for循环列举出所有的两位数,x为循环...

PASCAL 编程
答:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下:w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(前两位数)y:年(后两位数)m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看...

pascal编程
答:程序利用二维数组存放每个人的各门成绩。行数i代表第几人,列数j代表第几门。首先第一轮循环,输入成绩存放到二维数组,同时挑选出最高分。输入完成后,最高分也就确定下来了,最高分存放在变量maxcj里。接着第二轮循环,逐个比较每个人的每一门成绩是否与最高分相等。若相等就输出这个人的序号i、...