Answer:
Here is the modified DemoSalesperson2
public class DemoSalesperson2{ // class DemoSalesperson2
public static void main(String[] args) { //start of main() function body
SalesPerson[] sp = new SalesPerson[10]; // creates an array of SalesPerson object named sp
int start_id =111; // assign 111 to starting id number
double start_sal=25000; //assign 25000 to starting salary means salary will start from amount 25000
for (int i =0; i<sp.length; i++) { //loop iterates until the value of loop variable i remains less then length of the array object sp
sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i)); /*at each iteration ID number from 111 through 120 and a sales value that ranges from $25,000 to $70,000, increasing by $5,000 for each successive is displayed using object array sp[] which calls the SalesPerson constructor to access id and sales */
System.out.println(sp[i].getId()+" "+sp[i].getAnnualSales() ); } } } /*uses object sp of class SalesPerson to access the methods getId which returns the id and getAnnualSales method which returns the annual sales, to display id and annual sales */
Explanation:
The question first requires a SalesPerson class with these requisites:
Class name: Salesperson.
Data fields for Salesperson: int ID number , double annual sales amount.
Methods: constructor SalesPerson() that requires values for both data fields, as well as get and set methods for each of the data fields.
So according to the complete question's requirement, I have implemented SalesPerson class:
public class SalesPerson { // class name
//data members: integer type id variable and double type sales variable
private int id;
private double sales;
public SalesPerson(int id_no, double annual_sales) { //constructor that requires values for id and sales
id = id_no;
sales = annual_sales; }
public int getId() { //accessor getId() method to get or access the value of id data field
return id; }
public void setId(int id_no) { //mutator setId to set the value of id data field
id = id_no; }
public double getAnnualSales() { //accessor getAnnualSales() method to get or access the value of sales data field
return sales; }
public void setAnnualSales(double annual_sales) { //mutator setAnnualSales to set the value of sales data field
sales = annual_sales; } }
However you can use my DemoSalesperson2 application for your own SalesPerson class.
Now I will explain the working of for loop used in DemoSalesperson2
Iteration 1:
i=0
i<sp.length is true because length of sp[] is 10 so i<10
This means the body of for loop will execute.
The statement inside the body of for loop is :
sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i));
class SalesPerson constructor is used to access the data members of SalesPerson class
start_id = 111
start_sal=25000
start_id+i = 111 + 0 = 111
start_sal+5000*(i) = 25000 + 5000 (0) = 25000
The values 111 and 25000 are stored to sp[0] means at the first index of the sp array.
System.out.println(sp[i].getId()+" "+sp[i].getAnnualSales() );
This statement uses sp object to get access to the getId and getAnnualSales methods to print the id number and sales amount.
So the output at 1st iteration is:
111 25000.0
Iteration 1:
The value of i is incremented to 1 so now i = 1
i<sp.length is true because length of sp[] is 10 so i<10
This means the body of for loop will execute.
The statement inside the body of for loop is :
sp[i] =new SalesPerson(start_id+i,start_sal+5000*(i));
class SalesPerson constructor is used to access the data members of SalesPerson class
start_id = 111
start_sal=25000
start_id+i = 111 + 1 = 112
start_sal+5000*(i) = 25000 + 5000 (1) = 25000 + 5000 = 30000
The values 111 and 25000 are stored to sp[1] means at the first index of the sp array.
System.out.println(sp[i].getId()+" "+sp[i].getAnnualSales() );
This statement uses sp object to get access to the getId and getAnnualSales methods to print the id number and sales amount.
So the output at 1st iteration is:
112 30000.0
The loop keeps iterating and the value of id is incremented by 1 and value of sales is increased by 5000 at every iteration.
This loop continues to execute until the value of i exceeds the length of sp array i.e. 10.
The values from iteration 1 to 8 following the above explanation are:
Iteration 1:
111 25000.0
Iteration 2:
112 30000.0
Iteration 3:
113 35000.0
Iteration 4:
114 40000.0
Iteration 5:
115 45000.0
Iteration 6:
116 50000.0
Iteration 7:
117 55000.0
Iteration 8:
118 60000.0
Iteration 9:
119 65000.0
Iteration 10:
120 70000.0
At iteration 11 the for loop body will not execute as value of i at 11th iteration is i = 10 and i<sp.length evaluates to false as i = sp.length because length of sp array is 10 and now the value of i is also 10. So the loop ends. Screenshot of the program and its output is attached.
What are the pros and cons of using a linked implementation of a sparse matrix, as opposed to an array-based implementation?
Answer:
Linked lists and arrays are both linear data structures but while an array is a collection of items that can be accessed randomly, a linked list can be accessed sequentially.
A sparse matrix contains very few non-zero elements. For example;
_ _
| 0 0 3 0 6 |
| 0 5 0 0 4 |
| 2 0 0 0 0 |
|_ 0 0 0 0 0 _|
In the implementation of a sparse matrix, the following are some of the pros and cons of using a linked list over an array;
PROS
i. Linked lists are dynamic in nature and are readily flexible - they can expand and contract without having to allocate and/or de-allocated memory compared to an array where an initial size might need to be set and controlled almost manually. This makes it easy to store and remove elements from the sparse matrix.
ii. No memory wastage. Since the size of a linked list can grow or shrink at run time, there's no memory wastage as it adjusts depending on the number of items it wants to store. This is in contrast with arrays where you might have unallocated slots. Also, because the zeros of the sparse matrix need not be stored when using linked lists, memory is greatly conserved.
CONS
i. One of the biggest cons of linked lists is the difficulty in traversing items. With arrays, this is just of an order of 0(1) since the only requirement is the index of the item. With linked lists, traversal is sequential which means slow access time.
ii. Storage is another bottle neck when using linked lists in sparse matrix implementation. Each node item in a linked list contains other information that needs to be stored alongside the value such as the pointer to the next or previous item.
How many times will the while loop that follows be executed? var months = 5; var i = 1; while (i < months) { futureValue = futureValue * (1 + monthlyInterestRate); i = i+1; }
a. 5
b. 4
c. 6
d. 0
Answer:
I believe it is A
Explanation:
Write code to create a list of numbers from 0 to 67 and assign that list to the variable nums. Do not hard code the list. Save & RunLoad HistoryShow CodeLens
Answer:
The program written in Python is as follows
nums = []
for i in range(0,68):
-->nums.append(i)
print(nums)
Explanation:
Please note that --> is used to denote indentation
The first line creates an empty list
nums = []
This line creates an iteration from 0 to 67, using iterating variable i
for i in range(0,68):
This line saves the current value of variable i into the empty list
nums.append(i)
At this point, the list has been completely filled with 0 to 67
This line prints the list
print(nums)
Write a program that create Employee class with fields id,name and sal and create Employee object and store data and display that data.
Answer:
Here is the C++ program for Employee class with fields id,name and sal.
#include <iostream> // to use input output functions
#include <string> //to manipulate and use strings
using namespace std; // to access objects like cin cout
class Employee { //class Employee
private:
/* the following data members are declared as private which means they can only be accessed by the functions within Employee class */
string name; //name field
int id; //id field
double sal; //salary field
public:
Employee(); // constructor that initializes an object when it is created
/* setName, setID and setSalary are the mutators which are the methods used to change data members. This means they set the values of a private fields i.e. name, id and sal */
void setName(string n) //mutator for name field
{ name = n; }
void setId(int i) //mutator for id field
{ id = i; }
void setSalary(double d) //mutator for sal field
{ sal = d; }
/* getName, getID and getSalary are the accessors which are the methods used to read data members. This means they get or access the values of a private fields i.e. name, id and sal */
string getName() //accessor for name field
{ return name; }
int getId() //accessor for id field
{ return id; }
double getSalary() //accessor for sal field
{ return sal; } };
Employee::Employee() { //default constructor where the fields are initialized
name = ""; // name field initialized
id = 0; // id field initialized to 0
sal = 0; } // sal field initialized to 0
void display(Employee);
// prototype of the method display() to display the data of Employee
int main() { //start of the main() function body
Employee emp; //creates an object emp of Employee class
/*set the name field to Abc Xyz which means set the value of Employee class name field to Abc Xyz through setName() method and object emp */
emp.setName("Abc Xyz");
/*set the id field to 1234 which means set the value of Employee class id field to 1234 through setId() method and object emp */
emp.setId(1234);
/*set the sal field to 1000 which means set the value of Employee class sal field to 1000 through setSalary() method and object emp */
emp.setSalary(1000);
display(emp); } //calls display() method to display the Employee data
void display(Employee e) { // this method displays the data in the Employee //class object passed as a parameter.
/*displays the name of the Employee . This name is read or accessed through accessor method getName() and object e of Employee class */
cout << "Name: " << e.getName() << endl;
/*displays the id of the Employee . This id is read or accessed by accessor method getId() and object e */
cout << "ID: " << e.getId() << endl;
/*displays the salary of the Employee . This sal field is read or accessed by accessor method getSalary() and object e */
cout << "Salary: " << e.getSalary() << endl; }
Explanation:
The program is well explained in the comments mentioned with each statement of the program.
The program has a class Employee which has private data members id, name and sal, a simple default constructor Employee(), mutatator methods setName, setId and setSalary to set the fields, acccessor method getName, getId and getSalary to get the fields values.
A function display( ) is used to display the Employee data i.e. name id and salary of Employee.
main() has an object emp of Employee class in order to use data fields and access functions defined in Employee class.
The output of the program is:
Name: Abc Xyz
ID: 1234
Salary: 1000
The program and its output are attached.
Distinguish among packet filtering firewalls, stateful inspection firewalls, and proxy firewalls. A thorough answer will require at least a paragraph for each type of firewall.
Acme Corporation wants to be sure employees surfing the web aren't victimized through drive-by downloads. Which type of firewall should Acme use? Explain why your answer is correct.
Answer:
packet filtering
Explanation:
We can use a packet filtering firewall, for something like this, reasons because when visiting a site these types of firewalls should block all incoming traffic and analyze each packet, before sending it to the user. So if the packet is coming from a malicious origin, we can then drop that packet and be on our day ;D
4. Discuss the advantages and disadvantages of using the same system call interface for both files and devices. Why do you think operating system designers would use the same interface for both
Answer:
According to the principles of design, Repetition refers to the recurrence of elements of the design
One of the advantages of this is that it affords uniformity. Another is that it keeps the user of such a system familiar or with the interface of the operating system.
One major drawback of this principle especially as used in the question is that it creates a familiar route for hackers.
Another drawback is that creates what is called "repetition blindness". This normally occurs with perceptual identification tasks.
The phenomenon may be due to a failure in sensory analysis to process the same shape, figures or objects.
Cheers!
ICMP
(a) is required to solve the NAT traversal problem
(b) is used in Traceroute
(c) has a new version for IPv6
(d) is used by Ping
Answer:
(b) is used in Traceroute
(d) is used by Ping
Explanation:
ICMP is the short form of Internet Control Message Protocol. It is a protocol used by networking devices such as routers to perform network diagnostics and management. Since it is a messaging protocol, it is used for sending network error messages and operations information. A typical message could be;
i. Requested service is not available
ii. Host could not be reached
ICMP does not use ports. Rather it uses types and codes. Some of the most common types are echo request and echo reply.
Traceroute - which is a diagnostic tool - uses some messages available in ICMP (such as Time Exceeded) to trace a network route.
Ping - which is an administrative tool for identifying whether a host is reachable or not - also uses ICMP. The ping sends ICMP echo request packets to the host and then waits for an ICMP echo reply from the host.
ICMP is not required to solve NAT traversal problem neither does it have a new version in IPV6.
Write a sentinel-controlled while loop that accumulates a set of integer test scores input by the user until negative 99 is entered.
Answer:
Here is the sentinel-controlled while loop:
#include <iostream> //to use input output functions
using namespace std; // to identify objects like cin cout
int main(){ // start of main() function body
int test_score; // declare an integer variable for test scores
//prompts user to enter test scores and type-99 to stop entering scores
cout << "Enter the test scores (enter -99 to stop): ";
cin >> test_score; // reads test scores from user
while (test_score != -99){ // while loop keeps executing until user enters -99
cin >> test_score; } } // keeps taking and reading test scores from user
Explanation:
while loop in the above chunk of code keeps taking input scores from user until -99 is entered. Sentinel-controlled loops keep repeating until a sentinel value is entered. This sentinel value indicates the end of the data entry such as here the sentinel value is -99 which stops the while loop from iterating and taking the test score input from user.
The complete question is that the code should then report how many scores were entered and the average of these scores. Do not count the end sentinel -99 as a score.
So the program that takes input scores and computes the number of scores entered and average of these scores is given below.
#include <iostream> // to use input output functions
using namespace std; // to identify objects like cin cout
int main(){ //start of main function body
double sum = 0.0; // declares sum variable to hold the sum of test scores
int test_score,count =0;
/* declares test_scores variable to hold the test scores entered by user and count variable to count how many test scores input by user */
cout << "Enter the test scores (or -99 to stop: ";
//prompts user to enter test scores and type-99 to stop entering scores
cin >> test_score; // reads test scores from user
while (test_score != -99){ // while loop keeps executing until user enters -99
count++; /* increments count variable each time a test cores is input by user to count the number of times user entered test scores */
sum = sum + test_score; // adds the test scores
cin >> test_score;} // reads test scores from user
if (count == 0) // if user enters no test score displays the following message
cout << "No score entered by the user" << endl;
else //if user enters test scores
//displays the numbers of times test scores are entered by user
cout<<"The number of test scores entered: "<<count;
/* displays average of test scores by dividing the sum of input test scores with the total number of input test scores */
cout << "\n The average of " << count << " test scores: " <<sum / count << endl;}
The program along with its output is attached.