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.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...
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 *...
I need the answer for PART B and PART C of this question: You have recently...
I need the answer for PART B and PART C of this question: You have recently been appointed management accountant for Rugby Coffee Mugs Pty Ltd. The company commenced its operations on 1 July 2019 manufacturing one size coffee mugs with individual club names and club logos of rugby union clubs playing in the New South Wales, Queensland, Victoria and Western Australia local rugby union competition. The company currently does not have any management accounting controls and part of your...
Please answer this two part question. Thank you! For this assignment you must write the following...
Please answer this two part question. Thank you! For this assignment you must write the following functions in Scheme: 2.1 Write a recursive function called eval-poly that takes a list of numbers representing the coefficients of a polynomial and a value for ? and evaluates the polynomial for the given value of ?. The list of coefficients should start with the term of lowest degree and end with the term of highest degree. If any term of intermediate degree is...
C++ program to read line comments. This assignment will give you a little bit of practice...
C++ program to read line comments. This assignment will give you a little bit of practice with string parsing. Your task is to write a program that reads in a .cpp file line-by-line, and prints out only the text that's after the // characters that indicate a single-line comment. You do not have to worry about /* multiline comments */ though there will be a small amount of extra credit for programs that correctly extract these comments as well.
This assignment is to give you practice using struts, arrays, and sorting. (Objective C++ and please...
This assignment is to give you practice using struts, arrays, and sorting. (Objective C++ and please have a screenshot of output) 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,...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT