Дан текст. Устранить в нем лишние пропуски, оставив между словами не более 2-х пропусков. Определить суму кодов всех парных слов. Результат вывести на экран в 10-ной и 16-ой системах счисления
Категория: Delphi/Pascal
2012-02-28 22:28:40
code: #pascal
Program PascalGuru; {-------------------------------------------------} function dec2hex(des:integer):string; var i,ost,n,l:integer; s,s1,sbox,temp:string; begin n:=0; i:=0; s:=''; repeat inc(n); inc(i); ost:=des mod 16;//остаток des:=des div 16;//целая часть if ost>=10 then begin if ost=10 then s:=s+'A'; if ost=11 then s:=s+'B'; if ost=12 then s:=s+'C'; if ost=13 then s:=s+'D'; if ost=14 then s:=s+'E'; if ost=15 then s:=s+'F'; end else begin str(ost,temp); s:=s+temp; end; until des=0; {Переворачиваем содержимое} n:=1; l:=length(s); for i:=1 to (l div 2) do begin sbox:=s[n]; s[n]:=s[l+1-n]; s[l+1-n]:=sbox[1]; inc(n); end; dec2hex:=s; end; {-------------------------------------------------} var s:string; i,n,p,summa:integer; A:array[1..50] of string; begin write('Vvedite stroku slov [cerez probely]:'); readln(s); i:=1; repeat if copy(s,i,2)=' ' then delete(s,i,1) else inc(i); until i>length(s); {оставили по 1 пропуску} writeln; writeln('Preobrazovannaya stroka: ',s); i:=0; repeat inc(i); p:=pos(' ',s); A[i]:=copy(s,1,p-1); delete(s,1,p); until p=0; n:=i; A[n]:=s; summa:=0; for i:=1 to n do if not odd(i) then begin s:=A[i]; for p:=1 to length(s) do summa:=summa+ord(s[p]); end; writeln('Summa [10s]: ',summa); writeln('Summa [16s]: ',dec2hex(summa)); readln; end.
Поделиться: