Write a program that couts the number of words contained within a file. • The name of the file will be passed on the command line • A word is considered to be 1 or more consecutive non-whitespace characters • A character is considered whitespace if isspace would return true if passed that character as an arguement • The files used for grading are contained in problem1-tests. Example: In test2.txt, there are two words: Hello and world!. Your program should print "There are 2 word(s). \n" Requirements: • No global variables may be used • Your main function may only declare variables and call other functions • YOU MAY NOT ALLOCATE ANY FIXED AMOUNT OF SPACE IN THIS PROBLEM - Doing so will result in 0 credit - Fixed amount of space would mean doing something like only allocating at most space for 100 lines or allocating 1000 characters per line. Your code needs to be able to work with files that have any number of lines with any number of characters per line. - It doesn't matter whether you dynamically allocate this space or statically allocate the space. You will still lose credit. For example, all of these are forbidden char* line calloc(100, sizeof (char)) char line (100); char** lines = calloc(500, sizeof(char*)); char lines (500) 1

Answers

Answer 1

Here's a complete answer in C programming language to solve the given task of counting the number of words in a file while adhering to the provided requirements:

#include <stdio.h>

#include <ctype.h>

int countWords(FILE *file) {

   int count = 0;

   int insideWord = 0;

   int c;

   while ((c = fgetc(file)) != EOF) {

       if (isspace(c)) {

           insideWord = 0;

       } else if (!insideWord) {

           insideWord = 1;

           count++;

       }

   }

   return count;

}

int main(int argc, char *argv[]) {

   if (argc < 2) {

       printf("Usage: ./word_count <filename>\n");

       return 1;

   }

   FILE *file = fopen(argv[1], "r");

   if (file == NULL) {

       printf("Failed to open the file.\n");

       return 1;

   }

   int wordCount = countWords(file);

   fclose(file);

   printf("There are %d word(s).\n", wordCount);

   return 0;

}

This solution avoids using global variables, only declares variables in the main function, and does not allocate a fixed amount of space. It can handle files with any number of lines and characters per line, providing a flexible and dynamic solution.

Learn more about program here : brainly.com/question/30905580

#SPJ11


Related Questions

Show that minimal test suites covering for criterion Cp can detect
more mistakes than test suites covering for criterion C0by
i) giving a computational problem Sp together with a Java program
P that does not conform to Sp,
ii) and arguing that P has a mistake that can not be uncovered with
a minimal test suite for C0, however can be uncovered by some
minimal test suites for Cp
This may look like 2 different questions but it is in fact one.

Answers

Criterion Cp and C0 are test coverage criteria for test suite selection in software testing. A test suite satisfying a criterion Cp covers all tuples of n input parameters with values from their respective domains (n-tuple coverage), and C0 covers all single input parameters with all possible values (0-tuple coverage).

Criterion Cp has better fault detection capabilities than criterion C0. This is because minimal test suites that cover criterion Cp can detect more faults than minimal test suites that cover criterion C0. The proof that minimal test suites covering criterion Cp can detect more mistakes than test suites covering criterion C0 is given below:i) Given a computational problem Sp together with a Java program P that does not conform to Sp, The Java program P can be considered to be a function that takes n input parameters as input and produces a value as output. It is required to test this function to find faults that exist in the program.ii) P has a mistake that can not be uncovered with a minimal test suite for C0, however, can be uncovered by some minimal test suites for CpIf a minimal test suite covering criterion C0 is used to test the function P, it may not uncover some faults because this criterion only covers all single input parameters with all possible values. The faults that can be uncovered by C0 are only those that are related to the input parameters. If a minimal test suite covering criterion Cp is used to test the function P, all tuples of n input parameters with values from their respective domains are covered. Thus, it is more likely that all faults in the program will be detected by test suites covering criterion Cp. Therefore, minimal test suites that cover criterion Cp can detect more faults than minimal test suites that cover criterion C0.

To know more about test suit adequacy criterion visit:

brainly.com/question/28540717

#SPJ11

Minimum 200 words please
What could a South African sociology be on
Decolonisation?
Minimum 200 words please

Answers

A South African sociology study on decolonization could focus on examining the historical, social, and cultural processes involved in dismantling colonial legacies and reclaiming indigenous knowledge, identities, and systems. It would explore the impacts of colonization on South African society, the challenges faced in decolonizing various sectors, and the strategies employed to foster a more inclusive and equitable society. Additionally, it could analyze the role of education, language, and cultural revitalization in the decolonization process, while also considering the intersectionality of race, class, gender, and other social dimensions in shaping decolonial struggles and aspirations.

A sociology study on decolonization in South Africa would delve into the complex dynamics of dismantling colonial structures and ideologies. It would explore the historical context of colonization and its enduring impacts on the social, economic, and political fabric of the country. The study would analyze the ways in which decolonization is pursued in different sectors, such as education, law, governance, and cultural institutions. It would investigate the challenges and successes encountered in the decolonial project, examining how power dynamics, inequality, and resistance shape the process.

Moreover, a South African sociology study on decolonization would pay particular attention to the reclamation and revitalization of indigenous knowledge, languages, and cultural practices. It would explore how indigenous epistemologies and ways of knowing can be incorporated into contemporary social structures and institutions. The study would also examine the role of education in decolonization, questioning dominant knowledge systems and advocating for the inclusion of diverse perspectives and histories. It would critically analyze the intersections of race, class, gender, and other social dimensions in the decolonial struggle, recognizing that decolonization must address multiple forms of oppression and inequality.

To learn more about Equitable society - brainly.com/question/28419086

#SPJ11

A South African sociology study on decolonization could focus on examining the historical, social, and cultural processes involved in dismantling colonial legacies and reclaiming indigenous knowledge, identities, and systems. It would explore the impacts of colonization on South African society, the challenges faced in decolonizing various sectors, and the strategies employed to foster a more inclusive and equitable society. Additionally, it could analyze the role of education, language, and cultural revitalization in the decolonization process, while also considering the intersectionality of race, class, gender, and other social dimensions in shaping decolonial struggles and aspirations.

A sociology study on decolonization in South Africa would delve into the complex dynamics of dismantling colonial structures and ideologies. It would explore the historical context of colonization and its enduring impacts on the social, economic, and political fabric of the country. The study would analyze the ways in which decolonization is pursued in different sectors, such as education, law, governance, and cultural institutions. It would investigate the challenges and successes encountered in the decolonial project, examining how power dynamics, inequality, and resistance shape the process.

Moreover, a South African sociology study on decolonization would pay particular attention to the reclamation and revitalization of indigenous knowledge, languages, and cultural practices. It would explore how indigenous epistemologies and ways of knowing can be incorporated into contemporary social structures and institutions. The study would also examine the role of education in decolonization, questioning dominant knowledge systems and advocating for the inclusion of diverse perspectives and histories. It would critically analyze the intersections of race, class, gender, and other social dimensions in the decolonial struggle, recognizing that decolonization must address multiple forms of oppression and inequality.

To learn more about Equitable society - brainly.com/question/28419086

#SPJ11

MAC292 Class work NO. 8 Based on last class's video (V2), design the states graph for a sequence detector that detects the following sequence: 1010

Answers

State D is the accepting state since it represents the end of the desired sequence "1010".

To design the states graph for a sequence detector that detects the sequence "1010," we need to determine the possible states and transitions between them. Here's a representation of the states graph:

State A:

- On input 1: Transition to State B

- On input 0: Remain in State A

State B:

- On input 1: Transition to State C

- On input 0: Transition to State A

State C:

- On input 1: Transition to State D

- On input 0: Transition to State A

State D:

- On input 1: Remain in State D

- On input 0: Transition to State A

State D is the accepting state since it represents the end of the desired sequence "1010".

Note: The states and transitions may vary depending on the specific requirements and implementation of the sequence detector. The provided states graph represents a basic approach for detecting the sequence "1010".

To know more about Sequence Detector related question visit:

https://brainly.com/question/32225170

#SPJ11

You have a file "word.txt" which contains some words. Your task is to write a C++ program to find the frequency of each word and store the word with its frequency separated by a coma into another file word_frequency.txt. Then read word_frequency.txt file and find the word which has the maximum frequency and store the word with its frequency separated by a coma into another file "max_word.txt". Your program should contain the following functions: 1) read function: to read the data.txt and word_frequency.txt file into arrays when needed. 2) write function: to write the results obtained by frequency function and max function in word_frequency.txt and max_word.txt respectively, when needed. 3) frequency function: to find the frequency of each word. 4) max function: to find the word with maximum frequency (use header file iostream fstream and strings only

Answers

A C++ program will read "word.txt" to find the frequency of each word and store the results in "word_frequency.txt". It will also determine the word with the highest frequency and save it in "max_word.txt".



The program will begin by implementing the read function to read the data from "word.txt" and load it into appropriate data structures such as an array or a vector. This will allow us to process the words efficiently. The function may also read any existing data from "word_frequency.txt" to preserve previous results.Next, the frequency function will be implemented to calculate the frequency of each word. It will iterate over the words in the array, keeping track of their occurrences in a suitable data structure like a map or unordered_map. For each word encountered, its count will be incremented in the data structure.

Once the frequencies are calculated, the write function will be called to write the word-frequency pairs to "word_frequency.txt". It will iterate over the data structure and write each word-frequency pair, separated by a comma, into the file.Afterward, the max function will be implemented to find the word with the maximum frequency. It will iterate over the data structure storing the word-frequency pairs and keep track of the maximum frequency encountered. Along with that, it will also keep track of the corresponding word.

Finally, the write function will be invoked again to store the word with its maximum frequency in the "max_word.txt" file. This file will contain a single line with the word and its frequency separated by a comma.By utilizing these functions, the C++ program will successfully read the input, calculate the frequencies, and determine the word with the maximum frequency. The results will be stored in the respective output files, allowing for easy retrieval and analysis of the word frequencies.

To learn more about program click here

brainly.com/question/14368396

#SPJ11

A. static Match each of the BLANKs with their corresponding answer. Method calls are also called BLANKs. A variable known only within the method in which it's B. local declared is called a BLANK variable. C. Scope It's possible to have several methods in a single D. Overloading class with the same name, each operating on different types or numbers of arguments. This E. Overriding feature is called method BLANK. F. global The BLANK of a declaration is the portion of a G. protected program that can refer to the entity in the declaration by name. H. private • A BLANK method can be called by a given class or I. invocations by its subclasses, but not by other classes in the same package.

Answers

Object-oriented programming is a widely-used paradigm for developing software applications. To create effective object-oriented programs, developers must have a firm understanding of certain key concepts and terms. One such concept is the use of methods in classes.

Methods are code blocks that perform specific tasks when called. They are also referred to as functions or procedures. When a method is called, it executes a series of instructions that manipulate data and/or perform actions. Method calls are also known as invocations, and they are used to trigger the execution of a method.

A variable known only within the method in which it's declared is called a local variable. This type of variable has limited scope, meaning that it can only be accessed within the method in which it is defined. As a result, local variables are often used to store temporary values that are not needed outside of the method.

In object-oriented programming, it's possible to have several methods in a single class with the same name, each operating on different types or numbers of arguments. This feature is called method overloading, and it allows developers to reuse method names while still maintaining a clear and concise naming convention.

Method overriding is another important concept in object-oriented programming. It refers to the ability of a subclass to provide its own implementation for a method that is already defined in its superclass. This allows for greater flexibility and customization of functionality within an application.

The scope of a declaration is the portion of a program that can refer to the entity in the declaration by name. The scope of a global method extends throughout the entire program, meaning that it can be called by any part of the program. In contrast, a private method can only be called by a given class or invocations by its subclasses, but not by other classes in the same package.

Overall, a strong understanding of these key concepts related to methods in object-oriented programming is crucial for successful software development.

Learn more about programs here:

https://brainly.com/question/14618533

#SPJ11

Create and run a C program including the following fragment.
What does it produce? Explain.
float x = -1.5e38; float y = 1.5e38;
printf("%f\n", (x + y) + 1.0);
printf("%f\n", x + (y + 1.0));

Answers

The output of the program will depend on the specific implementation of the C compiler and the floating-point representation used.

Here's a C program that includes the provided code fragment: #include <stdio.h> int main() {

   float x = -1.5e38;

   float y = 1.5e38;

   printf("%f\n", (x + y) + 1.0);

   printf("%f\n", x + (y + 1.0);

   return 0;

}

Explanation: The program defines two variables x and y, initialized with the values -1.5e38 and 1.5e38, respectively. These values represent extremely large floating-point numbers. The program then performs two additions: (x + y) + 1.0 and x + (y + 1.0). Finally, it prints the results of these additions using the %f format specifier.  However, in most cases, it will produce the following output:diff

-inf

1.500000e+38.

Explanation of the output: (x + y) + 1.0:Since the sum of x and y exceeds the range of representable floating-point numbers, it results in a special value -inf (negative infinity). Adding 1.0 to -inf still results in -inf. x + (y + 1.0): Adding 1.0 to y does not change its value due to the limitations of floating-point precision. The addition of x and (y + 1.0) produces the expected result of 1.5e38, which is within the range of representable floating-point numbers. The difference in the results is due to the order of operations and the limitations of floating-point arithmetic. When adding extremely large and small numbers, the precision of the floating-point representation can lead to loss of precision or overflow, resulting in different results depending on the order of addition.

To learn more about compiler click here:brainly.com/question/28232020

#SPJ11

Questions (i)-(iii) below are about the following C++ program: #include using namespace std; class Bclass { public: virtual void p() (cout << "Bclass":): void call_p_twice() (p(); cout << " "; p();) class Dclass: public Bclass { public: void p() { cout << "Delass";} }; int main() { Dclass v; // Line C v.call_p_twice (); } (i)[1 pt.] What will be output when v.call_p_twice (); on Line c is executed? Circle the answer: (a) Dclass (b) Bclass (b) Bclass (c) Dclass Dclass. (e) An error message that says Dclass has no member function named call_p_twice (). (c) Delass Delass (d) Bclass Bclass. (ii)[1 pt.] Suppose we remove the word virtual on Line A and recompile the program. What will be output when v.call_p_twice (); on Line cis executed? Circle the answer: (a) Dclass (e) An error message that says Dclass has no member function named call_p_twice (). (d) Bclass Bclass iii)[1 pt.] Suppose that, after removing virtual on Line A, we also insert the word virtual before void on Line B (so call_p_twice () becomes a virtual function, but the p () member functions of class Bclass and class Dclass are not virtual). If we then recompile and execute the program, what will be output when v.call_p_twice(); on Line C is executed? Circle the answer: (a) Dclass (b) Bclass (c) Dclass Dclass (d) Bclass Bclass (e) An error message that says Dclass has no member function named call_p_twice (). // Line A // Line B

Answers

The given C++ program defines two classes and demonstrates the behavior of virtual and non-virtual functions. The output depends on the presence or absence of the virtual keyword.

In the given C++ program, there are two classes: Bclass and Dclass. Bclass has a virtual function called "p()" and a function called "call_p_twice()" that calls the "p()" function twice. Dclass is derived from Bclass and overrides the "p()" function, printing "Dclass". In the main function, an object of Dclass is created, and the "call_p_twice()" function is called.

(i) The output will be "Dclass Dclass" because the "p()" function in Dclass overrides the one in Bclass.

(ii) If the "virtual" keyword is removed from Line A, an error will occur as Dclass does not have the "call_p_twice()" function.

(iii) Adding the "virtual" keyword before "void" on Line B doesn't affect the output because the "p()" functions in both Bclass and Dclass are not virtual, so the derived class implementation is not considered.

For more information on class visit: brainly.com/question/14278245

#SPJ11

Write a program that prompts the user for five 32-bit integers, stores them in an array calculates only the sum of the ODD values of the array, displays the sum on the screen. Ir addition, this program prompts the user for a 32-bit integer and display if the array contains this value or not. We suppose that we deal only with unsigned integer. Your code must be composed with the following procedures. 1. Main procedure 2. Prompt user for multiple integers 3. Calculate the sum of the ODD values of the array 4. Display the sum 5. Prompt user for an integer, fetch it into the array and display on screen "Exist" or "No Exist"

Answers

This program prompts the user for five 32-bit integers, stores them in an array, calculates the sum of the odd values in the array, and checks if a user-provided integer exists in the array.

Here's the program that prompts the user for five 32-bit integers, stores them in an array, calculates the sum of the odd values in the array, and checks if a user-provided integer exists in the array:

```cpp

#include <iostream>

const int ARRAY_SIZE = 5;

void promptUser(int array[]) {

   std::cout << "Enter " << ARRAY_SIZE << " integers: ";

   for (int i = 0; i < ARRAY_SIZE; i++) {

       std::cin >> array[i];

   }

}

int calculateOddSum(const int array[]) {

   int sum = 0;

   for (int i = 0; i < ARRAY_SIZE; i++) {

       if (array[i] % 2 != 0) {

           sum += array[i];

       }

   }

   return sum;

}

bool checkExistence(const int array[], int target) {

   for (int i = 0; i < ARRAY_SIZE; i++) {

       if (array[i] == target) {

           return true;

       }

   }

   return false;

}

int main() {

   int array[ARRAY_SIZE];

   

   promptUser(array);

   

   int sum = calculateOddSum(array);

   std::cout << "Sum of odd values: " << sum << std::endl;

   

   int target;

   std::cout << "Enter an integer to check: ";

   std::cin >> target;

   

   if (checkExistence(array, target)) {

       std::cout << "Exist" << std::endl;

   } else {

       std::cout << "No Exist" << std::endl;

   }

   

   return 0;

}

```

1. The `promptUser` procedure asks the user to enter five integers and stores them in the `array` using a loop and `std::cin`.

2. The `calculateOddSum` procedure iterates over the `array` and checks if each element is odd. If so, it adds the odd value to the `sum` variable.

3. The `checkExistence` procedure searches for the `target` integer in the `array` and returns `true` if it exists, and `false` otherwise.

4. In the `main` procedure, the user is prompted to enter the integers, and the `promptUser` procedure is called to populate the `array`.

5. The `calculateOddSum` procedure is called, and the sum of the odd values is stored in the `sum` variable, which is then displayed on the screen.

6. The user is prompted to enter an integer to check its existence in the `array`. The `checkExistence` procedure is called, and based on the result, "Exist" or "No Exist" is displayed on the screen.

This program assumes that the user will enter valid 32-bit unsigned integers.

To learn more about array  Click Here: brainly.com/question/13261246

#SPJ11

0.5 pts Question 1 Below is an attempt to reverse a string through recursion. Please choose the correct last line of code that complete the code. def reverse_str(s): if len(s)< 1: return s else: #your answer here a. return reverse_str(s[1:])+ s[0] b. return s[0] +reverse_str(s[1:]) c. return s[1] + reverse_str(s[0:]) d. return reverse_str(s[0:]) + s[1]

Answers

The correct last line of code to complete the recursive function for reversing a string is option (b): `return s[0] + reverse_str(s[1:])`. This line of code appends the first character of the string `s` to the result of recursively calling the function on the remaining substring `s[1:]`. This process is repeated until the length of the string becomes less than 1, at which point the reversed string is returned.

In the given code snippet, the function `reverse_str()` is implemented to reverse a string using recursion. The function checks the length of the string `s`, and if it is less than 1 (i.e., an empty string), it returns the string as is. Otherwise, it enters the `else` block.

To reverse the string recursively, we need to concatenate the first character of the string with the reversed substring of the remaining characters. Option (b) `return s[0] + reverse_str(s[1:])` correctly performs this concatenation. It takes the first character `s[0]` and appends it to the result of the recursive call `reverse_str(s[1:])`, which reverses the remaining substring `s[1:]`. This process continues until the base case is reached, and the reversed string is built up step by step.

Therefore, option (b) is the correct last line of code to complete the recursive function for reversing a string.

To learn more about Recursive function - brainly.com/question/32344376

#SPJ11

Been working on this code for the last couple ogf hours with no luck. Need Help writing a header file named "Restaurant.h" in order to support these two codes. Please explain in detail so I can learn for next time. Thanks in advance.
RestaurantMain.cpp
#include "Restaurant.h"
#include
#include
using namespace std;
int main()
{
Restaurant r1("McDonalds", 50);
int rating;
cout << "Enter ratings for " << r1.getName() << ", add a negative number when done." << endl;
cin >> rating;
while (rating >= 0)
{
r1.addRating(rating);
cin >> rating;
}
cout << r1.getName() << "'s average rating is " << r1.getAverage() << " and maximum rating is " << r1.getMaxRating() << endl;
Restaurant r2;
r2.setName("Burger King");
r2.setSeatingCapacity(75);
cout << r2.getName() << "'s seating capacity is " << r2.getSeatingCapacity() << endl;
return 0;
}
Restaurant.cpp
#include
#include
#include "Restaurant.h"
using namespace std;
int main()
{
Restaurant restaurant1("McDonalds", 100);
string name;
int seatingCapacity;
cout << "Please enter a restaurant name: ";
cin >> name;
restaurant1.setName(name);
cout << "Please enter the seating capacity: ";
cin >> seatingCapacity;
restaurant1.setSeatingCapacity(seatingCapacity);
int rating;
cout << "Please enter a rating between 1 and 5: ";
cin >> rating;
while (rating != -1)
{
restaurant1.addRating(rating);
cout << "Please enter a rating between 1 and 5: ";
cin >> rating;
}
cout << "The average rating for this restaurant is " << restaurant1.getAverage() << endl;
cout << "The maximum rating for this restaurant is " << restaurant1.getMaxRating() << endl;
return 0;
}

Answers

To support the provided code, you need to create a header file named "Restaurant.h" that declares the class and its member functions. Here's an example of how you can implement the "Restaurant.h" header file:

```cpp

#ifndef RESTAURANT_H

#define RESTAURANT_H

#include <string>

#include <vector>

class Restaurant {

private:

   std::string name;

   int seatingCapacity;

   std::vector<int> ratings;

public:

   Restaurant();  // Default constructor

   Restaurant(const std::string& name, int seatingCapacity);

   // Getter and Setter methods

   std::string getName() const;

   void setName(const std::string& name);

   int getSeatingCapacity() const;

   void setSeatingCapacity(int seatingCapacity);

   // Rating-related methods

   void addRating(int rating);

   double getAverage() const;

   int getMaxRating() const;

};

#endif

```

Let's go through the code and explain each part:

1. The `#ifndef` and `#define` directives are known as inclusion guards. They prevent the header file from being included multiple times in the same compilation unit.

2. We include necessary header files like `<string>` and `<vector>` to make use of the string and vector classes.

3. The `Restaurant` class is declared with private member variables: `name` (string), `seatingCapacity` (integer), and `ratings` (vector of integers).

4. The class has two constructors: a default constructor and a parameterized constructor that takes the name and seating capacity as arguments.

5. Getter and setter methods are provided for accessing and modifying the private member variables.

6. The `addRating` method adds a rating to the `ratings` vector.

7. The `getAverage` method calculates and returns the average rating from the `ratings` vector.

8. The `getMaxRating` method finds and returns the maximum rating from the `ratings` vector.

Make sure to save this code in a file named "Restaurant.h" and place it in the same directory as your main code files. This header file provides the necessary class definition for the Restaurant class, which can then be used in the provided code snippets.

Learn more about header file

brainly.com/question/30770919

#SPJ11

The transform property used for the Safari Web browser is written as a. O transform: b. moz-transform: c. webkit-transform: d. transform:

Answers

The correct property for the Safari web browser is "webkit-transform" (option c). The "transform" property alone is a generic CSS property that is supported by multiple browser.

But when specifically targeting Safari, the "webkit-" prefix needs to be added to ensure compatibility. Safari, like other web browsers, implements various CSS properties to manipulate and transform elements on a web page. The "transform" property allows developers to apply different transformations to elements, such as rotating, scaling, skewing, or translating them in 2D or 3D space. However, Safari requires the use of the "webkit-transform" property to ensure proper rendering of these transformations.

The "webkit-" prefix is used to denote properties specific to the WebKit rendering engine, which is the underlying engine used by Safari. It indicates that the property is a vendor-specific extension and may not be supported by other browsers. By using "webkit-transform," developers can target Safari specifically and ensure that their CSS transformations work correctly on Safari browsers.

It's important to note that while the "webkit-transform" property is used for Safari, other browsers have their own prefixes for CSS transformations. For example, Firefox uses the "-moz-transform" property, and Chrome and Opera use the "-webkit-transform" property. To ensure cross-browser compatibility, it is common practice to include multiple prefixed versions of the "transform" property to cover different browser engines.

To learn more about web browser click here:

brainly.com/question/32655036

#SPJ11

A programs current page "Locality of Reference" is an important concept when looking at page/frame allocation. a) What is meant by the Locality of Reference? b) How does "Locality" play into the concept of Thrashing? c) The working-set model uses the concept of "locality" as the bases for allocation. i) Explain what the "working-set" window is in the context of the Working-Set Model. ii) Given the following sequence of page references assuming page 6 had just been references. What would be the working-set if the delta is set to 10? ... 112344438543234 953236 iii) In general, does the Delta value always capture "Enough" pages? Explain!

