Mercurial > repo
changeset 7909:0b2480d0a73b
<oerjan> ` rm junk/????????
author | HackBot |
---|---|
date | Sat, 07 May 2016 00:40:25 +0000 |
parents | 355ec96b89df |
children | 7d5f1c5e44b1 |
files | junk/BGTV9E93 junk/ReUariBw |
diffstat | 2 files changed, 0 insertions(+), 184 deletions(-) [+] |
line wrap: on
line diff
--- a/junk/BGTV9E93 Sat May 07 00:39:38 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -#include <stdio.h> -#include <string.h> -#include <stdlib.h> -#include <unistd.h> -// initialize the tape with 30,000 zeroes -unsigned long long int tape[30000] = {0}; -unsigned long long int registrar[3] = {0}; // R1, R2, and R3 -// set the pointer to point at the left-most cell of the tape -unsigned long long int* ptr = tape; - - - -void interpret(char* input) { - char current_char; - size_t i; - size_t i2; - size_t i3; - size_t loop; - char i4; - - for (i = 0; input[i] != 0; i++) { - current_char = input[i]; - if (current_char == 'p') { - ++ptr; - } else if (current_char == 'P') { - --ptr; - } else if (current_char == '+') { - ++*ptr; - } else if (current_char == '-') { - --*ptr; - } else if (current_char == 'o' ) { - putchar(*ptr); - } else if (current_char == 'i') { - - *ptr = getchar(); - - } else if (current_char == '[') { - continue; - } else if (current_char == ']' && *ptr) { - loop = 1; - while (loop > 0) { - current_char = input[--i]; - if (current_char == '[') { - loop--; - } else if (current_char == ']') { - loop++; - } - } - } else if (current_char == '/') { //push the value under the pointer to the register specified by the next value under the pointer - ++ptr; - if (*ptr > 2) { - --ptr; - } else { - char temp1 = *ptr; - --ptr; - registrar[temp1] = *ptr; - } - } else if (current_char == '\\') { //Same as /, except popped - ++ptr; - if (*ptr > 2) { - --ptr; - } else { - char temp1 = *ptr; - --ptr; - *ptr = registrar[temp1]; - } - } else if (current_char == 'a') { //Add R1 to R2 and put the sum in R3 - registrar[2] = registrar[0] + registrar[1]; - } else if (current_char == 's') { //Subtract R1 from R2 and put the diffrence in R3 - registrar[2] = registrar[0] - registrar[1]; - } else if (current_char == 'd') { // Divide R1 by R2 and put the quotient in R3 - if (registrar[1] == 0) { - printf("Division by zero occured, Ending!"); - break; - } - registrar[2] = registrar[0] / registrar[1]; - } else if (current_char == 'm') { // Multiply R1 by R2 and put the result in R3 - registrar[2] = registrar[0] * registrar[1]; - } else if (current_char == '*') { // Terminate - break; - } else if (current_char == 'j') { // Jump forward n spaces - - for (i2 = *ptr; i2 != 0; i2--) { - i++; - current_char = input[i]; - } - } else if (current_char == 'J') { // Jump backword n spaces - for (i2 = *ptr; i2 != 0; i2--) { - i--; - current_char = input[i]; - } - } else if (current_char == 'r') { //prints out the data in the source until it hits a ; - i++; - - i3 = i; - for (input[i3];input[i3] != ';';i3++){ - putchar(input[i3]); - i++; - - } - - } else if (current_char == 'R') { - i++; - - putchar(input[i]); - } - // More commands to come, the CIOL specs are not done - } -} - - -int main( int argc, char *argv[] ) { - - interpret(argv[1]); // outputs input - return 0; -} \ No newline at end of file
--- a/junk/ReUariBw Sat May 07 00:39:38 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -int main( int argc, char *argv[] ) { - int words = countwords(argv[1]); - char english[80], piglatin[80]; - initialize(english, piglatin); - words = countwords(english); - - /* Now Pig Latin Translator in C converts English to Pig Latin */ - convert(words, english, piglatin); - writeoutput(piglatin); -} -int countwords(char english[]) -{ - int count, words = 1; - for (count = 0; count < 79; ++count) - if (english[count] == ' ' && english[count + 1] != ' ') - ++words; - return (words); -} -void initialize(char english[], char piglatin[]) -{ - int count; - for (count = 0; count < 80; ++count) - english[count] = piglatin[count] = ' '; - return; -} - - - -/* now Pig Latin translator in C coverts each word into Pig Latin */ -void convert(int words, char english[], char piglatin[]) -{ - int n, count; - int m1 = 0; /* m1 indicates the position of beginning of each word */ - int m2; /* m2 indicates the end of the word */ - - /* convert each word */ - for (n = 1; n <= words; ++n) - { - /* locating the end of the current word */ - count = m1 ; - while (english[count] != ' ') - m2 = count++; - - /* transposing the first letter of each word and adding 'a' at the end */ - for (count = m1 ; count < m2; ++count) - piglatin[count + (n - 1)] = english[count + 1]; - piglatin[m2 + (n - 1)] = english[m1]; - piglatin[m2 + n] = 'a'; /* adding 'a' at the end */ - - /* reseting the initial marker */ - m1 = m2 + 2; - } - return; -} - - -/* now Pig Latin translator in C displays the line of English text in Pig Latin */ -void writeoutput(char piglatin[]) -{ - int count = 0; - for (count = 0; count < 80; ++count) - putchar(piglatin[count]); - printf("\n"); - return; -} \ No newline at end of file