Programmation

Introduction aux Activités

L'importance de la programmation dans ma formation

Projets en C#

Défis et compétences acquises

Durant cette année, j’ai développé plusieurs applications en C#, ce qui m’a permis de renforcer mes compétences en programmation orientée objet. J’ai notamment travaillé sur des projets de gestion de données et d’interfaces utilisateur, affrontant des défis tels que l’optimisation du code et la résolution de bugs complexes.

Code C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace EcoloTri
{
internal class Program
{
static void Main()
{
// Déclarations
double[,] depots = { { 4, 1, 0.8 },{ 1, 1, 1.6 },{ 4, 2, 2.5 },{ 4, 1, 0.9 },{ 1, 1, 1.2 },{ 4, 3, 1.5 } };
int codeSyndicat=4;

// Appel de la Fonction PoidsTotalSyndicat et affichage du résultat dans la Console
Console.WriteLine(« Le syndicat n°{0} a apporté ce jour {1} tonnes de déchet »,codeSyndicat, PoidsSyndicat(depots, codeSyndicat));
Console.ReadKey();
}

public static double PoidsSyndicat(double[,] Pdepots, int PcodeSyndicat)
{
// Déclaration des variables locales
double poidsTotalSyndicat = 0;

// Itération de détermination du poids déposé par le syndicat
for (int i = 0; i < 6; i++)
{
if (Pdepots[i, 0] == PcodeSyndicat)
{
poidsTotalSyndicat += Pdepots[i, 1];
}
}
return poidsTotalSyndicat;
}
}
}

Programmation en Python

Durant ma première année de BTS SIO, j’ai eu l’opportunité d’explorer le langage Python à travers divers projets. J’ai appris à manipuler les structures de données telles que les listes et les dictionnaires, ce qui m’a permis de développer des scripts efficaces pour automatiser des tâches répétitives.

Un des projets marquants fut la création d’une application de gestion de tâches, où j’ai appliqué les concepts de programmation orientée objet. Cette expérience m’a non seulement renforcé mes compétences techniques, mais m’a également aidé à comprendre l’importance de l’organisation et de la lisibilité du code.

Code Python
liste = [71, -95, -99, 85, 68, -74, -98, -92, -92, 15]
liste_test_6
 = [71, -95, -99, 85, 68, -74, -98, -92, -92, 15, 71]
«  » »
Exercice 1 :
Ecrire une fonction qui prend en paramètre une liste et renvoie le plus petit élément de la liste :
«  » »
def plus_petit(liste):
    minimum = liste[0]
    for i in range (len(liste)):
        if minimum > liste[i]:
            minimum = liste[i]
    return minimum
def plus_petit_V2(liste):
    minimum = min(liste)
    return minimum
«  » »
Exercice 2 :
Ecrire une fonction qui prend en paramètre une liste et un nombre et renvoie True si le nombre est dans la liste et False sinon
«  » »
def verif_liste(liste, nbr):
    for i in range (len(liste)):
        if nbr == liste[i]:
            return True

    return False

def verif_liste_V2(liste,nbr):

    if nbr in liste :
        return True
    else :
        return False
«  » »
Exercice 3 :
Ecrire une fonction qui prend en paramètre une liste et un nombre et renvoie le nombre d’occurrence du nombre dans la liste
«  » »
def occurence(nbr,liste):
    cpt = 0
    for i in range (len(liste)):
        if nbr == liste[i]:
            cpt += 1
    return cpt
«  » »
Exercice 4 :
Ecrire une fonction qui prend en paramètre une liste et revoie le nombre qui est le plus fréquent dans la liste
«  » »
def occurence_max(liste):
    for i in range (len(liste)) :
        liste_occurence.append(occurence(liste[i],liste))
    maximum = liste_occurence[0]
    temp = 0
    for n in range (len(liste_occurence)) :
        if maximum < liste_occurence[n] :
            maximum = liste_occurence[n]
            temp = n
    return (liste[temp])
«  » »
Exercice 5 :
Idem avec en plus le nombre d’occurrences
«  » »
def occurence_max_V2(liste):
    liste_occurence = []
    for i in range (len(liste)) :
        liste_occurence.append(occurence(liste[i],liste))
    maximum = liste_occurence[0]
    temp = 0
    for n in range (len(liste_occurence)) :
        if maximum < liste_occurence[n] :
            maximum = liste_occurence[n]
            temp = n
    return (liste[temp], maximum)

