a kak wam moya programma dlya perewoda chisler d 10-oj d lyubuyu sistemu? 4erez string i putem deleniya .... Program name; Uses Crt; Label ex,pp,ppp,ex2,ex3,pp2,ppp2; Var i,ii,j,n,m,mm,b,chislo_new,ostatok,celoe,prob:longint; error:integer; flag,flag2,razmer:byte; chislo,s_celoe,sceloe,s_ostatok,sfor_array,for_array,p_chislo:string; aa,a:array [1..190] of longint; simvol:string[2]; wwod_simvola:char;
BEGIN Clrscr; Textcolor (13); Write ('В какую систему перевести: '); Textcolor (10); Readln (razmer); Textcolor (13); Writeln ('Введите число в 10-ой системе: '); Textcolor (10); chislo:=''; Repeat wwod_simvola:=readkey; i:=ord(wwod_simvola); Case wwod_simvola of '0': ii:=0; '1': ii:=1; '2': ii:=2; '3': ii:=3; '4': ii:=4; '5': ii:=5; '6': ii:=6; '7': ii:=7; '8': ii:=8; '9': ii:=9; 'a': ii:=10; 'A': ii:=10; 'b': ii:=11; 'B': ii:=11; 'c': ii:=12; 'C': ii:=12; 'd': ii:=13; 'D': ii:=13; 'e': ii:=14; 'E': ii:=14; 'f': ii:=15; 'F': ii:=15; end; if i=13 then goto ex3; if ii<=10 then begin Write (wwod_simvola); chislo:=chislo+wwod_simvola; end; ex3: until i=13;
if razmer<=9 THEN Begin n:=ord(chislo[0]); sceloe:=''; flag:=0; flag2:=flag; chislo_new:=razmer+2; ostatok:=razmer+2; i:=1; ii:=1; While chislo_new>=razmer do begin While ostatok>=razmer do begin for j:=1 to n do val(chislo[j],a[j],error); if a[i]<razmer then begin sfor_array:=''; for j:=1 to 2 do begin str(a[j],for_array); sfor_array:=sfor_array+for_array; end; val(sfor_array,b,error); inc(i); flag2:=1; end else begin b:=a[i]; flag:=1; end; celoe:=b div razmer; str(celoe,s_celoe); ostatok:=b mod razmer; str(ostatok,s_ostatok); sceloe:=sceloe+s_celoe; p_chislo:=chislo; delete(p_chislo,1,i); prob:=ord(p_chislo[0]); if prob<=0 then begin if(flag=1) and (ostatok<razmer) then begin flag:=0; goto ex; end; if(flag2=1) and (ostatok<razmer) then begin chislo:=sceloe; flag2:=0; goto ex; end; end; if s_ostatok='0' then s_ostatok:=''; chislo:=s_ostatok; chislo:=chislo+p_chislo; i:=1; n:=ord(chislo[0]); if n>5 then begin ostatok:=razmer*2; goto ppp; end; val(chislo,ostatok,error); ppp: end; ex: aa[ii]:=ostatok; inc(ii); s_ostatok:=''; ostatok:=razmer+2; m:=ord(sceloe[0]); if m>5 then begin chislo_new:=razmer*razmer; goto pp; end; val(sceloe,chislo_new,error); pp: chislo:=sceloe; sceloe:='';i:=1; end; val(chislo,b,error); aa[ii]:=b; end ELSE Begin n:=ord(chislo[0]); sceloe:=''; flag:=0; flag2:=flag; chislo_new:=razmer+2; ostatok:=razmer+2; i:=1; ii:=1;
While chislo_new>=razmer do begin While ostatok>=razmer do begin n:=ord(chislo[0]); for j:=1 to n do val(chislo[j],a[j],error); if a[i]<razmer then begin sfor_array:=''; for j:=1 to 2 do begin str(a[j],for_array); sfor_array:=sfor_array+for_array; end; val(sfor_array,b,error); inc(i); flag2:=1; end; if b<razmer then begin sfor_array:=''; for j:=1 to 3 do begin str(a[j],for_array); sfor_array:=sfor_array+for_array; end; val(sfor_array,b,error); inc(i); flag:=1; end; celoe:=b div razmer; str(celoe,s_celoe); ostatok:=b mod razmer; str(ostatok,s_ostatok); sceloe:=sceloe+s_celoe; p_chislo:=chislo; delete(p_chislo,1,i); prob:=ord(p_chislo[0]); if prob<=0 then begin if(flag=1) and (ostatok<razmer) then begin flag:=0; goto ex2; end; if(flag2=1) and (ostatok<razmer) then begin chislo:=sceloe; flag2:=0; goto ex2; end; end; if s_ostatok='0' then s_ostatok:=''; chislo:=s_ostatok; chislo:=chislo+p_chislo; i:=1; n:=ord(chislo[0]); if n>5 then begin ostatok:=razmer*2; goto ppp2; end; val(chislo,ostatok,error); ppp2: end; ex2: aa[ii]:=ostatok; inc(ii); s_ostatok:=''; ostatok:=razmer+2; m:=ord(sceloe[0]); if m>5 then begin chislo_new:=razmer*razmer; goto pp2; end; val(sceloe,chislo_new,error); pp2: chislo:=sceloe; sceloe:='';i:=1; end; val(chislo,b,error); aa[ii]:=b; end;
for i:=1 to ii do a[i]:=aa[i]; Writeln; Textcolor (13); Writeln ('Предложенное Вами число в ',razmer,'-ой системе выглядит сл.образом: '); Textcolor (10); for i:=ii downto 1 do begin Case a[i] of 10: simvol:='A'; 11: simvol:='B'; 12: simvol:='C'; 13: simvol:='D'; 14: simvol:='E'; 15: simvol:='F'; 0: simvol:='0'; 1: simvol:='1'; 2: simvol:='2'; 3: simvol:='3'; 4: simvol:='4'; 5: simvol:='5'; 6: simvol:='6'; 7: simvol:='7'; 8: simvol:='8'; 9: simvol:='9'; end; Write (simvol); delay (10000); end; readkey; end.
|