Question I (30 pts): In this question, you are going to write methods that operate on matrices. The program reads values of matrices A,B, and C stored in a file called inputs tat. This file should be placed under current directory where you have the program. The first line before each matrix contains the number of rows and the number of columns as shown below. input? 44555556 66666667 77777778 88888889 44 1234 2222 3333 4444 44 11121314 22242425 33343536 44454647 \& 4 nd input As a first step, the program reads data for matrices A. 8 and C from inputs.tat file and write them into console. A fourth matrix D is generated randomly and printed. A partial program code is given below. far row In range(nemterorkass) tegfr ix i kivebid] 11 Aer calvan fo rave featerof(cul and retere noteis mated of I sys . stdeut = open ('oufput . tat." + " = ') tire a-tarmadhine(i) printfatrix (A) Q Bead hatrici d Live = f, fathlines) titer o formathinesh arlintatrix(c) arinted awin ato a BH=k+i TL o mitiplyaratria {A2 at printFatrixith? main() c[nd codes You are noing to write the code for the following mathodis and the miscing code in imaini]. def torasiphene(A) det madet hamant ilat dit oubtrasthatrief A,B} The pregram will calculate 5 = A8)+ Trarspose(D) o C. A and find the inaimum eleiment in 5 follews (furtbers in the matrices can a firr). def multiplymatrix(A, B) def transpose(A) def manofflenents (A) def subtractMatrix(A, B) The program will calculate S=(AB)+ Transpose(D) +CA and find the maximum element in 5 . Complete the code given above so that it will produce an output the format of your output will be like as follows (numbers in the matrices can differ): Reading data from inputs.txt file in current directory Computing S=(AB)+ Transpose (D)+C=A **50127514***867456807450736986935734Matrix55242425Matrix7340632975298177Matrix73866410T2=Transpose(D)***33343536T3=(A*B)+transpose(D)***7976596671487523T4=(A*B)+transpose(D)+C***799060574445464710517786994259921195787903 *** Matrix T4 =(AB)+ transpose (D)+C eens 73ee 7ann 18578 4 sur 7 74967421***8638566874197333MaximumElementinS=1052275898251Matrix733163907574823972437618S=(AB)transpose(D)+CA79356045721876059465995210522783693879863 Question II (30) pts: Design a class named Triangle that extends the GeometricObject class given in the textbook. The Triangle class contains: - Three float data fields named side1, side2, and side3 to denote the three sides of the triangle. - A constructor that creates a triangle with the specified side1, side2, and side3 with default values 1.0. - The accessor (getter) and mutator (setter) methods for all three data fields. - The class should throw a RuntimeError exception if the three given sides cannot form a triangle (If one of sides is 0 or less than 0 .) - A method named getArea() that returns the area of this triangle. - A method named getPerimeter() that returns the perimeter of this triangle. - A method named_eq__(self, other) that checks whether two triangles are equal of not by comparing their three sides. For example, if a triangle has side lengths 4,1,3 and another one has side lengths 3,4,1 then they should be accepted equal. - A method named_str__0 that returns a string description for the triangle. The _str_0) method is implemented as follows: return "Triangle: side1 = " + str(side1) + " side2 =" + str(side2) +" side3 =" + str(side3) Implement the Triangle class. Write a test program that prompts the user to enter the three sides of the triangle, a color, and 1 or 0 to indicate whether the triangle is filled. The program should create a Triangle object with these sides and set the color and filled properties using the input. The program should display the triangle's area, perimeter, color, and True or False to indicate whether the triangle is filled or not. Question III (30 pts): Write a program that reads in a Python source code file and counts the occurrence of each keyword and each identifier (variables, class and method names) in the file using three dictionaries: one for keywords, one for identifiers, and one for punctuation characters. Your program should prompt the user to enter the Python source code filename. Keywords in Python programming language: False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise Punctuation characters: !"\#\$\%\&' ()+,./:;?@[\]{} Question VI (15 pts) : Design a function that accepts a string as an argument. Assume that the string will contain a single word. The function should use recursion to determine whether the word is a palindrome (a word that reads the same backwards as forward). Hint: Use string slicing to refer to and compare the characters on either end of the string. At each recursive call, print the parameters of the recursive method call. -lass. Write a test program that prompts the user to enter the three sides of the triangle, a ite whether the triangle is filled. The program should create a Triangle object with these od filled properties using the input. The program should display the triangle's area, ve or Fabe to indicate whether the triangle is filled or not. Question III (30 pts): Write a program that reads in a Python source code file and counts the occurrence of each keyword and each identifier (variables, class and method names) in the file using three dictionaries: one for keywords, one for identifiers, and one for punctuation characters. Your program should prompt the user to enter the Python source code filename. Keywords in Python programming language: False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yleld assert else import pass break except in raise Punctuation characters: I$8()+,=./:;