Advertisement
Pweebs

Arithmetic.c

Nov 13th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. // Jevin Olano
  2. // jolano
  3. // CSE 101
  4. // November 9, 2019
  5. // Arithmetic.c
  6.  
  7. #include <stdio.h>
  8. #include <stdlib.h>
  9. #include "List.h"
  10. #include "BigInteger.h"
  11.  
  12. int main(int argc, char* argv[]) {
  13.  
  14. // Declarations -------------------------------------
  15.  
  16. FILE *in, *out; // handlers for input/output files
  17. char line[256];
  18. int sizeA = 0;
  19. int sizeB = 0;
  20. char* stringA = 0;
  21. char* stringB = 0;
  22.  
  23. // Preliminary --------------------------------------
  24.  
  25. // check command line for correct number of arguments
  26. if (argc != 3) {
  27. printf("Usage: %s <input> <output>\n", argv[0]);
  28. exit(1);
  29. }
  30.  
  31. // open input file for reading
  32. in = fopen(argv[1], "r");
  33. if (in == NULL) {
  34. printf("Unable to read from file %s\n", argv[1]);
  35. exit(1);
  36. }
  37.  
  38. // open output file for writing
  39. out = fopen(argv[2], "w");
  40. if (out == NULL) {
  41. printf("Unable to write to file %s\n", argv[2]);
  42. exit(1);
  43. }
  44.  
  45. // Arithmetic Operations ----------------------------
  46.  
  47. fgets(line, sizeof(line), in); // first line of input
  48. sscanf(line, "%d", &sizeA);
  49. fgets(line, sizeof(line), in); // second line of input
  50. sscanf(line, "%s", &stringA);
  51. fgets(line, sizeof(line), in); // third line of input
  52. sscanf(line, "%d", &sizeB);
  53. fgets(line, sizeof(line), in); // fourth line of input
  54. sscanf(line, "%s", &stringB);
  55.  
  56. BigInteger A = stringToBigInteger(stringA);
  57. BigInteger B = stringToBigInteger(stringB);
  58.  
  59. // print A
  60. BigInteger answer1 = A;
  61. printBigInteger(answer1);
  62. freeBigInteger(answer1);
  63. fprintf(out, "\n");
  64.  
  65. // print B
  66. BigInteger answer2 = B;
  67. printBigInteger(answer2);
  68. freeBigInteger(answer2);
  69. fprintf(out, "\n");
  70.  
  71. // print A + B
  72. BigInteger answer3 = sum(A, B);
  73. printBigInteger(answer3);
  74. free(&answer3)
  75. fprintf(out, "\n");
  76.  
  77. // print A - B
  78. BigInteger answer4 = diff(A, B);
  79. printBigInteger(answer4);
  80. free(&answer4)
  81. fprintf(out, "\n");
  82.  
  83. // print A - A
  84. BigInteger answer5 = diff(A, A);
  85. printBigInteger(answer5);
  86. freeBigInteger(&answer5);
  87. fprintf(out, "\n");
  88.  
  89. // print 3A - 2B
  90. BigInteger three = stringToBigInteger("3");
  91. BigInteger two = stringToBigInteger("2");
  92. BigInteger prodA = prod(A, three);
  93. BigInteger prodB = prod(B, two);
  94. BigInteger answer6 = diff(prodA, prodB);
  95. printBigInteger(answer6);
  96. freeBigInteger(&three);
  97. freeBigInteger(&two);
  98. freeBigInteger(&prodA);
  99. freeBigInteger(&prodB);
  100. freeBigInteger(&answer6);
  101. fprintf(out, "\n");
  102.  
  103. // print AB
  104. BigInteger answer7 = prod(A, B);
  105. printBigInteger(answer7);
  106. free(&answer7);
  107. fprintf(out, "\n");
  108.  
  109. // 𝐴,𝐵,𝐴+𝐵,𝐴−𝐵,𝐴−𝐴,3𝐴−2𝐵,𝐴𝐵,𝐴2,𝐵2,9𝐴4 +16𝐵5
  110.  
  111. // print A^2
  112. BigInteger answer8 = prod(A, A);
  113. printBigInteger(answer8);
  114. fprintf(out, "\n");
  115.  
  116. // print B^2
  117. BigInteger answer9 = prod(B, B);
  118. printBigInteger(answer9);
  119. fprintf(out, "\n");
  120.  
  121. // print 9A^4 + 16B^5
  122. BigInteger fourthPower1 = prod(answer8, answer8);
  123. BigInteger fourthPower2 = prod(answer9, answer9);
  124. BigInteger fifthPower = prod(answer9, B);
  125. BigInteger nine = stringToBigInteger("9");
  126. BigInteger sixteen = stringToBigInteger("16");
  127. BigInteger partA = prod(fourthPower1, nine);
  128. BigInteger partB = prod(fifthPower, sixteen);
  129. BigInteger answer10 = sum(partA, partB);
  130. printBigInteger(answer10);
  131. freeBigInteger(&answer8);
  132. freeBigInteger(&answer9);
  133. freeBigInteger(&fourthPower1);
  134. freeBigInteger(&fourthPower2);
  135. freeBigInteger(&fifthPower);
  136. freeBigInteger(&nine);
  137. freeBigInteger(&sixteen);
  138. freeBigInteger(&partA);
  139. freeBigInteger(&partB);
  140. freeBigInteger(&answer10);
  141. fprintf(out, "\n");
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement