Question

In: Computer Science

The C++ question: This part of the assignment will give you a chance to perform some...

The C++ question:

This part of the assignment will give you a chance to perform some simple tasks with pointers. The instructions below are a sequence of tasks that are only loosely related to each other. Start the assignment by creating a file named pointerTasks.cpp with an empty main function, then add statements in main() to accomplish each of the tasks listed below. Some of the tasks will only require a single C++ statement, others will require more than one. For each step, include a comment in your program indicating which step you are completing in the following statement(s). The easiest way to do this is copy and paste the below into your main function first, and then fill in your statements.

// 1. Create two integer variables named x and y
// 2. Create an int pointer named p1
// 3. Store the address of x in p1
// 4. Use p1 to set the value of x to 99
// 5. Using cout and x, display the value of x
// 6. Using cout and the pointer p1, display the value of x
// 7. Store the address of y into p1
// 8. Use p1 to set the value of y to -300
// 9. Create two new variables: an int named temp, and an int pointer named p2
// 10. Use temp, p1, and p2 to swap the values in x and y (this will take a few statements)
// 11. Write a function with the following signature: void noNegatives(int *x). The function should accept the address of an int variable. If the value of this integer is negative then it should set it to zero
// 12. Call the function twice: once with the address of x as the argument, and once with the address of y
// 13. Use p2 to display the values in x and y (this will require both assignment statements and cout statements)
// 14. Create an int array with two elements. The array should be named ‘a’
// 15. Use p2 to initialize the first element of a with the value of x
// 16. Use p2 to initialize the second element of a with the value of y
// 17. Using cout, display the address of the first element in a
// 18. Using cout, display the address of the second element in a
// 19. Use p1, p2, and temp to swap the values in the two elements of array ‘a’. (first point p1 at a[0], then point p2 at a[1]. After this the swapping steps should look very similar to step 10.)
// 20. Display the values of the two elements. (The first element should be 99, the second 0).
// 21. Write a function named ‘swap’ that accepts two integer pointers as arguments, and then swaps the two integers that the pointers point to.  This function must be pass by pointer, i.e. int *, not pass by reference, i.e. int &.
// 22. Call your swap function with the addresses of x and y, then print their values. (x should be 99, y should be 0).
// 23. Call your swap function with the address of the two elements in array ‘a’, then print their values. (a[0] should be 0, a[1] should be 99)

Solutions

Expert Solution

Code with comments in C++

#include <bits/stdc++.h>
using namespace std;
void noNegatives(int *x){
        //check if value is negative
        if(*x<0){
                //if yes then set it to 0
                *x=0;
        }
}
void swap(int* a, int*b){
        int temp=*a;
        *a=*b;
        *b=temp;
}
int main(){
    // 1. Create two integer variables named x and y
        int x,y;
        // 2. Create an int pointer named p1
        int* p1;
        // 3. Store the address of x in p1
        p1=&x;
        // 4. Use p1 to set the value of x to 99
        *p1=99;
        // 5. Using cout and x, display the value of x
        cout<<x<<endl;
        // 6. Using cout and the pointer p1, display the value of x
        cout<<*p1<<endl;
        // 7. Store the address of y into p1
        p1=&y;
        // 8. Use p1 to set the value of y to -300
        *p1=-300;
        // 9. Create two new variables: an int named temp, and an int pointer named p2
        int temp, *p2;
        // 10. Use temp, p1, and p2 to swap the values in x and y (this will take a few statements)
        p1=&x;
        p2=&y;
        temp=*p1;
        *p1=*p2;
        *p2=temp;
        // 11. Write a function with the following signature: void noNegatives(int *x). The function should accept the address of an int variable. If the value of this integer is negative then it should set it to zero
        /*function written above main*/

        // 12. Call the function twice: once with the address of x as the argument, and once with the address of y
        noNegatives(&x);
        noNegatives(&y);

        // 13. Use p2 to display the values in x and y (this will require both assignment statements and cout statements)
        p2=&x;
        cout<<*p2<<endl;
        p2=&y;
        cout<<*p2<<endl;
        // 14. Create an int array with two elements. The array should be named ‘a’
        int a[2];
        // 15. Use p2 to initialize the first element of a with the value of x
        p2=a;
        *p2=x;
        // 16. Use p2 to initialize the second element of a with the value of y
        *(p2+1)=y;
        // 17. Using cout, display the address of the first element in a
        cout<<a<<endl;
        // 18. Using cout, display the address of the second element in a
        cout<<a+1<<endl;
        // 19. Use p1, p2, and temp to swap the values in the two elements of array ‘a’. (first point p1 at a[0], then point p2 at a[1]. After this the swapping steps should look very similar to step 10.)
        p1=a;
        p2=a+1;
        temp=*p1;
        *p1=*p2;
        *p2=temp;
        // 20. Display the values of the two elements. (The first element should be 99, the second 0).
        cout<<a[0]<<" "<<a[1]<<endl;
        // 21. Write a function named ‘swap’ that accepts two integer pointers as arguments, and then swaps the two integers that the pointers point to.  This function must be pass by pointer, i.e. int *, not pass by reference, i.e. int &.
        /*function written above main*/

        // 22. Call your swap function with the addresses of x and y, then print their values. (x should be 99, y should be 0).
        swap(&x, &y);
        cout<<x<<" "<<y<<endl;
        // 23. Call your swap function with the address of the two elements in array ‘a’, then print their values. (a[0] should be 0, a[1] should be 99)
        swap(a, a+1);
        cout<<a[0]<<" "<<a[1]<<endl;
}

Sample Output Screenshot

Let me know in comments if you have any doubts. Do leave a thumbs up if this was helpful.


Related Solutions

Pointer Tasks This part of the assignment will give you a chance to perform some simple...
Pointer Tasks This part of the assignment will give you a chance to perform some simple tasks with pointers. The instructions below are a sequence of tasks that are only loosely related to each other. Start the assignment by creating a file named pointerTasks.cpp with an empty main function, then add statements in main() to accomplish each of the tasks listed below. Some of the tasks will only require a single C++ statement, others will require more than one. For...
The goal of this part is to give you a chance to practice working through the...
The goal of this part is to give you a chance to practice working through the steps of calculating variance. Use the table of scores (X values) below to complete the following calculations. Assume the data in the table represents a sample, not a population. Use the extra columns in the table to show your work. X 20 22 18 15 21 Question 2.1 (0.5 points) – Calculate the deviation score for each x value Question 2.2 (0.5 points) –...
1. Introduction This assignment will give you some experience working with C input (using scanf()) and...
1. Introduction This assignment will give you some experience working with C input (using scanf()) and output (using printf()), as well as arithmetic operations with variables. You will do some very basic circuit analysis, reading the values of a voltage source and three resistors, and calculating the voltage across and current through each of the resistors using three different circuit configurations. Test cases for the program can be found at this link. Remember, in addition to submitting your code, you...
1.This C++ assignment regards pointers and the league with DMA. First part asks to perform tasks...
1.This C++ assignment regards pointers and the league with DMA. First part asks to perform tasks using pointers. The instructions below are a sequence of tasks that are loosely related to each other. Start the assignment by creating a file names pointerTasks.cpp with an empty main function , then add the statements in main() to complete each of the tasks listed below. Some tasks only require a single C++ statement while others will require more. For each step, include a...
1. You perform some experiments for the reaction A→B+C
  1. You perform some experiments for the reaction A→B+C The rate law has the form: rate = k[A]x . Calculate the value of x for each of the following: [A] is tripled, but there is no effect on the rate. [A] is tripled, and the rate increases by a factor of 27. 2. FOR THE REATCION 2NO2→ 2NO(g) + O2 (g) the data given below was collected. Time(s) 0s 1.0s 2.0s 3.0s [NO2] 0.1103 0.1076 0.1050 0.1026 Obtain the...
THIS IS A C++ QUESTION(SOME OTHER ASSIGNMENTS ARE DISPLAYED TO GIVE BACKGROUND INFO ON THIS QUESTION,...
THIS IS A C++ QUESTION(SOME OTHER ASSIGNMENTS ARE DISPLAYED TO GIVE BACKGROUND INFO ON THIS QUESTION, ONLY THIS QUESTION SHOULD BE SOLVED): Focus Dynamic memory Update Do NOT make the Noble class a friend of the Warrior class. Do NOT put a pointer in the Warrior class to the Noble class. Problem: Building on previous assignments, we will be reading a file of commands to create Nobles and Warriors, and sending them off to battle. Previous Assignments(As Background info): 1)...
Assignment Overview This assignment will give you practice with interactive programs and if/else statements. Part 1:...
Assignment Overview This assignment will give you practice with interactive programs and if/else statements. Part 1: User name Generator Write a program that prompts for and reads the user’s first and last name (separately). Then print a string composed of the first letter of the user’s first name, followed by the first five characters of the user’s last name, followed by a random number in the range 10 to 99. Assume that the last name is at least five letters...
Assignment Overview IN C++ This assignment will give you practice with numerical calculations, simple input/output, and...
Assignment Overview IN C++ This assignment will give you practice with numerical calculations, simple input/output, and if-else statements. Candy Calculator [50 points] The Harris-Benedict equation estimates the number of calories your body needs to maintain your weight if you do no exercise. This is called your basal metabolic rate or BMR. The calories needed for a woman to maintain her weight is: BMR = 655 + (4.3 * weight in pounds) + (4.7 * height in inches) - (4.7 *...
The goal of this assignment is to give you some experience writing code with control structures...
The goal of this assignment is to give you some experience writing code with control structures in Java. You will create a number guessing game program. The program will randomly choose a number between 0 and 100 that the user will try to guess. The user will be given a maximum number of tries (10 max) to guess the number. The user wins only when they guess the randomly chosen number before the maximum number of tries expires. Otherwise, the...
in c++ language This assignment is to give you practice using structs and sorting. In competitive...
in c++ language This assignment is to give you practice using structs and sorting. In competitive diving, each diver makes dives of varying degrees of difficulty. Nine judges score each dive from 0 through 10 in steps of 0.5. The difficulty is a floating-point value between 1.0 and 3.0 that represents how complex the dive is to perform. The total score is obtained by discarding the lowest and highest of the judges’ scores, adding the remaining scores, and then multiplying...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT