Exercice de Grammaire: L’accord des Adjectifs en Français

body {
font-family: ‘Segoe UI’, Tahoma, Geneva, Verdana, sans-serif;
max-width: 100%;
margin: 0 auto;
padding: 20px;
background-color: #f5f7fa;
color: #333;
}
h1, h2, h3 {
color: #2c3e50;
}
.container {
background-color: white;
padding: 30px;
border-radius: 10px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
max-width: 100%;
margin: 0 auto;
}
.subscription-form {
background-color: #e3f2fd;
padding: 25px;
border-radius: 8px;
margin-bottom: 30px;
border-left: 4px solid #1976d2;
}
.exercise-container {
display: none;
}
.form-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: #455a64;
}
input, select {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 6px;
font-size: 16px;
transition: border-color 0.3s;
}
input:focus, select:focus {
outline: none;
border-color: #1976d2;
box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2);
}
button {
background-color: #1976d2;
color: white;
border: none;
padding: 12px 24px;
border-radius: 6px;
cursor: pointer;
font-size: 16px;
font-weight: 600;
transition: background-color 0.3s;
}
button:hover {
background-color: #1565c0;
}
.exercise-text {
line-height: 1.8;
font-size: 18px;
text-align: justify;
margin-bottom: 30px;
}
.paragraph {
margin-bottom: 20px;
background-color: #f8f9fa;
padding: 15px;
border-radius: 8px;
border-left: 3px solid #1976d2;
}
.gap-input {
width: 120px;
border: none;
border-bottom: 1px solid #333;
font-size: 16px;
text-align: center;
background-color: #f0f8ff;
border-radius: 0;
padding: 5px;
margin: 0 3px;
display: inline-block;
}
.gap-input:focus {
background-color: #e3f2fd;
border-bottom: 2px solid #1976d2;
box-shadow: none;
}
.base-adjective {
color: #666;
font-size: 14px;
font-style: italic;
margin-left: 4px;
}
.result {
margin-top: 30px;
padding: 25px;
background-color: #e8f5e9;
border-radius: 8px;
display: none;
border-left: 4px solid #43a047;
}
.badge {
text-align: center;
margin-top: 40px;
padding: 20px;
display: none;
}
.difficulty-selector {
margin-bottom: 25px;
display: flex;
align-items: center;
gap: 10px;
}
.error {
color: #d32f2f;
font-size: 14px;
margin-top: 5px;
}
#badgePreview {
position: relative;
width: 300px;
height: 300px;
margin: 0 auto;
overflow: hidden;
}
.badge-outer {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
border-radius: 50%;
background: linear-gradient(45deg, #1976d2, #0d47a1, #42a5f5, #64b5f6);
display: flex;
justify-content: center;
align-items: center;
}
.badge-inner {
width: 90%;
height: 90%;
border-radius: 50%;
background-color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 15px;
box-sizing: border-box;
}
.badge-title {
font-size: 16px;
font-weight: bold;
margin-bottom: 10px;
color: #2c3e50;
}
.badge-name {
font-size: 18px;
font-weight: bold;
margin-bottom: 5px;
color: #1976d2;
}
.badge-info {
font-size: 14px;
margin-bottom: 5px;
text-align: center;
}
.badge-icon {
margin-bottom: 15px;
width: 60px;
height: 60px;
}
.rules-section {
background-color: #e8f4fd;
padding: 20px;
border-radius: 8px;
margin-bottom: 25px;
border-left: 4px solid #1976d2;
}
.rules-section h3 {
margin-top: 0;
color: #1976d2;
}
.rules-section ul {
padding-left: 20px;
}
.rules-toggle {
margin-bottom: 15px;
color: #1976d2;
cursor: pointer;
display: inline-block;
font-weight: 500;
text-decoration: underline;
}
.rules-toggle:hover {
color: #0d47a1;
}
.hint-button {
background-color: #ff9800;
color: white;
padding: 5px 10px;
border-radius: 4px;
cursor: pointer;
font-size: 12px;
margin-left: 5px;
vertical-align: middle;
font-weight: bold;
}
.hint-button:hover {
background-color: #f57c00;
}
.correct {
color: #43a047;
font-weight: bold;
}
.incorrect {
color: #d32f2f;
font-weight: bold;
}
.correction-item {
padding: 8px;
margin-bottom: 5px;
border-radius: 4px;
}
.correction-item.correct {
background-color: rgba(67, 160, 71, 0.1);
}
.correction-item.incorrect {
background-color: rgba(211, 47, 47, 0.1);
}
.level-tabs {
display: flex;
margin-bottom: 20px;
border-bottom: 1px solid #ddd;
}
.level-tab {
padding: 10px 20px;
cursor: pointer;
border: 1px solid #ddd;
border-bottom: none;
border-radius: 5px 5px 0 0;
margin-right: 5px;
background-color: #f5f5f5;
}
.level-tab:hover {
background-color: #e3f2fd;
}
.level-tab.active {
background-color: #1976d2;
color: white;
border-color: #1976d2;
}

/* Styles pour le partage et le tableau des meilleurs scores */
.share-container {
margin-top: 30px;
padding: 20px;
background-color: #f0f7ff;
border-radius: 8px;
text-align: center;
}

.social-buttons {
display: flex;
justify-content: center;
gap: 15px;
margin-top: 15px;
}

.social-buttons button {
padding: 10px 20px;
border-radius: 5px;
cursor: pointer;
font-size: 14px;
font-weight: 600;
}

.social-buttons button:first-child {
background-color: #4267B2;
}

.social-buttons button:last-child {
background-color: #1DA1F2;
}

.leaderboard {
margin-top: 30px;
padding: 20px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.leaderboard table {
width: 100%;
border-collapse: collapse;
margin-top: 15px;
}

.leaderboard th, .leaderboard td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #eee;
}

.leaderboard th {
background-color: #f5f5f5;
font-weight: 600;
}

.leaderboard tr.highlighted {
background-color: #e8f5e9;
font-weight: bold;
}

.download-buttons {
display: flex;
justify-content: center;
gap: 15px;
margin-top: 20px;
}

.download-button {
background-color: #4CAF50;
}

.download-button:hover {
background-color: #388E3C;
}

.adjective-help {
margin-top: 20px;
padding: 15px;
background-color: #fff3e0;
border-radius: 8px;
border-left: 4px solid #ff9800;
}

.adjective-list {
columns: 3;
column-gap: 20px;
margin-top: 10px;
}

/* Nouveau style pour le pourcentage */
.percentage-score {
font-size: 1.2em;
font-weight: bold;
color: #1976d2;
margin: 10px 0;
background-color: #e3f2fd;
padding: 8px 15px;
border-radius: 20px;
display: inline-block;
}

@media (max-width: 768px) {
.adjective-list {
columns: 2;
}
}

@media (max-width: 480px) {
.adjective-list {
columns: 1;
}
}

/* Adaptations pour impression */
@media print {
body * {
visibility: hidden;
}
#badgePreview, #badgePreview * {
visibility: visible;
}
#badgePreview {
position: absolute;
left: 0;
top: 0;
width: 100%;
}
}

Exercice de Grammaire: L’accord des Adjectifs

Inscrivez-vous pour commencer l’exercice

Veuillez remplir vos informations pour accéder à l’exercice sur l’accord des adjectifs en français.

Complétez les phrases avec l’accord correct de l’adjectif

Afficher les règles d’accord des adjectifs

Règles d’accord des adjectifs en français

  • Règle générale : L’adjectif s’accorde en genre (masculin/féminin) et en nombre (singulier/pluriel) avec le nom qu’il qualifie.
  • Formation du féminin :
    • En général, on ajoute un “e” au masculin : petit → petite
    • Si l’adjectif masculin se termine déjà par “e”, il reste identique au féminin : rouge → rouge
    • Terminaisons spécifiques :
      • -er → -ère : premier → première
      • -et → -ète ou -ette : complet → complète, net → nette
      • -eux → -euse : heureux → heureuse
      • -f → -ve : neuf → neuve
      • -x → -se : jaloux → jalouse
      • -c → -che ou -que : blanc → blanche, public → publique
      • -on → -onne : bon → bonne
      • -al → -ale : national → nationale
    • Adjectifs ayant des formes irrégulières : beau → belle, vieux → vieille, frais → fraîche
  • Formation du pluriel :
    • En général, on ajoute un “s” au singulier : petit → petits
    • Si l’adjectif singulier se termine déjà par “s” ou “x”, il reste identique au pluriel : gris → gris, heureux → heureux
    • Si l’adjectif se termine par -al, il devient -aux au pluriel masculin : national → nationaux (sauf quelques exceptions comme fatal → fatals)
    • Si l’adjectif se termine par -eau, il devient -eaux au pluriel : beau → beaux
  • Adjectifs de couleur :
    • Les adjectifs de couleur simples s’accordent normalement : une voiture blanche, des voitures blanches
    • Les adjectifs de couleur composés ou dérivés d’un nom restent invariables : des yeux bleu clair, des robes rose pâle
    • Les couleurs tirées de noms sont invariables : des chaussures marron, des chemises orange
  • Cas particuliers :
    • Avec plusieurs noms, l’adjectif s’accorde au masculin pluriel si au moins un nom est masculin : une table et un bureau verts
    • Adjectifs placés avant le nom qui ont des formes spéciales : un beau garçon, un nouvel ami, un vieil homme

