In: Computer Science
Terrain navigation is a key component in the design of unmanned aerial vehicles (UAVs). Vehichles such as a robot or a car, can travel on land; and vehiches such as a drone or a plane can fly above the land. A UAV system contains an on board computer that has stored the terrain information for the area in which it is to be operated, Because it knows where it is at all times (often using a global positioning system (GPS) receiver), the vehicle can then select the best path to get to a designed spot. If the destination changes, the vehicle can refer to its internal maps and recompute the new path. The computer software that guides these vechicles must be tested over a variety of land formations and topologies. Elevvation information for large grids of land is available in computer databases. One way of measuring the "difficulty" of a lanad grid with respect to terrain navigation is to determine the number of peaks in the grid, where a peak is a point that has lower elevations all around it. For this problem, we want to determine whether the value in grid position [m] [n] is peak. Assume that the values in the four positions shown are adjacent to grid position [m] [n]
grid [m-1] [n] | ||
---|---|---|
grid [m][n-1] | grid [m][n] | grid [m][n+1] |
grid [m+1] [n] |
Write a program in C PROGRAMMING that reads elevation data from a data file named grid1. txt. (this file you have to create and name it as grid 1.txt.) data as shown below which represent elevation for a grid that has 6 points along the side and seven points along the top ( the peaks have been highlighted and underlined):
5039 5127 5238 5259 5248 5310 5299
5150 5392 5410 5401 5352 5820 5321
5290 5560 5490 5421 5530 5831 5210
5110 5429 5430 5411 5459 5630 5319
4920 5129 4921 5821 4722 4921 5129
5023 5129 4822 4872 4794 4862 4245
Then prints the number of peaks and their locations. Assume that the first line of the data file contains the number of rows and the number of columns for the grid of information. These values are then followed by the elevation values, in row order. The maximum size of the grid is 25 rows by 25 columns.
Hints:
#Need solution c/c++ programmme
Answer :
The required c code is
code :
#include <stdio.h>
#include <stdlib.h>
#define SIZE 25
int main()
{
FILE *fp = fopen("Text.txt","r");
int grid[SIZE][SIZE];
int rows, cols, i , j;
int num_peaks = 0;
if(fp != NULL)
{
fscanf(fp,"%d %d",&rows,&cols);
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
fscanf(fp,"%d",&grid[i][j]);
}
}
fclose(fp);
for(int i=1;i<rows-1;i++)
{
for(int j=1;j<cols-1;j++)
{
if((grid[i][j] > grid[i-1][j]) && (grid[i][j] >
grid[i+1][j]) && (grid[i][j] > grid[i][j-1]) &&
(grid[i][j] > grid[i][j+1]))
num_peaks++;
}
}
printf("\nTotal number of peaks: %d",num_peaks);
printf("\nCurrent positions of the peaks: ");
for(int i=1;i<rows-1;i++)
{
for(int j=1;j<cols-1;j++)
{
if((grid[i][j] > grid[i-1][j]) && (grid[i][j] >
grid[i+1][j]) && (grid[i][j] > grid[i][j-1]) &&
(grid[i][j] > grid[i][j+1]))
printf("\n[%d][%d]",i,j);
}
}
printf("\n");
get
}
else
printf("Unable to open file: Text.txt");
getch();
}
Result:
=======================================================================================
ANSWERED AS PER MY KNOWLEDGE
IF ANY DOUBTS COMMENT IT