  | 
				 
				
					| 
						
					 | 
				 
			 
		 
 
	
	
		| Autor | 
		Wiadomość | 
	 
	
		
		      Razi 
		      
		          Książe postów 
		           
 
  
		          Dołączył: 17 Sie 2006 
		          Posty: 936 
		          Przeczytał: 0 tematów
  Ostrzeżeń: 0/5 
		      
		       
		      
		 | 
		
			
				 Wysłany: Pon 18:02, 29 Gru 2008    Temat postu: Generator kodu BrainFuck (podstawowy) | 
				    | 
			 
			
				
  | 
			 
			
				
				    
				     	  | Kod: | 	 		  #include <stdio>
 
#include <iostream>
 
 
int abs(int a){
 
   if(a>0) return a;
 
   return (-a);
 
}
 
 
int dzielnik(int a){
 
   int c=a/2, z=0;
 
   int n[c], m=0;
 
   for(int i=1; i<c>2) return n[c+1];
 
   if(m>1) return n[c];
 
   if(a>3) return dzielnik(a-1);
 
   return 0;
 
}
 
int adzielnik(int a){
 
   int c=dzielnik(a);
 
   if(c>0)
 
      return a%c;
 
   return 0;
 
}
 
 
int znak(char a){
 
   return (int)(a);
 
}
 
//32-spacja
 
 
void typ1(char ciag[]){
 
   int a=0;
 
   int i=0;
 
   char bf[255*255];
 
   char *z=&bf[0];
 
   while(ciag[i]>20){
 
      while(a<znak>znak(ciag[i])){ *z='-'; a--; z++;}
 
      *z='.';
 
      z++;
 
      i++;
 
   }
 
   printf("Mózgojeb: %s\n\n", bf);
 
}
 
 
void typ2(char ciag[]){
 
   printf("Mózgojeb: ");
 
 
   //typ 2: 2 komórki: 0-iteracyjna, 1: znaku
 
   int a=0, b, c=0, d=0;
 
   int i=0;
 
   int dzielnik1, dzielnik2;
 
   /*
 
   a - aktualny znak
 
   b - aktualna wartosc
 
   c - różnica
 
   */
 
 
   while(ciag[i]>19){b=a; a=0; //printf("i=%d~~~!~~", i);
 
      while(a<znak>znak(ciag[i])){a--;}
 
      c=abs(a-b);
 
      dzielnik1=dzielnik(c);
 
   if(dzielnik1>0)
 
      dzielnik2=(c-adzielnik(c))/dzielnik1;
 
      c-=dzielnik1*dzielnik2;
 
      d=a-b;
 
//pisanie kodu
 
 
   if(dzielnik1>0){
 
      printf(">");
 
      while(dzielnik1>0){
 
         printf("+");
 
         dzielnik1--;
 
         }
 
      printf("[</pocz>0){
 
         if(d>0) printf("+");
 
         else printf("-");
 
         dzielnik2--;
 
         }
 
   //koniec pętli
 
      printf(">-]<while>0){
 
         if(d>0) printf("+");
 
         else printf("-");
 
         c--;
 
         }
 
//koniec
 
 
      printf(".");
 
      i++;
 
   }
 
   
 
 
}
 
 
 
 
 
int main(){
 
   char ciag[255];
 
 
   printf("\n\nPodaj ciag znakow (max 255 znakow): ");
 
   printf("  ::: %d\n", adzielnik(11));
 
   int i=0;
 
   do{
 
   scanf("%c", &ciag[i]);
 
   }while(ciag[i++]>20);
 
 
   int typ;
 
   do{
 
      printf("Podaj typ konwersji: \n");
 
      printf("      1. po kolei-jedna komorka\n");
 
      printf("      2. jedna pętla\n");
 
 
      printf("wybor: ");
 
      scanf("%i", &typ);
 
   }while(typ<1>2);
 
 
   switch(typ){
 
      case 1: typ1(ciag); break;
 
      case 2: typ2(ciag); break;
 
   }
 
   return 0;
 
}
 
 | 	  
 
 
Też radzę dodać conio.h i getch(); na koniec.
 
 
Robi kod łopatologiczny,  oraz używając jednej pętli
				    
  Post został pochwalony 0 razy
				 | 
			 
		  | 
	 
	
		| Powrót do góry | 
		 | 
	 
	
		  | 
	 
	   | 
        |  
         |  
    
	
		 | 
	 
 
  
	 
	    
	   | 
	
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
  | 
   
 
fora.pl - załóż własne forum dyskusyjne za darmo 
 
 |