«  » »
Exercice 6 :
Idem avec en plus toutes les valeurs s’il devait y en avoir plusieurs avec la même occurrence
«  » »

«  » »
def occurence_max_V3(liste):

liste_occurence = []

for i in range (len(liste)) :

liste_occurence.append(occurence(liste[i],liste))

maximum = liste_occurence[0]
temp = 0

for n in range (len(liste_occurence)) :

if maximum < liste_occurence[n] :

maximum = liste_occurence[n]
temp = n

liste_final = []
translation.append(liste[temp])
translation.append(maximum)

liste_final = []
liste_final.append(translation)

return (liste[temp], maximum)
«  » »

def occurence_max_V3(liste_test_6):
    def occurrence(nombre, liste_test_6):
        cpt = 0
        for i in liste_test_6:
            if i == nombre :
                cpt += 1
        return cpt
    liste_occurrence = [occurrence(nombre, liste_test_6) for nombre in liste_test_6]
    maximum = liste_occurrence[0]
    for k in range(1, len(liste_occurrence)):
        if liste_occurrence[k] > maximum:
            maximum = liste_occurrence[k]
    liste_final = []
    for n in range(len(liste_occurrence)):
        if liste_occurrence[n] == maximum and liste_test_6[n] not in liste_final:
            liste_final.append(liste_test_6[n])
    return liste_final, maximum

Développement Web avec HTML, CSS, PHP et JavaScript

Au cours de mes études, j’ai réalisé plusieurs projets web intégrant HTML, CSS, PHP et JavaScript. Ces projets m’ont permis de maîtriser la création de sites web dynamiques et interactifs.

Un projet notable fut la conception d’un site de portfolio personnel, où j’ai utilisé HTML et CSS pour structurer et styliser le contenu, tandis que PHP a été employé pour gérer les formulaires de contact. JavaScript a été utilisé pour améliorer l’interactivité, notamment à travers des animations et des validations de formulaire en temps réel.

Ces expériences m’ont permis de comprendre l’importance de l’ergonomie et de l’expérience utilisateur, tout en développant des compétences essentielles pour le développement web moderne.

Code HTML
<!DOCTYPE html>
<html lang=« fr »>
<head>
    <meta charset=« UTF-8 »>
    <meta name=« viewport » content=« width=device-width, initial-scale=1.0 »>
    <title>Page personnelle de Valentin Train</title>
    <link rel=« stylesheet » href=« style.css »>
</head>
<body>
    <header>
        <h1>Valentin Train</h1>
    </header>
    <nav>
        <ul>
            <li><a href=« #accueil »>Accueil</a></li>
            <li><a href=« #a-propos »>À propos</a></li>
            <li><a href=« #projets »>Projets</a></li>
            <li><a href=« #contact »>Contact</a></li>
        </ul>
    </nav>
    <section id=« accueil » class=« content »>
        <h2>Accueil</h2>
        <p>Bienvenue sur ma page personnelle.</p>
    </section>
    <section id=« a-propos » class=« content »>
        <h2>À propos</h2>
        <p>Je suis un étudiant de BTS SIO (Service Informatique aux Organisations). Je suis en première année de ce BTS et j’ai pris la spécialité réseau (SISR).</p>
        <p>J’ai beaucoup de notions d’informatique grâce à mon travail dans l’entreprise de mes parents, spécialisée dans le domaine de l’informatique.</p>
    </section>
    <article id=« projets » class=« content »>
        <h2>Projets</h2>
        <p>Je n’ai pas encore décidé de mon orientation future, mais deux choix s’offrent à moi :</p>
        <ul>
            <li>Continuer dans l’informatique avec un Master en Cyber Sécurité pour ensuite contribuer à l’entreprise familiale.</li>
            <li>Postuler pour rentrer dans l’armée, suivre une formation d’infanterie, me spécialiser en parachutisme et tenter de rejoindre les forces spéciales françaises parachutistes : le 1er RPIMA.</li>
        </ul>
        <p>En parallèle, je souhaite travailler pour aider mes parents à subvenir aux différents besoins de notre famille.</p>
    </article>
    <footer id=« contact » class=« content »>
        <h2>Contact</h2>
        <p>Email : <a href=« mailto:valentin@train-blanc.net »>valentin@train-blanc.net</a></p>
    </footer>

    <script src=« fond.js »></script>
