Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 12:35

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Непонятное [для меня] поведение форта
СообщениеДобавлено: Пт май 07, 2010 07:25 
Не в сети

Зарегистрирован: Пн авг 31, 2009 07:24
Сообщения: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте! Имеется програмка, которая, вроде как, должна вывести на экран строку символов начиная с адреса первого элемента:
Код:
S" Hello" \ строка
VALUE len \ её длина
VALUE str \ её адрес

: main
  len 0
    DO
      str I + C@ EMIT \ берём код символа и выводим его на экран
    LOOP
;

При этом, на экран выводится слово LOOP, причём, первый символ - пробел. Почему так? Может быть, я просто неправильно понимаю, что такое строка S" ? Как я понимаю, это массив символов (однобайтных), начало которого лежит по адресу, в данном случае в len.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное [для меня] поведение форта
СообщениеДобавлено: Пт май 07, 2010 08:02 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
rv82 писал(а):
При этом, на экран выводится слово LOOP, причём, первый символ - пробел. Почему так?

Потому что в режиме интерпретации для строк используется входной буфер. Т.е. каждая новая строка в консоли хранится в одном и том же месте. Поэтому надо либо все одной строкой делать, либо строку компилировать:
Код:
: main
  len 0
    DO
      str I + C@ EMIT \ берём код символа и выводим его на экран
    LOOP
;

S" Hello" VALUE len VALUE str main


Код:
: stroka S" Hello" ; \ строка
stroka
VALUE len \ её длина
VALUE str \ её адрес

: main
  len 0
    DO
      str I + C@ EMIT \ берём код символа и выводим его на экран
    LOOP
;

main

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Непонятное [для меня] поведение форта
СообщениеДобавлено: Пт май 07, 2010 09:23 
Не в сети

Зарегистрирован: Пн авг 31, 2009 07:24
Сообщения: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Как всё просто оказалось! Спасибо! Теперь буду знать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


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

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB