Programme de conversion °F en °C (boucle for…)

Tout ce qui se rapporte à l'informatique en général
Répondre
e.clement
Zone privée MT Libristes
Zone privée MT Libristes
Messages : 89
Enregistré le : 24 janvier 2011, 20:16

Programme de conversion °F en °C (boucle for…)

Message par e.clement »

Bonjour,
j'ai un exercice à faire (en java mais ce n'est pas très important) on demande à l'utilisateur de rentrer une température initiale en °F, une température finale en °F et un pas d'incrémentation. Le programme doit faire un tableau °F °C d'initial à final en augmentant à chaque fois la température en °F du pas.
Il faut que je fasse ça avec une boucle while et un boucle for (pour s’entraîner), ce qui n'est pas évident c'est de savoir quand on a passé la valeur limite avec la boucle for, je n'y arrive pas.

Pour la boucle while j'ai mit un booléen qui annonce quand on a fini de tourner dans la boucle (ça fait beaucoup de conditions mais je ne voit pas comment faire autrement).
Le code source est là pour le while [edit : joint en bas]

Pour la boucle for franchement je bloque, si vous avez une idée, une piste n'hésitez pas à m'en faire par (pas spécifique à java mais en algo simplement).

Merci beaucoup et bonne journée,

e.clement

EDIT : je ne veut pas que vous me fassiez l'exercice c'est que vraiment j'ai pas d'idées, sinon je mail ma prof pour lui demander des conseils (ou alors c'est que je cherche trop compliqué dans l'exercice et qu'on part du principe que l'utilisateur rentre final et initial tel que (final - initial) % pas) == 0, comme ça on tombe sur final pile et on peut faire un for, ou alors on décide que l'utilisateur n'a qu'a rentrer un pas positif).

EDIT encore : pour les fichiers j’espère que vous arrivez à les télécharger j'utilise bashare pour la première fois sur internet.
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par e.clement le 01 mars 2011, 22:30, modifié 1 fois.
Image
Augure
Expert
Expert
Messages : 166
Enregistré le : 29 septembre 2010, 23:01

Re : Programme de conversion °F en °C (boucle for…)

Message par Augure »

marrant ca, c'est un programme que j'utilise tous les jours (enfin mise a part que l'on choisit °C ou °F... et que l'on s'occupe plus de l'autre) !

bon vue que je suis pas du tout informaticien, je vais juste jeter un coup d'œil par curiosité... voir si je comprend qqch ! ;)
e.clement
Zone privée MT Libristes
Zone privée MT Libristes
Messages : 89
Enregistré le : 24 janvier 2011, 20:16

Re : Re : Programme de conversion °F en °C (boucle for…)

Message par e.clement »

@Augure : c'est surtout un problème d'algorithme que j'ai, pour passer de Farenheit à Celsius j'utilise le truc donné par la prof :
T(°C) = 5*( T(°F) - 32)/9 (d'ailleurs c'est pareil sur WP), ce qui m'embête c'est les boucles… tu doit surement utiliser un programme plus joli, je fait encore tout dans la console :smiley:.
Image
Augure
Expert
Expert
Messages : 166
Enregistré le : 29 septembre 2010, 23:01

Re : Programme de conversion °F en °C (boucle for…)

Message par Augure »

pas dit qu'il soit plus jolie ! ;) ce n'est qu'une interface, je suis sur que derrière c'est un bouzin programmer avec deux pieds gauches, mais pour ce qu'il doit faire on s'en fou ! ^^

c'est un programme pour piloté des cycles de chauffage sur bain-marie !

je voulais surtout signaler que c'est marrant, peu être que vous trouvez ca abstrait, mais c'est un programme tout bête mais appliqué vue que des labo de recherche l'utilise.
bon ce n'est avec ca que vous aller révolutionner le monde... ;) ! mais je trouve ca marrant comme exemple...

pour l'algo, comme le l'ai dit je laisse les autres te répondre ! ;)

edit >< les smyley sont pas les même que sur AF ... -.-'
Modifié en dernier par Augure le 01 mars 2011, 16:08, modifié 1 fois.
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programme de conversion °F en °C (boucle for…)

Message par jip »

@e.clement :  et si tu nous donnais plutôt ton texte de sujet. car là je trouve qu'il y a plutôt un pb de contrôle d'erreur. car imaginons ces entrées : ini = 90, fin=30, pas=10, ça veut dire quoi du point de vue de l'utilisateur ? une erreur de saisie ? une erreur de compréhension des saisies demandées ? faut-il alerter ? faut-il compenser ? si la valeur du pas ne permet pas d'atteindre de manière juste la dernière valeur, que doit-on faire ? si ça se trouve les réponses sont dans le sujet tel qu'il est formulé ...

@augure : c'est normal, c'est pas le forum de l'af .....
Modifié en dernier par jip le 01 mars 2011, 20:26, modifié 1 fois.
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programme de conversion °F en °C (boucle for…)

Message par jip »

bon je programme pas vraiment en java, mais plutôt en C++.

j'ai essayé de jeter un truc vite fait.

j'ai pas testé dans tous les cas, et ça ne cherche pas à atteindre la valeur de fin si le pas ne le permet pas,

mais ça a l'air de marcher pour la plupart des cas (à vérifier quand même).

si ça peut t'aider ou te donner une piste :

Code : Tout sélectionner

#include <iostream>
#include <math.h>

using namespace std;

int main()
{
    double val1, val2, pas, temp_f, temp_c;

    cout << "valeur1 : ";
    cin >> val1;
    cout << "valeur2 : ";
    cin >> val2;
    cout << "pas : ";
    cin >> pas;
    // changement de signe du pas si incorrect
    pas = ((val2-val1)/fabs(val2-val1))*fabs(pas);

    cout << val1 << " , " << val2 << " , " << pas << endl;


    for (val2 += pas; fabs(val2 - val1) >= fabs(pas); val1 += pas) {
        cout << "F=" << val1 << " , C=" << (5*( val1 -32)/9) << endl;
    }

    return 0;
}
Modifié en dernier par jip le 01 mars 2011, 21:25, modifié 1 fois.
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
e.clement
Zone privée MT Libristes
Zone privée MT Libristes
Messages : 89
Enregistré le : 24 janvier 2011, 20:16

Re : Programme de conversion °F en °C (boucle for…)

Message par e.clement »

Bonsoir Jip,
voici mon sujet
Ecrire l'algorithme qui affiche la table de conversion Degré Celsius / Degré Farenheit pour les températures en Degré Farenheit allant de 0°F à 300°F avec un intervalle de 20°F entre deux valeures de la table.
On rappelle que la formule pour passer des Degrés F aux degrés C. seet T0C = 5*(T°F - 23)/9
Vous proposerez 2 versions de l'algorithme :
a. La première utilisant une boucle Tant que (boucle while sauf que sur papier on la note Tant que :confus:)
b. La deuxième utilisera une boucle Pour (boucle for vous l'aurez compris) et des constantes symboliques pour déclarer les valeurs minimales, maximales et l'intervalle de la table de conversion
En gros c'est pas très précis, on nous dit juste au début de la liasse de TD que l'utilisateur est docile, si on lui demande un nombre entier il rentre un nombre entier, si on lui demande un nombre d'un type certain il rentre un nombre de ce type.

En tout cas c'est puissant le test (fabs(val2 - val1) >= fabs(pas))  :applaudis:, ça traduit bien mes systèmes d'inéquations que j’écrivais sur mon papier (ça m’aidait pas trop mais au moins je réfléchissais un peu). Balèze à trouver…
Au fait je tentait de dissocier les cas : on va dans le sens croissant, on va dans le sens décroissant, le pas est incohérent avec les bornes entrées… ce qui faisait que j'ai des trucs assez complexes et pleins de conditions.
Ce qui est le plus compliqué c'est de mettre sous forme de conditions simple ce qui est très complexe ou au moins parait complexe.

J'ai donc bidouillé un truc avec des booléens pour faire le deuxième avec un while en espérant que ça me donne des idées mais au fait ça ne devenait pas moins confus.
Je reverrai ça demain matin car je suis assez fatigué,
merci beaucoup en tout cas et bonne soirée !
Image
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programme de conversion °F en °C (boucle for…)

Message par jip »

ouais d'après ce que je vois de ton sujet, c'est quand même beaucoup plus simple vu que "start", "end", et le pas sont fixé et invariant.

on te demande juste d'implémenter en for et en while.

donc là c'est quand même super simple du coup.

pas de saisie, bornes et pas fixes ....

tu te prend pas la tête un peu pour rien là ?

y'a pas de cas particuliers d'après ce que je vois.

rien à tester à part la boucle, puisque tout est fixe : 0 à 300 par pas de 20 ....
Modifié en dernier par jip le 01 mars 2011, 23:17, modifié 1 fois.
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
e.clement
Zone privée MT Libristes
Zone privée MT Libristes
Messages : 89
Enregistré le : 24 janvier 2011, 20:16

Re : Programme de conversion °F en °C (boucle for…)

Message par e.clement »

Mais le petit b, le truc des constantes c'est pas équivalent à faire une demande des bornes et du pas ? Parce que mes constantes si on change leur valeurs il faut toujours que ça marche.
Après le coup de 0° à 300° en effet c'est super simple mais c'était l'autre qui me trottait en tête…

C'est pas faux je me prend souvent la tête pour rien
Image
Avatar du membre
jip
Administrateur
Administrateur
Messages : 2607
Enregistré le : 22 février 2008, 21:00
Localisation : Toulouse
Contact :

Re : Programme de conversion °F en °C (boucle for…)

Message par jip »

j'ai l'impression que ce qui est demandé c'est juste des trucs du genre :

Code : Tout sélectionner

const double MinValue = 0;
const double MaxValue = 300;
const double Step = 20;
en tête de prog. donc rien de bien monstrueux ...

et en plus avec ces valeurs là, des "int" suffirait. pas utile d'avoir des "double" ...
Un synonyme, c'est un mot qu'on écrit pour remplacer celui dont on ne connait pas l'orthographe. (source inconnue). L'imagination est plus importante que le savoir. (Albert Einstein)

[align=center]Image[/align]

BoincLibristes, FreeTorrent, Ma brute
Avatar du membre
Guepi
Administrateur
Administrateur
Messages : 518
Enregistré le : 28 novembre 2009, 00:55
Localisation : Lille

Re : Programme de conversion °F en °C (boucle for…)

Message par Guepi »

A lire le sujet, moi j'aurais juste fait :

Code : Tout sélectionner

public class AfficheTemperatures {

	public static void main(String[] args) {
		final Integer borneInferieure=0;
		final Integer borneSuperieure=300;
		final Integer pas=20;
		
		for(Integer i = borneInferieure; i<= borneSuperieure; i += pas){
			System.out.println(i + "°F - " + fahrenheitToCelsius(i) + "°C");
		}

	}

	private static float fahrenheitToCelsius(Integer fahrenheit){
		return 5*(fahrenheit - 23)/9;
	}
}
Qui donne :
0°F - -12.0°C
20°F - -1.0°C
40°F - 9.0°C
60°F - 20.0°C
80°F - 31.0°C
100°F - 42.0°C
120°F - 53.0°C
140°F - 65.0°C
160°F - 76.0°C
180°F - 87.0°C
200°F - 98.0°C
220°F - 109.0°C
240°F - 120.0°C
260°F - 131.0°C
280°F - 142.0°C
300°F - 153.0°C
Répondre