Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт мар 19, 2024 06:17

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 105 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7
Автор Сообщение
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 12:27 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
вот какой-то очень уж урезанный форматный вывод обнаружил на forth.org.ru
http://spf.cvs.sourceforge.net/spf/deve ... ib/print.f ( :) <- смайлик)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 12:45 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
Можно определить хоть мильён преобразователей величины в строку.
Проблема в их комбинировании, ведь каждое оставляет строку на стеке.
А хотелось бы иметь комбинатор из левой и правой скобок:
Код:
<" %d " -й тазик содержит: " %f %s ">

Целое, действительное и строка снимутся со стека.
На выходе должна быть конкатенация константных строк и строк, выданных отдельными преобразователями %d и др.
Как такое сделать на ф-те?


Последний раз редактировалось dynamic-wind Вт май 17, 2011 12:50, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 12:49 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
там выше есть некоторый набросок


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 12:52 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
вопрос писал(а):
там выше есть некоторый набросок

expand$ с квадратичным поведением меня особенно порадовал :?
И это не комбинатор.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 13:10 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
я имел ввиду в теме - на второй странице


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 14:02 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июн 25, 2009 11:12
Сообщения: 412
Благодарил (а): 41 раз.
Поблагодарили: 8 раз.
вопрос писал(а):
я имел ввиду в теме - на второй странице

А мне чё-то показалось, что тема начинается на этой странице. :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вт май 17, 2011 20:24 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
dynamic-wind писал(а):
А хотелось бы иметь комбинатор из левой и правой скобок:

Код:
<" %d " -й тазик содержит: " %f %s ">

ну и в чем проблема?

Кстати, как вариант, можно посмотреть на str5.f

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: Сб июл 02, 2011 23:24 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
вопрос писал(а):
Насчёт изучения - так отладка в С при изучении всё-равно была быстрее намного чем при изучении форта - за счёт наличия стандартных возможностей, которые в форте кто-то поленился сделать

:shock:
вопрос писал(а):
стандартизированные средства вывода в различных форматах с сопровождающим комментарием, причём - перемещаемо, т.к. одна строка и т.д.

В каком смысле здесь употреблено слово перемещаемо ?
Легко перемещаемо вверх-вниз по тексту программы ?
Дык а разве твой любимый редактор не позволяет гонять вверх-вниз целые блоки теста ?
В редакторе FAR-а такие перемещения делаются молниеносно : Shift-стрелки/Home/End Del курсор_на_новое_место Shift-Ins
Например такой кусок для вывода промежуточных значений (переменных XXX и YYY) при отладке :
." DEPTH=" DECIMAL DEPTH . CR
." XXX=" XXX @ .
." YYY=" HEX YYY @ U. CR
гоняешь вверх-вниз по тексту программы и отлаживаешь. Вот как-то делается отладка легко и просто без форматного вывода. А еще можно безо всякого вывода промежуточных результатов просто поставить в форт-программе точку останова
DEPTH . QUIT
после срабатывания которой можно он-лайн (вводя команды с клавиатуры) поразглядывать все интересующие переменные, например
DECIMAL XXX @ .
HEX YYY @ U.
ARRAY 100 DUMP
Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Сб июл 02, 2011 23:56 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.

Вот недурно бы рассказать о дополнительных возможностях тем, кто не видит смысла в
Алгоритмическая ниша?
Ethereal писал(а):
Вот как-то делается отладка легко и просто без форматного вывода.

дело вкуса, не спорю, мне помогал даже этот незаконченный форматный вывод довольно неслабо при отладке (ещё добавил в него цветность и окна подобно как в борланде было)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: Вс июл 03, 2011 00:06 
Не в сети
Аватара пользователя

Зарегистрирован: Ср фев 23, 2011 20:42
Сообщения: 600
Откуда: Карелия
Благодарил (а): 3 раз.
Поблагодарили: 24 раз.
вопрос писал(а):
10 BASE !
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!
Пиши вместо неё DECIMAL


Последний раз редактировалось Ethereal Вс июл 03, 2011 00:17, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вс июл 03, 2011 00:13 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Ethereal писал(а):
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!Пиши вместо неё DECIMAL

я был ещё очень начинающим, как всё-таки относительно "Алгоритмическая ниша?"


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Вс июл 03, 2011 09:37 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
Ethereal писал(а):
вопрос писал(а):
10 BASE !

Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!
Пиши вместо неё DECIMAL

ой, это надо в другую рубрику, там где про "фортеры шутят" 8)

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re:
СообщениеДобавлено: Пн дек 19, 2016 09:11 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 60
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
вопрос писал(а):
Как это сделано, например в С
Я думаю, все хорошо знают, как это сделано в С
Стандартный пример из Керниган, Ричи. Язык C

Цитата:
7.3. Форматный вывод - функция PRINTF


I didn't read all of this thread. I just noticed this mention of C's PRINTF function.

I have always considered PRINTF to be a bad idea --- this is essentially a miniature language that is being interpreted at run-time --- so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted?

Quite a lot can be done with <# # #> etc. --- and, this compiles into machine-code --- it is not a mark-up language that gets interpreted at run-time like the PRINTF uses.

