1) How can I calculate the displacement direction of a displacement, like a compass (magnetic)?

float bearing = fix.location.BearingToDegrees( previousFix.location );

This is not a magnetic bearing; it is a true North bearing (degrees CW from North).

2) How to calculate the slope in% or the degree of inclination of a displacement?

float displacement = fix.location.DistanceKm( previousFix.location ) * 1000.0; // to meters

float rise = fix.altitude() - previousFix.altitude(); // meters

float inclination = atan2( rise, displacement ) * RADIANS_TO_DEGREES;

3) For the calculation of the distance to be covered, does the GPS do it for a flat terrain or does it take into account the relief?

GPS devices do not know the "distance to be covered." That is a function provided by application software. If you are referring to smartphone apps or Trimble/Garmin GPS systems (with displays and input keys), that function is not part of the GPS

receiver. Those devices have their own MCU (e.g., like an Arduino) for controlling the display, processing inputs, storing waypoints, accessing installed map data and

receiving NMEA data from the internal GPS receiver. Those applications could use straight line calculations, spherical calculations, or they may have a database of streets used to calculate a car's travel distance. They may or may not know terrain elevations.

4) For the calculation of the distance already traveled without a defined path, does the GPS do it for a flat terrain or does it take into account the relief?

Most GPS devices do not calculate distance traveled. Some ublox GPS devices implement an odometer function. They do not know "the relief" any better than the calculated navigation solution. The calculated distance traveled will depend on the calculation rate, the various filter parameters in effect and the quality of reception.

5) The GPS gives a speed, is it for a flat ground or according to the relief?

As I said before, the GPS device does not know "relief". It does know previous altitude and current altitude. To calculate speed, a GPS device can use the previous position (location + altitude) and/or doppler shift of satellite signals. The speed can also be affected by filter parameters. For example, ublox allows specifying a "platform model" that helps limit the calculations to "reasonable" values for different platforms: stationary, pedestrian, automotive or aircraft.

The calculated speed can be reported to the "host" (i.e., the Arduino) in several different NMEA sentences (RMC & VTG) or UBX messages (NAV-VELNED).

6) I know that the GPS time is very precise (thank you Einstein and its relativity laws), but what is the influence of GPS's localization accuracy (lon, lat, alt) on calculations?

The GST sentence provides lat, lon and altitude error estimates in cm. This sentence is not available on all devices.

I am very bad with math !

Then you won't enjoy writing geodetic calculations. Find a library that does this for you and use it. (I know one.)

The art of giving good answers also includes understanding the questions.

There are many things that you obviously don't know:

* True North is different from Magnetic North;

* A Garmin GPS

system is much more than a GPS receiver;

* Some GPS libraries provide distance and bearing calculation functions;

* PaulS' "getting good answers" is his signature, not a comment directed specifically at you.

Sometimes your questions are

The XY Problem, so our responses may be trying to get to the real question. Your retorts will not help. Just answer our questions and/or ask your next question.