Accueil > > > RESISTANCE EQUIVALANTE DE RESISTANCES EN SERIE OU PARALLELE
RESISTANCE EQUIVALANTE DE RESISTANCES EN SERIE OU PARALLELE
Information sur la source
Description
Alors voila, c'est mon tout premier code, il permet de choisir le nombre de resistances puis de calculer la resistance equivalante de toutes ce resistances qu'elles soient en serie ou en parallele dites moi ce que vous en pensez
Source
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h> //Permet de recuperer la partie decimale de la resistance equivalante
- #include <string.h> // permet de convertir une varriable numerique en chaine de caractere
-
-
-
-
- void main ()
- {
-
- while (1) // boucle infinie pour que le programme ne se quitte pas tout seul
- {
-
- // on declare les varriables
-
- char ctype = 0 ; // Caractere taper par l'utilisateur pour l'appel des fonctions
- char caff_resultat [20] ; // Chaine contenant le resultat dont les zeros inutiles de la partie decimale ont été tronqués
-
- int inbresistor = 0 ; // Nombre de resistances
- int ilong ; // longueur de la chaine "caff_resultat" pour pouvoir tronquer les zeros superflux
-
- double Req = 0 ; // Resistance equivalante
- double dAd = 0 ; // inverse de la resistance euivalante
- double dec = 0 ; // parite decimale de la resistance equivalante
- double ent = 0 ; // partie entiere de la resistance equivalante
-
- // on declare les tableau pour allocation dynamique
-
- double *resistor ; // tableau contenant les valeur des resistances
- double *G ; // tableau contenant les inverses des resistances
-
-
- // On boucle pour que l'utilisateur ne puisse appuyer que sur les touches predifinies
-
- while ( ctype != '1' ) // on sort de la boucle si l'utilisateur appui sur "1"
- {
- if ( ctype == '2' )
- { break ; } // on sort de la boucle si l'utilisateur appui sur "2"
- if ( ctype == 'Q' )
- { exit (-1) ; } // on quitte le programme si l'utilisateur appui sur "Q"
-
- system ("cls") ;
-
- printf ( "1 : Resistances en serie.\n\n2 : resistances en parallele. \n\nQ : quiter le programme. " );
-
- scanf( "%s", &ctype ) ;
- }
-
- if ( ctype == '1' )
-
- {
- system ("cls") ;
- printf ( "vous avez selectionner des resistances en serie.\n\n" ) ;
- printf ( "combien de resistances avez vous?\n\n " ) ;
-
- scanf ( "%d", &inbresistor ) ;
- }
-
- else if ( ctype == '2' )
-
- {
- system ("cls") ;
- printf ( "vous avez selectionner des resistances en parallele.\n\n" ) ;
- printf ( "combien de resistances avez vous?\n\n " ) ;
-
- scanf ( "%d", &inbresistor ) ;
- }
-
- if ( inbresistor == 1 ) // avec cette condition on evite les aberances comme demander la resistance equivalante a une seul resistance ;)
- {
- system ("cls") ;
-
- printf ( "vous avez demander un calcul pour une seule resistance\n\n.....vous etes un idiot...\n\n" ) ;
-
- system ("pause") ;
-
- exit (-1) ;
- }
-
- //////////////////////////////////////////////////////////////////////
- // On initialise les tableau en leur alouant de la memoire //
- // la memoire allouer depend directement de la taille du tableau //
- // par exemple la valeur d'une resistance est sur un type double //
- // donc on allou comme memoire la taille d'un double multiplié //
- // par le nombre de valeur a entrer dans le tableau //
- //////////////////////////////////////////////////////////////////////
-
- resistor = ( double*) malloc (sizeof (double) * inbresistor ) ;
- G = (double*) malloc (sizeof (double) * inbresistor ) ;
-
-
- // on recupere dans cette boucle la valeur de chaque resistance
-
- for ( int i = 1; i <= inbresistor; i++ )
-
- {
- printf ( "veuillez entrer la valeur de la resistance R%d. \n\n", i ) ;
-
- scanf ( "%lf", &resistor [i - 1] ) ;
-
- if ( resistor [i - 1] <= 0 ) // cette condition permet de se proteger d'une division par zero au moment du calcule la la resistance equivalante
- {
- system ("cls") ;
-
- printf ( "vous avez choisi une resistance de nulle ou negative\n\n...vous etes un idiot...\n\n" ) ;
-
- system ("pause") ;
-
- exit (-1) ;
- }
- }
-
- // On calcule la resistante equivalante pour des resistances en serie
-
- if ( ctype == '1' )
- {
- for ( int i = 1; i <= inbresistor; i++ )
- {
- Req = Req + resistor [i - 1] ; // n'oublier pas le -1 car le tableau à un index 0,
- // le numero de resistance 1 corespond a l'index 0 du tableau
- // donc le numero n corespond a l'index "n-1" ;)
-
- }
-
- }
-
- // On calcule la resistante equivalante pour des resistances en parallele
-
- else if ( ctype == '2' )
- {
- for ( int i = 1; i <= inbresistor; i++ )
- {
- G [i - 1] = 1/resistor [i - 1] ;
-
- dAd = dAd + G [i - 1] ;
-
- }
-
- Req = 1/dAd ;
- }
-
- dec = modf ( Req, &ent ) ; // on recupere la partie decimale de la resistance equivalante
-
- if ( dec == 0 ) // si elle est nulle alors on affiche que la partie entiere
- {
- system ("cls") ;
-
- printf ("\n\nLa resistance equivalante est Req = %.0lf .\n\n", Req ); // ex : si Req = 22 on lira 22 et non pas 22.000000 ;)
- }
- else
- {
-
- sprintf (caff_resultat, "%lf", Req ) ; // ici on converti la valeur Req en chaine de caractere caff_resultat
-
- ilong = strlen (caff_resultat) ; //ilong recupere le nombre de caractere present dans la chaine
-
- for (int j = ilong - 1; j > 0; j--) // on tronque les zero inutile de la partie decimale
- {
- if ( caff_resultat [j] == '0' )
- {
- caff_resultat [j] = '\0';
- }
-
- else
- {
- break ;
- }
- }
- system ("cls") ;
-
- printf ("\n\nLa resistance equivalante est Req = %s .\n\n", caff_resultat ) ; // donc si la Req = 22.15 en affichan la chaine tronquée on lira 22.15 et non pas 22.150000
-
- }
-
- // ne pas oublier de liberer la memoire allouée
-
- free (resistor) ;
- free (G) ;
-
- system ("pause") ; // petite pause avant le rebouclage au debut du code
-
- }
-
-
- }
#include <stdio.h>
#include <stdlib.h>
#include <math.h> //Permet de recuperer la partie decimale de la resistance equivalante
#include <string.h> // permet de convertir une varriable numerique en chaine de caractere
void main ()
{
while (1) // boucle infinie pour que le programme ne se quitte pas tout seul
{
// on declare les varriables
char ctype = 0 ; // Caractere taper par l'utilisateur pour l'appel des fonctions
char caff_resultat [20] ; // Chaine contenant le resultat dont les zeros inutiles de la partie decimale ont été tronqués
int inbresistor = 0 ; // Nombre de resistances
int ilong ; // longueur de la chaine "caff_resultat" pour pouvoir tronquer les zeros superflux
double Req = 0 ; // Resistance equivalante
double dAd = 0 ; // inverse de la resistance euivalante
double dec = 0 ; // parite decimale de la resistance equivalante
double ent = 0 ; // partie entiere de la resistance equivalante
// on declare les tableau pour allocation dynamique
double *resistor ; // tableau contenant les valeur des resistances
double *G ; // tableau contenant les inverses des resistances
// On boucle pour que l'utilisateur ne puisse appuyer que sur les touches predifinies
while ( ctype != '1' ) // on sort de la boucle si l'utilisateur appui sur "1"
{
if ( ctype == '2' )
{ break ; } // on sort de la boucle si l'utilisateur appui sur "2"
if ( ctype == 'Q' )
{ exit (-1) ; } // on quitte le programme si l'utilisateur appui sur "Q"
system ("cls") ;
printf ( "1 : Resistances en serie.\n\n2 : resistances en parallele. \n\nQ : quiter le programme. " );
scanf( "%s", &ctype ) ;
}
if ( ctype == '1' )
{
system ("cls") ;
printf ( "vous avez selectionner des resistances en serie.\n\n" ) ;
printf ( "combien de resistances avez vous?\n\n " ) ;
scanf ( "%d", &inbresistor ) ;
}
else if ( ctype == '2' )
{
system ("cls") ;
printf ( "vous avez selectionner des resistances en parallele.\n\n" ) ;
printf ( "combien de resistances avez vous?\n\n " ) ;
scanf ( "%d", &inbresistor ) ;
}
if ( inbresistor == 1 ) // avec cette condition on evite les aberances comme demander la resistance equivalante a une seul resistance ;)
{
system ("cls") ;
printf ( "vous avez demander un calcul pour une seule resistance\n\n.....vous etes un idiot...\n\n" ) ;
system ("pause") ;
exit (-1) ;
}
//////////////////////////////////////////////////////////////////////
// On initialise les tableau en leur alouant de la memoire //
// la memoire allouer depend directement de la taille du tableau //
// par exemple la valeur d'une resistance est sur un type double //
// donc on allou comme memoire la taille d'un double multiplié //
// par le nombre de valeur a entrer dans le tableau //
//////////////////////////////////////////////////////////////////////
resistor = ( double*) malloc (sizeof (double) * inbresistor ) ;
G = (double*) malloc (sizeof (double) * inbresistor ) ;
// on recupere dans cette boucle la valeur de chaque resistance
for ( int i = 1; i <= inbresistor; i++ )
{
printf ( "veuillez entrer la valeur de la resistance R%d. \n\n", i ) ;
scanf ( "%lf", &resistor [i - 1] ) ;
if ( resistor [i - 1] <= 0 ) // cette condition permet de se proteger d'une division par zero au moment du calcule la la resistance equivalante
{
system ("cls") ;
printf ( "vous avez choisi une resistance de nulle ou negative\n\n...vous etes un idiot...\n\n" ) ;
system ("pause") ;
exit (-1) ;
}
}
// On calcule la resistante equivalante pour des resistances en serie
if ( ctype == '1' )
{
for ( int i = 1; i <= inbresistor; i++ )
{
Req = Req + resistor [i - 1] ; // n'oublier pas le -1 car le tableau à un index 0,
// le numero de resistance 1 corespond a l'index 0 du tableau
// donc le numero n corespond a l'index "n-1" ;)
}
}
// On calcule la resistante equivalante pour des resistances en parallele
else if ( ctype == '2' )
{
for ( int i = 1; i <= inbresistor; i++ )
{
G [i - 1] = 1/resistor [i - 1] ;
dAd = dAd + G [i - 1] ;
}
Req = 1/dAd ;
}
dec = modf ( Req, &ent ) ; // on recupere la partie decimale de la resistance equivalante
if ( dec == 0 ) // si elle est nulle alors on affiche que la partie entiere
{
system ("cls") ;
printf ("\n\nLa resistance equivalante est Req = %.0lf .\n\n", Req ); // ex : si Req = 22 on lira 22 et non pas 22.000000 ;)
}
else
{
sprintf (caff_resultat, "%lf", Req ) ; // ici on converti la valeur Req en chaine de caractere caff_resultat
ilong = strlen (caff_resultat) ; //ilong recupere le nombre de caractere present dans la chaine
for (int j = ilong - 1; j > 0; j--) // on tronque les zero inutile de la partie decimale
{
if ( caff_resultat [j] == '0' )
{
caff_resultat [j] = '\0';
}
else
{
break ;
}
}
system ("cls") ;
printf ("\n\nLa resistance equivalante est Req = %s .\n\n", caff_resultat ) ; // donc si la Req = 22.15 en affichan la chaine tronquée on lira 22.15 et non pas 22.150000
}
// ne pas oublier de liberer la memoire allouée
free (resistor) ;
free (G) ;
system ("pause") ; // petite pause avant le rebouclage au debut du code
}
}
Conclusion
j'attends vos commentaires ou critiques
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Allocation memoire [ par youga ]
Bonjour je fais un programme de filtrage d'images en C sur VisualDSP++. J'ai donc une matrice d'entrée et je dois absolument pouvoir determiner l'add
projet allocation efficace de memoire [ par gildaso ]
Salut à tous! Alors voila je suis en licence d'informatique et j'ai un projet à rendre pour la mi-mai.Ce projet consiste à i
allocation efficace de memoire [ par gildaso ]
Salut à tous! Alors voila je suis en licence d'informatique et j'ai un projet à rendre pour la mi-mai.Ce projet consiste à i
[ c ] Allocation memoire [ par Titi035 ]
Bonjour, Je recherche quel serait le meilleur allocateur mémoire pour mon appli embarquée. J'ai 10 Mo de RAM + flash à gér
allocation memoire qui echoue, mais pourquoi?? [ par Seomaz ]
Bonjour,je pense que le titre est assez explicite...mais je détaille quand même:lors d'une allocation dynamique (avec l'operateur new), je me retrouve
fonction malloc [ par Trollien ]
Salut,j'aurai une question concernant le fonctionnement de l'allocation de memoire en c.Si j'alloue de la memoire avec la fonction malloc(...), est ce
allocation de memoire [ par tcok ]
salut a tousje voudrais juste savoir quelle est la difference entre LocalAlloc et GlobalAlloc car je dois resever un gros espace en memoire et je me d
COMPLEXITE, TEMPS ET MEMOIRE utilise par un ALGORITHME [ par RaZoR ]
J'ai découvert, il n'y a pas longtemps de cela, un concours de programmation réservé aux jeunes français de moins de 18 ans et créer par des étudiants
Fuite memoire + Debug [ par Manson ]
Bonjour a tous.Voila j'ai un gros probleme, voila un bout de code qui me met la tete a l'envers, et j'aimerai que l'on m'explique ce qui se passe :#pr
Afficher charge CPU disponibilite memoire et disque [ par kobee12 ]
J'aimerais faire un prog qui me permette d'afficher en temps reel la charge CPU la disponibilite memoire et disque de mon pc, et out ca en C.Si quelqu
|
Derniers Blogs
[TECHDAYS2012] OUI J'Y SERAI![TECHDAYS2012] OUI J'Y SERAI! par JeremyJeanson
Bonsoir, Certes, je l'annonce avec un peu de retard, mais je serai effectivement au Techdays demain. Comme l'an dernier, je participerai au programme ATE (Ask The Expert). Si vous avez des questions Workflow, WCF, AppFabric ou plus généralement .net, n'hé...
Cliquez pour lire la suite de l'article par JeremyJeanson TFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICESTFS INTEGRATION TOOLS - SUIVI DES SYNCHRONISATIONS AVEC REPORTING SERVICES par vfabing
Afin de s'assurer du bon fonctionnement des différentes synchronisations effectuées par les TFS Integration Tools, 2 rapports sont présents dès l'installation. Il suffit alors d'effectuer les manipulations suivantes pour pouvoir les visualiser : Loca...
Cliquez pour lire la suite de l'article par vfabing CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks
Forum
RE : ARBRE BINAIRERE : ARBRE BINAIRE par pacotheking
Cliquez pour lire la suite par pacotheking
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|