Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


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

Знаете, в силу моего практически полного незнания Фортрана, точно не скажу, но разглядывание Вашего кода всё время наводит на мысль, что что-то не то с выделением слов-подстрок. Попробуйте вывести промежуточный результат, чтобы на экране появлялись отдельные слова из введенной Вами строки.
Vladimir_S вне форума   Ответить с цитированием

Старый 15.03.2015, 17:35
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

По содержанию ваш топик аналогичен данным темам

В двоичном представлении числа инвертировать две последние цифры числа
Перевести следующие числа из десятичной системы счисления в двоичную
Перевести следующие числа из десятичной системы счисления в двоичную
Системы счисления
Не могу просмотреть фильмы записанные на компьютер

Старый 16.03.2015, 19:50   #12 (permalink)
Over77over
Member
 
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот такой вот результат
Миниатюры
1.png  
Over77over вне форума   Ответить с цитированием
Старый 16.03.2015, 20:07   #13 (permalink)
Over77over
Member
 
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Извините, в той картинке ввел меньше 20-ти символов.
Вот правильная
Миниатюры
2.png  
Over77over вне форума   Ответить с цитированием
Старый 16.03.2015, 20:30   #14 (permalink)
Over77over
Member
 
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ввел в строку "красную строку"(3 пробела в начале),разделил слова и числа пробелами и вот что получилось... Проблема в том что, числа в данной строке фортран не перевел в 10 систему счисления.
Миниатюры
3.png  
Over77over вне форума   Ответить с цитированием
Старый 17.03.2015, 12:00   #15 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от Over77over Посмотреть сообщение
Проблема в том что, числа в данной строке фортран не перевел в 10 систему счисления.
Черт, хоть садись Фортран учи на старости лет...
Вообще проблема не только в этом. Мне, например, непонятно, какого лешего программа выдает 7 сообщений о том, что "слово не является числом"? Она что, по каждому символу это делает? Зачем?
Вообще казалось бы естественным, чтобы шло выделение подстрок-слов от начала введенной строки до первого пробела, между пробелами, от последнего пробела до конца строки. Собственно, у меня так и сделано. Советую для начала при вводе исключить множественные пробелы, а также пробелы в начале и в конце строки. Тогда на первом этапе желательно увидеть что-нибудь в таком роде:
Код:
Vvedite stroku
student 512 414

student
slovo ne yavlaetsa chislom

512
slovo yavlaetsa chislom

414
slovo yavlaetsa chislom
А вот как у Вас делается преобразование систем счисления - совсем не понимаю. В Фортране что - есть специальные операторы? Просто я не в курсе. Опишите, пожалуйста, алгоритм словами - попробую разобраться.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 31.03.2015, 20:56   #16 (permalink)
Over77over
Member
 
Регистрация: 13.03.2015
Сообщений: 16
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот полностью решённая задача. Спасибо всем за помощь.


character str*70, st*70, sl*15
integer dl,ns,ks,j
real ch
logical p
write(*,*) 'vvod stroki'
read(*,'(a70)') 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 j=1,dl,1
if(sl(j:j)<'0'.or. sl(j:j)>'5') then
p=.false.
end if
end do
if(p) then
ch=0
do j=1,dl,1
!perevod iz 6-noi systemi v 10-nyu
d=ichar(st(ns+j-1:ns+j-1))-48
ch=ch+d*(6**(dl-j))
end do
write(*,16) ch
16 format(1x, F10.0)
else
write(*,*) 'net chisel ili ne podhodit po usloviyu'
end if
ns=ks+1
ks=ks+index(st(ks+1,' ')
end do
end
Over77over вне форума   Ответить с цитированием
Ads

Яндекс

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


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 12:19.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.