devry comp122 full
course latest 2015 [ all discussions all homework and all ilabs ]
Click Link Below To Buy:
http://hwcampus.com/shop/comp122-full-course/
Contact Us:
Hwcoursehelp@gmail.com
week
1
From
Word Problem to Program Design (graded)
This
week we are looking at the process of analyzing a problem written in English,
attempting to understand how we might build a program that solves the problem.
Let's begin by looking at the analysis process and discussing what inputs are,
what outputs are, and what processing is. What do we look for in a word problem
to identify these components? What is an algorithm?
diss
2
Using
Variables and Arithmetic Expression (graded)
Variables
are used in a program for storing values. What sort of properties do all
variables have in common? What type of arithmetic operations are supported in
C++? What role does the data type of a variable have on the type of information
the variable can contain and the type of operations that can be performed on
the variable? What is operator precedence and how does it impact expression
evaluation?
week
2
Selecting
Between Alternatives (graded)
It
is common to need to make choices between different alternatives when solving
problems. Alternatives can take different forms. For instance,only do action X
if condition 1 is true presents an alternative of either doing or not doing
action X. A different form of alternative occurs in the case where we need to
do action X if condition 2 is true, otherwise do action Y. Here we have a
choice between 2 different actions, and we will always do X or Y depending on
condition 2. This form can be extended to choosing between 3, 4, or any number
of actions where one action is always selected. Lets discuss some real examples
where making these types of choices are needed. Identify the alternative
actions and the condition that controls the choice.
diss
2
Input
and Output Operations (graded)
Many
programs require the use of an input mechanism to get data into the program and
an output mechanism to present results and guidance. When interacting with a
user, a program must output instructions to the user and also output results
that are formatte
week
3
Recognizing
Repetition (graded)
This
week's lecture discusses the different types of repetition situations and how
they are controlled. Let's start out by discussing some simple example problems
where you see the need for repetition. Is the repetition in your example count
controlled, or would it be controlled by some sort of condition? Which type of
loop would you choose for your example and why?
Controlling
When a Loop Completes (graded)
Loops
can be tricky and can cause errors in the program containing them. The trick is
to get the loop to execute its body the correct number of times. Let's discuss
how to figure out how many times a loop will execute its body. Give an example
of a count controlled loop structure, explain how you determine the number of
times it will execute its body. How will you determine the number of times a
conditional controlled loop with a sample input set executes its body?\
week
4
Debugging
and Testing a Program (graded)
This
week we are examining techniques for debugging and testing a program. Let's
start off the week by discussing how to debug a program that compiles and links
correctly, contains both selection and repetition statements, but does not
generate correct output results. What techniques would you use to try to
determine where the problems are in the program?
Midterm
Review (graded)
The
Midterm is this week. The Midterm covers all the material from the first 3
weeks of the course. Look back over the reading materials, homework, and labs
from the first 3 weeks. The language summary documents can be a good source of
review information about the specifics of C++. Use this thread to ask any
questions that you have regarding anything you are uncertain about. If you
don’t have a specific question, post some things you have observed about the
programming process or about using C++.
week
5
Prob.
Decomp. and Recognizing Functions (graded)
Most
programming problems are quite large and difficult to fully understand. One
approach to dealing with such a problem is to decompose the problem into
smaller sub-problems (divide and conquer). Each sub-problem may then be further
broken down into even smaller problems (stepwise refinement). Eventually, each
remaining problem is small enough to develop a function for. Think about
software systems you have used (i.e. word processor, web server, calculator,
iPod, etc.) and identify some of the main functions that those systems would
need.
Passing
Data Between Functions (graded)
Functions
would not be very useful if there were no way to pass information between them.
Let's use this thread to discuss the mechanisms that functions use to
communicate with each other. How does a caller provide values to a called
function? How does a called function present a result to the caller? How do
pass by value and pass by reference work? What determines when each technique
should be used?
week
6
Arrays
and Repetition in Problem Solving (graded)
There
are many problems in programming that involve sets of information that can be
managed within a program using arrays. Think about some different problems that
could be solved using software and that include sets of information that could
be represented using arrays. Give an example of an array declaration that could
be used in a program to contain the data. Discuss how the data might need to be
loaded into the array.
diss
2
Using
Loops to Process Array Data (graded)
There
are many situations where array data must be processed using loops. Give some
examples of such situations. What sort of loop would you choose to use for your
situation? Include some code examples illustrating how a program might process
your array using a loop.
week
7
Using
C Style Strings (graded)
Let's
discuss how C-style strings are used in a program. How do you create a C-style
string? Give examples. How do you input or output a C-style string? What kinds
of tools are available to work with C-style strings? Show some examples of
using those tools!
Using
the string Data Type (graded)
You
have been using the string type throughout this course. What new features have
you discovered about the string type this week? Give some examples of how you
might be able to use these new string capabilities in a program.
homework
COMP122
Week 1 Homework
1.
What is machine code? Why is it preferable to write programs in a high level
language such as C++?
2.
What does a compiler do? What kinds of errors are reported by a compiler?
3.
What does the linker do?
4.
What is an algorithm?
5. Bob enters a pizza shop
and notices there are three different sizes of pizzas available. Sizes are
given as the diameter of the pizza in inches. The cost of a pizza is based on
the size. Bob would like to know which size of pizza has the lowest cost per
square inch.
a.
Identify the inputs and outputs for this problem.
b.
Identify the processing needed to convert the inputs to the outputs.
c.
Design an algorithm in pseudocode to solve this problem. Make sure to include
steps to get each input and generate each output.
Part 2: Complete the following problems.
1.
Given the following expressions, what value would they have in a C++ program?
a.
13 / 4
b.
2 + 12 / 4
c.
21 % 5
d.
3 - 5 % 7
e.
17.0 / 4
f.
8 - 5 * 2.0
g.
14 + 5 % 2 - 3
h.
15.0 + 3.0 / 2.0
2.
Given the following variable declarations:
int
num1 = 10, num2 = 20, newNum = 30;
double
x = 5.0, y = 8.0;
Determine
which of the following assignment statements are valid. For each invalid
statement, explain why it is invalid. Assume that each statement immediately
follows the above variable declarations.
a.
num1 = 15;
b.
num2 = num1 - 18;
c.
num1 = 5; num2 = 2 + 6; num1 = num2 / 3;
d.
num1 + num2 = newNum;
e.
x = 12 * num1 - 15.3;
f.
num1 * 2 = newNum;
g.
x / y = x * y;
h.
num2 = num1 % 2.0;
i.
newNum = static_cast<int> (x) % 5;
j.
x = x + 5;
k.
newNum = num1 + static_cast<int> (4.6 / 2);
3.
For each of the following lines of variable declarations, identify it as valid
or describe what makes the line invalid.
Line
1: n = 12;
Line
2: char letter = ;
Line
3: int one = 5, two;
Line
4: double x, y, z;
4.
Write C++ statements that accomplish each of the following:
a.
Declare and initialize int variables x to 25 and y to 18.
b.
Declare and initialize an int variable temp to 10 and a char variable ch to
'A'.
c.
Add 5 to the int variable x which already exists.
d.
Declare and initialize a double variable payRate to 12.50.
e.
Copy the value from an existing int variable firstNum into an existing int
variable tempNum.
g.
Output the contents of existing double variables x and y, and also output the
value of the expression x + 12 / y - 8.
h.
Copy the value of an existing double variable z into an existing int variable
x.
5.
Given the following variable declarations:
int
x = 2, y = 5, z = 6;
What
is the output from each of the following statements?
a.
cout << "x = " << x << ", y = " <<
y << ", z = " << z << endl;
b.
cout << "x + y = " << x + y << endl;
c.
cout << "Sum of " << x << " and "
<< z << " is " << x + z << endl;
d.
cout << "z / x = " << z / x << endl;
e.
cout << "2 times " << x << " = " <<
2 * x << endl;
6.
Given the following variable declarations:
int
a = 5, b = 6, c;
What
is the value of a, b, and c after each of the following statements executes?
Assume that the statements execute in the sequence given.
a.
a = b++ + 3;
b.
c = 2 * a + ++b;
c.
b = 2 * ++c - a++;
COMP122
Week 2 Homework
Complete the following problems.
1.
Suppose you are given the following variable declarations:
int
x, y;
char
ch;
What
values (if any) are assigned to x, y, and ch after each of these statements
execute?
Assume
that the input to each statement is the same: 5 28 36
a.
cin >> x >> y >> ch;
b.
cin >> ch >> x >> y;
c.
cin >> x >> ch >> y;
d.
cin >> x >> y;
cin.get(ch);
2.
Suppose you are given the following variable declarations:
int
x, y;
char
ch;
What
values (if any) are assigned to x, y, and ch after each of these statements
execute?
Assume
that the input to each set of statements is as follows:
13
28 D
14
E 98
A
B 56
a.
cin >> x >> y;
cin.ignore(50,
'\n');
cin
>> ch;
b.
cin >> x;
cin.ignore(50,
'\n');
cin
>> y;
cin.ignore(50,
'\n');
cin.get(ch);
3.
Suppose you are given the following variable declarations:
int
x, y;
double
z;
char
ch;
Assume
you have the following input statement:
cin
>> x >> y >> ch >> z;
What
values (if any) are stored in x, y, z, and ch if the input is:
a.
35 62. 78
b.
86 32A 92.6
c.
12 .45A 32
4.
Write a C++ statement that uses the manipulator 'setfill' to output a line
containing 35 asterisk characters.
5.
What is the output from the following statements?
a.
if ( 60 <= 12 * 5)
cout
<< "Hello";
cout
<< " There";
b.
if ('a' > 'b' || 66 > static_cast<int>('A'))
cout
<< "#*#" << endl;
c.
if (7 <= 7)
cout
<< 6 - 9 * 2 / 6 << endl;
d.
if (7 < 8)
{
cout
<< "2 4 6 8" << endl;
cout
<< "1 3 5 7" << endl;
}
e.
if (5 < 3)
cout
<< "*";
else
if (7 == 8)
cout
<< "&";
else
cout
<< "$";
6.
Suppose that you have the following variable declarations:
int
x = 10;
int
y = 15;
int
z = 20;
Determine
whether the following expressions are true or false.
a.
!(x < 10)
b.
x <= 5 || y > 15
c.
(x != 5) && (y == z)
d.
x <= z && (x + y >= z)
7.
What is the output of the following code fragment?
int
x = 100;
int
y = 200;
if
(x > 100 && y <= 200)
cout
<< x << " " << y << " " << x
+ y << endl;
else
cout
<< x << " " << y << " " << 2
* x - y << endl;
8.
Given a char variable called gender, write C++ statements to output
"Male" if gender contains upper or lower case M, "Female"
if it contains upper or lower case F, or "Invalid Gender" if it
contains anything else. Use if / else if statements.
9.
Given a char variable called gender, write C++ statements to out
"Male" if gender contains upper or lower case M, "Female"
if it contains upper or lower case F, or "Invalid Gender" if it
contains anything else. Use a switch statement.
10.
What is the value of the beta variable after the following code executes?
int
beta = 3;
switch(beta)
{
case
3:
beta
+= 3;
case
1:
beta++;
break;
case
5:
beta
+= 5;
case
4:
beta
+= 4;
}
COMP122
Week 3 Homework
Complete the following problems.
1.
What is the output from the following C++ code fragment?
int
count = 1;
int
y = 100;
while(count
< 100)
{
y
= y - 1;
count++;
}
cout
<< "y = " << y << " and count = "
<< count << endl;
2.
What is the output from the following C++ code fragment?
int
num = 1;
while(num
< 10)
{
cout
<< num << " ";
num
+= 2;
}
cout
<< endl;
3. What is the output from the following C++ code fragment if the following values are the inputs to cin?
38
35 71 14 -10
int
sum, num;
cin
>> sum;
for(int
j = 1; j <= 3; j++)
{
cin
>> num;
sum
+= num;
}
cout
<< "Sum = " << sum << endl;
4.What
is the output from the following C++ code fragment if the following values are
the inputs to cin?
38
35 71 14 -1
int
sum, num;
sum
= 0;
cin
>> num;
while(num
!= -1)
{
sum
+= num;
cin
>> num;
}
cout
<< "Sum = " << sum << endl;
5.
Write a do - while loop to get 20 numbers from the user and sum them together.
Output the sum after the loop. Declare any variables you need.
6.What
is the output from the following C++ code fragment if the following values are
the inputs to cin?
58
23 75 176 145 -999
int
num;
cin
>> num;
while(num
!= -999)
{
cout
<< num % 25 << " ";
cin
>> num;
}
cout
<< endl;
7.What
is the output from the following C++ code fragment?
int
count = 10;
while(count--
> 0)
{
cout
<< count << " ";
}
cout
<< endl;
8.What
is the output from the following C++ code fragment?
int
count = 1;
do
{
cout
<< count * (count - 1) << " ";
}while(++count
<=5);
cout
<< endl;
9.
Given the following C++ code fragment, answer the questions that follow.
int
s = 0;
for(int
i = 0; i < 5; i++)
{
s
= 2 * s + i;
}
a.
What is the final value of s?
b.
If the expression i++ was replaced with i += 2 what would be the
final value of s?
c.
If a semi-colon is added following the right parenthesis of the for statement,
what would be the final value of s?
10.
Write a for statement to add all the multiples of three between 1 and 100. (ie.
3, 6, 9, … 99).
11.
How many times will the loop bodies execute in the following loops?
a.
int x = 5, y = 50;
do
{
x
+= 10;
}while(x
< y);
b.
int x = 25, y = 5;
while(x
>= y)
{
x
-= 5;
}
c.
int y = 0;
for(int
x = 5; x < 100; x += 5)
{
y++;
}
d.
int x = 10, y = 1000;
while(x
<= y);
{
x
*= 10;
}
COMP122
Week 5 Homework
Complete the following problems.
1.
Determine the value of the following expressions.
a. toupper('b')
b. tolower('C');
c. pow(3.0,3.0);
d. sqrt(81.0);
e. fabs(-1.23);
f. floor(22.46);
g.
ceil(33.3);
2.
Using the functions in the cmath library, write the following mathematical
formulas as C++ expressions.
a. 3.02.4
b.
(x - y)1/2Note: the ½ power is the square root
c.
|y - 42.3|
d.(
-b + (b2 - 4ac)1/2)
/ 2a
3.
Consider the following functions:
int
func1(int x)
{
int
r, s;
r
= 2 * x;
if
(r > 10)
{
{
s
= x / 2;
}
else
{
{
s
= x / 3;
}
}
return
s - 2;
}
int
func2(int a, int b)
{
int
r, s;
s
= 0;
for(r
= a; r < b; r++)
{
s++;
}
return
s;
}
What
is the output from the following program fragments?
int
a, b;
a.
a = 10;
cout << func1(a) << endl;
cout << func1(a) << endl;
b.
a = 5; b = 12;
cout
<< func2(a, b) << endl;
c. a = 8;
c. a = 8;
b
= func1(a);
cout
<< a << " " << b << " " <<
func2(a, b) << endl;
4.
Write a C++ function that has an input of a char value and returns true if the
character is lower case or false otherwise.
5.
Write a C++ function that has three inputs which are integers. The function
returns true if the first number raised to the power of the second number
equals the third number.
6.
What is a function prototype? When is it needed?
7.
What is the difference between an actual parameter and a formal parameter?
8.
Explain the difference between pass by value parameters and pass by reference
parameters.
9.
Explain the difference between function parameters, local variables, and global
variables regarding the parts of a program that can access these values.
10.
What does void signify when used
as the return type of a function?
11.
What is the output of the following program fragment:
void
find(int a, int& b, int& c)
{
int temp;
{
int temp;
c
= a + b;
temp
= a;
a
= b;
b
= 2 * temp;
}
int
main()
{
int
x, y, z;
x
= 15;
y
= 25;
z
= 30;
find(x,
y, z);
cout
<< x << " " << y << " " << z
<< endl;
find(y,
x, z);
cout
<< x << " " << y << " " << z
<< endl;
find(z,
y, x);
cout
<< x << " " << y << " " << z
<< endl;
}
12.
Write a C++ function which initializes its three reference parameters. The
function should take an int, double, and string parameter and initialize them
to 0 and the empty string ("").
COMP122
Week 6 Homework
Complete the following problems.
1.
Write C++ statements to do the following:
a.
Declare an array alpha of 15 components of type int.
b.
Output the value of the 10th component of the
alpha array.
c.
Set the value of the 5th component of the
alpha array to 35.
d.
Set the value of the 9th component of the
alpha array to the sum of the 6th and 13th components of the
alpha array.
e.
Set the value of the 4th component of the
alpha array to three times the value of the 8th component minus 57.
f.
Output alpha so that five components appear on each line.
2. What is stored in the list array after
the following code executes?
int
list[5];
for(int
j = 0; j < 5; j++)
{
list[j]
= 2 * j + 5;
if
(j % 2 == 0)
{
{
list[j]
= list[j] - 3;
}
}
}
3.
What does array index out of bounds mean? What can happen if this occurs in
your program?
4.
Write C++ statements to define and initialize the following arrays using
appropriate data types:
a.
An array of heights has 6 components which have the following values: 5.5, 5.8,
6.3, 6.6, 4.9, 5.9.
b.
An array of weights has 4 components which have the values: 140, 165, 190, 207.
c.
An array of symbols which contains the following characters: '$', '%', '@',
'!', '|', '&'.
d.
An array of the seasons which contains "Spring", "Summer",
"Fall", "Winter".
5.
Given the following declaration, what is stored in the 8th element of the
array?
int
list[10] = {1, 2, 3, 4, 5};
6.
When an array is passed as an actual parameter to a function, what is really
being passed in to the function? Why are arrays passed this way?
7.
Write a for loop to initialize the following array (int data[10]) with the
values 10, 9, 8… 1.
8.
Given an array of 10 doubles named data, write a loop that loads the array with
user input.
9.
Given an array of 100 doubles named data, write a loop that creates the sum of
all the array elements.
10.
Write a loop that finds the smallest element in an integer array called data
containing 100 elements.
COMP122
Week 7 Homework
Part 1: Complete the following problems.
1.
Answer the questions that follow given these lines of code.
string
str1, str2;
cin
>> str1 >> str2;
if(str1
== str2)
{
cout
<< str1 << " == " << str2 << endl;
}
else
if (str1 > str2)
{
cout
<< str1 << " > " << str2 << endl;
}
else
{
cout
<< str1 << " < " str2 << endl;
}
a.
What do these lines output if the input is "diamond diamond"?
b.
What do these lines output if the input is "diamond gold"?
c.
What do these lines output if the input is "silver gold"?
2.
What is the output of the following program fragment?
string
s1 = "Ball Park";
string
s2 = "Going to";
string
s3 = "the";
string
str;
cout
<< s2 << " " << s3 << " " <<
s1 << endl;
cout
<< s1.length() << endl;
cout
<< s1.find('P') << endl;
cout
<< s1.substr(0, 4) << endl;
str
= "abcdefghijk";
cout
<< str << endl;
cout
<< str.length() << endl;
str[0]
= 'A';
str[3]
= 'D';
cout
<< str << endl;
3.
What is output from each of the following statements? Assume each statement is
independent of all the others.
string
str = "Now is the time for the party!";
a.
cout << str.size() << endl;
b.
cout << str.substr(7, 8) << endl;
c.
cout << str.insert(11, "best ") << endl;
d.
str.erase(16, 14);
str.insert(16,
"to study for the exam!");
cout
<< str << endl;
Part 2: Complete the following problems.
4.
Given the following declaration: char str[16];
mark
the following statements as valid or invalid and if invalid, explain why.
a.
strcpy(str, "Hello there");
b.
strlen(str);
c.
str = "Jacksonville";
d.
cin >> str;
e.
cout << str;
f.
if ( str >= "Nice guy")
cout
<< str;
g.
str[6] = 't';
5.
Given the following declarations:
char
s1[15];
char
s2[15] = "Good Day!";
Write
C++ statements to do the following. Note: No loops allowed!
a.
Copy s2 to s1.
b.
Check if s1 and s2 contain the same string and output a message if they are
equal.
c.
If s1 is less than s2, output s1. Otherwise output s2.
d.
Store the string "Sunny Day" into s1.
e.
Store the length of s2 into an int variable named length.
6.
Given the following declarations:
char
name[21] = "Bob";
char
yourName[21] = "Joe";
char
studentName[31] = "Joe Bob";
Mark
each of the following as valid or invalid. If invalid, explain why.
a.
cin >> name;
b.
cout << studentName;
c.
yourName[0] = '\0';
d.
yourName = studentName;
e.
if (yourName == name)
studentName
= name;
f.
int x = strcmp(yourName, studentName);
g.
strcpy(studentName, name);
ilabs
COMP122:
Week 1 iLab - Part 1
Introduction
to Visual C++.NET (2010) IDE
Objectives
After
completing this assignment, you should:
·
be able to create an empty console-mode project in VC++.NET;
·
know how to enter, compile, build, and run a C++ console-mode program;
·
know some basic components of a C++ program, such
as#include<iostream>;using namespace std;; int main( );return 0;; opening
and closing braces, { and }; and theint data type;
·
be able to usecin andcout. for simple text and numeric input and output;
·
be able to use basic integer arithmetic operations, including modulus;
·
know that integer division truncates;
·
understand how the compiler reacts to several common syntax errors;
·
understand the process of developing a test plan, including predicted output
for specific inputs (test cases);
·
know how a program reacts to division by zero;
·
know where the .exe file is stored after a successful build; and
·
know how to keep the Command Prompt window open at the end of a console-mode
program.
C++
Console-Mode Program Development Procedure
Visual
C++ is an IDE (Integrated Development Environment) for writing programs in C++.
The object of this laboratory is to introduce you to the basic features of an
IDE (source-code entry and editing, compiling, linking, and execution) and some
basic C++ programming statements to do some mathematical operations and simple
input/output.
WARNING:
Accurate typing is the key to success here. Although the compiler is tolerant
of extra "white space" (spaces, tabs, and blank lines), it is very
fussy about other syntax (punctuation, keywords, variable names, upper and
lower case requirements, etc.), so be sure to type in the program below
exactlyas written, including case.
In
addition to showing how to create and run a program in VC++.NET, this exercise
discusses how to test a program, which involves selecting test inputs and
predicting what output the program should generate, then observing the actual
output, comparing the two, and analyzing any differences.
Open
Visual C++ .NET
Open
Microsoft Visual C++ 2010.NET by double-clicking on its icon.
Figure1:
When you open Visual C++ .NET, it should look similar to this image.
You
may find it convenient to maximize this screen if it is not already maximized.
T
using
namespace std;
int
main(void)
{
int
number1, //INPUT
number2;
cout
<< "Enter first number: " << endl;
cin
>> number1;
cout
<< "Enter second number: " << endl;
cin
>> number2;
ind
link it.
A
pop-up window asks if you want to re-build the project. ClickYes. You may get
one more pop-up window asking if you want to overwrite the existing project.
ClickYes if you get this window. If everything is OK, you will get 0 compile
errors and 0 warnings.
Results
of the build (compile and link) are shown here.
Figure
10: A good build will have 0 compile errors and 0 warnings.
Compiler
Errors and Warnings: Debugging
If
the code has any syntax errors, you will get compiler errors. If there are any
compiler errors, it cannot create an executable file. You must fix all compiler
errors before you can execute the program. Error messages appear in the bottom
panel of the Visual C++ window. If you cannot see them, use the scrollbar on
the right side of the panel. If you double-click an error message, a little
arrow will appear in the left margin of the text editor window to indicate the
line that may have the error. Compilers are notorious for having misleading
error messages and not flagging the correct line, but they at least give you a
clue about where the problem is located. If you get compiler errors, try to
troubleshoot them yourself. Look closely at the line flagged by the compiler
and at the line above it (which is often where the error actually is located).
Most errors are caused by incorrect typing, misspelling something, incorrect
punctuation, or incorrect case.
Oftentimes,
a single error in one line will precipitate compiler errors in following lines,
even though they are correct. Therefore, the best approach, if you have
multiple compiler errors, is to fix the first one and recompile (Build). Often,
fixing the first problem also fixes several other errors.
Some
lines of code will cause the compiler to issue a Warning instead of an error.
If there are only warnings and no errors, the compiler will usually be able to
create an executable file. Depending on the problem, your code may still work
fine, but, in general, you should fix all warnings so that you get a completely
clean build.
If
you get any compiler errors or warnings, try to fix them, but if you cannot
figure out what to do, ask your instructor or F.A. for assistance. Remember,
C++ is quite fussy about most details (punctuation, spelling, case, etc.), so
edit your code carefully.
If
the code compiles correctly, the next step that Visual C++ .NET performs is
linking. This step simply connects your program with prewritten programs and
objects that you use in your program (cin andcout in this example).
Background:
Testing and Types of Errors
Just
because your code compiles without errors, does not mean that it will execute
correctly!
It
is still possible that a program contains run-time errors.
Run-time
errors fall into two basic categories: system errors and logical errors.
System
Errors
System
errors occur when your program runs and tries to do something that the host
computer cannot or will not do, for example, divide by zero. The good news
about system errors is that the system detects them, stops your program, and
gives you an error message.
Week
1 iLab - Part 2
Complete
the following two programs:
Programming
Problem 1
John
wants to know the values of the area and perimeter of a rectangle. John can
take measurements of the length and width of the rectangle in inches. John's
measurements are expected to be accurate to within 0.1 inch.
1.
Identify the inputs and outputs of the problem.
2.
Identify the processing needed to convert the inputs to the outputs.
3.
Design an algorithm in pseudocode to solve the problem. Make sure to include steps
to get each input and to report each output.
4.
Identify two test cases, one using whole number values, and one using decimal
number values. For each of the two test cases show what inputs you will use and
what your expected outputs should be.
5.
Write the program to implement your algorithm. Test your program using your
test cases. Did your program produce the values predicted in your test cases?
Explain.
Programming
Problem 2
Shirlee
is working with a measurement tool that reports measurements in centimeters.
Since Shirlee is unfamiliar with centimeters, she would like her centimeter
measurements to be converted into yards, feet, and inches. She would also like
the result to be properly rounded to the nearest inch. As an example, if the
measurement is 312 centimeters, this should be converted to 3 yards, 1 foot,
and 3 inches.
1.
Identify the inputs and outputs of the problem.
2.
Identify the processing needed to convert the inputs to the outputs. HINT:
Convert centimeters to total number of inches first! (1 inch = 2.54 cm)
3.
Design an algorithm in pseudocode to solve the problem. Make sure to include
steps to get each input and to report each output.
4.
Identify two test cases other than the example given above. For each of the two
test cases show what inputs you will use and calculate what your expected
outputs should be.
5.
Write the program to implement your algorithm. Test your program using your
test cases. Did your program produce the values predicted in your test cases?
Explain.
For
each of the two programming problems, create a program using Visual C++.Net.
Make sure to capture a sample of your program's output. The best way to do this
is to click on the console window you want to capture and then press the Alt
and PrintScreen keys at the same time. Then paste your captured screen image
into a Word document. For each of the two programs, put the screen capture
followed by a copy of your source code into your Word document.
Your
final programming document should contain in the following order:
1.
Answers to all of the questions listed above.
2.
Screen capture of the first program followed by source code.
3.
Screen capture of the second program followed by source code.
COMP122
Week
2 iLab
Complete
the following two programs:
Programming
Problem 1
Write
a program that calculates and outputs the monthly paycheck information for an
employee, including all the amounts deducted from an employee’s gross pay, and
the net pay that is due to the employee. The user of your program will know the
employee’s name and the gross pay for the employee. Each employee has the
following deductions taken from his gross pay:
Federal
Income Tax: 15%
State
Tax: 3.5%
Social
Security + Medicare Tax: 8.5%
Health
Insurance $75
The
output from your program should be structured as is displayed below:
Bt
your algorithm. Test your program using your test cases.
Programming
Problem 2
In
a right triangle, the square of the length of one side is equal to the sum of
the squares of the lengths of the other two sides. Stephanie has the integer
lengths of three sides of a triangle and needs to know if it is a right
triangle.
Write
a program to solve this problem. NOTE: The user must be allowed to input the
values of the sides in ANY ORDER!
1.
Identify the inputs and outputs of the problem.
2.
Identify the processing needed to convert the inputs to the outputs.
3.
Design an algorithm in pseudocode to solve the problem. Make sure to include
steps to get each input and to report each output.
4.
Identify five significant test cases including one for incorrect input (ie.
Input a letter rather than a digit for the numeric input). (Think about what
impact changing the order of the input values should have on your program!) For
each of the five test cases show what inputs you will use and calculate what
your expected outputs should be.
5.
Write the program to implement your algorithm. Test your program using your
test cases.
For
each of the two programming problems, create a program using Visual C++.Net.
Make sure to capture a sample of your program’s output. The best way to do this
is to click on the console window you want to capture and then press the Alt
and PrintScreen keys at the same time. Then paste your captured screen image
into a Word document. For each of the two programs, put the screen capture
followed by a copy of your source code into your Word document.
Your
final programming document should contain in the following order:
1.
Answers to the questions listed above.
2.
Screen capture of the first program followed by source code.
3.
Screen capture of the second program followed by source code.
COMP122
Week
3 iLab
Complete
the following two programs:
Programming
Problem 1
Write
a program that generates all the factors of a number entered by the user. For
instance, the number 12 has the factors 2 * 2 * 3. This program has the
following requirements:
A.
The user must enter a positive integer. If the user enters something else, your
program should output an error message and let the user enter a new value. Use
a do/while loop to make sure the user input is successful.
B.
The factors must be output in increasing order. The lowest factor your program
should report is 2.
C.
Your program should output 4 factors per line, each factor in a field of 10
characters. (Hint: the number of factors output determines when to output
endl!)
D.
You will need a while loop to report the factors. Here are some helpful hints:
1.
If (a % b == 0) then a is a factor of b.
2.
When you have found a factor, output the factor and then reduce the number you
are working with by dividing the number by the factor… ie) b = b / a;
1.
Design an algorithm in pseudocode to solve the problem. Make sure to include
steps to get each input and to report the output. Include steps to deal with
error cases as specified above.
2.
Identify three test cases, one using a number with 4 factors, one using a
negative number, and one using a number with more than 4 factors. For each of
the three test cases show what inputs you will use and what your expected
outputs should be.
3.
Write the program to implement your algorithm. Test your program using your
test cases.
Programming
Problem 2
This
program is designed to analyze the growth of two cities. Each city has a
starting population and annual growth rate. The smaller city has the larger
growth rate (required). Show the comparative populations of each city year by
year until the smaller city has grown larger than the bigger city.
As
an example, Dogville has a population of 5000 growing at 20% annually while
Cattown has a population of 7000 growing at 10% annually. The projected
populations are:
Year
Dogville Cattown
1
6000 7700
2
7200 8470
3
8640 9317
4
10368 10249
1.
Identify the inputs and outputs of the problem.
2.
Identify the processing needed to convert the inputs to the outputs.
3.
Design an algorithm in pseudocode to solve the problem. Make sure to include
steps to get each input and to report each output.
4.
Identify three significant test cases including one for incorrect input (ie
Small town has lower growth rate). For each of the three test cases show what
inputs you will use and calculate what your expected outputs should be.
5.
Write the program to implement your algorithm. Test your program using your
test cases.
For
each of the two programming problems, create a program using Visual C++.Net.
Make sure to capture a sample of your program’s output. The best way to do this
is to click on the console window you want to capture and then press the Alt
and PrintScreen keys at the same time. Then paste your captured screen image into
a Word document. For each of the two programs, put the screen capture followed
by a copy of your source code into your Word document.
Your
final programming document should contain in the following order:
1.
Answers to the questions listed above.
2.
Screen capture of the first program followed by source code.
3.
Screen capture of the second program followed by source code.
COMP122
Week
5 iLab
Objectives
·
Apply structured and modular design principles to write programs that meet
written specifications and requirements.
·
Develop a pseudo-code design using appropriate program structure (sequence,
selection, repetition and nesting) to solve a given programming problem.
·
Use appropriate selection and repetition statements to implement the design.
·
Create user-defined functions to implement a modular design.
·
Use appropriate parameter passing mechanisms for passing data into and getting
data back from functions.
·
Use ostream and iomanip formatting manipulators to display tabulated data.
·
Design and implement a menu-driven interface.
Problem
Description
This
program is to give the user the option of converting a set of temperatures
either from Celsius to Fahrenheit (C to F) or vice versa, from Fahrenheit to
Celsius (F to C), or to quit the program. If the user selects either C to F or
F to C, the program will prompt the user to enter three integer values, a
starting temperature, an ending temperature, and an increment. After these
values have been entered the program will display a table of equivalent C and F
(or F and C) temperatures, from the starting temperature to the ending
temperature and incrementing by the increment value each row.
The
table must meet all of the following criteria:
The
table's column headings should display the degree symbol, e.g., °C and °F.
The
first column must be the "from" temperature (C for C to F or F for F
to C) and the second column the "to" temperature (F for C to F or C
for F to C).
The
calculated "to" temperatures are to be displayed to the nearest tenth
of a degree (display exactly one decimal place, even if there is no fractional
part, i.e., 75° should display as 75.0°).
Temperatures
in both columns must be number-aligned (right-justified for the integer
"from" values and decimal point aligned right for the "to"
values).
Assume
the user enters correct data, e.g., the start temperature, end temperature and
increment are all integers and the ending temperature is greater than the
starting temperature.
The
formula to convert Celsius to Fahrenheit is
The
formula to convert Fahrenheit to Celsius is
Function
Requirements
You
must create and use the following functions:
·
displayMenu( ) displays a menu.
·
getMenuSelection ( ) gets the menu selection from the user, upper or lower case
'C' for Celsius to Fahrenheit, upper or lower case 'F' for Fahrenheit to
Celsius, and upper or lower case 'Q' to quit. Any other input should get an
error message "Invalid selection: try again" and re-prompt for the
menu selection.
·
getStartEndAndIncrement( ) gets the start, end and increment values for the
table from the user.
·
CtoF( ) converts a Celsius temperature to Fahrenheit.
·
FtoC( )converts a Fahrenheit temperatures to Celsius.
·
displayTable( ) displays a C to F or F to C table given start, end and
increment values and the conversion character the user selected.
Additional
Requirements
·
Absolutely NO GLOBAL VARIABLES can be used to implement this program! Any
program using global variables will NOT be accepted!
·
Use a switch statement to respond to the user's menu selection in the
getMenuSelection function.
·
After the user selects a valid temperature table option, ask the user to enter
start, end, and increment values, then display the table and stop until the
user presses the ENTER key to continue (prompt the user, of course). When the
user presses ENTER to continue the menu should be redisplayed, allowing the
user to make another menu selection (either to display another temperature
conversion table or quit).
·
Make sure that your code is properly formatted (indentation, etc) and that you
have provided suitable documentation of all your functions (comment blocks for
program and functions!).
How
to print the degree symbol
It
is easy enough to find out how to do this by searching the web. The short
answer is:
cout
<< (char)248;
Test
Plan
Test
cases are generally selected by analyzing the program and determining
categories of inputs and outputs, then specifying at least one specific input
value (or set of input values) for each category. Inputs for this program
include the "selection," or menu input, and integer values to
generate a table (start temperature, stop temperature and increment value).
Here is an outline of the categories:
1.
Menu test cases should include all possible valid menu selections and at least
one invalid menu selection.
2.
Table test cases should include
2.1.
Inputs that create tables with various numbers of rows
2.2.
At least one temperature that calculates to an exact whole number of degrees
(e.g., 0 degrees C = 32.0 degrees F).
2.3.
Negative starting and ending temperatures.
2.4.
At least one temperature that calculates to a fractional number of degrees
(e.g., -50 degrees F = -45.6 degrees C).
2.5.
Some common, easy to verify conversions, for example
2.5.1.
0 degrees C = 32.0 degrees F (and vice versa)
2.5.2.
100 degrees C = 212.0 degrees F (and vice versa)
2.5.3.
-40, the only temperature that is the same in both.
Given
these categories, use the table on the next page to record the specific input
values you will use for your test plan. Note that you must predict and document
what the output will be for each of your test cases, including the calculated
values for each row of the temperature tables produced. Test your program using
your selected test cases and record the actual observed output from your test cases
by pasting screen shots into your report document. Make sure everything works
correctly before submitting.
INPUTS
PREDICTED
OUTPUT
Test
Case
Menu
Input
Start
Temperature
Stop
Temperature
Increment
1
2
3
4
5
6
7
Report
Your
must turn in the following:
1.
Source code print out.
2.
Filled in test plan table as shown above, including predicted output.
3.
Printout (screen shots) of actual output for the test cases in the test plan t
COMP122
Week
7 iLab
The
focus of this lab is on using strings. You will have an opportunity to work
with both C style strings and thestring data type. This lab also gives you an
opportunity to use what you have learned previously, including using functions,
array processing, repetition, and selection. You will also have an opportunity
to work with file input and output.
You
are to design and implement a program which does encryption and decryption of
data from files. Encryption is the process of taking plain lines of text and
performing some algorithmic transformation on the data to create an encrypted
line of text which looks nothing like the original. Decryption is the process
of taking an encrypted line of text and performing some algorithmic
transformation on the data to recover the original line of plain text.
Encryption
and Decryption Approach
Our
approach to encryption and decryption involves two strings. The first is an
encryption / decryption string which we will allow to be up to 128 lower case
alphabetical characters in length. The second string is a line of text from a
file that is to be encrypted or decrypted.
Our
basic strategy for encrypting data is based on mapping alphabetical characters
to specific values, then doing some simple mathematical operations to create a
new value. First of all, every character in either the encryption string or the
input string is mapped to a number between 0 and 25 based on its position in
the alphabet.
A
= a = 0
B
= b = 1
Z
= z = 25
The
mapped value of a character is easily obtained by doing the following:
For
lower case characters, subtract 'a' from the character.
For
upper case characters, subtract 'A' from the character.
To
calculate the modified value of the first character of input we add its mapped
value to the mapped value from the first character of the encryption string.
This modified value is then adjusted using % 26 to make sure that the final
modified value is within the 0 - 25 range. To create the final encrypted
character value for the first character, simply do the following:
For
lower case characters, add 'a' to the modified value.
For
upper case characters, add 'A' to the modified value.
This
is done for each alphabetic character in the input string. Non-alphabetic
characters simply maintain their present value. If the input string is longer
than the encryption string, simply reuse mapped values from the encryption
string. For instance, if the encryption string has 10 characters (index values
0 - 9), when processing the 11th input character (index 10), simply use the
input character index % length of encryption string (in this case 10 % 10 is 0)
to select the value from the encryption string to use for mapping.
The
decryption process is basically the same as the encryption process. The only
difference is the value of the mapped character from the encryption string.
For
lower case encryption, the mapped value = character from encryption string -
'a'
For
upper case encryption, the mapped value = character from encryption string -
'A'
For
lower case decryption, the mapped value = 26 - (character from encryption
string - 'a')
For
upper case decryption, the mapped value = 26 - (character from encryption
string - 'A')
Program
Requirements
Your
program must meet the following requirements:
1.
You must ask the user if they want to perform an encryption or decryption operation.
2.
You must ask the user to enter the name of the file they want to encrypt or
decrypt.
3.
You must get an encryption key from the user which can be up to 128 characters.
The key must be all lower case alphabetic characters.
4.
You must have a function which takes the encryption key and creates an
encryption map from it. For each character in the encryption key string,
subtract the lower case letter 'a' and store the result in the corresponding
encryption map array.
5.
You must have a function which takes the encryption key and creates a
decryption map from it. For each character in the encryption key string,
subtract the lower case letter 'a' from it. Then subtract that result from 26
and store the value in the corresponding decryption map array.
6.
You must have a function which will do the encryption or decryption
transformation. This function takes the following parameters:
A
constant C string containing the line of text to be transformed.
A
constant C character array which contains the encryption or decryption map.
An
integer which contains the length of the encryption map.
A
string reference (output) which will contain the encrypted or decrypted string
upon completion.
The
core of the encryption / decryption algorithm is as follows:
For
each character (the ith character) in the text input line do the following:
if
the character is not alphabetical, add it to the end of the output string
if
the character is lower case alphabetical
subtract
the character 'a' from the character
get
the ith % map length element from the map and add it to the character
adjust
the value of the character % 26 to keep it within the alphabet
add
the character 'a' to the character
add
the encrypted character value to the end of the output string
if
the character is upper case alphabetical
do
the same thing as for lower case except use 'A' instead of 'a'
7.
For decryption, the main program should create an ifstream for the file to be
decrypted. It should use thegetline method of the ifstream to read lines from
the file, call the encryption / decryption function with the line to be
decrypted, and display the string which contains the result of the encryption /
decryption function call. Repeat until the ifstream reaches the end of the
file, then close the ifstream.
8.
For encryption, the main program should create an ifstream for the file to be
encrypted. It should also create an ofstream for the file where the encrypted
result will be stored. The file name for this file can be gotten from the user
or can be the input file name with a special extension added at the end. The
getlinemethod of the ifstream is used to read lines from the input file. Then
the encryption / decryption function is called to encrypt the line. Display the
string containing the result and write the string to the ofstream. Close the
ifstream and ofstreams when finished.
9.
Make sure that your program allows the user to encrypt / decrypt more than one
file per session. This means adding a loop which allows the entire program to
repeat until the user has nothing more to do.
Hints
1.
Use C strings for the encryption string and the file names. Use char arrays for
the encryption and decryption maps. You cannot treat these as C strings because
the maps can contain 0 as a valid data item rather than the end of string
marker.
2.
Use a string type variable to hold the encrypted and decrypted strings. The
string type allows you to add characters to the end of a string using the
push_back method, and it allows you to dump the contents of the string using
the erase method.
3.
For input streams, you can use the eof method to determine when you have
reached the end of a file.
4.
Use a character array to read data from the files. Set the maximum length for
this buffer to be 256 characters.
Development
Strategy
I
would recommend that you build this project in two phases. The first phase
should concentrate on getting the encryption and decryption map functions and
the encryption / decryption function working. You can test this by using fixed
C strings for the input line and the encryption string. Call the map functions,
then encrypt the fixed input string, output the result, then decrypt the
encrypted string and output the result. When your final output is the same as
the original input, your encryption / decryption functions are working. The
second phase adds the file operations.
Testing
and Deliverables
When
you think you have a working program, use Notepad to create a file with plain
text in it. You should enter some different length lines containing a variety
of characters. Your file should have at least 10 lines. You should try using
short and long encryption keys. Using your program, encrypt the file, then
decrypt the encrypted file. Take a screen shot of your decrypted output and
paste it into a Word document. Also copy the contents of your original file and
the encrypted file into the Word document. Clearly label the contents of the
Word document. Then copy your source code into your document. Make sure that
you have used proper coding style and commenting conventions!
all
ilabs are there week 1,2,3,4,5,6,7
No comments:
Post a Comment