Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Description of Part (a) 40 points In MAL an integer is represented using 32 bits. Assume that the bits are numbered right to left from

Description of Part (a) 40 points In MAL an integer is represented using 32 bits. Assume that the bits are numbered right to left from 0 to 31. Thus, the rightmost bit is numbered 0 and the leftmost bit is numbered 31. We say that the bits 0 through 15 form the right half and the bits 16 through 31 form the left half of the integer. You are required to write a MAL program that prompts a user for a positive decimal integer , reads the integer typed by the user and outputs the following values: 1. The total number of 1's in the right half of the binary representation of the integer. 2. The total number of 0's in the left half of the binary representation of the integer. 3. The highest power of 2 that evenly divides the integer . 4. The value of the largest digit in the decimal representation of the integer. Example: Suppose the user types the decimal integer 1536. The 32-bit binary representation of 1536 is as follows: 0000 0000 0000 0000 0000 0110 0000 0000 For this example, the required answers are as follows: 1. The number of 1's in the right half of the binary representation of the given integer = 2. 2. The number of 0's in the left half of the binary representation of the given integer = 16. 3. The largest power of 2 that evenly divides the given integer = 9 . 4. The value of the largest digit in the decimal representation of the given integer = 6. Program outline: The outline for your program for Part (a) must be the following. 1. Prompt the user for a positive integer. 2. Read the integer. 3. Compute the four quantities mentioned above and print the answers. 4. Stop. Programming Suggestions: 1) MAL program must be in a file named p5a.mal. 2) Each time your program for Part (a) is executed, it should handle just one integer. 3) You may assume that the value typed by the user is a positive decimal integer. Thus, there is no need to do any error checking in this part. 4) There is no need to convert the integer to binary; when the integer is read in (using syscall), it is already in binary form. 5) Use bitwise operations to count the number of 1s (0s) in the right (left) half. 6) To find the highest power of 2 that divides the integer, count the number of 0s at the end of the binary representation or use successive divisions by 2. 7) To extract the decimal digits and compute the largest digit, use successive divisions by 10. Description of Part (b) 60 points In this part, you are required to write a MAL program that prompts the user for a line of text and reads the line typed by the user. If the line contains just white space characters your program should simply output the message Line contains only white space characters. and stop. Otherwise, your program should compute and output the following: 1. The number of non-whitespace characters in the line. 2. The number of words in the line. 3. The maximum length of a word in the line. 4. The minimum length of a word in the line. 5. The word of maximum length in the line. (If there are two or more words of maximum length in the line, then the program should print the word of maximum length that appears first in the line.) 6. The word of minimum length in the line. (If there are two or more words of minimum length in the line, then the program should print the word of minimum length that appears first in the line.) Example: Suppose the line typed by the user is the following: It was the best of times and it was the worst of times. The answers for the above line are: No. of non-whitespace characters: 43 No. of words: 13 Maximum length of a word: 6 Minimum length of a word: 2 Word of maximum length: times. Word of minimum length: It Note that the word of maximum length (6) is "times." (without the quotes), which includes the punctuation mark at the end. (Recall that a word is any sequence of characters that does not include a whitespace character.) There are several words of minimum length (2) in the above text. The first such word is "It" (again, without the quotes). Program outline: The outline for your program for Part (b) must be the following. 1. Prompt the user for a line of text. 2. Read the line of text typed by the user. 1. If the line has only whitespace characters print the message "Line contains only white space characters" and stop. 2. Otherwise compute the quantities mentioned above and print the answers. 3. Stop. Programming Suggestions: 1) MAL program must be in a file named p5b.mal. 2) It must have at least one function in addition to the main program. 3) Study Lecture 15 (arrays of character in MAL) before working on Part (b). 4) You may find it useful to write a function that returns information (e.g. starting and ending indices) about the next word. 5) A word is any sequence of characters that does not contain a whitespace character. 6) A whitespace character refers to a space, a tab or the newline character. 7) Any line of text typed by a user has at most 80 characters including the newline character. 8) End of any line is determined by the null character. 9) It is excepted to check whether the input line consists of just whitespace characters, no other error checks are needed. 10) Each time your program is executed, it should handle just one line of text. Electronic Submission: There are two mandatory submissions for each project. Both submissions are the same files but to be used for different purposes. Both submissions for this project include two files (Part (a) and Part (b) programs). You may do all submissions at one go: two source codes for the evaluation using turnin-csi333 on the ITS Unix machine, two source codes for the record the standard Blackboard procedure for the assignments. Important Notes: ignoring any of the following rules will result in penalty or even ZERO grade for the project. 1. For Project 5 you must turn in two files named p5a.mal and p5b.mal. 2. At the top of each of your source file the following information must appear in the form of comments: your name, your Unix login id and the day/time of your weekly discussion class. (Note that comments in a MAL program start with the '#' character. You CANNOT use C style of comments in a MAL program.) 3. Make sure that your programs produce correct results on the Unix machines (itsunix.albany.edu) supported by Information Technology Services (ITS) unit of UAlbany. Programs that cause syntax or run-time errors will NOT receive any credit. 4. Using the turnin-csi333 program as discussed below is the ONLY acceptable way of submitting programming assignments in this course. You should NOT email the files to the instructor or to the TAs. 5. Remember that you must submit only your MAL source files. To submit your files electronically, you must have the source files on one of the ITS Unix machines. For this project, the files p5a.mal and p5b.mal must be in your working directory and you must be logged on to one of those machines to carry out the electronic submission. To perform submission, you should type the following command to the Unix operating system: /usr/local/bin/turnin-csi333 -c csi333 hw5 p5a.mal p5b.mal It is assumed that your working directory at the time when you issue the above command contains the two MAL files shown above. After you issue the above command, the system responds with: The sections of csi333 are: FR_1025 FR_1235 FR_0140 WE_1235 Enter your section: Depending upon the day and time of your weekly discussion section, you would type the appropriate section. For example, if your discussion class meets on Wednesdays at 12:35 PM, you would type WE_1235 followed by the return key. The system will then respond with Your files have been submitted to csi333, hw5 for grading. In the above message, "hw5" refers to the name of the project that is currently active. If you submit your program during two days after due date the name of the project will be "hw5-late". Attempts to submit the program or check submission after the two-day grace period will fail. Lateness penalty is 10 points per day. Additional information about the turnin program: (a) If you use the turnin command above again later (before the deadline), then the files submitted previously would be completely replaced by the newly submitted files. (b) You can obtain the names of the files that you have submitted to the current project using the following command: /usr/local/bin/turnin-csi333 -c csi333 -v Some sample data to test your program: Important Note: Some sample inputs that can be used to test your programs are given below. However, you should remember that when we compile and run your source files, we will use other data. Just because your programs work for the sample inputs given below, you shouldn't assume that they will work for all inputs. Therefore, you should test your programs thoroughly with other input values. Program Grading: Programs will be graded using a script written by the TAs. The script will compile your source program, generate the executable version and run the executable on new test data. The TAs will grade the version that you submit; once the submission is closed, you wont be allowed to make any changes to your program. The total grade for the assignment is 100 points, with 40 points for Part (a) and 60 points for Part (b). As in the case of the other projects, your program must be well documented. Please consult the handouts on MAL to understand how MAL programs are documented. Example of program execution: Part (a). Example 1. unix2> /usr/local/bin/spim . . <--- Initial lines printed by spim. . (spim) read "p5a.mal" (spim) run Positive integer? 1536 No. of 1s in the right half = 2 No. of 0s in the left half = 16 Largest power of 2 = 9 Largest decimal digit = 6 (spim) quit unix2> Part (a). Example 2. unix2> /usr/local/bin/spim . . <--- Initial lines printed by spim. . (spim) read "p5a.mal" (spim) run Positive integer? 123 No. of 1s in the right half = 6 No. of 0s in the left half = 16 Largest power of 2 = 0 Largest decimal digit = 3 (spim) quit unix2> Part (b). Example 1. unix2> /usr/local/bin/spim . . <--- Initial lines printed by spim. . (spim) read "p5b.mal" (spim) run Text? A short line. No. of non-whitespace characters: 11 No. of words: 3 Maximum length of a word: 5 Minimum length of a word: 1 Word of maximum length: short Word of minimum length: A (spim) quit unix2> Part (b). Example 2. unix2> /usr/local/bin/spim . . <--- Initial lines printed by spim. . (spim) read "p5b.mal" (spim) run Text? This example contains five words. No. of non-whitespace characters: 29 No. of words: 5 Maximum length of a word: 8 Minimum length of a word: 4 Word of maximum length: contains Word of minimum length: This (spim) quit unix2>

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Modern Database Management

Authors: Jeff Hoffer, Ramesh Venkataraman, Heikki Topi

12th edition

133544613, 978-0133544619

More Books

Students also viewed these Databases questions