看的很费力,缩进不能有些规律吗~~

解决方案 »

  1.   

    鉴于页面,为方便各位阅读,修改了一下页面
    程序一:
    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.