Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

For this programming assignment, you will implement of a C program for printing digits 0, 1, 2, . . . , 9 on console using

For this programming assignment, you will implement of a C program for printing digits 0, 1, 2, . . . , 9 on console using three horizontal segments (a, g, and d) and four vertical segments (f, b, e, and c) as depicted in Figure 1. Figure 1: Top row from left to right depicts how digits 0-4 are represented using seven segments. Bottom row from left to right depicts how digits 5-9 are represented using seven segments. To draw each horizontal segment, you need to print two rows of asterisks and to draw each vertical segment, you need to print two columns of asterisks. The length of horizontal and vertical segments will be given by the user of the program. Figure 2 is an example of displaying digit '8' using seven segments made of asterisks. 2 Program Input The program starts by displaying the following message: "This is a 7-segment display! Press "Enter" after providing any number in keyboard. Please enter the length of horizontal segments (from 3 to 40): " After the user enters the length of horizontal segments using keyboard, your program will check the entered length. If the length is less than 3 or greater than 40, the program must 1

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Figure 2: How digit 8 is represented using asterisks. In this example, the length of each horizontal segment is 16 asterisks and the length of each vertical segment is 12 asterisks. print a message stating that the length is not acceptable and the user must try entering the length again. When user enters an acceptable length for the horizontal segments, then, the program prints out the following message on screen: "Now, enter the length of vertical segments (from 3 to 40): " After the user enters the length of vertical segments using keyboard, your program will check the entered length. If the length is less than 3 or greater than 40, the program must print a message stating that the length is not acceptable and the user must try entering the length again. Also, if the length of vertical segment is greater than twice the length of horizontal segment or less than half of the length of horizontal segment, the program must print a message stating that the length is not acceptable and the user must try entering the length again. When user enters an acceptable length for the vertical segments, then, the program prints out the following message on screen: "Enter a positive integer: " After the user enters the positive integer, the program checks to see if the user input is a valid positive integer. If the user input is not legal, the program must print out a message stating that the user input is not acceptable and the user must try entering the positive integer again. When user enters an acceptable input (a positive integer), the program prints out the seven-segment representation of that number. Then, the program repeats this process (printing the message "Enter a positive integer: " and printing out its seven-segment representation) indefinitely. To end this infinite loop, user can simply presses Ctrl + D , which is a way to pass EOF character to the program via standard input stream (keyboard).

image

#define MAX_LEN 100 #include void main(void) { printf("This is a 7-segment display! Press \"Enter\" after providing any number in keyboard. "); int segment_width;//width of horizontal segments in the 7-segment display int input_error;//flag to show whether some error is detected in user's input char string [MAX_LEN + 1];//placeholder to hold user's input from keyboard while (1){ printf("Please enter the length of horizontal segments (from 3 to 40): "); input_error = segment_width = 0; for(int i = 0; i < MAX_LEN;i++){ if(i == 3){//Given input must be a 1 or 2-digit positive integer. input_error = 1; break; } } string[i] getchar(); if(string[i] == ' ') {//end of user's input string[i] = '\0'; break; }else if(string[i] < '0' || string[i] > '9'){//not a digit is given by user input_error = 1; break; }else else = segment_width = 10 *segment_width//accounts for previously entered digits... + (string[i] - '0')//converting ASCII code of string[i] to its numerical value... ;//converting the number entered by user to an integer... if(input_error)//if an error found in user's input while (getchar()!= ' ');//gets rid of the remaining of user's input in the same line if(segment_width < 3 || segment_width > 40 || input_error) printf("The given value is not acceptable! "); break; } char c = getchar(); while (c != EOF) c = getchar(); printf("END"); a f b 88289 A d a f d a b d f A a b f e d a b d C d Note: First image shows starter code. Right image is Figure 1. b d b 98089 e d a e b d a b d C b

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_2

Step: 3

blur-text-image_3

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

Logic And Computer Design Fundamentals

Authors: M. Morris Mano, Charles Kime, Tom Martin

5th Edition

0133760634, 978-0133760637

More Books

Students also viewed these Algorithms questions

Question

q5-26

Answered: 1 week ago