Answers

Locality of reference is a concept in computer science that refers to the tendency of a program to access a specific set of data or instructions repeatedly within a short period of time. It is based on the observation that programs often exhibit temporal and spatial locality, meaning they access data and instructions that are close together in time and space. Locality of reference plays a crucial role in the concept of thrashing, which occurs when a system spends excessive time and resources swapping pages in and out of memory due to high memory demand. The working-set model utilizes the concept of locality to allocate memory resources effectively based on the working-set window, which represents the set of pages referenced by a program within a specified time interval.

a) Locality of reference refers to the behavior of a program to access a specific set of data or instructions in close proximity in both time and space. Temporal locality refers to accessing the same data or instructions repeatedly, while spatial locality refers to accessing data or instructions that are physically close together in memory. The concept suggests that programs tend to exhibit these patterns, allowing for efficient memory management.

b) Locality is closely related to the concept of thrashing, which occurs when a system spends a significant amount of time and resources swapping pages between main memory and secondary storage. Thrashing happens when the working set of a program, which includes the pages actively used by the program, exceeds the available physical memory. In such cases, the system is unable to maintain a sufficient locality of reference, resulting in frequent page faults and a severe performance degradation.

c) i) In the working-set model, the working-set window represents a specific time interval during which the system observes the page references made by a program. It is a fixed-size window that tracks the pages referenced by the program within that interval. The working set is essentially the set of pages that are referenced by the program during the observed time period.

ii) To determine the working-set using a delta value of 10, we need to track the last 10 page references made by the program. Given the sequence of page references "... 112344438543234 953236," if page 6 was just referenced, the working set within the delta window would be {3, 2, 3, 4, 3, 4, 3, 8, 5, 4}.

iii) The delta value in the working-set model represents the size of the working-set window, which determines the time interval for observing page references. The delta value may not always capture "enough" pages if it is set too small. If the delta value is too small, it may not cover a sufficient number of page references, potentially missing important patterns of page access. Conversely, if the delta value is set too large, it may encompass a longer time interval and include irrelevant or outdated page references, leading to inefficient memory allocation. The delta value needs to be carefully chosen to strike a balance between capturing enough page references and maintaining a relevant working set for effective memory management.

To learn more about Spatial locality - brainly.com/question/32312159

#SPJ11

Locality of reference is a concept in computer science that refers to the tendency of a program to access a specific set of data or instructions repeatedly within a short period of time.Locality of reference plays a crucial role in the concept of thrashing, which occurs when a system spends excessive time and resources swapping pages in and out of memory due to high memory demand. The working-set model utilizes the concept of locality to allocate memory resources effectively based on the working-set window.

a) Locality of reference refers to the behavior of a program to access a specific set of data or instructions in close proximity in both time and space. Temporal locality refers to accessing the same data or instructions repeatedly, while spatial locality refers to accessing data or instructions that are physically close together in memory. The concept suggests that programs tend to exhibit these patterns, allowing for efficient memory management.

b) Locality is closely related to the concept of thrashing, which occurs when a system spends a significant amount of time and resources swapping pages between main memory and secondary storage. Thrashing happens when the working set of a program, which includes the pages actively used by the program, exceeds the available physical memory. In such cases, the system is unable to maintain a sufficient locality of reference, resulting in frequent page faults and a severe performance degradation.

c) i) In the working-set model, the working-set window represents a specific time interval during which the system observes the page references made by a program. It is a fixed-size window that tracks the pages referenced by the program within that interval. The working set is essentially the set of pages that are referenced by the program during the observed time period.

ii) To determine the working-set using a delta value of 10, we need to track the last 10 page references made by the program. Given the sequence of page references "... 112344438543234 953236," if page 6 was just referenced, the working set within the delta window would be {3, 2, 3, 4, 3, 4, 3, 8, 5, 4}.