Niveau Facile
Niveau Moyen
Niveau Difficile

Adjectifs à accorder dans l’exercice

Voici la liste des adjectifs que vous devrez accorder correctement dans les textes ci-dessous :

L’accord des Adjectifs (Niveau Facile)

Notre voyage en Bretagne était une expérience vraiment . Nous avons séjourné dans une maison près de l’océan. Chaque matin, nous admirions les vagues qui se brisaient sur les rochers. Les plages étaient et . Nous avons visité un phare qui était encore en état.

Ma école est vraiment . Les salles de classe sont et . Les professeurs sont et toujours disponibles. J’ai rencontré une fille qui est devenue ma amie. Ensemble, nous participons à des activités .

Les montagnes sont particulièrement en automne. Les feuilles et créent un paysage . J’aime faire de promenades sur les sentiers . L’air y est et . Ma cabane se trouve au bord d’un lac .

L’accord des Adjectifs (Niveau Moyen)

La révolution a provoqué des changements dans nos sociétés. Les innovations ont transformé les méthodes de production . Cette époque a vu naître de inventions qui sont aujourd’hui considérées comme .

Les conséquences de nos actions sont parfois . La forêt , poumon de notre planète, est menacée par des pratiques . Des espèces et disparaissent chaque jour.

L’architecture privilégie les lignes et les espaces . Les matériaux comme le bois sont associés à des éléments . Les façades permettent une lumière . Les bâtiments intègrent des systèmes innovants.

L’accord des Adjectifs (Niveau Difficile)

Les recherches sur les maladies ont permis des avancées . Les symptômes peuvent être , mais les conséquences à long terme sont .

Les politiques et doivent être . La situation reste . Des solutions sont nécessaires pour résoudre ces problèmes .

L’art suscite des réactions . Certaines œuvres remettent en question les valeurs . Des expositions présentent des perspectives qui enrichissent notre compréhension de l’expression .


Résultats

Vous avez obtenu 0 réponses correctes sur 25.

Pourcentage de réussite: 0%

Félicitations! Voici votre badge de réussite

🏆
Certificat de Réussite
Nom Prénom
a brillamment réussi l’exercice
“L’accord des Adjectifs en Français”
Niveau: Facile
Score: 0/25
Date: 25/04/2025


