anikamalish
?>

Нужно написать программу, которая будет переводить из любой системы счисления в десятеричную. и должны присутствовать mod и div, желательно покороче!

Информатика

Ответы

Barabanov Gerasimenko
Var
  s:string;
  m,pk:real;
  a:array[1..20] of real;
  i,k,n:integer;
begin
  Write('Введите число в системе счисления с основанием [2;16]: ');
  Readln(s);
  n:=Length(s);
  for i:=1 to n do begin
    if s[i] in ['0'..'9'] then a[i]:=Ord(s[i])-Ord('0')
    else
      if s[i] in ['A'..'F'] then a[i]:=Ord(s[i])-Ord('A')+10
      else
        if s[i] in ['a'..'f'] then a[i]:=Ord(s[i])-Ord('a')+10
        else begin
          Writeln('Символ ',s[i],' недопустим!');
          Exit
          end
    end;
  Write('Введите основание системы счисления: '); Read(k);
  if (k<2) or (k>16) then begin
    Writeln('Такое значение недопустимо!');
    Exit
    end;
  m:=a[n];
  pk:=k;
  for i:=n-1 downto 1 do begin
    m:=m+a[i]*pk;
    pk:=pk*k
    end;
  Writeln('Десятичный эквивалент введенного числа равен ',m)
end.

Тестовое решение
Введите число в системе счисления с основанием [2;16]: 4e32Ca
Введите основание системы счисления: 16
Десятичный эквивалент введенного числа равен 5124810
maltes
1)var a:array[1..4,1..4] of integer;
      i,j,s:integer;
begin
      for i:=1 to 4 do
         for j:=1 to 4 do 
               readln(a[i,j]);
         
           for i:=1 to 4 do begin 
                     writeln();
                   for j:=1 to 4 do begin 
                     write(a[i,j],' '); 
                    if (i+j>5) then s:=s+a[i,j];
                        end;
                 end;
writeln();
write(s);
end.

2)var a:array[1..4,1..4] of integer;
      i,j,s:integer;
begin
      for i:=1 to 4 do
         for j:=1 to 4 do 
               readln(a[i,j]);
         
           for i:=1 to 4 do begin 
                     writeln();
                   for j:=1 to 4 do begin 
                     write(a[i,j],' '); 
                    if (i>J) then s:=s+a[i,j];
                        end;
                 end;
writeln();
write(s);
end.
dentob72
var  mas1, mas2: array[0..9] of integer;  t, k, i, j: integer; 
begin  
readln(t);  
readln(k);  
for j := 0 to 1 do  begin   
      if (j = 1) then writeln();        
                 for i := 0 to 9 do    begin      
                          if(j = 0) then begin       
                                  mas1[i] := random(100);        
                                    write(mas1[i], ' ');       
                                    if mas1[i] > t Then mas1[i] := mas1[i] + 4;      
                              end      
                            else 
                               begin       
                                      mas2[i] := random(100);        
                                      write(mas2[i], ' ');       
                                       if mas2[i] > 10 * K Then         
                                            mas2[i] := mas2[i] + K;      
                                end;    
                       end;       
                  for i := 0 to 9 do     
                         if (j = 0) then 
                               write(mas1[i]) 
                        else 
                                write(mas2[i]);    
               writeln();  
           end;  
readln();
end.

))

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Нужно написать программу, которая будет переводить из любой системы счисления в десятеричную. и должны присутствовать mod и div, желательно покороче!
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

shmidt
Александр
ghjcnjtyjn64
abroskin2002
Pavel_Olegovna1601
mayskiyandrey90
Shumnova42
zazaza74
teta63
lighturist
tshelokova
natalyazx151092814
orb-barmanager
impulsmc715
MikhailovnaAnastasiya