iii) The delta value in the working-set model represents the size of the working-set window, which determines the time interval for observing page references. The delta value may not always capture "enough" pages if it is set too small. If the delta value is too small, it may not cover a sufficient number of page references, potentially missing important patterns of page access. Conversely, if the delta value is set too large, it may encompass a longer time interval and include irrelevant or outdated page references, leading to inefficient memory allocation. The delta value needs to be carefully chosen to strike a balance between capturing enough page references and maintaining a relevant working set for effective memory management.

To learn more about Spatial locality - brainly.com/question/32312159

#SPJ11

EXERCISES Create a 3D array named book with K pages, each page with M lines and each line containing N columns where user inputs values for K, M and N. The array is of type int and fill the array with random integers between 5 and 55. Display the initial contents of the array, page by page, for each page the columns on each row appear on a line (i.e. each row on its own line). Mark the beginning of the pages by showing page index. Sort the pages of the book in ascending order based on the sum of all the integers on that page. Any sorting algorithm is ok. Display pages after sorting. Free the memory taken up by the array. Having meaningful functions is a must. Such as, MakeBook, FillBookWith RandomValues, DisplayBook, GetPageSum, Sort, CleanBook... Globals and static variables are NOT allowed.

Answers

The code uses the NumPy library to create and manipulate the 3D array. It defines several functions to perform the required tasks: make_book to create the array, fill_book_with_random_values to fill it with random values, display_book to print the contents of the book, get_page_sum to calculate the sum of integers on a page, sort_book to sort the pages based on their sums, and clean_book to release the memory.