document.addEventListener(‘DOMContentLoaded’, function() {
// Variables globales
let currentLevel = ‘facile’;
const exerciseLevels = {
‘facile’: document.getElementById(‘exerciseFacile’),
‘moyen’: document.getElementById(‘exerciseMoyen’),
‘difficile’: document.getElementById(‘exerciseDifficile’)
};

// Tableau des adjectifs pour chaque niveau
const adjectivesByLevel = {
‘facile’: [
“merveilleux”, “petit”, “bleu”, “désert”, “propre”, “vieux”, “bon”,
“nouveau”, “grand”, “spacieux”, “lumineux”, “gentil”, “français”,
“meilleur”, “sportif”, “beau”, “rouge”, “orange”, “magnifique”,
“long”, “forestier”, “pur”, “frais”, “vieux”, “calme”
],
‘moyen’: [
“industriel”, “majeur”, “technique”, “traditionnel”, “historique”,
“nombreux”, “fondamental”, “environnemental”, “catastrophique”,
“amazonien”, “vert”, “agricole”, “intensif”, “animal”, “végétal”,
“moderne”, “épuré”, “ouvert”, “naturel”, “métallique”,
“vitré”, “naturel”, “abondant”, “écologique”, “énergétique”
],
‘difficile’: [
“scientifique”, “récent”, “neurodégénératif”, “médical”, “significatif”,
“initial”, “subtil”, “dévastateur”, “économique”, “social”,
“complémentaire”, “financier”, “mondial”, “précaire”, “original”,
“complexe”, “contemporain”, “émotionnel”, “contradictoire”, “expérimental”,
“traditionnel”, “international”, “culturel”, “divers”, “artistique”
]
};

// Remplir les listes d’adjectifs
for (const level in adjectivesByLevel) {
const list = document.getElementById(`adjectiveList${level.charAt(0).toUpperCase() + level.slice(1)}`);
adjectivesByLevel[level].forEach(adjective => {
const item = document.createElement(‘div’);
item.textContent = adjective;
list.appendChild(item);
});
}

// Gestion des onglets de niveau
const levelTabs = document.querySelectorAll(‘.level-tab’);
levelTabs.forEach(tab => {
tab.addEventListener(‘click’, function() {
const level = this.getAttribute(‘data-level’);
currentLevel = level;

// Mettre à jour les onglets
levelTabs.forEach(t => t.classList.remove(‘active’));
this.classList.add(‘active’);

// Afficher l’exercice correspondant
for (const lvl in exerciseLevels) {
exerciseLevels[lvl].style.display = lvl === level ? ‘block’ : ‘none’;
}

// Mettre à jour les listes d’adjectifs
for (const lvl in adjectivesByLevel) {
const capitalized = lvl.charAt(0).toUpperCase() + lvl.slice(1);
document.getElementById(`adjectiveList${capitalized}`).style.display =
lvl === level ? ‘block’ : ‘none’;
}
});
});

// Afficher/cacher les règles
const rulesToggle = document.getElementById(‘rulesToggle’);
const rulesSection = document.getElementById(‘rulesSection’);
rulesToggle.addEventListener(‘click’, function() {
if (rulesSection.style.display === ‘none’) {
rulesSection.style.display = ‘block’;
rulesToggle.textContent = ‘Masquer les règles d’accord des adjectifs’;
} else {
rulesSection.style.display = ‘none’;
rulesToggle.textContent = ‘Afficher les règles d’accord des adjectifs’;
}
});

// Validation du formulaire d’inscription
const startButton = document.getElementById(‘startButton’);
const subscriptionForm = document.getElementById(‘subscriptionForm’);
const exerciseContainer = document.getElementById(‘exerciseContainer’);

startButton.addEventListener(‘click’, function() {
let isValid = true;

// Validation du prénom
const prenom = document.getElementById(‘prenom’).value.trim();
if (prenom === ”) {
document.getElementById(‘prenomError’).textContent = ‘Veuillez entrer votre prénom’;
isValid = false;
} else {
document.getElementById(‘prenomError’).textContent = ”;
}

// Validation du nom
const nom = document.getElementById(‘nom’).value.trim();
if (nom === ”) {
document.getElementById(‘nomError’).textContent = ‘Veuillez entrer votre nom’;
isValid = false;
} else {
document.getElementById(‘nomError’).textContent = ”;
}

// Validation de l’email
const email = document.getElementById(‘email’).value.trim();
const emailRegex = /^[^s@]+@[^s@]+.[^s@]+$/;
if (email === ” || !emailRegex.test(email)) {
document.getElementById(‘emailError’).textContent = ‘Veuillez entrer une adresse email valide’;
isValid = false;
} else {
document.getElementById(‘emailError’).textContent = ”;
}

// Validation du checkbox
const subscribe = document.getElementById(‘subscribe’).checked;
if (!subscribe) {
document.getElementById(‘subscribeError’).textContent = ‘Veuillez cocher cette case pour continuer’;
isValid = false;
} else {
document.getElementById(‘subscribeError’).textContent = ”;
}

// Si tout est valide, montrer l’exercice
if (isValid) {
subscriptionForm.style.display = ‘none’;
exerciseContainer.style.display = ‘block’;

// Mise à jour du nom dans le badge
document.getElementById(‘badgeName’).textContent = prenom + ‘ ‘ + nom;
}
});

// Ajouter les boutons d’indice
const gapInputs = document.querySelectorAll(‘.gap-input’);
gapInputs.forEach(input => {
const hint = input.getAttribute(‘data-hint’);
const hintButton = document.createElement(‘span’);
hintButton.className = ‘hint-button’;
hintButton.textContent = ‘?’;
hintButton.title = ‘Afficher un indice’;
hintButton.addEventListener(‘click’, function() {
alert(‘Indice: ‘ + hint);
});
input.insertAdjacentElement(‘afterend’, hintButton);
});

// Vérification des réponses
const checkButton = document.getElementById(‘checkButton’);
const resultDiv = document.getElementById(‘result’);
const scoreSpan = document.getElementById(‘score’);
const totalSpan = document.getElementById(‘total’);
const percentageSpan = document.getElementById(‘percentage’);
const correctionsDiv = document.getElementById(‘corrections’);
const badgeDiv = document.getElementById(‘badge’);

checkButton.addEventListener(‘click’, function() {
let score = 0;
let total = 0;

// Sélectionner uniquement les inputs du niveau actuel
const activeInputs = exerciseLevels[currentLevel].querySelectorAll(‘.gap-input’);
total = activeInputs.length;

// Vider les corrections précédentes
correctionsDiv.innerHTML = ”;

// Vérifier chaque réponse
activeInputs.forEach(input => {
const userAnswer = input.value.trim().toLowerCase();
const correctAnswer = input.getAttribute(‘data-answer’).toLowerCase();
const baseAdjective = input.getAttribute(‘data-base’);
const number = input.getAttribute(‘data-number’);

const correctionItem = document.createElement(‘div’);
correctionItem.className = ‘correction-item’;

if (userAnswer === correctAnswer) {
score++;
correctionItem.classList.add(‘correct’);
correctionItem.innerHTML = ` Question ${number}: “${userAnswer}” est correct. (${baseAdjective})`;
} else {
correctionItem.classList.add(‘incorrect’);
correctionItem.innerHTML = ` Question ${number}: “${userAnswer}” n’est pas correct. La bonne réponse est “${correctAnswer}”. (${baseAdjective})`;
}

correctionsDiv.appendChild(correctionItem);
});

// Mettre à jour le score
scoreSpan.textContent = score;
totalSpan.textContent = total;

// Calculer et afficher le pourcentage
const percentage = Math.round((score / total) * 100);
percentageSpan.textContent = percentage;

// Afficher les résultats
resultDiv.style.display = ‘block’;

// Afficher le badge si le score est suffisant (> 70%)
if (percentage >= 70) {
badgeDiv.style.display = ‘block’;
document.getElementById(‘badgeScore’).textContent = `${score}/${total} (${percentage}%)`;
document.getElementById(‘badgeLevel’).textContent = currentLevel.charAt(0).toUpperCase() + currentLevel.slice(1);

// Générer QR code
const qrcode = qrcode(4, ‘L’);
qrcode.addData(‘https://exercice-francais.fr/certificat/’ + Math.random().toString(36).substring(2, 15));
qrcode.make();
document.getElementById(‘badgeQR’).innerHTML = qrcode.createImgTag(4);
}
});

// Téléchargement du badge en PDF
document.getElementById(‘downloadPDF’).addEventListener(‘click’, function() {
const { jsPDF } = window.jspdf;
const pdf = new jsPDF();

html2canvas(document.getElementById(‘badgePreview’)).then(canvas => {
const imgData = canvas.toDataURL(‘image/png’);
const imgProps = pdf.getImageProperties(imgData);
const pdfWidth = pdf.internal.pageSize.getWidth();
const pdfHeight = (imgProps.height * pdfWidth) / imgProps.width;

pdf.addImage(imgData, ‘PNG’, 0, 0, pdfWidth, pdfHeight);
pdf.save(‘badge-reussite-adjectifs.pdf’);
});
});

// Téléchargement du badge en image
document.getElementById(‘downloadImage’).addEventListener(‘click’, function() {
html2canvas(document.getElementById(‘badgePreview’)).then(canvas => {
const link = document.createElement(‘a’);
link.download = ‘badge-reussite-adjectifs.png’;
link.href = canvas.toDataURL(‘image/png’);
link.click();
});
});

// Partage sur les réseaux sociaux
document.getElementById(‘shareFacebook’).addEventListener(‘click’, function() {
const url = encodeURIComponent(window.location.href);
window.open(‘https://www.facebook.com/sharer/sharer.php?u=’ + url, ‘_blank’);
});

document.getElementById(‘shareTwitter’).addEventListener(‘click’, function() {
const text = encodeURIComponent(`J’ai réussi l’exercice sur l’accord des adjectifs en français! Score: ${document.getElementById(‘score’).textContent}/${document.getElementById(‘total’).textContent}`);
const url = encodeURIComponent(window.location.href);
window.open(`https://twitter.com/intent/tweet?text=${text}&url=${url}`, ‘_blank’);
});
});

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *