From 74badf524e72d1c3e9bf799a95228f90e3649f80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nu=C3=B1o=20Sempere?= Date: Sat, 7 Apr 2018 15:44:56 +0200 Subject: [PATCH] Add files via upload --- divisor 1.1/const.h | 9 +++++ divisor 1.1/main | Bin 0 -> 19696 bytes divisor 1.1/main.c | 47 ++++++++++++++++++++++++ divisor 1.1/states.h | 6 +++ divisor 1.1/states.o | Bin 0 -> 2576 bytes divisor 1.1/turing.c | 85 +++++++++++++++++++++++++++++++++++++++++++ divisor 1.1/turing.h | 8 ++++ 7 files changed, 155 insertions(+) create mode 100644 divisor 1.1/const.h create mode 100644 divisor 1.1/main create mode 100644 divisor 1.1/main.c create mode 100644 divisor 1.1/states.h create mode 100644 divisor 1.1/states.o create mode 100644 divisor 1.1/turing.c create mode 100644 divisor 1.1/turing.h diff --git a/divisor 1.1/const.h b/divisor 1.1/const.h new file mode 100644 index 0000000..b0babc6 --- /dev/null +++ b/divisor 1.1/const.h @@ -0,0 +1,9 @@ +#ifndef __CONST_H_ +#define __CONST_H_ + +#define REJECT -1 +#define ACCEPT -2 + +#endif + + diff --git a/divisor 1.1/main b/divisor 1.1/main new file mode 100644 index 0000000000000000000000000000000000000000..afd7ab9805c35e19221388bd7301bda56d912762 GIT binary patch literal 19696 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 literal 0 HcmV?d00001 diff --git a/divisor 1.1/main.c b/divisor 1.1/main.c new file mode 100644 index 0000000..a83e86d --- /dev/null +++ b/divisor 1.1/main.c @@ -0,0 +1,47 @@ +#include +#include +#include "turing.h" +#include "states.h" +#include "const.h" + +#define REJECT -1 +#define ACCEPT -2 + +// gcc -g main.c turing.c states.c turing.h states.h const.h -o main + +int main(){ + + int List[] = {0,5,1,1,8,2,2,2,2,2,9}; + int longitud=length(List); + + fprintf(stdout,"\nEsta función acepta cuando n no divide a m, o cuando n=m"); + + int state=0; + int position=0; + int symbol= List[position]; + int movement =0; // undefined. + int placeholder; + + + while(state!=ACCEPT && state!=REJECT){ + + print_linea(); + print_variables(state,position,symbol, movement); + print_lista(List, longitud, position); + + fscanf(stdin,"\n%d", &placeholder); + + carry_out_step(&symbol,&state,&movement); + + List[position]=symbol; + position = position +movement; + symbol=List[position]; + + } + + print_linea(); + print_variables(state,position,symbol, movement); + print_lista(List, longitud, position); + + +} diff --git a/divisor 1.1/states.h b/divisor 1.1/states.h new file mode 100644 index 0000000..625b918 --- /dev/null +++ b/divisor 1.1/states.h @@ -0,0 +1,6 @@ +#ifndef __STATES_H_ +#define __STATES_H_ + +void carry_out_step(int *symbol, int *state, int *movement); // This is the only function I'm going to need to use outside of states.c + +#endif diff --git a/divisor 1.1/states.o b/divisor 1.1/states.o new file mode 100644 index 0000000000000000000000000000000000000000..1e33186fbb83ecb042c3b8d3801d7260980bfe15 GIT binary patch literal 2576 zcmbtV&ubG=5T0$UHfgI>R0I`+TB)E*VzpRBiI%mCh)6NiTi7-mTQrGm-eUa?7KIoK zf|nk>dG)9sv?^M}gFW=ne?YLIZvtE@fA*%~bvAYIZ7b*Os++AjPg)^XUnD^x6!F zrkXW<(3-ls&8{_)w_SblbRCY*DAsdAK2kU9;Cj-Uqxq!uIgVDCw7$mUZ>(<`pG_mD zX3e3Tzgf$TWj{Y7C%ZcNm`16FBzxQ*TYF1BsaZ3&F;#4G<05|C)GTuD%WTJ~pT-!J?2d;*}ir{_SjBRk-igrD4J?ln`pyL`Dy zUr%?Lsl8_R&HzvDNu|3|U8!z5jgE_m4+0Sn&r&Kn$Yy8w2(+DNoEK ztYQ0xx)Bd=MKZU&i#;%&hrDt=Q^($-ik4G{*x*`<$>BSGb@*h!WjUwBD`Q6 z(lgIJ@0h|J5n$#W;ea_%setK~gT-LESak6sGD~IQn!P8pyJZz3f!y4oT)}gS?yori zIZ2{Fy;}GS%^*gmzsq11aP^$Vjo9e+$YA4^QCCWvN($9J#nCs!21VYX@bJyl{97^= zS#cLv0K0HOn*ZvbR+`~(I{rQ$OmR6xmpi>zii0@MD8YLEs+{1c@(;O#AKs86Xg|&G zSN>u8hywO&q8fGnHQa}jsPj9e3PPU~ogevXe~qt3ES!6UU`Y8pv|twAKdr-iC;B4= ao>C6 +#include +#include "turing.h" +#include "const.h" + +// Turing print defines functions that take a list, take a position in that list and print the list with a pointer to that position. +// It prints this vertically + +int length(int *List){ + int i =0; + + while (List[i]<9){ // Por cómo construimos nuestras listas. + i=i+1; + } + + /*Anecdóticamente, el siguiente código da error. + i=0; + while (List[i]<=9){ + i=i+1; + } + Y lo hace porque al asignar un trozo de memoria, + si la lista tiene, p.ej., longitud 6, + List[0] hasta Lista[5] son la lista de verdad, + pero Lista[6] <9, y la sigue contando. + */ + + return i+1; +} + +void print_lista(int*L, int length, int position){ + if(L==NULL || length <= position){ + fprintf(stdout, "\nError en prettyprint"); + } + else{ + int i=0; + char tabs[]="\t\t\t\t\t\t\t\0"; + for(i=0; i