Starting from:
$35

$29

ASSIGNMENT 1 Solution

-------------------------------




Remember that you only need to do one of these, either the Regular or the

Premium version.




For either version, do not use the pow() function defined in math.h.




--------------------------------------------------------------------------------




REGULAR VERSION




First, your program should print out either "byte order: big-endian" or

"byte order: little-endian" depending on the characteristics of the machine

your code is running on. Your program should figure this out at run time,

not at compile time.




Then, using scanf() and printf(), write a program that requests numbers from the

user (typed in decimal) and then prints each number out in a variety of formats.




For each number typed in, your program should print out two lines:




first line:

* integer, right justified in a 10 character field

* hex representation of the integer (the 4-byte actual value that is

independent of the machine's endian-ness)

second line:

* floating, right justified in a 10 character field, with 2 digits to

the right of the decimal point

* hex representation of the floating number (the 4-byte actual value

that is independent of the machine's endian-ness). Do not use C99's

%a or %A format specifier for this. You are required to use the %X

(NOT the %x) format specifier.




Your program should repeatedly ask for input until the user types in a zero, and

then it should exit. Each number in the input will be an integer, expressed as a

decimal number. Some of the numbers will be negative, expressed like this: -3.

You do not need to worry about bad input. I will run your code with a script

that does not do this.




Your program's output should be formatted as shown in asgmt01.output.txt

(including uppercase vs. lowercase). I use scripts to grade assignments, and if

your output is formatted "creatively" (i.e. different from what's requested),

you will lose points for that.




Start with file a01.c.




Upload your work as a01.c.




--------------------------------------------------------------------------------




PREMIUM VERSION




First, your program should print out either "byte order: big-endian" or "byte

order: little-endian" depending on the characteristics of the machine your code

is running on. Your program should figure this out at run time, not at compile

time.




Then your code should accept user input in the form of 8 hexadecimal digits.

Your code will interpret those 8 digits as an IEEE 754 32-bit floating point

number and will print out information about that number. Do not worry about bad

input. My test script does not do this.




Use scanf to get the user input. Your code should accept input with or without

"0x" in front of it (scanf does this).




For each number, your code should print out:




* the sign bit

* the exponent bits, expressed as a decimal number

* the fraction bits, expressed as an 8 digit hexadecimal number




Here is what your code should print out for the various types of floating point

number:




* normalized

the word "normalized" and the true exponent

(i.e. the power to which 2 will be raised in computing the numerical

value of the floating point number)

* denormalized

the word "denormalized" and the true exponent

* infinity

"+infinity" or "-infinity"

* zero

"+zero" or "-zero"

* NaN

"SNaN" or "QNan"




Your program's output should be formatted exactly as shown in asgmt01p.output.txt

(including uppercase vs. lowercase). Use %X for formatting hex output, NOT %x.

I use scripts to grade assignments, and if your output is formatted "creatively"

(i.e. different from what's requested), you will lose points for that.




Your program should exit when user input that results in a zero value is

entered, after printing the information for that zero input.




Start with file a01p.c, contained in the provided zip file.




Upload your work as a01p.c.




--------------------------------------------------------------------------------




REQUIRED PLATFORM




I grade your code on syccuxas01.pcc.edu. Your code is required to compile and

run correctly on that machine.




COMPILING YOUR CODE




You are required to compile your code with the same flags that are used by

the 'gc' bash script in ~michael.trigoboff/bin.




GRADING YOUR CODE




Your code needs to compile without errors or warnings and run correctly. Code

that does not compile will receive zero points. Code that crashes will receive

zero points.




I use bash scripts to grade your code. Because of this, it is very important

that you submit your code with the file name that was requested. If you change

the file name, my scripts will crash, your work will not be graded, you will

have to resubmit a corrected version of your work, and you will lose points.




My scripts produce a log file containing your code, compiler warnings and errors

(if any), your code's output, and some statistics that are useful to me. I then

personally go through that log file to produce your grade. In other words, the

scripts don't generate your grade, they just make it more convenient for me to

generate your grade.




TO SUBMIT THIS ASSIGNMENT




Submit the requested file to Desire2Learn.




* Be certain to check that you completed the upload successfully. After you

click the Upload File button, you must also click the SUBMIT ASSIGNMENT

button. This is very easy to forget. If you do not do this, I will not

see your work and you will get a grade of zero for the assignment. I

would recommend entering an email address so you can be notified that

the upload was completed successfully.

* You may upload as many versions as you wish prior to the due date. I will

only see and grade the final one. You will not be able to upload

assignments after the due date.




Points will be deducted for uploading a file with a name that is not as

specified. Every term I get a few students whose approach to following

directions is, shall we say, "creative." I encourage creativity in general, but

there are places where it is not appropriate.

More products