Показать сообщение отдельно
Старый 14.03.2015, 09:35   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Over77over Посмотреть сообщение
Но пожалуй сойдет, попробую по аналогии перевести на фортран
Не знаю, сколь Вам это поможет, но вот программа на Паскале:
Код:
Var
 S,W:String;
 i,R,Code:Integer;

Function Six2Ten(N:Integer):Integer;
Var
 M,Q,p:Integer;
begin
 Q:=N;
 p:=1;
 M:=Q mod 10;
 Repeat
  Q:=Q div 10;
  if Q>0 then
   begin
    p:=p*6;
    M:=M+(Q mod 10)*p;
   end;
 Until Q=0;
 Six2Ten:=M;
end;

Begin
 Writeln('Enter the string:');
 ReadLn(S);
 i:=0;
 Repeat
  i:=i+1;
  if i<=Length(S) then
   begin
    if (i=1) or ((i>1) and (S[i-1]=' ') and
       ((Ord(S[i])>47) and (Ord(S[i])<54))) then
     begin
      W:='';
      repeat
       W:=W+S[i];
       i:=i+1;
      until (i>Length(S)) or (Ord(S[i])<48) or (Ord(S[i])>53);
      if (i>Length(S)) or (S[i]=' ') then
       begin
        Val(W,R,Code);
        Writeln;
        Write('Six_based: ',R,'   Ten_based: ',Six2Ten(R));
       end;
     end;
   end;
 Until i>=Length(S);
 Readln
End.
На всякий случай:
Val(S,N,Code) - преобразует строку в число. Code - просто флажок корректности операции.
Ord(C) - возвращает код символа C.
div - целочисленное деление.
mod - остаток от деления.
Изображения
 
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070