The subject of formatted output of floating-point numbers was recently discussed on comp.lang.forth:
https://groups.google.com/forum/#!topic ... GAKvs8baQk
For many years, my novice package has supported the output of floating point in both scientific and engineering formats. Here are some examples:
Код:
123456789123456.789e  ok F:-1
fdup engineering type 123.45679e12  ok F:-1
fdup scientific  type 1.2345679e14  ok F:-1

1234.56789e engineering type 1.2345679e3  ok
123.456789e engineering type 123.45679  ok
12.3456789e engineering type 12.345679  ok
1.23456789e engineering type 1.2345679  ok
.123456789e engineering type 123.45679e-3  ok
.0123456789e engineering type 12.345679e-3  ok
.00123456789e engineering type 1.2345679e-3  ok
.000123456789e engineering type 123.45679e-6  ok

2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000001.0001e  ok F:-1
eng type 2e9  ok
2000000000.000123456789e  ok F:-1
eng type 7,751,640.03949188 ok       \ this is a bug in VFX --- F. doesn't work either
2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000.0001234567e  ok F:-1
eng type 2,000,000.00012346 ok
0.0e  ok F:-1
eng type 0  ok
-0.0e  ok F:-1
eng type 0  ok
-0.0001e  ok F:-1
eng type -100e-6  ok


I also have, in my STRING-STACK.4TH package, code to convert strings into numbers.

This is the documentation:
Код:
\ STR>INT converts strings to integers, either singles and doubles.
\ An integer is a string of digits. There may be commas throughout.
\ An integer may have a $ # or % at the front, signifying that it is hexadecimal, decimal or binary. If none of these are present, then BASE is used.
\ An integer may have a + or - at the front (after the base signifier if there is one), signifying non-negative or negative, but otherwise it is non-negative.
\ A comma at the beginning (after the sign signifier if there is one) signifies that the integer is a double, but otherwise it is a single.

\ These are valid integers:
\ $-,123,456        double: -123456 hexadecimal
\ -,123,456         double: -123456
\ ,123,456          double: 123456
\ 123,456           single: 123456

\ STR>FLT converts strings to floats.
\ A float is a string of digits. There may be commas throughout. All floats are in decimal.
\ A comma in the front is legal but should not be used as STR>NUM will interpret this as an invalid double.
\ There must be either a decimal-point or an exponent-signifier (either 'E' or 'e') or both.
\ If there is a decimal-point, there must be digits either before or after or both.
\ The first digits are the integer part. The digits after the decimal-point, if there is a decimal-point, are the fraction part.
\ The digits after the exponent-signifier, if there is an exponent-signifier, are the exponent part (scientific notation).
\ If there is an exponent-signifier, there must be digits after it.
\ An exponent may have a + or - at the front, signifying non-negative or negative, but otherwise it is non-negative.

\ STR>NUM converts strings to either integers or floats.

\ These are valid floats:
\ -123,456.78       float: -123456.78
\ -123,456.78E4     float: -1234567800
\ -123,456.78E-4    float: -12.345678
\ 123E4             float: 1230000


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Что такое форматированный вывод и какой может быть в FOR
СообщениеДобавлено: Пн дек 19, 2016 18:54 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
HughAguilar писал(а):
so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted?

:))

I like anoter way
ONLY FORTH
ALSO NUMBERS
...
but, may be ALSO DECIMAL some funny?

anyway, NUMBERS - is vocabulary

description

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Re:
СообщениеДобавлено: Пн дек 19, 2016 22:25 
Не в сети

Зарегистрирован: Сб дек 17, 2016 23:03
Сообщения: 60
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
HughAguilar писал(а):
Here are some examples:
Код:
123456789123456.789e  ok F:-1
fdup engineering type 123.45679e12  ok F:-1
fdup scientific  type 1.2345679e14  ok F:-1

1234.56789e engineering type 1.2345679e3  ok
123.456789e engineering type 123.45679  ok
12.3456789e engineering type 12.345679  ok
1.23456789e engineering type 1.2345679  ok
.123456789e engineering type 123.45679e-3  ok
.0123456789e engineering type 12.345679e-3  ok
.00123456789e engineering type 1.2345679e-3  ok
.000123456789e engineering type 123.45679e-6  ok

2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000001.0001e  ok F:-1
eng type 2e9  ok
2000000000.000123456789e  ok F:-1
eng type 7,751,640.03949188 ok       \ this is a bug in VFX --- F. doesn't work either
2000000000.0001e  ok F:-1
eng type 2,000,000,000.0001 ok
2000000.0001234567e  ok F:-1
eng type 2,000,000.00012346 ok
0.0e  ok F:-1
eng type 0  ok
-0.0e  ok F:-1
eng type 0  ok
-0.0001e  ok F:-1
eng type -100e-6  ok


When I quote my post, I get the original text --- when I look at it on the forum though, I see my code translated into Russian and back into English, so it is all nonsense.

I would have expected a CODE section to be left verbatim.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 105 ]  На страницу Пред.  1 ... 3, 4, 5, 6, 7

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


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

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


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

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