用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编程
var n,m,i,j,maxcj:integer; cj:array[1..100,1..100]of integer; begin readln(n,m); maxcj:=0; for i:=1 to n do begin for j:=1 to m do begin read(cj[i,j]); if cj[i,j]>maxcj then maxcj:=cj[i,j]; end; readln; ...
pascal语言编程
解:交换两个变量的值,可以想象成交换两盒录音带(称为A和B)的内容,可以按以下步骤处理:步骤①:拿一盒空白录音带C为过渡,先将A翻录至C;步骤②:再将B翻录至A;步骤③:最后将C翻录至B。这样操作,可达到题目要求。Pascal程序:Program Exam17;Var a,b,c :integer;Begin Write(‘A,B=’...
Pascal编程时需要用的一些名词,如:integer,char。
1、integer 整数 2、real 小数,极大 3、longint 整数,比integer的范围广 4、byte 很小,最大估计就500吧 5、word 比较大,有100000多 6、char 字符型 7、string 字符串 8、double 这个本人不前不清楚,但是我在机器人快车编时用到了,反正也是个跟integer这些差不多的 9、...
pascal语言编程的格式
就是直接按空格嘛...一般是这样的习惯:像if , for ,repeat, while...有包含步骤的,就将其子步骤的每一句都向后敲两个空格,同一级别的内容对齐,如果有begin ...end 就在多敲一行(看样例),这样会使程序具有可读性,步骤的包含关系很明确,另外begin end 可以对的很齐,就会减少错误。
pascal编程
var n,i,j,t,tt:integer; a:array[1..10] of integer; begin \/\/输入数据 readln(n); for i:=1 to n do readln(a[i]); t:=maxint; \/\/临时变量,用于记录每次扫描出的最小值 for i:=1 to n-1 do begin \/\/扫描数列中的最小值 for j:=i to...
pascal编程
第一题:朴素做法。var a, b, c, t : integer;begin read(a); read(b); read(c); if a > b then begin t := a; a := b; b := t; end; if a > c then begin t := a; a := c; c := t; end; if b > c ...
求pascal语言编程中的书上不太常见的但程序中会出现的函数。
pascal编程书我一本都没有看完过,但函数我都可以提供:abs绝对值abs(-3)=3这类不用多讲。ord求字符的ascll码值,如ord(‘a’)=65,一般的编程书附录都有ascll表 chr求ascll码所对应的字符,和ord函数相反 sqr求平方,如sqr(2)=4 sqrt求开根,与sqr相反。但不能出现负数,如是负数应先...
Pascal编程
递归算法,n较大时会超时,供参考:{$m,65520,0,655360}procedure next(m,u2,u1:integer;var n,num:longint); {分别为已走步数、上上步、上步、总步数、路径数}beginif m=n then inc(num)else if m=0 then begin {以下用1、2、3分别代表红、黄、蓝三种颜色} next(1,0,1,n,num);...
pascal中的编程,求!!!
program tz;var y:integer;procedure f1(yue:integer);var n,n1,n2,n3,i:integer;begin n1:=1;n2:=0;n3:=0;n:=n1+n2+n3;for i:=2 to yue do begin n3:=n3+n2;n2:=n1;n1:=n3;n:=n1+n2+n3;end;writeln(n);end;function f2(yue:integer):integer;begin if (yue=1) or (...
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月要看...
养俘喜宁: Var k,a,b,i:longint; s:string; Begin readln(a,b);//输入a,b str(a*b,s); k:=length(s);//以上两句是求出所需场宽 writeln(a:k+1); writeln('*',b:k); for i:=1 to k+1 do write('-'); writeln; writeln(a*b:k+1); End.
綦江县15835696329: 怎么用PASCAL编程?
养俘喜宁: Pascal 排序有四种方法:选择排序、冒泡排序、基数排序、类型排序下面给出用一条数组,进行的对20个元素的选择排序的程序段 FOR i:=1 TO 19 DOFOR J:=1 TO 20 DOIF a[i]<a[j]THEN BEGINtemp:=a[i];a[i]:=a[j];a[j]:=tempEND;其中 a 是已经说明为 a:ARRAY[1..20] OF integer; 的数组变量,并且必须每一个元素都有值
綦江县15835696329: pascal语言编程?
养俘喜宁:var a,b:integer; begin readln(a,b); a:=a+b; b:=a-b; a:=a-b; writeln('a=',a,' b=',b); end. 长时间不写P语言的代码了,语法不知道有没有错,但是算法没有问题.
綦江县15835696329: 使用Pascal编程?
养俘喜宁: var a:array[1..99] of boolean; i,j:longint; begin fillchar(a,sizeof(a),true); for i:=10 to 99 do for j:=2 to trunc(sqrt(i)) do if (i mod j=0) then a[i]:=false;for i:=1 to 99 do if a[i] and a[i div 10 +i mod 10 *10] then writeln(i); end.
綦江县15835696329: Pascal语言编程的格式和使用方法?
养俘喜宁: 输出换行:writeln分号是每一句话末尾的标志.如:program aaa;编译,运行的快捷键:Ctrl+F9查看数据结果的快捷键:Alt+F5
綦江县15835696329: 要用Pascal编程?
养俘喜宁: 话说我对集合类型不是很熟悉.... 不过这还是很简单的. 代码如下(请自行调试): program set_ex(input,output); var fy,yyset,fyset:set of char; n,i,yy:longint; ch:char; begin yy:=0; fy:=[]; fyset:=['b'..'d','f'..'h','j'..'n','p'..'t','v'..'z']; fyset:=fyset+['B'..'D','F'..'H','J'...
綦江县15835696329: 用pascal语言编程序?
养俘喜宁: var i,m,n:Integer; b: Boolean; begin n:= 99; b:= False; for i := 0 to 9 do begin Writeln('请第'+IntToSTR(i + 1) + '次输入:'); Readln(m); if m = n then begin b:= True; Writeln('恭喜你,猜对啦!'); Break; end; end; if not b then Writeln('对不起,你没有猜中!'); Readln; end.
綦江县15835696329: 用Pascal编程?
养俘喜宁: var i,s1,s2:real; begin s1:=0;s2:=0;k:=0; repeat readln(i); s1:=s1+frac(i); s2:=s2+int(i); inc(k); until k=3; writeln(s1:5:5); writeln(s2:0:0); end.var i,s1,s2:real; k:longint;begin s1:=0;s2:=0;k:=0;repeat readln(i); s1:=s1+frac(i); s2:=s2+int(i); inc(k); until k=3;writeln(s1:5:5);writeln(s2:0:0);end.
綦江县15835696329: pascal编写程序?
养俘喜宁: var a:array[1..1000000]of longint; n,l,i,j:longint; procedure cheng(i:longint); var j:longint; begin for j:=1to l do a[j]:=a[j]*i; for j:=1to l-1do begin inc(a[j+1],a[j]div 10); a[j]:=a[j]mod 10; end; while a[l]>=10do begin a[l+1]:=a[l]div 10; a[l]:=a[l]mod 10; inc(l); end...
綦江县15835696329: Pascal编程 - ?
养俘喜宁: 1 var a,b,c:integer; begin read(a,b); c:=a+b; writeln(c); end.2 var a:integer; begin a:=(8+12)*9/2; writeln(a); end.3.var i,b,c,d:integer; begin read(i); b:=i div 100; ...