|
|
Опции темы | Опции просмотра |
13.03.2015, 19:58 | #1 (permalink) |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Перевести числа из текста, записанные в 6-ной системе счисления, в 10-ную
Выделить из текста целые числа, записанные в 6-ной системе счисления (считать, что они положительны и в тексте встречаются в виде отдельных "слов") и перевести их в 10-ную систему счисления. character str*20,st*20,sl*15 integer ns,ks,i,dl,ch logical p write (*,*) 'Vvedite stroku' read(*,'(A20)')str st=adjustl(str) L=len_trim(st) ns=1 ks=index(st,' ') do while (ks<=L+1) sl=st(ns:ks) dl=ks-ns p=.true. do i=1,dl,1 if (sl(i:i)<'0'.or.sl(i:i)>'5') then p=.false. write(*,*) 'Slovo ne yavlyatesa chislom' end if end do !perevod iz 6-noi systemi v 10-nyu systemy if (p) then write (*,*) 'Slovo yavlyaetsa chislom' read(sl,'(I10)')ch end if ns=ks+1 ks=ks+index(st(ks+1:),' ') write(*,16)st(ns:ks) 16 format (1x,A) pause end do end |
13.03.2015, 19:58 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
По содержанию ваш топик аналогичен данным темам В двоичном представлении числа инвертировать две последние цифры числа Перевести следующие числа из десятичной системы счисления в двоичную Перевести следующие числа из десятичной системы счисления в двоичную Системы счисления Не могу просмотреть фильмы записанные на компьютер |
13.03.2015, 23:04 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
В таком случае - сожалею, но могу лишь дать ссылку на собственный пост: Потсфиксная форма логического выражения в Fortran.
Другой язык не устроит? Паскаль, например? |
13.03.2015, 23:18 | #5 (permalink) |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Хотелось бы на фортране конечно же. Но пожалуй сойдет, попробую по аналогии перевести на фортран
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
14.03.2015, 09:35 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Не знаю, сколь Вам это поможет, но вот программа на Паскале:
Код:
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 - остаток от деления. |
14.03.2015, 14:36 | #8 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
P.S. Как видите, моя программа справляется "на ура". Попробуйте в ней разобраться. |
|
15.03.2015, 14:01 | #10 (permalink) | |
Member
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
Переводит слова строки в числа Проблема вообщем то в том, что я обозначаю p=.true. (т.е. в строке есть слова-являющиеся цифрами). По идее при вводе строки, состоящей из слов и чисел - на экране появится результат: "слово является числом". Но такого не происходит. Какого бы вида строку я не вводил - пишет, что "слово не является числом" (т.е. p=.false.). Естественно, если слово не является числом, соответственно переводить в систему счисления будет нечего. |
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|