Blog

Cours Nombres Relatifs

On 02/10/2025

Cours : Les Nombres Relatifs (Addition, Soustraction, Multiplication, Division)

1. Qu’est-ce qu’un nombre relatif ?

Un nombre relatif est un nombre qui peut être positif (+) ou négatif (−). Exemples : +3 (positif), −5 (négatif), 0 (ni positif ni négatif).

 

2. Addition et Soustraction de Nombres Relatifs

Règle 1 : Addition de deux nombres négatifs

Le résultat est toujours négatif. On additionne leurs distances à zéro et on garde le signe −. Exemple : (−3) + (−4) = −7 (On fait 3 + 4 = 7, puis on met le signe −.)

Règle 2 : Si deux signes "−" se suivent, ça devient "+"

C’est la règle des signes qui se suivent :

− (−) devient +

+ (+) reste +

Exemples :

(−5) − (−3) = −5 + 3 = −2 (Les deux "−" deviennent "+".)

(+7) + (+2) = 7 + 2 = 9 (Les deux "+" restent "+".)

Cas particulier :

(+5) − (+3) = 5 − 3 = 2 (Le "+ −" devient "−".)

 

Règle 3 : Addition de deux nombres de signes différents

On soustrait les distances à zéro et on garde le signe du nombre le plus grand. Exemples :

(−6) + (+4) = −2 (6 > 4, donc le résultat est négatif.)

(+8) + (−3) = +5 (8 > 3, donc le résultat est positif.)

 

3. Multiplication et Division de Nombres Relatifs

Règle 1 : Produit de deux nombres négatifs

Le résultat est toujours positif. Exemple : (−2) × (−4) = +8

Règle 2 : Produit d’un nombre positif et d’un nombre négatif

Le résultat est toujours négatif. Exemples :

(+3) × (−5) = −15

(−6) ÷ (+2) = −3

 

Exemples :

(+4) × (+3) = +12

(−6) ÷ (−2) = +3

(+5) × (−2) = −10

(−8) ÷ (+4) = −2

4. Résumé des Règles à Retenir

✅ Addition/Soustraction :

Deux "−" qui se suivent → +

Si les nombres ont le même signe, on additionne et on garde le signe.

Si les nombres ont des signes différents, on soustrait et on prend le signe du plus grand.

✅ Multiplication/Division :

Deux nombres négatifs → Résultat positif.

Un positif et un négatif → Résultat négatif.

5. Exercices d’Application

Calcule :

(−7) + (−5) = ?

(+9) − (−4) = ?

(−3) × (−6) = ?

(+12) ÷ (−4) = ?

(−2) + (+8) = ?

Corrigés :

−12

13

+18

−3

+6

6. Astuce pour Retenir

"Moins par moins, égal plus" (pour × et ÷).

"Deux négatifs s’annulent" (en addition/soustraction, −(−) devient +).

Nombre Relatifs Multiplication Division

On 01/10/2025

Exercice : Multiplications et divisions de nombres relatifs

 

 
 

QCM - Mouvement et Vitesse

On 29/09/2025

 

 

 

Nombre Relatifs Addition Soustraction

On 29/09/2025

Exercice : Additions et soustractions de nombres relatifs

 

 
 

Seisme 4e college

On 28/09/2025

QCM : Les Séismes (Niveau 4e)

Question 1 sur 20
 

Sharepoint React SPFX issue scss missing

On 24/09/2025

in my react code below i have and an error : Cannot find module '../View.module.scss' or its corresponding type declarations.
import styles from './View.module.scss';

 

To solve it verify this fils exists

View.module.scss.ts was missing with code below, so i add it

require("./View.module.css");
const styles = {
  genericView: 'genericView_c46baf68',
  countryview: 'countryview_c46baf68',
  tableContainer: 'tableContainer_c46baf68',
  filterLabel: 'filterLabel_c46baf68',
  cell: 'cell_c46baf68',
  buttonCell: 'buttonCell_c46baf68',
  clearButton: 'clearButton_c46baf68',
  detailsList: 'detailsList_c46baf68',
  detailsListValue: 'detailsListValue_c46baf68',
  iconGreen: 'iconGreen_c46baf68',
  iconRed: 'iconRed_c46baf68',
  field: 'field_c46baf68',
  fieldLabel: 'fieldLabel_c46baf68',
  fieldLabelContainer: 'fieldLabelContainer_c46baf68',
  fieldValue: 'fieldValue_c46baf68',
  fieldLower: 'fieldLower_c46baf68',
  spinnerContainer: 'spinnerContainer_c46baf68',
  noItems: 'noItems_c46baf68',
  callout: 'callout_c46baf68',
  viewDescription: 'viewDescription_c46baf68',
  emptyItem: 'emptyItem_c46baf68',
  statusActive: 'statusActive_c46baf68',
  statusInactive: 'statusInactive_c46baf68',
  statusDissolved: 'statusDissolved_c46baf68'
};

export default styles;

Pnp PowerShell Export Import Site

On 02/07/2025

 