</body>
</html>
Code CSS
body {
    font-family: Arial, sans-serif;
    background-color: black;
    color: green;
}

header {
    text-align: center;
}

nav ul {
    list-style-type: none;
    padding: 0;
    text-align: center;
}

nav ul li {
    display: inline;
    margin-right: 20px;
}

nav ul li a {
    color: green;
    text-decoration: none;
}

nav ul li a:hover {
    color: white;
}

section, article, footer {
    margin: 20px;
    padding: 20px;
    border: 2px solid green;
    border-radius: 10px;
    background-color: black;
}

footer {
    text-align: center;
}

/* Ajout de marge en bas à chaque paragraphe dans la section Projets */
#projets p {
    margin-bottom: 10px;
}
Code JavaScript
document.addEventListener(« DOMContentLoaded », function() {
    const contentSections = document.querySelectorAll(‘.content’);

    contentSections.forEach(section => {
        section.style.display = ‘none’; // Cacher tous les contenus initialement
    });

    // Afficher ou masquer le contenu lorsqu’un lien de navigation est cliqué
    const navLinks = document.querySelectorAll(‘nav a’);
    navLinks.forEach(link => {
        link.addEventListener(‘click’, function(event) {
            event.preventDefault(); // Empêcher le comportement de lien par défaut

            const targetId = this.getAttribute(‘href’).substring(1);
            const targetSection = document.getElementById(targetId);

            if (targetSection.style.display === ‘none’) {
                revealContent(targetSection);
            } else {
                hideContent(targetSection);
            }
        });
    });

    // Fonction pour révéler le contenu caractère par caractère
    function revealContent(section) {
        section.style.display = ‘block’;
        const text = section.textContent;
        section.textContent =  »; // Vide le contenu initial

        let index = 0;
        const revealInterval = setInterval(function() {
            section.textContent += text[index];
            index++;
            if (index >= text.length) {
                clearInterval(revealInterval);
            }
        }, 20); // Vitesse de révélation (en millisecondes)
    }

    // Fonction pour masquer le contenu caractère par caractère
    function hideContent(section) {
        const text = section.textContent;
        section.textContent =  »; // Vide le contenu actuel

        let index = text.length 1;
        const hideInterval = setInterval(function() {
            section.textContent = text.substring(0, index);
            index;
            if (index < 0) {
                clearInterval(hideInterval);
                section.style.display = ‘none’;
            }
        }, 20); // Vitesse de masquage (en millisecondes)
    }
});

Gestion des Bases de Données avec MySQL

Maîtrise de MySQL et des Systèmes de Gestion de Bases de Données

La gestion des bases de données a été un élément central de ma formation en BTS SIO. J’ai appris à utiliser MySQL pour concevoir, créer et gérer des bases de données relationnelles. Cette compétence est cruciale pour le développement d’applications nécessitant une gestion efficace des données.

Un projet significatif impliquait la création d’une base de données pour une application de gestion de bibliothèque. J’ai conçu le schéma de la base de données, écrit des requêtes SQL complexes pour extraire et manipuler les données, et assuré l’intégrité des données à travers des contraintes et des index.

Ces activités m’ont permis de développer une compréhension approfondie des systèmes de gestion de bases de données, une compétence précieuse pour toute carrière dans le domaine de l’informatique.

Conclusion des Activités

Réflexion Finale

Ces activités de programmation ont été essentielles dans mon parcours en BTS SIO. Elles m’ont permis de développer des compétences techniques solides et de renforcer ma capacité à résoudre des problèmes complexes. Grâce à ces expériences, je me sens mieux préparé pour mes futures études supérieures et pour intégrer le monde professionnel. Chaque projet, qu’il s’agisse de C#, Python, ou des technologies web, a enrichi ma compréhension et ma passion pour le domaine informatique.

En conclusion, ces projets ont non seulement consolidé mes connaissances, mais ont également alimenté mon ambition de poursuivre une carrière dans l’informatique. Ils ont été un tremplin vers de nouvelles opportunités et m’ont donné la confiance nécessaire pour aborder des défis technologiques futurs avec assurance.

Adresse

Provence-Alpes-Côte d’Azur

Téléphone

(+33) 07 87 08 62 39

Email

contact@valentintrain.fr

Consentement à l'utilisation de Cookies avec Real Cookie Banner