鉴于页面,为方便各位阅读,修改了一下页面 程序一: program jihe3(input,output); type info=^point; point=record data:char; next:info end; var command,ch,x:char; set1,set2,set3,sets:info; procedure setup1(var set1:info); var p,q:info; begin write('please input set1s ch SPACE finish: '); read(ch); while ch<>' 'do begin if (ch<='z') and (ch>='a') then begin P:=set1^.next; while (p<>nil) and (ch<>p^.data) do p:=p^.next; if p=nil then begin new(q); q^.data:=ch; q^.next:=set1^.next; set1^.next:=q; end; end; read(ch); end; end; procedure setup2(var set2:info); var p,q:info; ch:char; begin write('please input set2`s ch: '); read(ch); while ch<>' 'do begin if (ch<='z') and (ch>='a') then begin p:=set2^.next; while (p<>nil) and (ch<>p^.data) do p:=p^.next; if p=nil then begin new(q); q^.data:=ch; q^.next:=set2^.next; set2^.next:=q; end; end; read(ch); end; end; procedure binji(set1,set2:info;var set3:info); var p,q,r:info; begin p:=set1^.next; while p<>nil do begin new(q); q^.data:=p^.data; q^.next:=set3^.next; set3^.next:=q; p:=p^.next end; p:=set2^.next; while p<>nil do begin q:=set1^.next; while (q<> nil) and (q^.data<>p^.data) do begin p:=p^.next; if q=nil then begin new(r); r^.data:=p^.data; r^.next:=set3^.next; set3^.next:=r; p:=p^.next; end; q:=q^.next; end; end; end; procedure jiaoji(set1,set2:info;var set3:info); var p,q:info; begin p:=set1^.next; while p<>nil do begin q:=set2^.next; while (q<>nil) and (q^.data<>p^.data) do q:=q^.next; if q<> nil then begin new(q); q^.data:=p^.data; q^.next:=set3^.next; set3^.next:=q; end; p:=p^.next end; end; procedure cha(set1,set2:info;var set3:info); var p,q:info; begin p:=set1^.next; while p<>nil do begin q:=set2^.next; while (q<>nil) and (p^.data<>q^.data) do q:=q^.next; if q=nil then begin new(q); q^.data:=p^.data; q^.next:=set3^.next; set3^.next:=q; end; p:=p^.next end; end; procedure print(var sets:info); var p:info; begin p:=sets^.next; write('set',sets^.data,'=[ '); while p<> nil do begin write(p^.data:3); p:=p^.next; end; writeln(']'); end;begin new(set1); new(set2); new(set3); set1^.next:=nil; set1^.data:='1'; set2^.next:=nil; set2^.data:='2'; set3^.next:=nil; set3^.data:='3'; repeat write('please input command: '); readln(command); until command in['1','2','u','U','i','I','d','D','q','Q']; while command <>'q' do begin case command of '1':begin setup1(set1);print(set1);end; '2':begin setup2(set2);print(set2);end; 'u','U':begin binji(set1,set2,set3);print(set3);end; 'i','I':begin jiaoji(set1,set2,set3);print(set3);end; 'd','D':begin cha(set1,set2,set3);print(set3);end; end; repeat write('please input command '); readln(command); until command in['1','2','u','U','i','I','d','D','q','Q']; end; end.程序二: program joseph (input,output); type info=^point; point=record mima,hao:integer; data:0..1; next:info end; var q,h,p:info; m,sum,i,n,x:integer; y:char; begin for i:=1 to 24 do writeln; write('please input limeted number:'); readln(m); write('please input n: '); readln(n); begin write('please input NO1`s mima: '); readln(x); while x<=0 do begin write('please input x agine: '); readln(x); end; new(p); p^.mima:=x; p^.data:=1; p^.hao:=1; h:=p; for i:=2 to n do begin write('please input NO',i,'mima: '); readln(x); while x<=0 do begin write('please input mima agine: '); readln(x); end; new(q); q^.mima:=x; q^.data:=1; q^.hao:=i; p^.next:=q; p:=q; end; p^.next:=h; p:=h; for i:=1 to n do begin sum:=0; while sum<m do begin q:=p; sum:=sum+p^.data; p:=p^.next; end; writeln(' ',q^.hao:5,' mima:',q^.mima); m:=q^.mima; q^.data:=0; end; end; write('Plese press ENTER......'); read(y); for i:=1 to 24 do writeln; end.
程序一:
program jihe3(input,output);
type
info=^point;
point=record
data:char;
next:info
end;
var
command,ch,x:char;
set1,set2,set3,sets:info;
procedure setup1(var set1:info);
var
p,q:info;
begin
write('please input set1s ch SPACE finish: ');
read(ch);
while ch<>' 'do
begin
if (ch<='z') and (ch>='a') then
begin
P:=set1^.next;
while (p<>nil) and (ch<>p^.data) do
p:=p^.next;
if p=nil then
begin
new(q);
q^.data:=ch;
q^.next:=set1^.next;
set1^.next:=q;
end;
end;
read(ch);
end;
end;
procedure setup2(var set2:info);
var
p,q:info;
ch:char;
begin
write('please input set2`s ch: ');
read(ch);
while ch<>' 'do
begin
if (ch<='z') and (ch>='a') then
begin
p:=set2^.next;
while (p<>nil) and (ch<>p^.data) do
p:=p^.next;
if p=nil then
begin
new(q);
q^.data:=ch;
q^.next:=set2^.next;
set2^.next:=q;
end;
end;
read(ch);
end;
end;
procedure binji(set1,set2:info;var set3:info);
var
p,q,r:info;
begin
p:=set1^.next;
while p<>nil do
begin
new(q);
q^.data:=p^.data;
q^.next:=set3^.next;
set3^.next:=q;
p:=p^.next
end;
p:=set2^.next;
while p<>nil do
begin
q:=set1^.next;
while (q<> nil) and (q^.data<>p^.data) do
begin
p:=p^.next;
if q=nil then
begin
new(r);
r^.data:=p^.data;
r^.next:=set3^.next;
set3^.next:=r;
p:=p^.next;
end;
q:=q^.next;
end;
end;
end;
procedure jiaoji(set1,set2:info;var set3:info);
var
p,q:info;
begin
p:=set1^.next;
while p<>nil do
begin
q:=set2^.next;
while (q<>nil) and (q^.data<>p^.data) do
q:=q^.next;
if q<> nil then
begin
new(q);
q^.data:=p^.data;
q^.next:=set3^.next;
set3^.next:=q;
end;
p:=p^.next
end;
end;
procedure cha(set1,set2:info;var set3:info);
var
p,q:info;
begin
p:=set1^.next;
while p<>nil do
begin
q:=set2^.next;
while (q<>nil) and (p^.data<>q^.data) do
q:=q^.next;
if q=nil then
begin
new(q);
q^.data:=p^.data;
q^.next:=set3^.next;
set3^.next:=q;
end;
p:=p^.next
end;
end;
procedure print(var sets:info);
var
p:info;
begin
p:=sets^.next;
write('set',sets^.data,'=[ ');
while p<> nil do
begin
write(p^.data:3);
p:=p^.next;
end;
writeln(']');
end;begin
new(set1);
new(set2);
new(set3);
set1^.next:=nil;
set1^.data:='1';
set2^.next:=nil;
set2^.data:='2';
set3^.next:=nil;
set3^.data:='3';
repeat
write('please input command: ');
readln(command);
until command in['1','2','u','U','i','I','d','D','q','Q'];
while command <>'q' do
begin
case command of
'1':begin setup1(set1);print(set1);end;
'2':begin setup2(set2);print(set2);end;
'u','U':begin binji(set1,set2,set3);print(set3);end;
'i','I':begin jiaoji(set1,set2,set3);print(set3);end;
'd','D':begin cha(set1,set2,set3);print(set3);end;
end;
repeat
write('please input command ');
readln(command);
until command in['1','2','u','U','i','I','d','D','q','Q'];
end;
end.程序二:
program joseph (input,output);
type
info=^point;
point=record
mima,hao:integer;
data:0..1;
next:info
end;
var
q,h,p:info;
m,sum,i,n,x:integer;
y:char;
begin
for i:=1 to 24 do writeln;
write('please input limeted number:');
readln(m);
write('please input n: ');
readln(n);
begin
write('please input NO1`s mima: ');
readln(x);
while x<=0 do
begin
write('please input x agine: ');
readln(x);
end;
new(p);
p^.mima:=x;
p^.data:=1;
p^.hao:=1;
h:=p;
for i:=2 to n do
begin
write('please input NO',i,'mima: ');
readln(x);
while x<=0 do
begin
write('please input mima agine: ');
readln(x);
end;
new(q);
q^.mima:=x;
q^.data:=1;
q^.hao:=i;
p^.next:=q;
p:=q;
end;
p^.next:=h;
p:=h;
for i:=1 to n do
begin
sum:=0;
while sum<m do
begin
q:=p;
sum:=sum+p^.data;
p:=p^.next;
end;
writeln(' ',q^.hao:5,' mima:',q^.mima);
m:=q^.mima;
q^.data:=0;
end;
end;
write('Plese press ENTER......');
read(y);
for i:=1 to 24 do writeln;
end.