#include <stdio.h>
#include <stdlib.h>
#define ST_PARAMETROV 4 //stevilo vhodnih parametrov
#define VEL_SPOMINA 10000 //velikost spomina +-10000
#define VEL_PROGRAMA 10000 //največja velikost programa
#define DOVOLJENIH_UKAZOV 10000 //največje dovoljeno število ukazov
int main() {
// \0 označuje konec programa
char program[VEL_PROGRAMA] = ",.>,<<,->--->+++.<.<.\0";
int programPointer = 0;
char parametri[ST_PARAMETROV] = {20,30,40,50};
int parametriPointer = 0;
unsigned char spomin[VEL_SPOMINA*2] = {0};
int spominPointer = VEL_SPOMINA;
int stOklepajev;
int stOpravljenihUkazov = 0;
while(program[programPointer] != 0 && DOVOLJENIH_UKAZOV > stOpravljenihUkazov){
switch(program[programPointer]){
case '>':
spominPointer ++;
break;
case '<':
spominPointer --;
break;
case '+':
spomin[spominPointer] ++;
break;
case '-':
spomin[spominPointer] --;
break;
case '.':
printf("%i\n",spomin[spominPointer]);
break;
case ',':
//če je zmanka parametrov zapiše 0
if(parametriPointer > ST_PARAMETROV-1)spomin[spominPointer] = 0;
else spomin[spominPointer] = parametri[parametriPointer++];
break;
case '[':
if(spomin[spominPointer] == 0){
stOklepajev = 1;
while(stOklepajev != 0){
programPointer ++;
if(program[programPointer] == ']'){
stOklepajev--;
}
if(program[programPointer] == '['){
stOklepajev++;
}
}
}
break;
case ']':
if(spomin[spominPointer] != 0){
stOklepajev = 1;
while(stOklepajev != 0){
programPointer--;
if(program[programPointer] == '['){
stOklepajev--;
}
if(program[programPointer] == ']'){
stOklepajev++;
}
}
}
break;
}
programPointer ++;
stOpravljenihUkazov++;
}
return 0;
}
Здравствуйте, могу ли кто-нибудь помочь мне, пожалуйста, у меня возникли трудности с преобразованием этого кода с языка C на язык Java, может ли кто-нибудь, кто может это сделать без каких-либо проблем и с легкостью. Я уже пробовал перевести его на Java, но я терпеть неудачу каждый раз со многими ошибками. Я был бы очень признателен, если бы кто-то мог просто преобразовать код в Java, и тогда я исправлю ошибки самостоятельно.Преобразование кода из C в Java
Сам код является интерпретатором Brainfuck. Спасибо
Вы можете оставить попытки (Java) здесь, поэтому мы можем попробовать и исправить ее. Насколько я знаю, было бы легко преобразовать. –
Правильно, не слишком сложно делать, но мы не будем делать домашнее задание, если вы, по крайней мере, не попробуете. И есть причина, почему английские имена переменных и т. Д. Имеют смысл. – deviantfan