(4%) Implement the solution using a single thread (i.e., without using threads and only a main function with any other possible helper function for ease) with all the above conditions implemented in the correct order so that the results are correct. Reason about what can cause the algorithm to print unwanted results (think about the order in which you will write the above conditions). Provide your reasoning about the correct order and the result using single threaded application.

C++ for Engineers and Scientists
4th Edition
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Bronson, Gary J.
Chapter6: Modularity Using Functions
Section6.4: A Case Study: Rectangular To Polar Coordinate Conversion
Problem 9E: (Numerical) Write a program that tests the effectiveness of the rand() library function. Start by...
icon
Related questions
Question

Write a C/C++ program that takes an input (array) from 1 to n (say n = 50) and displays the string representations of those numbers with following conditions

 

If the current number is divisible by 2, then print CSU

If the current number is divisible by 5, then print LB

If the current number is divisible by both 2 and 5, then print CSULB

If the number is neither divisible by 2 nor 5, then print the number

 

Example: 1           CSU    3          CSU    LB      CSU    7          CSU    9          CSULB      11        CSU    13        CSU    LB       CSU      17        CSU    19        CSULB …     

 

Tasks to do:

  1. (4%) Implement the solution using a single thread (i.e., without using threads and only a main function with any other possible helper function for ease) with all the above conditions implemented in the correct order so that the results are correct. Reason about what can cause the algorithm to print unwanted results (think about the order in which you will write the above conditions). Provide your reasoning about the correct order and the result using single threaded application.
  2. (4%) Implement a synchronized multithreaded version of CSULB with four threads. The same instance of CSULB (array of 1 to 50) will be passed to four different threads:
  • Thread 1 should call csu() to check if divisible by 2 then print CSU.
  • Thread 2 should call lb() to check if divisible by 5 then print LB.
  • Thread 3 should call csulb() to check if divisible by 2 and 5 then output CSULB.
  • Thread 4 should call number() which should only print the numbers.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Time complexity
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ for Engineers and Scientists
C++ for Engineers and Scientists
Computer Science
ISBN:
9781133187844
Author:
Bronson, Gary J.
Publisher:
Course Technology Ptr