Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Re: |
|
|
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.
[quote="HughAguilar"] Here are some examples: [code] 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 [/code] [/quote] 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.
|
|
|
|
Добавлено: Пн дек 19, 2016 22:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
HughAguilar писал(а): so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted? :)) I like anoter wayONLY FORTH ALSO NUMBERS ... but, may be ALSO DECIMAL some funny? anyway, NUMBERS - is vocabulary description
[quote="HughAguilar"]so, why do the C programmers say that Forth is an interpreted language when C is actually interpreted?[/quote] :))
[url=http://fforum.winglion.ru/viewtopic.php?f=25&t=2929]I like anoter way[/url] ONLY FORTH ALSO NUMBERS ... but, may be ALSO DECIMAL some funny?
anyway, NUMBERS - is vocabulary
[url=http://fforum.winglion.ru/viewtopic.php?f=34&t=2893]description[/url]
|
|
|
|
Добавлено: Пн дек 19, 2016 18:54 |
|
|
|
|
|
Заголовок сообщения: |
Re: |
|
|
вопрос писал(а): Как это сделано, например в С Я думаю, все хорошо знают, как это сделано в С Стандартный пример из Керниган, Ричи. Язык 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 ... GAKvs8baQkFor 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
[quote="вопрос"][b]Как это сделано, например в С [/b] Я думаю, все хорошо знают, как это сделано в С Стандартный пример из [i]Керниган, Ричи. Язык C[/i]
[quote] 7.3. Форматный вывод - функция PRINTF [/quote] [/quote]
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/comp.lang.forth/uGAKvs8baQk For many years, my novice package has supported the output of floating point in both scientific and engineering formats. Here are some examples: [code] 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 [/code]
I also have, in my STRING-STACK.4TH package, code to convert strings into numbers.
This is the documentation: [code] \ 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 [/code]
|
|
|
|
Добавлено: Пн дек 19, 2016 09:11 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
Ethereal писал(а): вопрос писал(а): 10 BASE !
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!! Пиши вместо неё DECIMAL ой, это надо в другую рубрику, там где про "фортеры шутят"
[quote="Ethereal"]вопрос писал(а): 10 BASE !
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!! Пиши вместо неё DECIMAL[/quote] ой, это надо в другую рубрику, там где про "фортеры шутят" 8)
|
|
|
|
Добавлено: Вс июл 03, 2011 09:37 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
Ethereal писал(а): Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!Пиши вместо неё DECIMAL я был ещё очень начинающим, как всё-таки относительно "Алгоритмическая ниша?"
[quote="Ethereal"]Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!!Пиши вместо неё DECIMAL[/quote] я был ещё очень начинающим, как всё-таки относительно "Алгоритмическая ниша?"
|
|
|
|
Добавлено: Вс июл 03, 2011 00:13 |
|
|
|
|
|
Заголовок сообщения: |
Re: |
|
|
вопрос писал(а): 10 BASE !
Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!! Пиши вместо неё DECIMAL
[quote="вопрос"] 10 BASE ! [/quote]Эта строчка НИКОГДА НЕ ИЗМЕНИТ системы счисления !!! Пиши вместо неё DECIMAL
|
|
|
|
Добавлено: Вс июл 03, 2011 00:06 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
Цитата: Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора. Вот недурно бы рассказать о дополнительных возможностях тем, кто не видит смысла в Алгоритмическая ниша?Ethereal писал(а): Вот как-то делается отладка легко и просто без форматного вывода. дело вкуса, не спорю, мне помогал даже этот незаконченный форматный вывод довольно неслабо при отладке (ещё добавил в него цветность и окна подобно как в борланде было)
[quote]Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.[/quote] Вот недурно бы рассказать о дополнительных возможностях тем, кто не видит смысла в [url=http://fforum.winglion.ru/viewtopic.php?f=12&t=2737&p=31207#p31207]Алгоритмическая ниша?[/url] [quote="Ethereal"]Вот как-то делается отладка легко и просто без форматного вывода.[/quote] дело вкуса, не спорю, мне помогал даже этот незаконченный форматный вывод довольно неслабо при отладке (ещё добавил в него цветность и окна подобно как в борланде было)
|
|
|
|
Добавлено: Сб июл 02, 2011 23:56 |
|
|
|
|
|
Заголовок сообщения: |
Re: |
|
|
вопрос писал(а): Насчёт изучения - так отладка в С при изучении всё-равно была быстрее намного чем при изучении форта - за счёт наличия стандартных возможностей, которые в форте кто-то поленился сделать вопрос писал(а): стандартизированные средства вывода в различных форматах с сопровождающим комментарием, причём - перемещаемо, т.к. одна строка и т.д. В каком смысле здесь употреблено слово перемещаемо ? Легко перемещаемо вверх-вниз по тексту программы ? Дык а разве твой любимый редактор не позволяет гонять вверх-вниз целые блоки теста ? В редакторе 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 Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.
[quote="вопрос"]Насчёт изучения - так отладка в [i]С при изучении [/i]всё-равно была быстрее [i]намного [/i]чем при изучении форта - за счёт наличия стандартных возможностей, которые в форте кто-то поленился сделать[/quote] :shock: [quote="вопрос"] стандартизированные средства вывода в различных форматах с сопровождающим комментарием, причём - перемещаемо, т.к. одна строка и т.д.[/quote] В каком смысле здесь употреблено слово перемещаемо ? Легко перемещаемо вверх-вниз по тексту программы ? Дык а разве твой любимый редактор не позволяет гонять вверх-вниз целые блоки теста ? В редакторе 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 Форт - это-же готовый отладчик, зачем улучшать там, где все средства отладки уже есть ? Ставишь бряк-пойнт где надо и потом разглядываешь что интересует. В Си ничего подобного нет. Там отладка кроме вывода промежуточных значений только отдельным отладчиком и в кодах процессора.
|
|
|
|
Добавлено: Сб июл 02, 2011 23:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
dynamic-wind писал(а): А хотелось бы иметь комбинатор из левой и правой скобок:
Код: <" %d " -й тазик содержит: " %f %s "> ну и в чем проблема? Кстати, как вариант, можно посмотреть на str5.f
[quote="dynamic-wind"]А хотелось бы иметь комбинатор из левой и правой скобок:
Код: <" %d " -й тазик содержит: " %f %s ">[/quote] ну и в чем проблема?
Кстати, как вариант, можно посмотреть на str5.f
|
|
|
|
Добавлено: Вт май 17, 2011 20:24 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
вопрос писал(а): я имел ввиду в теме - на второй странице А мне чё-то показалось, что тема начинается на этой странице.
[quote="вопрос"]я имел ввиду в теме - на второй странице[/quote] А мне чё-то показалось, что тема начинается на этой странице. :lol:
|
|
|
|
Добавлено: Вт май 17, 2011 14:02 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
я имел ввиду в теме - на второй странице
я имел ввиду в теме - на второй странице
|
|
|
|
Добавлено: Вт май 17, 2011 13:10 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
вопрос писал(а): там выше есть некоторый набросок expand$ с квадратичным поведением меня особенно порадовал И это не комбинатор.
[quote="вопрос"]там выше есть некоторый набросок[/quote] expand$ с квадратичным поведением меня особенно порадовал :? И это не комбинатор.
|
|
|
|
Добавлено: Вт май 17, 2011 12:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
там выше есть некоторый набросок
там выше есть некоторый набросок
|
|
|
|
Добавлено: Вт май 17, 2011 12:49 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
Можно определить хоть мильён преобразователей величины в строку. Проблема в их комбинировании, ведь каждое оставляет строку на стеке. А хотелось бы иметь комбинатор из левой и правой скобок: Код: <" %d " -й тазик содержит: " %f %s "> Целое, действительное и строка снимутся со стека. На выходе должна быть конкатенация константных строк и строк, выданных отдельными преобразователями %d и др. Как такое сделать на ф-те?
Можно определить хоть мильён преобразователей величины в строку. Проблема в их комбинировании, ведь каждое оставляет строку на стеке. А хотелось бы иметь комбинатор из левой и правой скобок: [code]<" %d " -й тазик содержит: " %f %s ">[/code] Целое, действительное и строка снимутся со стека. На выходе должна быть конкатенация константных строк и строк, выданных отдельными преобразователями %d и др. Как такое сделать на ф-те?
|
|
|
|
Добавлено: Вт май 17, 2011 12:45 |
|
|
|
|
|
Заголовок сообщения: |
Re: Что такое форматированный вывод и какой может быть в FOR |
|
|
вот какой-то очень уж урезанный форматный вывод обнаружил на forth.org.ru http://spf.cvs.sourceforge.net/spf/deve ... ib/print.f ( <- смайлик)
вот какой-то очень уж урезанный форматный вывод обнаружил на forth.org.ru http://spf.cvs.sourceforge.net/spf/devel/~pinka/lib/print.f ( :) <- смайлик)
|
|
|
|
Добавлено: Вт май 17, 2011 12:27 |
|
|
|
|