projects
- intro (due 20140124)
- "Hello, World!" (due 20140131)
- data types (due 20140207)
- Squares (due 20140214)
- Day of Week (due 20140221)
- Nikhilam (due 20140228)
- Multiply by 11 (due 20140307)
- Vertically and Crosswise (due 20140321)
projects
This is an old revision of the document!
A project for C/C++ Programming.
To familiarize yourself with the available data types in C- the variations, the attributes, the ranges therein.
In order to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved:
This project will be exploring the nature of some of the data types available to us in the C Programming Language. How much space is allocated to each type, how many numbers can exist within each type, and what are the ranges available for each type?
A program will be written that will display (to STDOUT) the size (in bytes), the lower and upper bounds of each studied type, and (as accurately as possible) display the total quantity of values possible with each type.
The data types covered for this project will include signed and unsigned variations of:
The sizeof() and printf() functions, as well as arithmetic and logical operators, will be utilized in performing much of the work.
Here is the skeleton of a program you'll want to use for this project:
/* * datatypes.c - A program to display information for * signed and unsigned data types * * * A program written by NAME for CSCS1320 C/C++ Programming (Spring2014) * * Compile with: gcc -o datatypes datatypes.c -lm * Execute with: ./datatypes */ #include <stdio.h> #include <math.h> int main() { // Variables unsigned char uchr = 0; // Code for unsigned char // Code for signed char // Code for unsigned short int // Code for signed short int // Code for unsigned int // Code for signed int // Code for unsigned long int // Code for signed long int // Code for unsigned long long int // Code for signed long long int return(0); }
Following is provided code giving you the requested information for an unsigned char. Study it, implement it, and adapt it as needed to the other data types:
// Code for unsigned char fprintf(stdout, "TYPE: unsigned char, "); fprintf(stdout, "bytes: %hhu, ", sizeof(uchr)); fprintf(stdout, "low: %hhu, ", (uchr & 0x00)); // Why 2 zeros? fprintf(stdout, "high: %hhu, ", (uchr | 0xFF)); // Why 2 F's? uchr = uchr - 1; // What does this line do? fprintf(stdout, "qty: %hu\n", (uchr+1)); // What is going on here?
lab46:~/src/cprog$ ./datatypes TYPE: unsigned char, bytes: 1, low: 0, high: 255, qty: 256 lab46:~/src/cprog$
Be sure to provide any commentary on your opus regarding realizations had and discoveries made during your pursuit of this project.
Also, answer the following questions:
To successfully complete this project, the following criteria must be met:
To submit this program to me using the submit tool, run the following command at your lab46 prompt:
$ submit cprog datatypes datatypes.c Submitting cprog project "datatypes": -> datatypes.c(OK) SUCCESSFULLY SUBMITTED
You should get some sort of confirmation indicating successful submission if all went according to plan. If not, check for typos and or locational mismatches.
To verify you submitted successfully, you may run the following (from anywhere on lab46):
lab46:~$ verify cprog datatypes datatypes: submitted successfully
Note if automated assessment is available for the project, you may actually see results in the output as well.