hotovo
This commit is contained in:
parent
045c3b8e85
commit
2089ceee18
18
sk4/kod.txt
18
sk4/kod.txt
@ -1,7 +1,15 @@
|
|||||||
TUK
|
TUK
|
||||||
INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK KUK
|
INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK PUK
|
||||||
DEK DEK KUK
|
INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK PUK
|
||||||
DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK KUK
|
INK INK INK PUK
|
||||||
KUK
|
INK INK INK INK INK INK INK INK INK INK INK PUK
|
||||||
DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK KUK
|
BREK
|
||||||
|
INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK PUK
|
||||||
|
GLEK
|
||||||
|
DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK PUK
|
||||||
|
INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK INK PUK
|
||||||
|
DEK DEK DEK DEK DEK DEK DEK DEK DEK PUK 102
|
||||||
|
INK INK INK PUK 105
|
||||||
|
INK INK INK INK INK INK INK INK INK PUK 114
|
||||||
|
DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK DEK PUK 97
|
||||||
FUK
|
FUK
|
114
sk4/program.c
114
sk4/program.c
@ -13,18 +13,20 @@ TUK, FUK
|
|||||||
|
|
||||||
char dtape[30000] = {0};//hlava dh
|
char dtape[30000] = {0};//hlava dh
|
||||||
inst ptape[30000] = {0};//hlava ph
|
inst ptape[30000] = {0};//hlava ph
|
||||||
size_t loops[2][15000] = {{0},{0}};
|
size_t validRP[15000]={0};
|
||||||
|
|
||||||
|
inst* loops[2][15000] = {{0},{0}};//adresy zatvoriek
|
||||||
size_t loopscount=0;
|
size_t loopscount=0;
|
||||||
char* dhead = dtape;
|
char* dhead = dtape;
|
||||||
inst* phead = ptape;
|
inst* phead = ptape;
|
||||||
|
|
||||||
void run_tukafuk(const char* code) {//
|
void run_tukafuk(const char* code) {
|
||||||
char current_char;
|
char current_char;
|
||||||
bool running = false;
|
bool running = false;
|
||||||
size_t i;
|
size_t i;
|
||||||
//bolo pozadovane zistit, kdd su skoky a teda som ich ulozil
|
//bolo pozadovane zistit, kdd su skoky a teda som ich ulozil
|
||||||
//(tie adresy skokov)
|
//(tie adresy skokov)
|
||||||
for (i = 0; code[i] != 0; i++) {
|
for (i = 0; code[i] != 0; i++){
|
||||||
current_char = code[i];
|
current_char = code[i];
|
||||||
size_t j;
|
size_t j;
|
||||||
size_t loop;
|
size_t loop;
|
||||||
@ -97,8 +99,9 @@ void run_tukafuk(const char* code) {//
|
|||||||
break;
|
break;
|
||||||
case ']':
|
case ']':
|
||||||
for(size_t k=0;k<loopscount;k++){
|
for(size_t k=0;k<loopscount;k++){
|
||||||
if(loops[1][k]==i){
|
if(validRP[k]==i){
|
||||||
*phead = RP;
|
*phead = RP;
|
||||||
|
loops[1][k]=phead;
|
||||||
phead++;
|
phead++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -119,53 +122,90 @@ void run_tukafuk(const char* code) {//
|
|||||||
}
|
}
|
||||||
if(loop==0){
|
if(loop==0){
|
||||||
*phead = LP;
|
*phead = LP;
|
||||||
|
loops[0][loopscount] = phead;
|
||||||
|
validRP[loopscount++] = j;
|
||||||
phead++;
|
phead++;
|
||||||
loops[0][loopscount] = i;
|
|
||||||
loops[1][loopscount++] = j;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
/*if (current_char == 'INK') {//>
|
|
||||||
++ptr;
|
|
||||||
} else if (current_char == 'DEK') {//<
|
|
||||||
--ptr;
|
|
||||||
} else if (current_char == 'BREK') {// +
|
|
||||||
++*ptr;
|
|
||||||
} else if (current_char == 'GLEK') {// -
|
|
||||||
--*ptr;
|
|
||||||
} else if (current_char == 'PUK' ) {// .
|
|
||||||
putchar(*ptr);
|
|
||||||
} else if (current_char == 'KUK') {// ,
|
|
||||||
*ptr = getchar();
|
|
||||||
} else if (current_char == '[') {//start loop
|
|
||||||
continue;
|
|
||||||
} else if (current_char == ']' && *ptr) {stop loop
|
|
||||||
loop = 1;
|
|
||||||
while (loop > 0) {
|
|
||||||
current_char = input[--i];
|
|
||||||
if (current_char == '[') {
|
|
||||||
loop--;
|
|
||||||
} else if (current_char == ']') {
|
|
||||||
loop++;
|
|
||||||
}
|
}
|
||||||
*/
|
phead = ptape;
|
||||||
|
for (i = 0; i<30000; i++){
|
||||||
|
if(running){
|
||||||
|
switch(*phead){
|
||||||
|
case INK:
|
||||||
|
(*dhead)++;
|
||||||
|
break;
|
||||||
|
case DEK:
|
||||||
|
(*dhead)--;
|
||||||
|
//printf("->%c\n",*dhead);
|
||||||
|
break;
|
||||||
|
case BREK:
|
||||||
|
dhead++;
|
||||||
|
break;
|
||||||
|
case GLEK:
|
||||||
|
dhead--;
|
||||||
|
break;
|
||||||
|
case PUK:
|
||||||
|
//printf("Puk\n");
|
||||||
|
putchar(*dhead);
|
||||||
|
//printf("\nPukEnd\n");
|
||||||
|
break;
|
||||||
|
case KUK:
|
||||||
|
printf("Zadaj vstup: \n");
|
||||||
|
*dhead=getchar();
|
||||||
|
//printf("Kukol %c\n",*dhead);
|
||||||
|
break;
|
||||||
|
case FUK:
|
||||||
|
running=false;
|
||||||
|
break;
|
||||||
|
case LP:
|
||||||
|
if(*dhead==0){
|
||||||
|
for(int j=0;j<loopscount;j++){
|
||||||
|
if(loops[0][j]==phead){
|
||||||
|
phead=loops[1][j];
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case RP:
|
||||||
|
if(*dhead!=0){
|
||||||
|
for(int j=0;j<loopscount;j++){
|
||||||
|
if(loops[1][j]==phead){
|
||||||
|
phead=loops[0][j];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!running)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(*phead==TUK)
|
||||||
|
running=true;
|
||||||
|
}
|
||||||
|
phead++;
|
||||||
|
}
|
||||||
|
printf(" \n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
char buff[30000];
|
char buff[30000];
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
fp = fopen("kod.txt","r");
|
fp = fopen("kod.txt","r");
|
||||||
|
//memset(buff,0,sizeof(buff));
|
||||||
|
size_t fr = fread(buff,1,30000,fp);
|
||||||
|
buff[fr]=0;
|
||||||
|
|
||||||
memset(buff,0,sizeof(buff));
|
//printf("buffer:\n %s\n",buff);
|
||||||
printf("buffer:\n %s\n",buff);
|
|
||||||
fread(buff,1,30000,fp);
|
|
||||||
|
|
||||||
printf("buffer:\n %s\n",buff);
|
|
||||||
run_tukafuk(buff);
|
run_tukafuk(buff);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
printf("Programova Paska: \n");
|
/*printf("Programova Paska: \n");
|
||||||
|
|
||||||
for(inst *ptr=ptape;ptr<phead;ptr++){
|
for(inst *ptr=ptape;ptr<=phead;ptr++){
|
||||||
switch (*ptr){
|
switch (*ptr){
|
||||||
case TUK:printf("TUK ");
|
case TUK:printf("TUK ");
|
||||||
break;
|
break;
|
||||||
@ -191,6 +231,6 @@ int main() {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n");
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
BIN
sk4/program.exe
BIN
sk4/program.exe
Binary file not shown.
Loading…
Reference in New Issue
Block a user