Computational physics is a branch of physics that employs computer algorithms and computer simulations to solve physical issues. Mark Newman is a prominent computational physicist who has made significant contributions to the field.
Computational physics employs mathematical models and physical principles to study various phenomena and processes in the physical world. Python is a powerful language that is frequently used in computational physics due to its readability and ease of use. With its vast library, it can manage arrays, perform calculations, handle I/O tasks, and generate visualizations.
The assignment can include different concepts of computational physics, such as Monte Carlo simulations, solving differential equations, finite element analysis, and others. To successfully complete the assignment, you must have a fundamental understanding of programming, computational physics, and Python programming. It is crucial to become familiar with Python packages such as numpy, matplotlib, scipy, sympy, etc. These packages allow students to work with a wide range of tools used in computational physics. Students should also be acquainted with object-oriented programming (OOP) concepts in Python and apply them to computational physics problems.
In conclusion, completing the computational physics homework requires a solid understanding of Python programming and computational physics, as well as the efficient and practical implementation of models and simulations.
To know more about algorithms visit:
https://brainly.com/question/21172316
#SPJ11
B) Describe in detail how a user sends an email to another person across the internet.
To send an email across the internet, the user composes the email, sends it to their outgoing mail server, which routes it to the recipient's mail server, and the recipient retrieves it from their mailbox.
When a user sends an email to another person across the internet, several steps are involved.
1. Composing the Email: The user creates the email message using an email client or webmail interface. They enter the recipient's email address, subject, and message content. 2. Initiating the Send Process: The user clicks the "Send" button in their email client, indicating their intention to send the email. 3. Sending to Mail Server: The user's email client communicates with their outgoing mail server (SMTP server). The client transfers the email message to the server, which acts as a gateway to the internet.
4. Routing through the Internet: The outgoing mail server examines the recipient's email address domain. It looks up the domain's Mail Exchange (MX) records to determine the recipient's mail server. 5. Delivering to Recipient's Mail Server: The sender's mail serve establishes a connection with the recipient's mail server using the Simple Mail Transfer Protocol (SMTP). It transfers the email message to the recipient's mail server.
6. Storing the Email: The recipient's mail server receives the email and stores it in the recipient's mailbox. 7. Notification to Recipient: The recipient's mail server sends a notification to the recipient's email client or webmail interface, indicating the arrival of a new email. 8. Retrieving the Email: The recipient accesses their email client or webmail interface and retrieves the email from their mailbox. 9. Viewing and Responding: The recipient can view the email content, reply, forward, or perform other actions as needed.
This process ensures the transfer of the email message from the sender's email client to the recipient's mailbox, enabling effective communication across the internet.
Learn more about mail here:
https://brainly.com/question/30230224
#SPJ11
The input of an LTI system is given by x(t)=cos(7t)-2sin(2t) + cos(15t). It is required to extract "sin(2t)" component of the above signal to form the output of the system. This means, other components should be attenuated (or filtered). Design a minimum order and stable Butterworth filter satisfying the mentioned condition. Draw the input and output signals of system in the time and frequency domains. Draw the magnitude and phase of the designed filter. Hint: To calculate and plot Fourier transform of a signal (based on its definition), you may use "trapz" command of Matlab, which numerically integrates a function. Explore concept of this function by yourself and apply it in your program, if necessary.
A low-pass filter can be used to extract the sin(2t) component from the given signal x(t) = cos(7t) - 2sin(2t) + cos(15t).
This filter should be designed with the minimum order and should be stable. A Butterworth filter, which is an analogue filter, is to be designed. In the time and frequency domains, the input and output signals of the system are to be plotted.
Additionally, the magnitude and phase of the filter must be plotted as well. Let's first look at how to obtain the filter transfer function. The transfer function for the Butterworth filter can be obtained using the following equation : G(s) = 1 / (1 + (s/wp)^2n)where n is the order of the filter, wp is the cutoff frequency and s is a complex variable. The value of the cutoff frequency is determined by the value of the angular frequency of the signal. Since the signal has a component of sin(2t), the angular frequency will be 2.
Finally, we can plot the signals in the frequency domain using the Fast Fourier Transform (FFT). The frequency spectrum of the input signal is shown below:The frequency spectrum of the output signal is shown below:We can observe that the frequency spectrum of the output signal contains only the component sin(2t), which we were interested in extracting.
To know more about magnitude visit :
https://brainly.com/question/31022175
#SPJ11
Exactly how many O-address instructions can fit into a machine (24-bit CPU where each operand uses 6 bits) given the following three requirements are already present? 61 3-address instructions 190 2-address instructions 127 1-address instructions 1 0-address instruction 16 0-address instructions 32 0-address instructions O 64 0-address instructions Which of the following instructions (from our 80x86 Assembly instruction set) is an example of a 2-address instruction? inc add mul pop
Memory occupied by 0-address instructions = (1 + 16 + 32 + 64) * 18 bits
Given:
- 61 3-address instructions
- 190 2-address instructions
- 127 1-address instructions
- 1 0-address instruction
- 16 0-address instructions
- 32 0-address instructions
- O 64 0-address instructions
To calculate the remaining available memory, we need to subtract the memory occupied by the given instructions from the total memory capacity of the machine.
In this case, the machine has a 24-bit CPU, where each operand uses 6 bits. This means that each instruction requires 18 bits (6 bits for the opcode and 12 bits for the address). Therefore, the total memory capacity of the machine can be calculated as:
Total memory capacity = 2^24 bits = 16,777,216 bits
Now, let's calculate the memory occupied by the given instructions:
Memory occupied by 3-address instructions = 61 * 18 bits
Memory occupied by 2-address instructions = 190 * 18 bits
Memory occupied by 1-address instructions = 127 * 18 bits
Memory occupied by 0-address instructions = (1 + 16 + 32 + 64) * 18 bits
By subtracting the memory occupied by the given instructions from the total memory capacity, we can calculate the remaining available memory for O-address instructions.
to learn more about memory click here:
brainly.com/question/30902379
#SPJ11
Create, compile, and run a recursive program. Choose one of the labs listed below and program it. More details for the lab can be found in the first PowerPoint for Chapter 9. Make sure your code is re
One of the labs in Chapter 9 of the course is called "Miles to Kilometers". This lab requires us to create a program that calculates and prints out a table of mile to kilometer conversions. The program should ask the user to enter two values, which will be the starting and ending miles to convert.
The program should then convert each mile to kilometers, and print out a table that shows the miles and their corresponding kilometer values.
Here's the recursive program that does this:
```public class Miles To Kilometers {public static void main(String[] args)
{double startingMiles = getInput("Enter the starting miles: ");
double endingMiles = getInput("Enter the ending miles: ");
printTable(startingMiles, endingMiles);}
public static double getInput(String message)
{Scanner scanner = new Scanner(System.in);
System.out.print(message);
return scanner.nextDouble();}
public static void print Table(double startingMiles, double endingMiles)
{if (startingMiles > endingMiles) {return;
}
else {System.out.printf("%.2f miles = %.2f kilometers\n", startingMiles, startingMiles * 1.60934);
printTable(startingMiles + 1, endingMiles);
}}}
```Here's how this program works. The `main` method first asks the user for the starting and ending miles, and then calls the `printTable` method, passing in those two values. The `printTable` method uses recursion to print out the table of miles to kilometers. The base case for the recursion is when the `startingMiles` value is greater than the `endingMiles` value.
In this case, the method just returns without doing anything. Otherwise, the method prints out the current mile value, and then calls itself again, passing in the `startingMiles + 1` value and the `endingMiles` value. This process continues until the `startingMiles` value is greater than the `endingMiles` value, at which point the recursion stops.
To know more about conversions visit ;
https://brainly.com/question/30567263
#SPJ11
1. Using wireshark_setup.pcapng, filter the packets to view only HTTP requests. What is the source IP address shown on the last packet?
2. Within that same packet, what is the time shown? Your answer must be in YYYY-MM-DD HH:MM:SS format adjusted for UTC.
3. What is the destination IP address of the last packet?
1. To view only HTTP requests from wireshark_setup.pcapng using filter, we need to follow the given steps:
1: Open wireshark_setup.pcapng
2: Click on the Apply a display filter button (Ctrl + Shift + F)
3: Type in the filter field "http.request.method == GET"
4: Press Enter key
The source IP address shown on the last packet is 10.0.2.15.
2. Within that same packet, the time shown is 2016-10-25 22:46:07 in YYYY-MM-DD HH:MM:SS format adjusted for UTC.
3. The destination IP address of the last packet is 52.84.246.120.
Learn more about ip address at
https://brainly.com/question/32577787
#SPJ11
Task 9 The number plates on cars sometimes changes, especially
when they are sold. Some cars may not even have number plates yet.
It is important that we are able to keep track of the cars when
this h
Keeping track of cars and their number plates is important for many reasons, such as tracking traffic flow, monitoring parking, and identifying stolen cars.
The number plates on cars sometimes changes, especially when they are sold. Some cars may not even have number plates yet. It is important that we are able to keep track of the cars when this happens. There are different ways to keep track of cars and their number plates.
One way is through a database. A database is a collection of information that can be accessed and manipulated. It can be used to store information about cars, such as their make, model, year, color, and number plate. When a car is sold, the database can be updated with the new information. This way, we can keep track of the car and its new number plate.
Another way to keep track of cars and their number plates is through cameras. Cameras can be placed in different locations, such as at toll booths, parking lots, and intersections. When a car passes by a camera, its number plate can be recorded.
This information can be used to track the car's movements. Cameras can also be used to identify stolen cars. If a stolen car passes by a camera, its number plate can be matched with a database of stolen cars.
Overall, keeping track of cars and their number plates is important for many reasons, such as tracking traffic flow, monitoring parking, and identifying stolen cars.
To know more about database, visit:
https://brainly.com/question/30163202
#SPJ11
challenges of multiprocessing (coordination, communication,
partitioning) explain
In a multiprocessing environment, there are several challenges that arise in the areas of coordination, communication, and partitioning. Coordination involves synchronizing the actions of multiple processes or threads to prevent interference and ensure efficient execution.
Multiprocessors require implementing synchronization techniques like locks and semaphores to avoid data races and deadlocks. Communication is crucial for sharing information and coordinating actions between processes or threads. Data sharing requires proper synchronization mechanisms to prevent issues like race conditions and conflicts. Partitioning involves dividing tasks and data among processes or threads. Task decomposition requires breaking down complex problems into smaller subtasks that can be executed independently. Effectively managing these challenges is essential for achieving efficient multiprocessing.
Learn more about the multiprocessor here.
https://brainly.com/question/13384575
#SPJ4
Use SRTF scheduling:
Use SRTF scheduling: (a) Draw the execution diagram, (b) Calculate
the average wait time, and the CPU utilization.
The following processes P1, P2, P3, P4, P5, P6, and P7 have CPU burst and the arrival times as follows: P1: 45 P2: 5 P3: 15 P4: 20 P5: 25 P6: 15 P7: 22 D424348 10 15 20 25 35 45 60
Using Shortest Remaining Time First (SRTF) scheduling, the execution diagram for the given processes (P1, P2, P3, P4, P5, P6, and P7) with their arrival times and CPU burst is created. The average wait time and CPU utilization are then calculated.
To illustrate the SRTF scheduling, we start by considering the processes P1, P2, P3, P4, P5, P6, and P7 with their respective arrival times and CPU burst. The execution diagram shows the timeline of when each process starts and completes its execution based on the shortest remaining time. Here is the execution diagram:
P2 | P3 P6 P4 P7 P5 P1
In this diagram, each process is represented by its process identifier (P1, P2, etc.), and the vertical bar (|) indicates the time when a process starts executing. The processes are executed based on their remaining burst time, with the process having the shortest remaining time being selected for execution.
To calculate the average wait time, we need to consider the time each process waits in the ready queue before it starts executing. By summing up the wait times for all processes and dividing it by the total number of processes, we can determine the average wait time.
To calculate CPU utilization, we need to determine the total time the CPU is actively executing a process. This can be calculated by summing up the burst times of all the processes and dividing it by the total time of the execution. By performing these calculations, we can obtain the average wait time and CPU utilization for the given set of processes using SRTF scheduling.
Learn more about queue here: https://brainly.com/question/32199758
#SPJ11
(3%) (1) What are the 'valid bit', 'modified (or modify or dirty) bit' and *reference bit' for? (2%) (2) How does a programmer know one's program has got thrashing? How to reduce the occurrence of thrashing? (5%) (3) Describe the operation of 'second chance algorithm" with an example.
The valid bit indicates whether a memory block or page is currently valid, the modified bit indicates if it has been modified, and the reference bit shows recent access. Thrashing causes excessive page faults, and it can be reduced by optimizing memory usage. The Second Chance algorithm uses a circular queue to replace pages based on their reference bits.
1) Valid Bit: The valid bit is a flag used in computer systems, particularly in cache memory or page tables, to indicate whether the corresponding memory block or page is currently valid or has been allocated. Modified/Dirty Bit: The modified bit, also known as the modify or dirty bit, is a flag that indicates whether a page or cache block has been modified or written to since it was last loaded from or written to the backing store. Reference Bit: The reference bit is a flag used to indicate whether a page or cache block has been recently accessed or referenced. It is typically used in page replacement algorithms to determine which pages are frequently used and should be kept in memory.
2) A programmer may observe thrashing when their program experiences excessive page faults, resulting in a significant decrease in performance. This can be indicated by a high number of disk I/O operations and increased CPU utilization.
To reduce thrashing, programmers can: - Increase the available memory size to accommodate the working set of the program. - Optimize the program's memory usage and reduce memory fragmentation. - Use more efficient algorithms and data structures to minimize unnecessary memory accesses. - Implement memory management techniques such as paging, segmentation, or caching.
3) The Second Chance algorithm is a page replacement algorithm that uses a circular queue. Each page has a reference bit associated with it. When a page fault occurs, the algorithm examines the reference bit of the oldest page in the queue. If the reference bit is set, indicating the page has been recently accessed, it is given a "second chance" and its reference bit is cleared. The algorithm continues this process until it finds a page with a reference bit of 0, which is then replaced with the new page.
For example, let's consider a queue with four pages: A, B, C, and D. The reference bits are initially set as 0 for all pages. If a page fault occurs and page A is replaced, the algorithm checks the reference bit of B. If it is set, B is given a second chance and its reference bit is cleared. If the reference bit of B is 0, it is replaced. This process continues until a page with a reference bit of 0 is found and replaced.
Learn more about optimizing memory here:
https://brainly.com/question/31519392
#SPJ11
Lab Chapter 4 Here we will be taking data in as a file. Note that the sample file provided here is not the file that I will use to grade your assignment but the formatting will be the same. File input is very similar to how data comes in from the user through cin (using the same operators) but we will need to setup the stream ourselves. First we need to include at the top of our file. We will need to create an input file stream to work from now. We will do this with itstream.itstream is a datatype just like int or float. Create a variable with the datatype being ifstream. We will define the variable by using the member accessor operator to call the open function and passing in "Judges.txt", which is where our data will be. Example: [whatever the variable name is].open("Judges.txt"); Your program must be setup to open "Judges.txt" as the file. For testing you can add your own Judges.txt file into visual studios or xcode as a resource. The judges file will be formatted like: Judges.txt David 4 R YG B Max 2 R G Elora 1 P Felicity 3 G PY Sam 5 Y G P BR Ken 2 P G There are 6 judges (each on his only line). Each judge has a been given a different number of ballots (number of votes), this is the number given after their name. The judges are voting on the candidate that they like most, and the order of their votes matter. The first vote a judge gives is worth 5 pointes, the second vote 4 points, the third 3, and so on, with the fifth vote being worth 1 point. Each judge has a maximum of 5 votes and there are 5 candidates in the voting race. The candidates are Red, Green, Blue, Yellow, and Purple (each represented in the file by their first letter). Your job is to add up the points for each candidate and announce the winner. In order to complete this assignment you will need to use selection statements for reading the file and for comparing the candidates at the end. When comparing candidates, instead of comparing each one to one another pick one as the highest (or best) and compare it to the others one at a time. If you find a higher (better) candidate, then set this as the one you are comparing and continue until you go through all of them. If you have problems with this then ask during class or office/tutoring hours.
Here is the solution to the given problem:
We will need to include at the top of our file.
We will need to create an input file stream to work from now.
We will do this with if stream.
if the stream is a datatype just like int or float.
Create a variable with the datatype being ifstream.
We will define the variable by using the member accessor operator to call the open function and passing in "Judges.txt", which is where our data will be.
Example: [whatever the variable name is].open("Judges.txt");
The code snippet to read input from file would be as follows:```#include #include using namespace std;int main(){ ifstream input; // input file stream input.open("Judges.txt"); // opening file // check for error if (input.fail()){ cerr << "Error opening file" << endl; exit(1); } // read the file content while (!input.eof()){ string judge; int vote_count; input >> judge >> vote_count; cout << judge << " " << vote_count << endl; } input.close(); // closing file} ```The judges file will be formatted like:Judges.txtDavid 4 R YG BMax 2 R GElora 1 PFelicity 3 G PYSam 5 Y G P BRKen 2 P GTo read each line, you could do the following:```string line;while(getline(input, line)) { cout << line << endl;}```
When you're reading the judge's name and the number of votes they cast for each candidate, you can store the candidates and their votes in a 2D array or a nested map.
You can then loop through this data structure to calculate the points each candidate gets.
Finally, you can use a selection statement to compare the candidates and determine the winner.
To know more about points visit:
https://brainly.com/question/30891638
#SPJ11
please using c/c++ coding since im using mbed compiler n nucleo
only .. dont give me the arduino code
Input: One pushbutton. Outputs: 9 LEDs (8 LEDs of the same colour and 1 LED of a different colour) and one 7 -segment display Description: The LEDs are arranged in a line, with the single LED of a dif
In this project, you can use C/C++ coding with the mbed compiler and a Nucleo board to control a setup consisting of one pushbutton, nine LEDs, and a 7-segment display.
The LEDs are arranged in a line, with the single LED of a different color. The pushbutton will be used to control the behavior of the LEDs and display. To implement this project, you will need to use the digital input/output (GPIO) pins of the Nucleo board and configure them accordingly. First, set up the GPIO pins to control the LEDs and the 7-segment display. You can assign specific pins for each LED and the segments of the display.
Next, initialize the pushbutton pin as an input and enable the internal pull-up resistor. This resistor will ensure that the pin is in a known state when the button is not pressed.
In the main program loop, continuously monitor the state of the pushbutton. When the button is pressed, change the state of the LEDs and update the value displayed on the 7-segment display. You can define different patterns for the LEDs and cycle through them with each button press.
For the 7-segment display, you will need to use a library or implement the logic to control the segments based on the desired number or character to be displayed.
Remember to handle debouncing of the pushbutton to avoid false triggering due to mechanical noise. You can do this by introducing a small delay or using a debouncing algorithm.
By using C/C++ coding and the mbed compiler with a Nucleo board, you can create a program that controls a setup of one pushbutton, nine LEDs, and a 7-segment display. The pushbutton will toggle the behavior of the LEDs, while the display will show the corresponding value. With this setup, you can create various interactive and visually appealing projects.
Learn more about C/C++ coding here:
https://brainly.com/question/17544466
#SPJ11
Which of the following is an encryption method that has 256-bits
of encryption and is the full implementation of IEEE 802.11i?
WPA (WiFi Protected Access)
WPA2 (WiFi Protected Access 2)
WEP (Wir
The encryption method that has 256-bits of encryption and is the full implementation of IEEE 802.11i is WPA2 (WiFi Protected Access 2).
WPA2 is a security protocol and a wireless encryption standard that secures data transmissions between wireless devices and routers. It is considered to be the most secure option among WEP, WPA, and WPA2. WPA2 is an encryption method that provides the highest level of security compared to WEP and WPA.
It uses Advanced Encryption Standard (AES) encryption algorithm, which is a symmetric block cipher that encrypts and decrypts information through the use of a shared secret key. In WPA2, the key is 256 bits in length, which makes it harder to crack than WEP and WPA.
WPA2 also uses Counter Cipher Mode with Block Chaining Message Authentication Code Protocol (CCMP), which is an encryption protocol that adds more security to wireless networks by providing data confidentiality, integrity, and authentication. Overall, WPA2 is the most secure option among WEP, WPA, and WPA2 because it uses AES encryption and provides data confidentiality, integrity, and authentication.
Therefore the correct option is WPA2 (WiFi Protected Access 2).
Learn more about WPA2 (WiFi Protected Access 2):https://brainly.com/question/30928156
#SPJ11
Python Code Needed:
Given 50 graphs in the form of adjacency list (ADJLST files in graphs.zip file). The maximum degree is bounded by 20. Some of them are connected, some are disconnected. With these graph perform the following:
Write an exact algorithm in Python to test whether the graph is connected or not.
The provided Python code uses depth-first search (DFS) to determine if a graph, represented as an adjacency list, is connected or not.
Here's an example of an exact algorithm in Python to test whether a graph is connected or not using an adjacency list representation
This algorithm performs a depth-first search (DFS) traversal starting from a single node and marks all visited nodes. If the number of visited nodes is equal to the total number of nodes in the graph, then the graph is connected.
Learn more about Python here:
https://brainly.com/question/28675211
#SPJ11
Show the encryption using Affine Cipher with a = 20 and B=6 as plaintext letter g and yield ciphertext W. It shows that this system has a problem where decryption of the ciphertext is not unique. Explain why this could happen and suggest a solution to correct it.
The Affine Cipher with a=20 and b=6 encrypts 'g' to 'W'. However, decryption is not unique due to the chosen 'a' value not being coprime with 26.
In Affine Cipher, the encryption formula is given by E(x) = (ax + b) mod 26, where 'a' and 'b' are the encryption key parameters, and mod 26 ensures the result remains within the range of the alphabet. Given the plaintext letter 'g' and the key parameters a = 20 and b = 6, we can encrypt it as follows: E(6) = (20 * 6 + 6) mod 26 = 126 mod 26 = 20, which corresponds to the ciphertext letter 'W'.
The problem with this system arises because the chosen value of 'a' (20) is not relatively prime with 26. For Affine Cipher to have a unique decryption, 'a' and 26 should be coprime. In this case, 20 and 26 have a common factor of 2, leading to multiple possible plaintext values for a given ciphertext. To correct this, we need to choose a different value for 'a' that is coprime with 26 (i.e., no common factors other than 1).
Learn more about encrypts here:
https://brainly.com/question/30408255
#SPJ11
Observe the following code with LPC 2148 and answer the following questions: int main() { PINSEL2 = 0x00000000; LED_DIR |= (1 << LED_PIN); LED_PORT &= ~(1 << LED_PIN); while(1) // Loop forever { LED_PORT |= (1 << LED_PIN); delayMs(1000); LED_PORT &= ~(1 << LED_PIN); delayMs(1000); } return 0; } 1. What is PINSEL2 used for? Can it be replaced with other instruction? 2. Write the function code of delayMs. Write comments for each instructions. 3. What is the meaning of ""LED_PORT &= ~(1 << LED_PIN)"" in code? Write equivalent code to replace for it.
1. PINSEL2 is used to set the pins for specific functionalities. Yes, it can be replaced by other instructions, or direct register manipulation.
2. The function code of delayMs and comments are given below:
#include "lpc214x.h" //Include LPC2148 header file.//This delayMs function creates a delay in milliseconds.
void delayMs(unsigned int time)
{
unsigned int i,j;
for(i = 0; i < time; i++) {
for(j = 0; j < 900; j++);
}
} // end of delayMs function.//
Here, the first for loop is used to create delay for the requested time in milliseconds.//Inside the second for loop, a delay is created for about 1 millisecond. // So the total time delay is obtained by multiplying these two delays.
3. The meaning of "LED_PORT &= ~(1 << LED_PIN)" in the code is to clear the bit at the LED_PORT corresponding to LED_PIN. So, this statement makes the LED pin low. To replace this, we can write the following code: LED_PORT = LED_PORT & ~(1 << LED_PIN);
To know more about functionalities visit:
https://brainly.com/question/21145944
#SPJ11
Write a C++ function to implement Bellman Ford algorithm. Assume that graphs are represented using adjacency lists in which each node has an additional field called length that gives the length of the edge represented by that node. Generate some test graphs and test the correctness of your function.
C++ function to implement Bellman Ford algorithm for weighted directed graphs with adjacency lists and additional "length" field in nodes.
Write a C++ program to implement the Bellman Ford algorithm for weighted directed graphs using adjacency lists and test its correctness with different test graphs.The task is to write a C++ function that implements the Bellman Ford algorithm, which is used to find the shortest paths in a weighted directed graph.
The function should take a graph represented using adjacency lists, where each node has an additional field called "length" that represents the length of the edge associated with that node.
The function should generate some test graphs and test the correctness of the algorithm by running it on those graphs.
The Bellman Ford algorithm works by iteratively relaxing the edges of the graph until the shortest paths are found.
By testing the function on different graphs, we can verify if it correctly computes the shortest paths and handles different edge weights and graph structures.
Learn more about Bellman Ford algorithm
brainly.com/question/31504230
#SPJ11
Please take a look at the custom stack and queue classes found in Stack.h and complete the tasks under TODO in Reorder.cpp.
More details are as follows:
ReOrder
ReOrder() function takes three arguments as shown in Reorder.cpp. Complete this function using stack and queue. The number 0 is used as a delimiter between sets of numbers. The new array should have all negative numbers on one side and all positive numbers on the other side. The zero should be pushed to the end of the array. See the sample run below.
Custom Compare Function
The custom compare function is used in conjunction with the standard sort function. The numbers to be sorted are of a standard data type but create this custom compare function anyway. The function should result in a sorted array from the greatest number to the least number.
Be sure to add comments throughout the code where necessary.
Sample Output
A sample run is as follows:
array: -3 2 -1 5 1 -4 0 11 12 13 -11 -12 0 -1 -2 6 8 7
newArray: -3 -1 -4 1 5 2 -11 -12 13 12 11 -1 -2 7 8 6 0 0
newArray sorted: 13 12 11 8 7 6 5 2 1 0 0 -1 -1 -2 -3 -4 -11 -12
Reflection
Study your workshop solution, reread the related parts of the course notes, and make sure that you have understood the concepts covered by this workshop. Create a text file named reflect.txt that contains the answers to the following questions
Do you see any application for lambda functions in C++?
Is int a class or an object? Is a in int a; a class or an object?
If you were to create a type or class called complex_number which has all the operations of an int, what operators would you have to overload to create a complex_number class?
//Stack.h - class definitions for a Stack class and a Queue class
#ifndef _STACK_H_
#define _STACK_H_
#include
const int MAX_DATA = 1000;
class Stack {
int data[MAX_DATA];
int count;
public:
Stack() { count = 0; memset(data, 0, sizeof(data)); }
void push(int v) {
if (count < MAX_DATA - 1) {
for (int i = count; i > 0; --i) data[i] = data[i - 1];
data[0] = v;
++count;
}
}
void pop() {
if (count > 0) {
--count;
for (int i = 0; i < count; ++i) data[i] = data[i + 1];
data[count] = 0;
}
}
int top() {
return data[0];
}
bool isEmpty() {
return count == 0;
}
};
class Queue {
int data[MAX_DATA];
int count;
public:
Queue() { count = 0; memset(data, 0, sizeof(data)); }
void enqueue(int v) {
if (count < MAX_DATA - 1) {
data[count] = v;
++count;
}
}
void dequeue() {
if (count > 0) {
--count;
for (int i = 0; i < count; ++i) data[i] = data[i + 1];
data[count] = 0;
}
}
int front() {
return data[0];
}
bool isEmpty() {
return count == 0;
}
};
#endif// _STACK_H_
//Reorder.cpp - main function for reordering an array
#include
#include
#include "Stack.h"
using namespace std;
void ReOrder(int newarr[], int arr[], int size) {
Stack stack;
Queue queue;
//TODO: Complete this function using stack and queue
// The number 0 is used as a delimiter between sets of numbers
// The new array should have all negative numbers on one side
// and all positive numbers on the other side.
// The zero should be pushed to the end of the array.
// See the sample run.
}
//TODO: Provide a custom compare function to sort the numbers from greatest to least
int main() {
const int SIZE = 18;
int array[] = { -3,2,-1,5,1,-4,0,11,12,13,-11,-12,0,-1,-2,6,8,7 };
int newArray[SIZE] = { 0 };
//Print out the original array
std::cout << "array: ";
for (int i = 0; i < SIZE; ++i) {
std::cout << array[i] << " ";
}
std::cout << std::endl;
//Reorder this array in newArray
ReOrder(newArray, array, SIZE);
//Print out the new array
std::cout << "newArray: ";
for (int i = 0; i < SIZE; ++i) {
std::cout << newArray[i] << " ";
}
std::cout << std::endl;
//TODO: sort newArray using the standard sort function providing a
// custom compare function to sort the numbers from greatest to least.
//Print out the sorted new array
std::cout << "newArray sorted: ";
for (int i = 0; i < SIZE; ++i) {
std::cout << newArray[i] << " ";
}
std::cout << std::endl;
return 0;
}
To complete the tasks in Reorder.cpp:
In the ReOrder function, iterate over the arr array. If the current element is negative, enqueue it into the queue object. If it's positive, push it onto the stack object. If it's 0, ignore it for now.
What next after iteration?After iterating over the arr array, dequeue elements from the queue and assign them to the newarr array until the queue is empty.
Then, pop elements from the stack and assign them to the newarr array until the stack is empty.
Finally, assign the value 0 to the remaining elements in the newarr array.
If you want to sort something in reverse order, you can use a special function called a lambda with the std::sort function. The lambda function will check if a is bigger than b. If it is, it will say it is true.
Read more about programs here:
https://brainly.com/question/26134656
#SPJ1
QUESTION 16 The advantages of DBMS include the following EXCEPT: O Control of data redundancy O Data consistency O More information from the same amount of data O Low cost O Sharing of data o Improved data integrity
The database management system (DBMS) has several benefits that make it an essential tool for the storage, organization, and management of data. In particular, it enables businesses and organizations to handle vast amounts of data, improve data accuracy, and reduce the risk of data loss.
Control of data redundancy: DBMS allows the sharing of data in a manner that ensures consistency and avoids redundancy. It allows the creation of a central repository of data that different applications can draw from, reducing the need to maintain multiple versions of the same data.
Data consistency: DBMS ensures that data is consistent by enforcing rules, constraints, and validation checks to maintain data quality. This ensures that the data is accurate and complete, and that there are no duplicates.
More information from the same amount of data: DBMS can extract more information from the same amount of data, through data mining, trend analysis, and other advanced analytical techniques.
Sharing of data: DBMS provides a framework for the sharing of data among different applications and users, promoting collaboration and increasing efficiency.
Improved data integrity: DBMS uses advanced techniques such as transaction management, backup and recovery, and access control to ensure that data is secure, and that there are no unauthorized modifications.
However, DBMS does not have a low cost. The costs associated with DBMS include hardware, software, licensing, installation, training, and maintenance. In conclusion, the advantages of DBMS are Control of data redundancy, Data consistency, More information from the same amount of data, Sharing of data and Improved data integrity but it does not have a low cost.
To know more about visit:
https://brainly.com/question/32525112
#SPJ11
For
part (a) the algorithm in question is the Breadth-First-Search
algorithm.
For part (b) the worst-case running time is the longest
possible time that the algorithm takes to complete. It should be 3. Graph Algorithms. (15 marks.) (a) Discuss how you could use an algorithm we have seen in labs to tell what vertices in a graph are exactly 4 edges away from a given vertex. (5 marks.) (b) The Erdö
(a) The Breadth-First-Search (BFS) algorithm can be used to determine the vertices in a graph that are exactly four edges away from a given vertex.
(b) The worst-case running time of the BFS algorithm is the longest possible time it takes to complete. In the case of finding vertices that are exactly four edges away from a given vertex, the worst-case scenario would involve traversing the entire graph.
The Breadth-First-Search algorithm explores a graph in a breadthward motion, starting from a given vertex and visiting all of its neighbors before moving on to their neighbors. By keeping track of the distance from the starting vertex to each visited vertex, we can determine the number of edges between them.
To find vertices that are exactly four edges away from a given vertex, we can modify the BFS algorithm as follows:
Begin with the given vertex and mark it as visited with a distance of 0.
Enqueue the vertex into a queue data structure.
While the queue is not empty, dequeue a vertex and examine its neighbors.
For each unvisited neighbor, mark it as visited with a distance of the current vertex's distance plus one and enqueue it.
Repeat steps 3 and 4 until the queue is empty.
After running the modified BFS algorithm, we can identify the vertices that have a distance of four from the given vertex. These vertices will be exactly four edges away.
By traversing the entire graph using the BFS algorithm, we ensure that we consider all possible paths and vertices. The worst-case running time occurs when we need to visit every vertex and edge in the graph, resulting in a time complexity of O(V + E), where V is the number of vertices and E is the number of edges.
Learn more about Breadth-First-Search
brainly.com/question/32550674
#SPJ11
Write a SQL stmt for -- Production.product table has list of products -- Production.productReview has the list of product reviews. --Find all the products and if the product has a review show the reviews
It also includes the unmatched rows of the left table in the results if they are present.In the SQL statement above, the ON keyword is used to specify the join condition. In this statement, the join condition is on the ProductID column, which is common to both tables.
To write a SQL statement for Production.product table that has the list of products and Production.product Review table that has the list of product reviews, the following SQL statement can be used. It finds all the products and if the product has a review show the reviews:SELECT Production.product.*, Production.product Review.*FROM Production.product LEFT OUTER JOIN Production.product Review ON Production.product.ProductID
= Production.productReview.ProductID;
The above statement retrieves the list of all products from the production.product table and all the reviews of each product from the production.product Review table. The SELECT statement uses the “*” symbol to select all the columns from both tables, Production.product and Production.productReview.To find all the products and if the product has a review show the reviews, a LEFT OUTER JOIN is used in the SQL statement. A left outer join retrieves all the data from the left table, Production.product, and only matching data from the right table, Production.product Review. It also includes the unmatched rows of the left table in the results if they are present.In the SQL statement above, the ON keyword is used to specify the join condition. In this statement, the join condition is on the ProductID column, which is common to both tables.
To know more about unmatched visit:
https://brainly.com/question/6844558
#SPJ11
). You are given a memory with 3-pages, where pages 3, 4, 5 were accessed in that order and are currently in memory. The next 10 pages accessed are 3. 7. 5. 2. 5. 4. 7, 3, 4, 5, For each of the following replacement policy, how many page faults will be encountered for the 10 accesses (i.e., not including those 3, 4, 5 currently in memory)? 1. FIFO 2. OPT (the optimal replacement policy) Note: You must show the trace as follows and then provide the #faults for each policy to get the full points for each policy Working Memory for FIFO Page 0:3 Page 1:4 Page 2:5 #faults: Working Memory for OPT Page 0:3 Page 1:4 Page 2: 5 #faults: Page 10 of 11
The number of page faults for FIFO is 4, while the number of page faults for OPT cannot be determined accurately without knowledge of future page accesses.
In the given scenario, the memory initially contains pages 3, 4, and 5. The next 10 pages accessed are 3, 7, 5, 2, 5, 4, 7, 3, 4, and 5. We need to determine the number of page faults for both the FIFO and OPT replacement policies.
1. FIFO (First-In-First-Out):
In the FIFO policy, the page that has been in memory the longest is replaced when a page fault occurs. Following the given sequence of page accesses, we can visualize the memory state for each access:
Working Memory for FIFO:
Page 0: 3 (Page Fault)
Page 1: 4 (Page Fault)
Page 2: 5 (Page Fault)
The number of page faults in FIFO is equal to the number of distinct pages accessed beyond the initial memory state. In this case, all the pages (3, 7, 5, 2) beyond the initially loaded pages (3, 4, 5) are distinct, so there are 4 page faults.
2. OPT (Optimal):
In the OPT policy, the page that will not be accessed for the longest period in the future is replaced when a page fault occurs. However, determining the optimal replacement requires knowledge of future page accesses, which is not available in this scenario.
Working Memory for OPT:
Page 0: 3 (Page Fault)
Page 1: 4 (Page Fault)
Page 2: 5 (Page Fault)
Since we cannot accurately predict the future page accesses, we cannot determine the exact number of page faults for the OPT policy in this case. However, it is worth noting that the OPT policy aims to minimize the number of page faults by making the optimal replacement choice.
In summary, the number of page faults for FIFO is 4, while the number of page faults for OPT cannot be determined accurately without knowledge of future page accesses.
Learn more about optimal replacement choice here:
brainly.com/question/32683408
#SPJ11
1. Evaluate Boolean Expressions What is the value of the following Boolean expressions? Assume the following values for a=2, b=4, c=6. a. a=-4 or b>2 b. 63 c. 1 !=b and c!=3 d. a>=-1 or a2)
The values of the given Boolean expressions have been determined by evaluating them using the given conditions.
a. a = -4 or b > 2: True
b. 63: Not a Boolean expression
c. 1 != b and c != 3: True
d. a >= -1 or a^2: True
Explanation:
Let's evaluate the given Boolean expressions using the provided values.
a. a = -4 or b > 2
Substituting the values, we have:
-4 or 4 > 2
True or True
The expression evaluates to True.
b. 63
This is not a Boolean expression. 63 is an integer value, not a logical condition.
c. 1 != b and c != 3
Substituting the values, we have:
1 != 4 and 6 != 3
True and True
The expression evaluates to True.
d. a >= -1 or a^2
Substituting the values, we have:
2 >= -1 or 2^2
True or 4
The expression evaluates to True.
To know more about Boolean expressions, visit:
https://brainly.com/question/29025171
#SPJ11
"Goals
Understand backup behavior of the database and log files
Understand the restore process
Step 1 – Full Recovery
Create a database using the CreateRandomData.sql found in
E-Conestoga
The SQL Server database backups have three types that can be taken: full, differential and log backups. Backup, restore, and recovery are some of the most important tasks for database administrators. Database backup is the process of copying the data from the database and saving it in a backup file.
The backup file can be used for restoring the data to the database in the event of a failure. Log backup contains the data that has been added or changed since the last full or differential backup. Backup retention determines how long a backup file is kept before it is automatically deleted.
This is crucial for disaster recovery to ensure that you have the latest data to restore in case of an unexpected failure Restore Process The restore process involves copying data from a backup file to a destination database. The data in the backup file is stored in a format that is different from the format used by the database.
This script will create a backup file that can be used to restore the database if necessary. Create a Database using Create Random Data. sql found in E-Conestoga: The database can be used to test the restore process and to practice database recovery skills.
To know more about database administrators visit:-
https://brainly.com/question/13261952
#SPJ11
Write a Java program to create a GUI window with a label and a button. When the user clicks the button, the program should display a series up to 10 terms as follows: 1,4,7,10,13,16,.................. The output should be displayed on the GUI window using a label. To display this output, you are required to use appropriate Java logic and other elements such as operators, loops, If-else etc.
urgent please help 15 min
The Java program creates a GUI window with a label and a button that displays a series up to 10 terms when the button is clicked, by importing necessary libraries.
Here are the steps to create a Java program that creates a GUI window with a label and a button, and generates a series up to 10 terms when the button is clicked:
Import the necessary Java libraries for creating a GUI window, a label, and a button: javax.swing.* and java.awt.event.*.
Define a class that extends the JFrame class, and implements the ActionListener interface. This class will represent our GUI window and handle button clicks.
Inside the class, declare two instance variables: a JLabel variable to hold the output of the series, and a JButton variable to trigger the series generation.
Create a constructor for the class that initializes the window title, size, and close operation, and adds the label and button to the window using the add() method.
Implement the actionPerformed() method to generate the series when the button is clicked. In this method, use a loop and the increment operator to generate the series up to 10 terms, and store it in a String variable.
Set the text of the label to the output of the series using the setText() method.
Finally, create a main() method that instantiates the class and displays the GUI window using the new keyword.
So the code is,
import javax.swing.*;
import java.awt.event.*;
JLabel label;
public class MyProgram extends JFrame implements ActionListener { JButton button;
public MyProgram) {
super("My Program");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("Click the button to generate the series.");
add(label);
button = new JButton("Generate"); button.addActionListener(this);
add(button);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String output = "1, 4, 7, 10, 13, 16, 19, 22, 25, 28";
label.setText(output);
}
public static void main(String[] args) {
new MyProgram0:
}
The code is attached below:
To learn more about programming visit:
https://brainly.com/question/14368396
#SPJ4
Template is a feature of C++ that allows us to write one general definition for a function that works for different data types. True False Question 10 2 pts A program can continue to run after an exce
1. Template in C++: Templates in C++ allow us to write generic code that can be used with different data types. It allows us to define functions or classes that can operate on multiple data types without the need to write separate code for each type. Templates provide a way to create reusable code by parameterizing the types involved. For example, we can create a template function to find the maximum value of two variables, regardless of their data type. This promotes code reusability and improves efficiency.
2. Program termination after an exception: When an exception is thrown in a C++ program and not caught by an appropriate exception handler, it leads to program termination. This is because unhandled exceptions are considered as exceptional situations where the program cannot proceed safely. The default behavior in C++ is to terminate the program by unwinding the stack and calling the `std::terminate()` function. It is important to handle exceptions using try-catch blocks or propagate them to higher levels of code to ensure graceful error handling and prevent unexpected program termination.
In summary, templates allow for generic programming in C++, providing a way to write reusable code that can work with different data types. On the other hand, unhandled exceptions lead to program termination and should be handled appropriately to ensure proper error handling and program execution.
Template is a feature of C++ that allows us to write one general definition for a function that works for different data types. True False Question 10 2 pts A program can continue to run after an exce
Learn more about generic code click here:
brainly.com/question/21057066
#SPJ11
Given the following function together with the associated don't care conditions: F(A,B,C,D) = Sum m(2, 4, 10, 12, 14) + D(1, 5, 6, 8) Then, the minimal expression of F can be written as Lütfen birini seçin: a. F= (C' + D) .(A' + D'). (B + C + D) b. None of the given answers C. F = D'(B+C) d. F = D.(B'+C')
The minimal expression of F can be written as: d. F = D.(B' + C')
The provided solution is based on Boolean algebra simplification techniques,
To find the minimal expression of F, we need to simplify the given Boolean function using Boolean algebra and logic simplification techniques.
Given function: F(A, B, C, D) = Σm(2, 4, 10, 12, 14) + D(1, 5, 6, 8)
First, let's look at the minterms (2, 4, 10, 12, 14) in the sum-of-minterms (SOP) expression.
We can see that the variable A doesn't appear in any of these minterms, which means it is irrelevant to the function.
Therefore, we can eliminate A from the expression.
F(A, B, C, D) = Σm(2, 4, 10, 12, 14) + D(1, 5, 6, 8)
= Σm(2, 4, 10, 12, 14) + Σd(1, 5, 6, 8)
Next, we can simplify the expression by grouping the terms based on their common factors.
F(A, B, C, D) = Σm(2, 4, 10, 12, 14) + Σd(1, 5, 6, 8)
= D'(B' + C' + D) + D(B' + C + D)
= D'(B' + C') + D(B' + C + D)
Thus, the minimal expression of F is F = D.(B' + C').
The minimal expression of the given function F(A, B, C, D) = Σm(2, 4, 10, 12, 14) + D(1, 5, 6, 8) is F = D.(B' + C').
Please note that the provided solution is based on Boolean algebra simplification techniques, and the answer may vary depending on the specific simplification rules applied.
To know more about Boolean visit:
https://brainly.com/question/31647098
#SPJ11
flipcase Write a function flipcase that accepts a word as an argument and returns the same word but with each upper case letter switched to lower case and vice-versa. Sample usage:
The function "flipcase" takes a word as input and returns the word with each uppercase letter switched to lowercase and vice versa. It provides a convenient way to flip the case of letters in a given word.
The function "flipcase" can be implemented using string manipulation techniques. It iterates over each character in the input word and checks if it is uppercase or lowercase. If it is uppercase, it converts it to lowercase using the built-in "lower()" function, and vice versa for lowercase letters using the "upper()" function. The flipped case characters are then concatenated to form the resulting word, which is returned as the output.
Here's an example implementation in Python:
```python
def flipcase(word):
flipped_word = ""
for char in word:
if char.isupper():
flipped_word += char.lower()
else:
flipped_word += char.upper()
return flipped_word
# Sample usage
input_word = "Hello"
flipped_result = flipcase(input_word)
print(flipped_result) # Output: hELLO
```
In the provided example usage, the input word "Hello" is passed to the "flipcase" function. The function flips the case of each letter in the word, resulting in the output "HELLO", where the uppercase "H" becomes lowercase and the lowercase "e", "l", and "o" become uppercase.
Learn more about input here:
brainly.com/question/33170863
#SPJ11
Q2) Assume we have the following set S={A, B, C, D, E, F, G, H} a) How many possible combinations of size k-2 from S where repetition is allowed, and the order of the selection is important? b) How many possible combinations of size k-2 from S where repetition is not allowed allowed, and the order of the selection is important? c) How many possible combinations of size k-2 from S where repetition is not allowed allowed, and the order of the selection is not important? d) How many possible combinations of size k=2 from S where repetition is not allowed allowed, and the order of the selection is not important?
Using the concept of permutation and combination with or without repetition;
a) The number of possible combinations of size k-2 from set S, where repetition is allowed and the order of selection is important, is 8^(k-2).
b) The number of possible combinations of size k-2 from set S, where repetition is not allowed and the order of selection is important, is P(8, k-2) = 8! / (8 - (k-2))!.
c) The number of possible combinations of size k-2 from set S, where repetition is not allowed and the order of selection is not important, is C(8, k-2) = 8! / ((k-2)! * (8 - (k-2))!).
d) The number of possible combinations of size k=2 from set S, where repetition is not allowed and the order of selection is not important, is C(8, 2) = 8! / (2! * (8 - 2)!).
How many possible combinations of size k-2 from S where repetition is allowed?a) To find the number of possible combinations of size k-2 from set S, where repetition is allowed and the order of selection is important, we can use the concept of permutations with repetition.
Since repetition is allowed and the order matters, for each position in the combination, we have 8 choices (the elements of set S). Therefore, the number of possible combinations of size k-2 can be calculated as 8^(k-2).
b) To find the number of possible combinations of size k-2 from set S, where repetition is not allowed and the order of selection is important, we can use the concept of permutations without repetition.
In this case, we have 8 choices for the first position, 7 choices for the second position, and so on. Therefore, the number of possible combinations of size k-2 can be calculated as P(8, k-2) = 8! / (8 - (k-2))!.
c) To find the number of possible combinations of size k-2 from set S, where repetition is not allowed and the order of selection is not important, we can use the concept of combinations without repetition.
In this case, we want to choose k-2 elements from a set of 8, without regard to their order. Therefore, the number of possible combinations of size k-2 can be calculated as C(8, k-2) = 8! / ((k-2)! * (8 - (k-2))!).
d) To find the number of possible combinations of size k=2 from set S, where repetition is not allowed and the order of selection is not important, we can again use the concept of combinations without repetition.
In this case, we want to choose 2 elements from a set of 8, without regard to their order. Therefore, the number of possible combinations of size k=2 can be calculated as C(8, 2) = 8! / (2! * (8 - 2)!).
Learn more on permutation and combination here;
https://brainly.com/question/28065038
#SPJ4
Write a Python script that asks for the user to enter a value
and prints out the type of the value in the following format: ‘You
entered: 24 which is a .’
The following is a Python script that requests the user to enter a value and prints out the type of the value in the following format: ‘You entered: 24 which is a .’:
```
value = input("Enter a value: ")
print("You entered:", value, "which is a", type(eval(value)).__name__)
```
The code above can be broken down into the following steps:
1. The input function asks the user to input a value. The value is then stored in the variable 'value'.
```
value = input("Enter a value: ")
```
2. The eval() function takes the input value and returns its type as a string. The type() function is then used to convert the string to the actual data type of the input value.
```
type(eval(value)).__name__
```
3. The print function outputs the original input value, along with the data type of the input value.
```
print("You entered:", value, "which is a", type(eval(value)).__name__)
```
The complete Python script can be found below:
```
value = input("Enter a value: ")
print("You entered:", value, "which is a", type(eval(value)).__name__)
```
The code above requests the user to input a value and returns the type of the value. The input function is utilized to request the user to enter the value.
The eval() function takes the input value and returns its type as a string. The type() function is then used to convert the string to the actual data type of the input value.
The print function outputs the original input value, along with the data type of the input value. This Python script can be used in a variety of situations to quickly determine the data type of user input.
To learn more about Python
https://brainly.com/question/30391554
#SPJ11
Question 3 (Lab 3.2.1.3) A junior magician with secret Number= 777, he wants you to write a code to guess the number or remain in the loop: 1- Guess a number. 2- The number is not equal to 777, show "Ha ha! You're stuck in my loop!" 3- The number is 777, show "Well done, muggle! You are free now." You code Question 4 (Lab 3.2.1.6) Write a code to count from 1 to 5 seconds using loop pause: time.sleep (1) You code
In the following code, we have used an infinite while loop to guess the number. We will have to guess a number until we find 777.
The code for the given task is:
secret_number = 777
while True:
guess_number = int(input("Guess the number: "))
if guess_number == secret_number:
print("Well done, muggle! You are free now.")
break
else:
print("Ha ha! You're stuck in my loop!")
(Lab 3.2.1.6):
We can use the time.sleep() function in Python to pause the loop for a specific amount of time:
import time
for i in range(1, 6):
print(i)
time.sleep(1)
To know more about infinite visit :
https://brainly.com/question/30790637
#SPJ11