- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
#include <stdio.h>
#include <stdint.h>
#define ARR_L 11
#define INS_P (arr[0])
#define MOD_L(a) ((a) % ARR_L)
#define INS_P_M (MOD_L(INS_P))
#define ARR_ACS(a) (arr[MOD_L(a)]) //access to arr
void foo (uint8_t *arr)
{
ARR_ACS(3) = INS_P * ARR_ACS(INS_P);
ARR_ACS( MOD_L( INS_P_M + 1 ) ) = ((INS_P * INS_P) * 2);
if (INS_P != 0) {ARR_ACS(INS_P_M)++;};
INS_P = INS_P_M + 1;
// tut voobche lubaya fignya, kotoraya chtoby izmenyala
// figny v massive v zavisimosti ot sostoyania massiva
}
int main(void) {
uint8_t arr[ARR_L] = {0,2,6,3,2,62,7,113,0,26,13};
for (size_t a = 0; a < 10000; a++)
{
foo(arr);
printf
(
"%.3u %.3u %.3u %.3u %.3u "
"%.3u %.3u %.3u %.3u %.3u %.3u\n",
INS_P,arr[1],arr[2],arr[3],arr[4],
arr[5],arr[6],arr[7],arr[8],arr[9],arr[10]);
}
return 0;
}
Машина Тьюринга с лентой конечной длины - конечный автомат. Состояние обязательно зациклится, какие бы правила преобразования над конечным алфавитом мы не вводили и каким бы ни было начальное состояние ленты.
В сишке есть возможности вменяемо сделать вывод чисел из массива подряд для N-ного количества аргументов?
Цикл не предлагать
Vasiliy 12.05.2014 19:18 # 0
Цикл не предлагать
Рекурсия не?
j123123 12.05.2014 19:31 # +1
Dummy00001 12.05.2014 19:42 # +3
и чем цикл тебе плох?
j123123 12.05.2014 20:59 # 0
Xom94ok 12.05.2014 21:45 # +1
Или у тебя какие-то особые требования к производительности?
j123123 12.05.2014 21:52 # 0
j123123 12.05.2014 21:55 # 0
И оно делает printf("%.3u %.3u .....", a[0], a[1], a[2] ....) нужное число раз
Или чтобы вообще генерировало сишный код специальной функции которая именно семь раз выводит из массива такую-то фигню...
Dummy00001 12.05.2014 22:22 # +2
в реальной жизни, буферизированого stdio вполне хватает.
j123123 12.05.2014 22:24 # 0
Dummy00001 12.05.2014 22:28 # +1
http://llvm.org/docs/tutorial/
может есть нечто подобное для clang'а, но я не в курсе.
j123123 12.05.2014 22:25 # +3
roman-kashitsyn 13.05.2014 07:55 # +3
wvxvw 13.05.2014 08:30 # 0
Фортраноподобные языки, это языки на уровне "конкретных интерпретаций". А раз уж они там, то возникает резонный вопрос: если бы они были такими же, как и правила, которые они интерпретируют, то в чем заключается эта интерпретация?
(Это не вдаваясь в дискуссии по поводу необходимости третьего уровня, его назначения)
bormand 13.05.2014 05:24 # +1
А как же BOOST_PP? :) Там и циклы и условия и даже арифметика (примитивная, в ограниченном интервале).
На нем вполне можно высрать нужный j123123 код.
bormand 13.05.2014 05:37 # +4
bormand 13.05.2014 05:44 # +5
j123123 13.05.2014 08:51 # 0
guest 13.05.2014 08:57 # +5
j123123 13.05.2014 09:04 # 0
bormand 13.05.2014 13:05 # +3
И время исполнения этой функции как было ничтожным по сравнению со временем записи на диск или передачи в эмулятор терминала, так и останется...
Или ты эту прогу только на рамдиске гоняешь?
j123123 13.05.2014 13:40 # 0
bormand 13.05.2014 14:45 # 0
Поэтому сохраняй все в двоичном, не трахаясь с оптимизацией десятичного вывода. А когда захочется что-то посмотреть - сконвертишь нужный фрагмент в человекочитаемый вид.
j123123 13.05.2014 14:59 # 0
bormand 13.05.2014 15:04 # 0
Ну тогда сам бог велел писать в двоичном. Сэкономишь кучу тактов на парсинге ;)
j123123 13.05.2014 13:42 # 0
Dummy00001 13.05.2014 12:54 # 0
тем кто байто-трубациями занимаются, не к лицу.
bormand 13.05.2014 12:59 # 0
Dummy00001 13.05.2014 13:15 # +1
bormand 13.05.2014 13:30 # 0
Dummy00001 13.05.2014 13:34 # +2
PS я знаю что такое bost_pp.
myaut 12.05.2014 22:27 # 0
g++ все развернул внутри main
j123123 12.05.2014 22:28 # +1
myaut 12.05.2014 22:45 # +7
Ультимативный аргумент в технологическом споре!
j123123 12.05.2014 22:31 # +2
1024-- 12.05.2014 22:59 # +5
Слова не мальчика, но... доктора наук из клуба wvxvw.
brutushafens 12.05.2014 23:04 # +2
guest 12.05.2014 23:28 # −2
guest 12.05.2014 23:31 # +1
guest 12.05.2014 23:31 # −2
guest 12.05.2014 23:33 # −2
guest 12.05.2014 23:33 # −1
guest 13.05.2014 04:57 # 0
gost 21.05.2014 12:42 # 0
guest 13.05.2014 04:56 # 0
guest 13.05.2014 12:58 # 0
defecate-plusplus 13.05.2014 14:10 # +4
фу, на шаблонах можно и print_array(arr); замутить
roman-kashitsyn 13.05.2014 14:28 # +3
Dummy00001 12.05.2014 19:44 # +2
да. гарантировано зациклится.
j123123 12.05.2014 20:05 # 0
// хотя там пофиг, ибо везде ARR_ACS используется, который срезает
roman-kashitsyn 12.05.2014 19:46 # +1
j123123 12.05.2014 20:59 # −1
roman-kashitsyn 12.05.2014 21:03 # +3