Define JSON configuration https://learn.microsoft.com/en-us/sharepoint/dev/solution-guidance/configuring-the-pnp-provisioning-engine

Connect-PnPOnline -Url $siteUrl -ClientId $clientId -Tenant $tenantName -Thumbprint $cert
 

$xml = Get-PnPSiteTemplate -Out $SchmaXMLPath -Configuration $configPath

# Invoke-PnPSiteTemplate -Path $SchmaXMLPath



{
  "$schema": "https://aka.ms/sppnp-extract-configuration-schema",
  "handlers": [
    "ContentTypes",
    "Fields",
    "Lists"
  ],
  "persistAssetFiles": false,
  "lists": {
    "lists": [
      {
        "title": "Eutelsat Entity",
        "includeItems": false,
        "query": {
          "includeAttachments": false
        }
      }
    ]
  },
  "contentTypes": {
    "groups": [
      "Market Access"
    ]
  }
}

# remove particular nodes
$SchmaXMLPathDest = "MA_pmsatEntity_15.xml"
[xml]$xmlContent = Get-Content $SchmaXMLPath 
Clear-Host
# Define the namespace if needed (common in SharePoint XML)
$nsmgr = New-Object System.Xml.XmlNamespaceManager($xmlContent.NameTable)
# Add the namespace you are using in the XML document. Use "ns" as a prefix here.
$nsmgr.AddNamespace("pnp", "http://schemas.dev.office.com/PnP/2022/09/ProvisioningSchema")

# Use XPath to select fields. Adjust the XPath query based on your XML structure.
$fields = $xmlContent.SelectNodes("//Field", $nsmgr)

Write-Host "cout $($fields.Count)"
# Iterate over fields and remove those whose InternalName starts with an underscore
for ($i = $fields.Count - 1; $i -ge 0; $i--) {
    $internalName = $fields[$i].Attributes["Name"].Value
    if ($internalName -like "_*") {
        # Remove the field from its parent node
        $fields[$i].ParentNode.RemoveChild($fields[$i]) | Out-Null
        continue;
    }
    $internalName = $fields[$i].Attributes["Group"].Value
    if ($internalName -eq "_Hidden") {
        # Remove the field from its parent node
        $fields[$i].ParentNode.RemoveChild($fields[$i]) | Out-Null
    }
}


$fields = $xmlContent.SelectNodes("//pnp:ContentType", $nsmgr)
for ($i = $fields.Count - 1; $i -ge 0; $i--) {
    $internalName = $fields[$i].Attributes["Name"].Value
    if ($internalName -ne "MA_EutelsatEntity") {
        # Remove the field from its parent node
        $fields[$i].ParentNode.RemoveChild($fields[$i]) | Out-Null
    }
}


# Save the modified XML back to a file
$xmlContent.Save("{0}\template\test2.xml" -f (get-location))

Sharepoint Rest Get User ID By Mail

On 23/06/2025



async function GetDigestValue(siteUrl) {//
    const fetchOptions = {
        method: 'POST',
        headers: {
            'Accept': 'application/json;odata=verbose',
            'Content-type': 'application/json;odata=verbose'
        }
    };

    const response = await fetch(siteUrl + "/_api/contextinfo", fetchOptions);
    return (await response.json()).d.GetContextWebInformation.FormDigestValue;
}




async function EnsureUser(siteUrl, userEmail) {
    const digest = await GetDigestValue(siteUrl);
    console.log("digest", digest);

    const body = {
        'logonName': `i:0#.f|membership|${userEmail}`
    }
    const response = await fetch(`${siteUrl}/_api/web/ensureuser?$select=Id`, {
        method: "POST",
        headers: {
            "Accept": "application/json;odata=verbose",
            "Content-Type": "application/json;odata=verbose",
            "X-RequestDigest": digest
        },
        body: JSON.stringify({
            'logonName': `i:0#.f|membership|${userEmail}`
        })
    });
    console.log("response", response);
    const userData = await response.json();
    return userData.d.Id;
}

async function getUserIdByEmail(siteUrl, userEmail) {
    try {

        const fetchOptions = {
            method: 'GET',
            headers: {
                'Accept': 'application/json;odata=verbose',
                'Content-type': 'application/json;odata=verbose'
            }
        };

        const response = await fetch(siteUrl + `/_api/web/siteusers/getbyemail('${encodeURIComponent(userEmail)}')`, fetchOptions);
        const data = await response.json();
        console.log("getUserByEmail data", data);
        return data.d.Id;
    } catch (error) {
        console.log("getUserByEmail Error", error);
        return null;
    }
}
let siteUrl1 = "https://eutelsatgroup.sharepoint.com/sites/fdiSandBox";
let email1 = "ffdietrich-ext@eutelsat.com";
let ret = await EnsureUser(siteUrl1, email1);


console.log("response", ret);
const siteUrl = "https://test.sharepoint.com/sites/Dev_wf";
const email = "fpalmo@test.com";
console.log("response", ret0); 
const ret = await EnsureUser(siteUrl, email);

const ret0 = await getUserIdByEmail(siteUrl, email);



console.log("response", ret);