All algorithms should return the number of matches
[2dmatching.git] / helper.c
blob16fd9d2e02e847a4a5c329dc90a1a8c4d4cddbfa
1 /*A list of helper functions*/
3 #include "code.h"
4 #include <time.h>
6 /*Prints text and pattern*/
7 void print_pattern()
9 int i,j;
11 /*Prints the pattern*/
12 for(j = 0; j < m; j++) {
14 for(i = 0; i < m; i++)
15 printf("%i",pattern[j][i]);
17 printf("\n");
20 /*Prints the text*/
21 for(j = 0; j < n; j++) {
22 printf("\n");
24 for(i = 0; i < n; i++)
25 printf("%c",text[j][i]);
29 /*Returns the square of a number*/
30 int power(int number, int power)
32 int i;
34 int returned_number = number;
36 for(i=1;i<power;i++)
37 returned_number = returned_number * number;
39 return returned_number;
42 /*Loads text and pattern into tables*/
43 void load_files()
45 FILE *text_fp, *pattern_fp;
47 int i,j;
49 int c;
51 /*Pattern loading*/
52 pattern_fp = fopen("data/pattern", "r");
54 for(j = 0; j < m; j++)
55 for(i = 0; i < m; i++) {
56 c = fgetc (pattern_fp);
57 /* If we encounter '\n' pull the next character*/
58 if(c != 10)
59 pattern[j][i] = c;
60 else
61 pattern[j][i] = fgetc (pattern_fp);
64 fclose(pattern_fp);
66 /*Text loading*/
67 text_fp = fopen("data/text", "r");
69 for(j = 0; j < n; j++)
70 for(i = 0; i < n; i++) {
71 c = fgetc (text_fp);
72 /* If we encounter '\n' pull the next character*/
73 if(c != 10)
74 text[j][i] = c;
75 else
76 text[j][i] = fgetc (text_fp);
79 fclose(text_fp);
82 /*Loads text and pattern into tables*/
83 void create_files(int pattern_size, int text_size, int alphabet)
85 FILE *text_fp, *pattern_fp;
87 int i,j;
89 /* initialize random seed: */
90 srand( time(NULL) );
92 /*Creating pattern*/
93 pattern_fp = fopen("data/pattern", "w");
95 for(j = 0; j < pattern_size; j++){
96 for(i = 0; i < pattern_size; i++)
97 fputc (rand() % alphabet + 1, pattern_fp);
98 fputc (10, pattern_fp);
101 fclose(pattern_fp);
103 /*Creating text*/
104 text_fp = fopen("data/text", "w");
106 for(j = 0; j < text_size; j++){
107 for(i = 0; i < text_size; i++)
108 fputc (rand() % alphabet + 1, pattern_fp);
109 fputc (10, pattern_fp);
112 fclose(text_fp);