Perl débutant: afficher une température et une heure
Fermé
Eno145
-
Modifié le 26 févr. 2022 à 22:46
Eno145 Messages postés 8 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 3 mai 2022 - 18 mars 2022 à 20:02
Eno145 Messages postés 8 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 3 mai 2022 - 18 mars 2022 à 20:02
A voir également:
- Perl débutant: afficher une température et une heure
- Logiciel de programmation pour débutant - Guide
- Denon perl pro test - Accueil - Audio
- Cours d'infographie pour debutant - Forum Graphisme
- Perl extension - Forum Perl
- Logiciel montage vidéo débutant - Guide
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié le 18 mars 2022 à 18:56
Modifié le 18 mars 2022 à 18:56
Salut Eno145,
Désolé, je ne vois ta demande que maintenant.
J'avoue que je ne comprends rien à ce que tu veux faire.
Le plus simple est que tu nous dises, à partir d'un fichier de départ de quelques lignes (3, 4 lignes) quel est le résultat à l'écran que tu veux obtenir, avec une brève explication en des termes simples et concis. Parce ce que là, tu parles d'"heure", de "seconde valeur", de "mot", de "position" et franchement rien n'est clair.
Dal
Désolé, je ne vois ta demande que maintenant.
J'avoue que je ne comprends rien à ce que tu veux faire.
Le plus simple est que tu nous dises, à partir d'un fichier de départ de quelques lignes (3, 4 lignes) quel est le résultat à l'écran que tu veux obtenir, avec une brève explication en des termes simples et concis. Parce ce que là, tu parles d'"heure", de "seconde valeur", de "mot", de "position" et franchement rien n'est clair.
Dal
Eno145
Messages postés
8
Date d'inscription
samedi 26 février 2022
Statut
Membre
Dernière intervention
3 mai 2022
1
Modifié le 18 mars 2022 à 20:05
Modifié le 18 mars 2022 à 20:05
Le problème a été résolu. Pour clarifier l'énoncé qui était assez flou (désolé), il s'agissait de créer un programme comme ceci:
# Ce programme prend en argument le nom d'un fichier
# comportant des températures, à raison d'une valeur par ligne.
# Il renvoie la température minimale rencontrée dans ce fichier,
# ainsi que les heures auxquelles cette température a été minimale.
Une solution a été proposée:
use strict;
use warnings;
# 1/ On récupère le nom du fichier de températures
my $fichier = $ARGV[0];
# 2/ On ouvre le fichier de températures
open( my $temp_fh, '<', $fichier )
or die("Impossible de trouver le fichier $fichier\n");
# 3/ La plus petite température est celle de la 1re ligne du fichier
# lorsqu'on n'a lu qu'une seule ligne. L'heure où il fait le plus
# frois est la première heure.
my $temp_min = <$temp_fh>;
my $heure_cour = 0;
my $heure_min = $heure_cour . 'h';
chomp($temp_min);
# 4/ Tant qu'on peut lire des températures dans le fichier
while ( my $temp_cour = <$temp_fh> ) {
chomp($temp_cour);
$heure_cour++; # on incrémente l'heure courante
# Si on rencontre une température plus basse que la température minimale,
# on fait de la température courante la nouvelle température minimale
# et de l'heure courante la nouvelle heure où la température est la
# plus basse.
if ( $temp_cour < $temp_min ) {
$temp_min = $temp_cour;
$heure_min = $heure_cour . 'h';
}
# Si la température courante correspond à la tepérature la plus basse
# rencontrée jusque là, on ajoute l'heure courante à la chaîne de
# caractère qui contient les heures où la température a été la plus basse.
elsif ( $temp_cour == $temp_min ) {
$heure_min = $heure_min . ', ' . $heure_cour . 'h';
}
}
close($temp_fh);
# 5/ On affiche la température minimale
# et la/les heures où elle a été la plus basse
print "Temp. min. : " . $temp_min . "°C ($heure_min)";
Merci pour les commentaires à ce post.
# Ce programme prend en argument le nom d'un fichier
# comportant des températures, à raison d'une valeur par ligne.
# Il renvoie la température minimale rencontrée dans ce fichier,
# ainsi que les heures auxquelles cette température a été minimale.
Une solution a été proposée:
use strict;
use warnings;
# 1/ On récupère le nom du fichier de températures
my $fichier = $ARGV[0];
# 2/ On ouvre le fichier de températures
open( my $temp_fh, '<', $fichier )
or die("Impossible de trouver le fichier $fichier\n");
# 3/ La plus petite température est celle de la 1re ligne du fichier
# lorsqu'on n'a lu qu'une seule ligne. L'heure où il fait le plus
# frois est la première heure.
my $temp_min = <$temp_fh>;
my $heure_cour = 0;
my $heure_min = $heure_cour . 'h';
chomp($temp_min);
# 4/ Tant qu'on peut lire des températures dans le fichier
while ( my $temp_cour = <$temp_fh> ) {
chomp($temp_cour);
$heure_cour++; # on incrémente l'heure courante
# Si on rencontre une température plus basse que la température minimale,
# on fait de la température courante la nouvelle température minimale
# et de l'heure courante la nouvelle heure où la température est la
# plus basse.
if ( $temp_cour < $temp_min ) {
$temp_min = $temp_cour;
$heure_min = $heure_cour . 'h';
}
# Si la température courante correspond à la tepérature la plus basse
# rencontrée jusque là, on ajoute l'heure courante à la chaîne de
# caractère qui contient les heures où la température a été la plus basse.
elsif ( $temp_cour == $temp_min ) {
$heure_min = $heure_min . ', ' . $heure_cour . 'h';
}
}
close($temp_fh);
# 5/ On affiche la température minimale
# et la/les heures où elle a été la plus basse
print "Temp. min. : " . $temp_min . "°C ($heure_min)";
Merci pour les commentaires à ce post.