```python

import numpy as np

def make_book(K, M, N):

   book = np.zeros((K, M, N), dtype=int)

   return book

def fill_book_with_random_values(book):

   for i in range(book.shape[0]):

       book[i] = np.random.randint(5, 56, size=(book.shape[1], book.shape[2]))

def display_book(book):

   for i in range(book.shape[0]):

       print("Page", i+1)

       for row in book[i]:

           print(*row)

       print()

def get_page_sum(page):

   return np.sum(page)

def sort_book(book):

   page_sums = np.array([get_page_sum(page) for page in book])

   sorted_indices = np.argsort(page_sums)

   sorted_book = book[sorted_indices]

   return sorted_book

def clean_book(book):

   del book

# User inputs

K = int(input("Enter the number of pages: "))

M = int(input("Enter the number of lines per page: "))

N = int(input("Enter the number of columns per line: "))

# Create book

book = make_book(K, M, N)

# Fill book with random values

fill_book_with_random_values(book)

# Display initial contents of the book

print("Initial contents of the book:")

display_book(book)

# Sort the pages of the book based on the sum of integers on each page

sorted_book = sort_book(book)

# Display pages after sorting

print("Pages after sorting based on the sum of integers:")

display_book(sorted_book)

# Clean up the memory

clean_book(book)

``

The user is prompted to enter the dimensions of the book, and then the program generates random integers between 5 and 55 to fill the array. It displays the initial contents of the book, sorted the pages based on their sums, and displays the sorted pages. Finally, it cleans up the memory by deleting the book object.

To know more about NumPy library, click here: brainly.com/question/24744204

#SPJ11

1-) data Direction = North | East | South West deriving (Show) data Robot Rover Direction Integer | Survey Integer [(Integer, String)] deriving (Show) artoo, hal :: Robot artoo = Survey 7 [(5,"dune"), (18,"swamp"), (25, "plans")] hal = Survey 0 [(3,"pod"), (-6,"bay")] pool, group: [Robot] pool [Rover East 10, Rover South 4, Survey 8 [(1,"")], Rover North 5] group = [Rover North 5, Rover West 17] For each case below, determine what happens in an attempt to match the pattern with the indicated data. • If the data fails to match the pattern for any reason, then write No match and briefly explain why the pattern match fails. If the data matches the pattern, then give the resulting value for the indicated name/variable. 1. Pattern: (_:w:g) Data: pool Give the resulting value for w. 2. Pattern: (Rover k v, m) Data: group Give the resulting value for m. 3. Pattern: (Survey n (a: (b, c):_)) Data: artoo Give the resulting value for b. 4. Pattern: ye(t:d) Data: [Rover West 3, Rover South 63] Give the resulting value for d. 5. Pattern: ((Survey i z):q) Give the resulting value for q. 6. Pattern: (_:_:u) Give the resulting value for u. Data: hal Data: group

Answers

1. Pattern: (_:w:g), Data: pool, Resulting value for w: Rover East 10 || 2. Pattern: (Rover k v, m), Data: group,Resulting value for m: Rover West 17 || 4. Pattern: ye(t:d), Data: [Rover West 3, Rover South 63], Resulting value for d: Rover South 63 || 5. Pattern: ((Survey i z):q), Data: No information provided, Resulting value for q: No match || 6. Pattern: (_:_:u), Data: hal, Resulting value for u: No match

 

The pattern (_:w:g) matches the data pool because the underscore (_) acts as a wildcard, matching any value. The first element of pool is Rover East 10, which matches the pattern. Therefore, w takes the value Rover East 10.

The pattern (Rover k v, m) matches the data group because the first element of group is Rover North 5, which matches the Rover constructor. The second element of group is Rover West 17, which matches the m variable in the pattern. Therefore, m takes the value Rover West 17.  

The pattern (Survey n (a: (b, c):_)) matches the data artoo because artoo is a Survey with n = 7 and a list of tuples as the second argument. The first tuple in the list is (5, "dune"), and the second tuple is (18, "swamp"). The variable b in the pattern matches the second element of the first tuple, so **b takes the value 18**.

The pattern ye(t:d) does not match the data [Rover West 3, Rover South 63] because the pattern expects a list with at least two elements, but the data has only two elements. Since the pattern match fails, there is **no resulting value for d**.

The pattern ((Survey i z):q) requires the data to start with a Survey followed by a list. However, no data is given, so the pattern match cannot be determined. Therefore, there is no resulting value for q.

To know more about pattern : https://brainly.com/question/28580633

#SPJ11

Inserting parentheses (5pts) Given a character and a line of text, you will add parentheses or brackets "()" around all occurrences of the given character in the string. Let's look at a sample run: Enter char: a Enter text: a very good day! OUTPUT: (a) very good d(a)y! Enter char: a Enter text: Alice in the wonderland OUTPUT: Alice in the wonderl(a)nd Specifications: 1. Make a function called insertParen that takes two arguments. A string by reference and a single character by value. 2. Ask the user for the character and the Text within the main function of your program 3. Call insertParen to insert all the required parentheses around the given character by modifying the original text. 4. Finally display the updated text What the grader expects (optional): 1. The first input must be the single character 2. The second input must be the text 3. The tester will look for an "OUTPUT:" section in a single line of your output. 4. It will then expect the modified text following it on the same single line. E.G OUPUT: Alice in the wonderl(a)nd I

Answers

Here's a Python implementation of the insertParen function that follows the given specifications:

def insertParen(text, char):

   modified_text = ""

   for c in text:

       if c.lower() == char.lower():

           modified_text += "(" + c + ")"

       else:

           modified_text += c

   return modified_text

def main():

   char = input("Enter char: ")

   text = input("Enter text: ")

   modified_text = insertParen(text, char)

   print("OUTPUT:", modified_text)

# Run the main function

main()

This code defines the insertParen function that takes the text and the character as arguments and returns the modified text with parentheses added around all occurrences of the character. The main function prompts the user for the character and the text, calls insertParen to modify the text, and then displays the updated text preceded by "OUTPUT:".

You can run this code and test it with different inputs to see the desired output.

Learn more about function here

https://brainly.com/question/28939774

#SPJ11

When we create an object from a class, we call this: a. object creation b. instantiation c. class setup d. initializer The data that an object contains and manipulates is more generally know as the _____ of the object.
a. user data b. supplied data c. attributes d. origin data

Answers

When we create an object from a class, we call this "instantiation". The data that an object contains and manipulates is more generally known as the "attributes" of the object.

In object-oriented programming, an object is an instance of a class. When we create an object, we are essentially creating a specific instance of a class with its own unique set of data and behavior. This process is called instantiation. It involves allocating memory for the object and initializing its attributes based on the defined structure and properties of the class.

Attributes are the variables or data members associated with an object. They define the state or characteristics of the object and can hold different types of data such as integers, strings, or even other objects. These attributes represent the data that the object manipulates and stores. They can be accessed and modified through methods or directly in some programming languages. The attributes of an object provide the necessary context and information for the object to perform its operations and fulfill its purpose. They encapsulate the object's data and define its state at any given point in time. By manipulating these attributes, we can interact with and modify the object's behavior and perform various operations on it.

In conclusion, instantiation is the process of creating an object from a class, and attributes are the data elements that define and represent the state of the object, allowing it to manipulate and store data.

To learn more about object-oriented programming click here:

brainly.com/question/28732193

#SPJ11

: Exercise 4 (.../20) Use the function design recipe to develop a function named bank_statement. The function has two input parameters: (1) a floating-point value representing the account balance and (2) a list of floating-point numbers, which will always have at least one number. Positive numbers represent deposits into a bank account, and negative numbers represent withdrawals from the account. The function returns a floating-point value representing the new account balance. After the decimal point, the account balance must be rounded to two digits of precision (read Chapter 3, pages 33- 34). Your function must have exactly one loop. Note: when the value returned by the function is displayed, a number such as 15.0 or -17.3 will be displayed with one digit after the decimal point instead of two. This is ok.

Answers

The function design recipe consists of six steps:

Step 1: Examples

Let's start by providing some examples to help us understand the requirements of the bank_statement function.

bank_statement(100.0, [10.0, -20.0, 30.0]) => 120.00

bank_statement(0.0, [50.0, -10.0]) => 40.00

bank_statement(-50.0, [20.0, -30.0, 10.0]) => -50.00

Step 2: Type signature

Based on the examples, we can define the type signature of the bank_statement function as follows:

bank_statement(balance: float, transactions: List[float]) -> float

Step 3: Header

The header of the function includes the name and parameters of the function. We already have this information from the type signature, so we can write:

def bank_statement(balance: float, transactions: List[float]) -> float:

Step 4: Description

We need to describe what the function does, what its inputs are, and what it returns. Here's a description for our bank_statement function:

The bank_statement function takes a floating-point value representing the account balance and a list of floating-point numbers representing deposits and withdrawals. Positive numbers in the list represent deposits into the account, and negative numbers represent withdrawals from the account. The function computes the new account balance by adding up all the transactions in the list and returning the result rounded to two digits of precision.

Step 5: Body

We will use a loop to iterate through each transaction in the list and update the account balance accordingly. At the end, we will round the balance to two digits of precision and return it. Here's the final version of the function:

def bank_statement(balance: float, transactions: List[float]) -> float:

for transaction in transactions:

balance += transaction

return round(balance, 2)

Step 6: Test

We need to test the function with the examples we provided in step 1 to make sure it works as expected. Here's the complete code with the test cases:

from typing import List

def bank_statement(balance: float, transactions: List[float]) -> float:

for transaction in transactions:

balance += transaction

return round(balance, 2)

Tests

assert bank_statement(100.0, [10.0, -20.0, 30.0]) == 120.00

assert bank_statement(0.0, [50.0, -10.0]) == 40.00

assert bank_statement(-50.0, [20.0, -30.0, 10.0]) == -50.00

This completes the development of the bank_statement function.

Learn more about function here:

https://brainly.com/question/28939774

#SPJ11

Task: We're creating an application to generate the Hoosier Lottery numbers, using a for loop and a while loop. You will have to think about how to generate random numbers between 1 and some upper limit, like 49... Create an algorithm and use this in your solution. As before, you can use console.log to log the number to the console. Part 1: Create a for loop that executes exactly 6 times. • In the body of the loop, generate a random number between 1 and 49, inclusive. • Save the random number to a string, using the same techniques we used for this week's example (times tables) When the loop exits, display the string in a heading on the web page. Part 2: • Create a while loop that executes exactly 6 times. • In the body of the loop, • generate a random number between 1 and 49, inclusive. Save the random number to a string, using the same techniques we used for this week's example (times tables) • When the loop exits, display the string in a heading on the web page.

Answers

The task is to create an application that generates Hoosier Lottery numbers using a for loop and a while loop. In the first part, a for loop is used to execute exactly 6 times. Within the loop, a random number between 1 and 49 is generated and saved to a string. The string is then displayed as a heading on the web page. In the second part, a while loop is used with the same execution count of 6. Inside the loop, a random number is generated and saved to a string. Finally, the resulting string is displayed as a heading on the web page.

To accomplish this task, you can use JavaScript to implement the for loop and while loop. In the for loop, you can initialize a loop counter variable to 1 and iterate until the counter reaches 6. Within each iteration, you can generate a random number using the Math.random() function, multiply it by 49, round it down using Math.floor(), and add 1 to ensure the number falls within the desired range of 1 to 49. This random number can be appended to a string variable using string concatenation.

Similarly, in the while loop, you can set a loop counter variable to 1 and use a while loop condition to execute the loop exactly 6 times. Inside the loop, you can generate a random number in the same way as described earlier and append it to the string variable.

After the loops finish executing, you can display the resulting string containing the lottery numbers as a heading on the web page using HTML and JavaScript.

Learn more about JavaScript here: brainly.com/question/29897053

#SPJ11

question 1
Please summarize into 2 pages only ?
-----------
LAN Security Attacks Common LAN Attacks
. Common security solutions using routers, firewalls, Intrusion
Prevention System (IPSS), and VPN de

Answers

In a LAN (Local Area Network) setup, there are a variety of common security vulnerabilities that can be exploited by attackers. Some of the common attacks that can be made on LANs are listed below:

1. ARP (Address Resolution Protocol) Spoofing - ARP Spoofing is when a hacker modifies the ARP cache of the system in order to redirect traffic to the attacker's device.

2. MAC Spoofing - The attacker spoofs the MAC address of the network interface controller (NIC) in order to obtain unauthorized access to the network.

3. Rogue DHCP Servers - An attacker creates a rogue DHCP server on the network to distribute IP addresses to clients, potentially allowing the attacker to monitor network traffic.

4. DNS Spoofing - The attacker creates a fake DNS server in order to redirect traffic to a malicious website.

5. Port Scanning - The attacker scans the network for open ports in order to identify potential vulnerabilities.

Security solutions that can be implemented in LANs include:

1. Routers - Routers can be configured to block incoming traffic and prevent access to untrusted devices.

2. Firewalls - Firewalls are used to prevent unauthorized access to the network by blocking traffic based on predefined rules.

3. Intrusion Prevention System (IPS) - IPS systems can be used to monitor network traffic and identify and prevent attacks.

4. VPN - A VPN (Virtual Private Network) can be used to secure network traffic by encrypting it as it is transmitted over the internet.

Know more about Local Area Network, here:

https://brainly.com/question/13267115

#SPJ11

Given the function below, write a code that: y(x) = 5x^2 + 3x + 2 Plots the function for x between 0 and 20: •
The plot must have: - x-axis label = x
- y-axis label='Y' Calculates the second-order derivative of y(x) between 0 and 20. Creates another plot with the initial function and its second derivative. The plot must have:
- X-axis label = 'X' - y-axis label = 'y -a legend Calculates and prints the first derivate of y(x) at x=10

Answers

This code uses numpy to create an array of x values ranging from 0 to 20. It then calculates the corresponding y values using the defined function.

To accomplish the task, we can use the matplotlib library in Python. Here's the code that plots the function, calculates the second-order derivative, and displays the plots:import numpy as np; import matplotlib.pyplot as plt; # Define the function; def y(x):return 5 * x**2 + 3 * x + 2. # Define the range of x values; x_values = np.linspace(0, 20, 100) # Calculate y values. y_values = y(x_values). # Calculate the second-order derivative; derivative2 = np.gradient(np.gradient(y_values, x_values), x_values). # Plot the function; plt.figure(1); plt.plot(x_values, y_values, label='y(x) = 5x^2 + 3x + 2'); plt.xlabel('x'); plt.ylabel('Y') # Plot the second derivative; plt.figure(2); plt.plot(x_values, y_values, label='y(x) = 5x^2 + 3x + 2'). plt.plot(x_values, derivative2, label='Second Derivative'). lt.xlabel('X') plt.ylabel('y'); plt.legend() # Calculate and print the first derivative at x=10. derivative1_at_10 = np.gradient(y_values, x_values)[np.abs(x_values - 10).argmin()]; print("The first derivative of y(x) at x=10 is:", derivative1_at_10) # Show the plots. plt.show().

The second-order derivative is computed using the np.gradient() function twice. Two separate plots are created using plt.figure() and plt.plot(). The x and y-axis labels are set using plt.xlabel() and plt.ylabel(). A legend is added to the second plot using plt.legend(). Finally, the first derivative at x=10 is calculated and printed. Running this code will display the plots and print the first derivative value.

To learn more about numpy click here: brainly.com/question/30763617

#SPJ11

True of False and Explain
Derived data will always create dependency and the relation will
not be in the third normal form.

Answers

Derived data will always create dependency and the relation will not be in the third normal form is False. Derived data refers to data that is created from existing data using computations, transformations, or other manipulations.

Derived data is not stored in the database as-is but is instead derived or generated on the fly when needed. Derived data can be used to speed up queries and improve performance by precomputing values that would otherwise need to be calculated on the fly.

For example, you might calculate the total sales for a particular product category by summing up all the sales records for that category, rather than querying the database each time to calculate the total. The fact that derived data is created from existing data does not necessarily mean that it will create dependencies and violate third normal form.

If the derived data is fully dependent on the original data, then it is true that it will create dependencies and violate third normal form. However, if the derived data is only partially dependent on the original data, then it can be normalized just like any other data.

Therefore, the statement is False.

To learn more about third normal form: https://brainly.com/question/14927257

#SPJ11

Activity 11-1: Installing BIND Enter Time Required: 15 minutes ACTIVITY Objective: Install BIND and other DNS-related packages. Description: In this activity, you use YaST Software Management to install DNS packages in the DHCP and DNS Server pattern. After installing BIND, you use Firefox to display the BIND 9 Administrator Reference Manual. 1. Start VMware Player and start an openSUSE virtual machine. 2. Open a terminal window. Switch to the root user by typing su and pressing Enter, and then entering the correct root password. 3. Open the YaST Control Center by typing yast-gtk and pressing Enter. Configuring BIND 233 4. Open YaST Software Management by clicking Software on the left under Groups, and then clicking Software Management. 5. To show all available packages categorized by pattern, click the Filter list arrow, and then click Patterns. Make sure the Available option button is selected. 6. Click DHCP and DNS Server under Server Functions, and click Install All to install BIND with other packages, such as the DNS Server Configuration utility and the BIND documentation files. Finally, click Apply. 7. After the installation is finished, close the YaST Control Center. 8. Query the RPM database for BIND by typing rpm -q bind and pressing Enter. 9. Open the BIND 9 Administrator Reference Manual in Firefox by changing to the /usr/share/doc/packages/bind/arm directory, typing firefox Bv9ARM.html, and pressing Enter. Read the Introduction and Scope of Document sections to get an overview of the content in this manual. 10. Close your Web browser. Stay logged in as root, and leave the terminal window open and the virtual machine running for the next activity.

Answers

In this activity, the objective is to install BIND and other DNS-related packages on an openSUSE virtual machine.

The process involves using the YaST Software Management tool to install the packages and configuring BIND as a DHCP and DNS server. The steps include starting the virtual machine, switching to the root user, opening the YaST Control Center and Software Management, selecting the DHCP and DNS Server pattern, and installing the packages. After installation, the RPM database is queried to verify the BIND installation. Finally, the BIND 9 Administrator Reference Manual is opened in Firefox to explore the documentation. The virtual machine is left running for the next activity.

To complete this activity, you need to have a VMware Player with an openSUSE virtual machine already set up. Once the virtual machine is started, open a terminal window and switch to the root user. Launch the YaST Control Center by typing 'yast-gtk' in the terminal. From the Control Center, open the YaST Software Management tool and select the Patterns filter to view available packages. Choose the DHCP and DNS Server pattern and click Install All to install BIND and related packages. After the installation, close the YaST Control Center and query the RPM database to confirm the BIND installation. To access the BIND 9 Administrator Reference Manual, open the Firefox browser and navigate to the /usr/share/doc/packages/bind/arm directory. Open the 'Bv9ARM.html' file to read the Introduction and Scope of Document sections. Close the browser when finished and keep the virtual machine running for the next activity.

To know more about DNS Server click here: brainly.com/question/32268007

#SPJ11

Take the hard coded binary search tree from lab 6a and make two new functions that visit each node and displays the contents of a binary search tree in order. 1. A recursive function that outputs contents in order. 2. An iterative function that outputs contents in order. Hard code and no Ul on this lab. Here is the pseudo code found on Wikipedia : In-order [edit] inorder(node) if (node == null) return inorder(node.left) visit(node) inorder(node.right) iterative Inorder(node) s + empty stack while (not s.isEmpty() or node = null) if (node = null) s.push(node) node + node.left else node + s.pop() visit(node) node - node.right

Answers

To display the contents of a binary search tree in order, you can implement two functions: a recursive function and an iterative function. The recursive function will traverse the tree in a recursive manner and output the contents in order. The iterative function will use a stack to simulate the recursive traversal and output the contents in order.

1. Recursive Function:

The recursive function follows the in-order traversal approach. It visits the left subtree, then the current node, and finally the right subtree. The function is called recursively on each subtree until reaching the leaf nodes. At each node, the function will output the contents. This process ensures that the contents are displayed in order.

2. Iterative Function:

The iterative function also follows the in-order traversal approach but uses a stack to mimic the recursive calls. It starts with an empty stack and a current node set to the root of the binary search tree. While the stack is not empty or the current node is not null, it either pushes the current node onto the stack (if not null) or pops a node from the stack and visits it. After visiting a node, the function moves to the right subtree of that node.

By implementing both of these functions, you can display the contents of a binary search tree in order. The recursive function provides a straightforward and intuitive approach, while the iterative function offers an alternative using a stack for iterative traversal.

Learn more about Recursive Function here: brainly.com/question/29287254

#SPJ11

You are to write a program in MIPS assembly language that computes the value of Amdahl's Law. The program must do the following: 1. Input the number of processors, must be a positive integer, if O terminate the program. 2. Input the percent of the program that must be run serially (must be an integer or decimal number between 1 and 99) 3. Compute the maximum performance gain using Amdahl's Law. 4. Display output the result. 5. Loop back up to statement 1 above. Make certain that you have lots of comments in your MIPS assembly language code. For this assignment, turn in your MIPS assembly language code and a screenshot showing a test run.

Answers

The provided MIPS assembly language program computes the value of Amdahl's Law by inputting the number of processors and the percentage of the program to be run serially.

```assembly

   .data

prompt1:    .asciiz "Enter the number of processors (or 0 to terminate): "

prompt2:    .asciiz "Enter the percentage of the program that must be run serially (1-99): "

result:     .asciiz "The maximum performance gain is: "

```

The program starts by defining the necessary data strings in the `.data` section. `prompt1` is the message prompting the user to enter the number of processors, `prompt2` prompts the user to enter the percentage of the program to be run serially, and `result` stores the output message.

```assembly

   .text

main:

   li $v0, 4                   # Print the first prompt

   la $a0, prompt1

   syscall

   

   li $v0, 5                   # Read the number of processors

   syscall

   move $t0, $v0               # Store the number of processors in $t0

   

   beqz $t0, exit              # If the number of processors is 0, exit the program

```

The program enters the `.text` section and begins the `main` section. It prints `prompt1` to ask the user to enter the number of processors. The input is read and stored in `$v0`, and then it is moved to `$t0`.

If the number of processors (`$t0`) is zero, the program branches to `exit` and terminates.

```assembly

input_serial:

   li $v0, 4                   # Print the second prompt

   la $a0, prompt2

   syscall

   

   li $v0, 5                   # Read the percentage of the program that must be run serially

   syscall

   move $t1, $v0               # Store the percentage in $t1

   

   bgt $t1, 99, input_serial   # If the percentage is greater than 99, go back to input_serial

   bltz $t1, input_serial      # If the percentage is less than 0, go back to input_serial

```

The program continues to the `input_serial` section. It prints `prompt2` to ask the user to enter the percentage of the program to be run serially. The input is read and stored in `$v0`, and then it is moved to `$t1`.

If the percentage (`$t1`) is greater than 99, the program branches back to `input_serial`. Similarly, if the percentage is less than 0, it also branches back to `input_serial`.

```assembly

   sub $t2, 100, $t1           # Calculate the parallelizable percentage

   

   div $t2, 100                # Convert the parallelizable percentage to a decimal

   mtc1 $t2, $f0               # Move the decimal value to the floating-point register $f0

   cvt.s.w $f0, $f0            # Convert the decimal to single precision

```

Next, the program subtracts `$t1` from 100 to calculate the parallelizable percentage and stores the result in `$t2`. Then, it divides `$t2` by 100 to convert it to a decimal. The decimal value is moved to the floating-point register `$f0` and converted to single

precision.

```assembly

   li $v0, 4                   # Print the result message

   la $a0, result

   syscall

   

   li $v0, 2                   # Print the result

   syscall

   

   j main                      # Loop back to the start of the program

```

The program prints the result message stored in `result`. Then, it uses `$v0 = 2` to print the result stored in `$f0`, which represents the maximum performance gain.

Finally, the program jumps back to `main` to restart the program and repeat the process.

```assembly

exit:

   li $v0, 10                  # Exit the program

   syscall

```

If the number of processors is 0 (as checked at the beginning of the program), the program branches to `exit`, where it uses `$v0 = 10` to exit the program.

To learn more about program  Click Here: brainly.com/question/30613605

#SPJ11

This is database system course.
Design the database in an MS Excel spreadsheet as a single relation called Movie. It should contain an ID, Title, Year Released, Genre (e.g., sci-fi, comedy, thriller, etc.), Rating (e.g., G, PG, R, etc.), Format (e.g., VHS, DVD, MP3, etc.), a free-form Comments field, plus the main cast and crew members. Add the following entry plus at least two of your own: Title: Star Trek
Year: 2009 Genre: Sci-Fi
Rating: PG
Format: DVD
Director: J. J. Abrams
Starring: Chris Pine (Capt. Kirk), Zachary Quinto (Mr. Spock) Zoe Saldana (Uhura), Karl Urban (Bones McCoy)
What normal form is this design? Why? What should be done to correct the design? Draw your corrected design as a logical ERD showing attributes and multiplicities (suggest you use IE Notation in Oracle Data Modeler). No need to include physical data types. Modify the sample data from step 1 in a new page of the spreadsheet to match this design.

Answers

The given design in the MS Excel spreadsheet represents a relation called "Movie" with multiple attributes including ID, Title, Year Released, Genre, Rating, Format, Comments, Director, and Starring.

What should be done to correct the design of the Movie database in the MS Excel spreadsheet?

The given design in the MS Excel spreadsheet represents a relation called "Movie" with multiple attributes including ID, Title, Year Released, Genre, Rating, Format, Comments, Director, and Starring.

Based on the information provided, the design is not in a specific normal form. However, it seems to have some issues related to data redundancy and lack of proper normalization. To improve the design, we can apply the principles of normalization, specifically the Third Normal Form (3NF).

To correct the design, we can break down the attributes into separate entities and establish relationships between them. For example, we can create separate tables for Movie, Director, Cast, and Crew, with appropriate relationships defined between them. This will help in reducing data redundancy and improve data integrity.

By normalizing the design, we can ensure that each attribute is functionally dependent on the primary key and there are no transitive dependencies. This will result in a more efficient and maintainable database structure.

To provide a corrected design as a logical ERD, it is necessary to have access to a visual modeling tool. Unfortunately, as a text-based AI, I cannot draw or provide a visual representation.

It is recommended to use a database modeling tool like Oracle Data Modeler or similar software to create an ERD based on the corrected design principles mentioned above.

Learn more about  MS Excel

brainly.com/question/20893557

#SPJ11

Protecting a computer device involves several layers of securities, including hardware system security, operating system security, peripheral device security, as well physical security. Moreover, it is also important that the applications that run on the computer device are secure. An unsecure application can open the door for attackers to exploit the application, the data that it uses, and even the underlying operating system (OS). Explain what can be done to secure an application software that is developed in house?

Answers

To secure an in-house developed application, there are a few key steps that can be taken. These include the following:

Code review: Conducting a code review can be an effective way to identify vulnerabilities and weaknesses in an application's code. Code reviews should be conducted by multiple members of the development team, as well as security professionals who have expertise in application security. It's also important to perform code reviews regularly, both during the development process and after the application has been deployed. This can help ensure that any vulnerabilities are caught and addressed in a timely manner.

Testing: Regular testing of an application is critical to ensuring its security. This can include unit testing, integration testing, and functional testing. It's also important to perform penetration testing, which involves attempting to hack into an application to identify vulnerabilities. Penetration testing can help identify vulnerabilities that may not have been caught through other testing methods.

Security controls: Implementing security controls can help protect an application from attacks. These can include firewalls, intrusion detection/prevention systems, and access controls. It's also important to ensure that the application is developed using secure coding practices, such as input validation and error checking. Additionally, encryption should be used to protect any sensitive data that the application may handle.

Patching: Finally, it's important to keep the application up-to-date with the latest security patches and updates. These should be applied as soon as they become available to ensure that any known vulnerabilities are addressed. Regularly reviewing the code, testing, implementing security controls, and patching the software is essential in securing an application software that is developed in-house.

Know more about system security, here:

https://brainly.com/question/30165725

#SPJ11

Title: Familiarizing with string
operations & functions
Question: Write a user defined function that accept a string & and print the reversed string , write algorithm & draw a flowchart for the same. Flowchart
developed source code
result

Answers

The program asks the user to enter a string. In this example, the user enters "Hello World!". The program then prints the reversed string, which is "!dlroW olleH".

Sure! Here's an example of a user-defined function in C# that accepts a string and prints the reversed string:

csharp

Copy code

using System;

namespace StringReversal

{

   class Program

   {

       static void Main(string[] args)

       {

           Console.WriteLine("Enter a string:");

           string inputString = Console.ReadLine();

           string reversedString = ReverseString(inputString);

           Console.WriteLine("Reversed string: " + reversedString);

       }

       static string ReverseString(string input)

       {

           char[] charArray = input.ToCharArray();

           Array.Reverse(charArray);

           return new string(charArray);

       }

   }

}

In this program, the Main method prompts the user to enter a string. The ReverseString function is called to reverse the input string. It does this by converting the string to a character array using the ToCharArray method, then reversing the array using Array.Reverse, and finally creating a new string from the reversed character array using the new string constructor. The reversed string is then printed in the Main method.

Algorithm:

Start the program.

Prompt the user to enter a string.

Read the input string.

Call the ReverseString function, passing the input string as an argument.

Inside the ReverseString function:

a. Convert the input string to a character array using ToCharArray.

b. Reverse the character array using Array.Reverse.

c. Create a new string from the reversed character array using the new string constructor.

d. Return the reversed string.

Back in the Main method, print the reversed string.

End the program.

Flowchart:

sql

Copy code

+----------------------+

| Start                |

+----------------------+

|                      |

| Enter a string       |

|                      |

+----------+-----------+

          |

          V

+----------+-----------+

| Read input string     |

+----------------------+

|                      |

| Call ReverseString    |

| function             |

| with input string     |

+----------------------+

          |

          V

+----------+-----------+

| ReverseString function|

+----------------------+

|                      |

| Convert string to     |

| character array       |

|                      |

| Reverse character    |

| array                 |

|                      |

| Create new string    |

| from reversed         |

| character array       |

|                      |

| Return reversed       |

| string               |

+----------+-----------+

          |

          V

+----------+-----------+

| Print reversed string |

+----------------------+

|                      |

| End                  |

+----------------------+

Result:

yaml

Copy code

Enter a string:

Hello World!

Reversed string: !dlroW olleH

Know more about reversed string here:

https://brainly.com/question/30396370

#SPJ11

7 d out of question Write a C++ code to input the value of variable Age and if Age is larger than or equal 70 then print "You are old otherwise print "You still young"

Answers

Here's a C++ code that takes input of the variable 'Age' and checks if it's greater than or equal to 70. Depending on the value, it prints either "You are old" or "You are still young":

#include <iostream>

using namespace std;

int main() {

   int Age;

   cout << "Enter your age: ";

   cin >> Age;

   if (Age >= 70) {

       cout << "You are old";

   } else {

       cout << "You are still young";

   }

   return 0;

}

In this code, we first take input of the variable 'Age' from the user using the 'cin' function. We then check if the value of 'Age' is greater than or equal to 70 using an 'if' statement. If it is, we print "You are old", else we print "You are still young".

Learn more about code here:

https://brainly.com/question/18133242

#SPJ11

Use propositional logic to prove that the argument is valid. Do not use truth tables.
3x[P(x)→ Q(x) A vylQly) Rly)) A VxP(x) 3xRx)
Please use the following substitute operators during your quiz:
A: &
V:: I
-: I
→ : -> ∀: A ∋: E
Edit Format Table
A T S

Answers

The argument is valid. To prove that the argument is valid using propositional logic, we need to show that the conclusion follows logically from the given premises. Let's break down the argument step by step:

Premises:

∀x[P(x) → (Q(x) ∧ R(x))]

∃x[¬Q(x) ∧ ¬R(x)]

∃x[P(x) ∧ R(x)]

Conclusion:

∃x[P(x) ∧ ¬Q(x)]

To prove the validity of the argument, we can use proof by contradiction. Assume the negation of the conclusion and try to derive a contradiction using the premises:

Assumption: ¬∃x[P(x) ∧ ¬Q(x)]

From this assumption, we can apply the negation of the existential quantifier (∃) to get:

¬∃x[P(x) ∧ ¬Q(x)]

∀x[¬(P(x) ∧ ¬Q(x))]

Using De Morgan's law, we can distribute the negation over the conjunction:

∀x[¬P(x) ∨ Q(x)]

Now, we can apply the implication rule (→) to the first premise:

∀x[(¬P(x) ∨ Q(x)) → (Q(x) ∧ R(x))]

Using the contrapositive form of the implication, we get:

∀x[(¬Q(x) ∧ ¬R(x)) → ¬(¬P(x) ∨ Q(x))]

By applying De Morgan's law and double negation elimination, we simplify the above statement:

∀x[(¬Q(x) ∧ ¬R(x)) → (P(x) ∧ ¬Q(x))]

Now, we have two premises that match the antecedent and consequent of the implication in the second premise. By using the universal instantiation (∀) and existential instantiation (∃), we can apply modus ponens:

(¬Q(a) ∧ ¬R(a)) → (P(a) ∧ ¬Q(a)) (Using the premise 2)

(¬Q(a) ∧ ¬R(a)) (Using the premise 3)

P(a) ∧ ¬Q(a) (Using modus ponens)

This contradicts our assumption of ¬∃x[P(x) ∧ ¬Q(x)], which means the assumption is false. Therefore, the original conclusion ∃x[P(x) ∧ ¬Q(x)] must be true.

Hence, the argument is valid.

Learn more about logic here:

https://brainly.com/question/13062096

#SPJ11

1. Explain the 4 phases of the TLS handshake protocol in detail. Give an example of recently known attack on TLS. (30 Points)

Answers

The TLS handshake protocol consists of four phases: Client Hello, Server Hello, Key Exchange and Authentication, and Establishing Secure Connection.
An example of a recent attack on TLS is the "DROWN" attack, which exploits vulnerabilities in SSLv2 to decrypt TLS traffic.J

The Transport Layer Security (TLS) handshake protocol is responsible for establishing a secure connection between a client and a server. It consists of four phases:

1. **Client Hello**: The client initiates the handshake by sending a Client Hello message to the server. This message includes the TLS version supported by the client, a random number (Client Random), a list of supported cipher suites, and other optional extensions. The server receives this message and moves to the next phase.

2. **Server Hello**: The server responds with a Server Hello message, selecting the highest TLS version that is supported by both the client and the server. The server generates a random number (Server Random), selects a cipher suite from the client's list of supported suites, and sends this information to the client. The server may also include its digital certificate for authentication purposes.

3. **Key Exchange and Authentication**: This phase involves the server authenticating itself to the client and exchanging cryptographic keys. The server's digital certificate is used to verify its identity. The client verifies the certificate's validity and checks if it trusts the certificate authority (CA) that issued the certificate. If successful, the client generates a pre-master secret and encrypts it using the server's public key. This pre-master secret is then used to derive the session key.

4. **Establishing Secure Connection**: In this final phase, both the client and server use the pre-master secret and the random values exchanged earlier to independently compute the session key. They then exchange messages to confirm that they have correctly derived the same session key. Once the session key is confirmed, they switch to encrypted communication using symmetric encryption algorithms. The handshake is complete, and secure communication can begin.

**Example of an attack on TLS:**

One recent known attack on TLS is the "DROWN" (Decrypting RSA with Obsolete and Weakened eNcryption) attack. DROWN exploits a vulnerability in the SSLv2 protocol, which is obsolete and considered insecure. The attack targets servers that support SSLv2 and have the same RSA key pair for both SSLv2 and modern TLS versions.

The attack proceeds as follows:

1. The attacker captures the SSLv2 handshake between the client and the server.

2. The attacker initiates a large number of SSLv2 connections and obtains encrypted data.

3. The attacker then performs a series of decryption operations, leveraging a vulnerability in SSLv2 to recover the RSA private key used by the server.

4. With the private key in hand, the attacker can decrypt any intercepted TLS traffic that used the same RSA key pair.

This attack highlights the importance of disabling insecure protocols like SSLv2 and regularly updating TLS configurations to mitigate potential vulnerabilities.

To learn more about TLS handshake protocol click here: brainly.com/question/31811264

#SPJ11

Other Questions
Match the term to the definition. States of deprivation. Physical-food, clothing, warmth, safety. Social- belonging and affection. Individual-knowledge and self-expression Wants backed by buying power. Form that needs take as they are shaped by culture and individual personality 1. Needs 2. Wants 3. Demands Total productive maintenance relles on what basic concept? Multiple Choice Employees keeping their equipment in good operating onder Sratisticaly determining the number of breakdowes in a given time period Tonal cost of breakdown and preventive mainsenente Increasing the frequency of scheduled maintenance A polymer flows steadily in the horizontal pipe under the following conditions: p = 1000 kg/m3; = 0.01 kg/m s, D = 0.03 m, and um = 0.3 m/s. Evaluate the following a. The Reynolds number b. The frictional dissipation per meter per kg flowing c. The pressure drop per meter Discuss (3 pages max) the metamorphism that resulted in theformation of the Central Zone of the Limpopo Belt including therock types found in the entire belt there is an experiment done using the Basic hydrology system to do the investigation of rainfall and runoff and also flow from the well.From the experiment we find Piezometer Position, Radius from well (mm), and Head (mm). Scenario: You are in your first year as HNC engineer and have been seconded into the Engineering Production Department. You are required to produce a report for your line manager on operational characteristics of a PLC system. Your report should include and describe the operational characteristics of a PLC system, Programming, and communication techniques. Task 1: 1.1 PLC can be classified according to the physical size, and application. List and describe types of PLC and the key differences of construction styles and their typical applications and advantages. 1.2 PLC architecture refers to the design specification of the various PLC hardware and software components. Briefly, describe the Function of each block of a typical PLC. Include labelled diagram. 1.3 There are several types of PLC Programming languages all are part of IEC (International Electrotechnical Commission. Briefly explain, with labelled diagram wherever possible different types of the programming methods (programming languages). 1.4 PLC work in variety of industrial applications, different PLC may be working in different signal of I/O modules. PLC system there will usually be dedicated modules for inputs and dedicated modules for outputs. Research to identify the following: Determine types of PLC input and output devices/sensors available, PLC analogy Inputs and signals, and two types of sensors: Analog and Discrete. 1.5 Research to identify different types of communication Techniques and communication protocol for PLC. You need to include and use labelled diagrams/figures to illustrate the descriptions. Determine if the following sequence is causal, linear, time invariant and stable y(n)=Lm(x(n)) Speedy Delivery Company purchases a delivery van for $44,000. Speedy estimates that at the end of its four-year service life, the van will be worth $7,200. During the four-year period, the company expects to drive the van 184,000 miles. Actual miles driven each year were 48,000 miles in year 1 and 56,000 miles in year 2. If you selected American Airlines Group (AAL), look at 10-K (annual reports) and 10-Q (quarterly reports) and open the April 22,2021 10Q:Quarterly report for quarter ending March 31,2021 and in that file look for the Condensed Consolidated Balance Sheet at March 31, 2020 Inline XBRL Viewer (sec.gov). Find a proposed standard from the current or prior year that is related to this course (asset-type transactions only) in the FASB Codification system. Prepare a 2-3 page summary of the FASB proposal highlighting what changed, why, and the potential impact on the financial statements and disclosures of the company you have selected. Choose the correct answer 1- The principle parties of construction project are: a) Client, designer, contractor. b) owner, client, contractor. c) owner, designer, client d) b or c. 2- construction can be defined as: a) The act of constructing. b) The result of constructing. c) The process, art, or manner of constructing something. d) All the above. 3- Construction process can be defined as: a) The process, art, or manner of constructing something. b) The process or step in which the plans, specifications, materials, permanent equipment are transformed by a contractor into a finished facility. c) The event in which the plans, specifications, materials, permanent equipment are transformed by a contractor into a finished facility. d) All the above. 4- Electric power construction projects, highways, utilities and petrochemicals plants are examples of...... a) Building construction projects. b) Heavy engineering construction projects. c) Manufacturing projects. d) Nothing from the above. 5- Equipment cost comes.......... .labor in terms of its effect on the outcome of a particular project. a) After. b) Before. c) With. d) Nothing from the above Let event G = taking a math class. Let event H = taking a science class. Then, G H = taking a math class and a science class while G H = taking either a math class or a science class. Suppose P(G) = 0.35, P(H) = 0.32, and P(G H) = 0.56. What is P(G|H)? Compare and construct the following theories a) Information Processing Theory and Theory of Human Motivation b) Which theory do you like and why? (30) (10) c) Explain how you can use each theory to promote teaching and learning inside your classroom. (10) Given the demand and supply functions for product Z : 800-20Pz and 100+10zA. Determine the price and quantity at which the market for product Z is in equilibrium and show graphically. 2marksB. Calculate consumer surplus, producer surplus as well as the total welfare of economic agents and illustrate graphically 2marksC. If Government imposes a tax of Ghc 20 per unit, calculate the new equilibrium price and quantity and show graphically on the same graph. 2marksD. Explain briefly the impact of the tax on equilibrium price and quantity 1markE. What portion of tax is borne by consumers and the producer?1markF. What is the total tax revenue to government? 1markG. Calculate the deadweight loss from the tax imposition 2marksH. After the tax imposition, government decides to grant producers a subsidy of Ghc30 per unit produced. Calculate the new equilibrium price and quantity. 2marksI. Explain briefly the impact of the subsidy on equilibrium price and quantity 1mark Take the polymorphic type for example:(c, h) -> (c -> h) -> (h, h)Make a list of all conceivable total functions of this type as lambda expressions, omitting any that behave similarly to the ones you've already put down. Does diffussion of crime reduce crime within an area For the stock of Cale's Colorless Coffee, LLP., the next 3 annual dividends have been forecasted (consensus) as : $2.92, $3.43, and $3.26. If the terminal growth rate is 3.3%, and the cost of equity is 20.85%, what is the price TODAY?Select one:a.$12.05b.$21.34c.$25.81d.$17.49e.$6.61f.insufficient information to determineg.$25.19 Assume that an investment is forecast to produce the foliowing returns: a 20% probability of a 9% retum: 50% probababy of a 19% return, a 30% peobatily of a 22% retum. The standard deviafion of retirns fot this investment is as 3.11 The change in concentration of N2O5 in the reaction 2N2O5 (g) 4NO2 (g) + O2 (g) is shown below: Time (s) concentration of N2O5 (M) 0 0.020 1.00 x 102 0.017 2.00 x 102 0.014 3.00 x 102 0.014 4.00 x 102 0.010 5.00 x 102 0.009 6.00 x 102 0.007 7.00 x 102 0.006 Calculate the rate of decomposition of N2O5 between 100 - 300 s. what is the rate of reaction between the same time (100 - 300 s)? 12. Je suis un instrument de musique cordes. 13. Je suis utile pour faire des toiles de peinture. 14. Je suis un jeu qui se joue habituellement en famill ou plusieurs personnes. 15. Je suis un camion qui fait pin-pon. 16. Je suis sur un chemin de fer. Assignment 1 - Intro to HTML and JSInstructionsWrite a web application using Node.js that serves the 3 pages listed below.Home Page.Stock Listing Page.Stock Search Page.The data for this application is provided in the file stocks.js and we have also provided a package.json file for you. Do not change anything in the files stocks.js and package.json. You can use the server.js file provided to you to start your coding. Do not change the value of the variable PORT in server.js. You can also use any code presented in the course modules.You can choose the names of the static HTML pages and the URLs for the routes however you want with one exception - the static HTML file for the Home Page must be named index.html.Data Filesstocks.js -use strict';const stocks = [{ company: 'Splunk', symbol: 'SPLK', price: 137.55 },{ company: 'Microsoft', symbol: 'MSFT', price: 232.04 },{ company: 'Oracle', symbol: 'ORCL', price: 67.08 },{ company: 'Snowflake', symbol: 'SNOW', price: 235.8 },{ company: 'Terradata', symbol: 'TDC', price: 44.98 }];module.exports.stocks = stocks;package.json -{"name": "assignment_1","version": "1.0.0","description": "","main": "server.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","start": "node server.js"},"author": "","license": "ISC","dependencies": {"express": "^4.17.1"}}server.js -'use strict';// NOTE: Don't change the port numberconst PORT = 3000;// The variable stocks has the same value as the variable stocks in the file `stocks.js`const stocks = require('./stocks.js').stocks;const express = require("express");const app = express();app.use(express.urlencoded({extended: true}));// Add your code hereapp.listen(PORT, () => {console.log(`Server listening on port ${PORT}...`);});1. Home PageA GET request for the root URL should return a static HTML page named index.html.This page must include links to the following 2 pages:Stock Listing PageStock Search PageIn addition to the links, you can optionally add welcome text on this page describing the web application.2. Stock Listing PageFor this page, create a static HTML file that the displays the following informationAn HTML table with the data provided in the file stocks.js, andA form to order stocksHTML Table:Each row in the HTML table must have the following 3 columnsCompany nameStock symbolCurrent priceThe table must have a header row.Form to order stocks:Underneath the HTML table, you must provide inputs for the user to submit a stock order. The following inputs must be provided:A input element to specify the symbol of the stock to order.You can choose to use a text element or radio-buttons or a drop-down list for this.A number element to enter the quantity to buy.A button to submit the form.You are free to choose the URL for the action.You can choose either GET or POST as the method for the form.After the form is submitted, the Stock Order Response must be displayed.Stock Order ResponseThis response must be dynamically generated by the server.The response must be in HTML and should include a message with the following information:You placed an order to buy N stocks of CompanyName. The price of one stock is $Y and the total price for this order is $Z.For example:You placed an order to buy 10 stocks of Splunk. The price of one stock is $137.55 and the total price for this order is $1375.5.Note: If a string value is passed to res.send() as an argument, then by default the response body contains it as HTML, which is what is required for Stock Order response.3. Stock Search PageThis must be a static page with a form that provides two criteria to the user for searching the stock information:Highest priceLowest priceThe user should be able to choose one of these choices and submit the form.You are free to choose the URL for the action.You can choose either GET or POST as the method for the form.After the form is submitted, the Stock Details Response must be displayed.Stock Details ResponseThis response must be a JSON object with all the information corresponding to that stock from the variable stocks.Note: If a JSON object is passed to res.send() as an argument, then by default the response body contains it as JSON, which is what is required for the Stock Details Response.When processing the request, your JavaScript code must call a function findStockByPrice(...) which should find the stock with the highest or lowest price (as needed) from among the stocks in the variable stocks.This function must find the relevant stock "on the fly," i.e., you must not hard-code or permanently store the information about which stock has the highest price and which stock has the lowest price.What to Turn In?Submit a single zip file with your code.The grader will unzip your file, go to the root directory, run npm install and then run npm start to start your application and test it.