素数。
procedure TForm1.Button1Click(Sender: TObject); function PrimeQ(n:integer):Boolean; var i:integer; Q:Boolean; Begin Q:=True; for i:=1 to (n div 2) do if (n mod i = 0) then Q:=false; PrimeQ:=Q; end; begin
if PrimeQ(strtoint(edit1.Text)) then
edit 2.Text:= edit1.text +'是素数'
else
edit2.Text:= edit1.text +'不是素数';
end;
二、编写相应的Delphi程序,分别实现以下信息处理功能:
1. 枚举法求百钱买百鸡
问题: 用100元钱买100只鸡, 公鸡每只5元, 母鸡每只 3元,小鸡每3只1元,问该如何买?买法有许多种,请找出其中的一种。
procedure TForm1.Button1Click(Sender: TObject); var M, I,J,K:Integer; begin M:=100; for i:=0 to M div 5 do for j:=0 to M div 3 do for k:=0 to M*3 do if i*5+j*3+k/3=100 then begin edit1.Text:= Inttostr(i); edit2.Text:= Inttostr(j); edit3.Text:= Inttostr(k); Break; end; end;
2. 定义一个学生成绩类来统计一次考试的成绩。 要求: (1) 从 records.txt 读入每个学生每门功课成绩。 (2) 求出每个学生的总分并输出到文件 mark.txt。 (3) 求出每门功课的平均分并输出到文件average.txt
提示: 假设有90名学生, 5门课。
定义数据成员 数组 mark[90][5] 表示 90个学生 5 门功课的成绩。对每个要 求
设计一个公有函数,分别为Input(), Total(), Average() 。在主函数中 分别调用这三个函数。
records.txt 的格式:
陈大 85 王二 89 张三 65 李四 85 王五 91
79 92 97 86 93 84 73 60 84 89 78 89 58 82 87 90
80
62
83
95
……………………………………. mark.txt 的格式: 总分
average.txt 的格式: 科目编号(1-5) 平均分 program mark; {$APPTYPE CONSOLE} uses SysUtils; const Frecords = 'records.txt'; Fmark = 'mark.txt'; Faverage = 'average.txt'; Courses=5; Students=90; Type
Tname=array [1..Students] of string[16];
Tmarks=array [1..Students,1..Courses] of real;
Taverage=array [1..Courses] of real;
Ttotal=array [1..Students] of real;
Var
F1,F2: TextFile;
i,j,All:integer;
sname:Tname;
marks:Tmarks;
total:Ttotal;
average:Taverage;
procedure ReadRecords;
begin
AssignFile(F1, Frecords);
Reset(F1);
i:=0;
while not eof(F1) do
begin
i:=i+1;
Read(F1, sname[i]);
for j:=1 to Courses do
Read(F1, marks[i,j]);
Readln(F1);
end;
All:=i;
CloseFile(F1);
end;
procedure CalculateStudentTotal;
begin
AssignFile(F2, Fmark );
Rewrite(F2);
for i:=1 to All do
begin
total[i]:=0;
for j:=1 to Courses do
total[i]:=total[i]+ marks[i,j];
Writeln(F2,sname[i],' ',total[i]:10:2);
end;
CloseFile(F2);
end;
procedure CalculateCourseAverge;
begin
AssignFile(F2, Faverage);
Rewrite(F2);
for j:=1 to Courses do
begin
average[j]:=0;
for i:=1 to All do
average[j]:=average[j]+ marks[i,j];
Writeln(F2,'
课程',j,' ', average[j]/all:10:2);
end;
CloseFile(F2);
end;
begin
ReadRecords;
CalculateStudentTotal;
CalculateCourseAverge;
end.
2.
加密和解密。
有一行电文(从 文件 coded.txt 读入, 不超过1024个字符) , 已按下面规律译成了 密码: A――>Z B――>Y C――>X a――>z b――>y c――>x
……….. ……….. 即第 1 个字母变成第 26 个字母, 第 2 个字母变成第 25 个字母, 第 i 个字母变 成第 (26-i+1) 个字母, 非字母字符时不变。 要求编出程序, 将密码还原成原文,并输出 密码和原文到文件 decode.txt 。 文件 code.txt 的格式: R zn z xloovtv hgfwvmg uiln wvkzignvmg lu xlnkfgvi zkkorxzgrlm. 文件 decode.txt 格式: 密文: R zn z xloovtv hgfwvmg uiln wvkzignvmg lu xlnkfgvi zkkorxzgrlm. 原文: I am a college student from department of computer application.
program decode; {$APPTYPE CONSOLE}
uses SysUtils;
const Fcode = 'cod