- Codice: Seleziona tutto
//Programma dimostrativo sull'utilizzo della funzione If
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main()
{
int R1=20,R2=30,t,RT;
printf("Inserisci t ");
scanf("%d \n", & t);
if (t=0)
RT=(R1*R2)/(R1+R2);
else if (t=1)
RT=R1+R2;
printf("%d \n",RT);
system("pause");
return 0;
}
perché nn funziona(LINGUAGGIO C)??
Moderatori:
Paolino,
fairyvilje
11 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Il compilatore nn mi da nessun errore...però i conti nn tornano il programma mi da in output dei risultati sbagliati...come mai?? grazie
0
voti
tanto per curiosità, cosa deve fare il programma?
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
@fasterthanlime
0
voti
ah ma sei sicuro che nell'if non ci vada un "==" anzichè "=" ?
penso che in c
t=0
sia un'assegnazione di 0 alla variabile t
prova a fare
if (t==0)
e se non funziona, che risultati ti da? con quali input?
edit:
e se t non è né 0 né 1 come risponde il programma?
penso che in c
t=0
sia un'assegnazione di 0 alla variabile t
prova a fare
if (t==0)
e se non funziona, che risultati ti da? con quali input?
edit:
e se t non è né 0 né 1 come risponde il programma?
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
@fasterthanlime
0
voti
- Codice: Seleziona tutto
//Programma dimostrativo sull'utilizzo della funzione If
...
IF è un "costrutto" e non una "funzione"
Se vuoi un consiglio spassionato, leggiti un buon libro di C... o anche qualche semplice guida online.
Molte cose ti saranno chiare.
saluti
in /dev/null no one can hear you scream
0
voti
DonJ ha scritto:tanto per curiosità, cosa deve fare il programma?
immagino (anche leggendo altri post di questi giorni) che voglia, date due resistenze R1 e R2, ottenere il parallelo RT (se mette t=0) e la serie RT (se mette t=1)
Giusto il tuo discorso del doppio "==", ma credo che bob93 debba cominciare dalle basi, altrimenti oltre ad acquisire un sistema sbagliato di programmare... al prossimo "scalino" è ancora qua.
just my 2 cents
in /dev/null no one can hear you scream
0
voti
angus ha scritto:immagino (anche leggendo altri post di questi giorni) che voglia, date due resistenze R1 e R2, ottenere il parallelo RT (se mette t=0) e la serie RT (se mette t=1)
Giusto il tuo discorso del doppio "==", ma credo che bob93 debba cominciare dalle basi, altrimenti oltre ad acquisire un sistema sbagliato di programmare... al prossimo "scalino" è ancora qua.
just my 2 cents
si hai ragione
ho esaminato il programma puramente dal lato informatico, ci ho pensato dopo al calcolo delle resistenze.
il problema è che bob93 viene qui (come tanti altri) cercando di farsi dire la soluzione senza perderci del tempo sopra,
quando basterebbero 5 minuti di google per trovare l'errore :\
poi di solito il compilatore segna dove sbagli, no?
comunque sono già un po' di giorni che non torna sul topic, quindi immagino abbia risolto
"Computers, operating systems, networks are a hot mess. They're barely manageable, even if you know a decent amount about what you're doing. Nine out of ten software engineers agree: it's a miracle anything works at all."
@fasterthanlime
@fasterthanlime
0
voti
Ciao bob93.
Quel segno di "=" all'interno del costrutto IF non mi piace per niente (non conosco il C, ma sicuramente è quello).
Il simbolo "=" è il simbolo assegnazione.
Scrivendo t=0 imponi il valore zero alla variabile t.
Il simobolo "==" è un operatore relazionale, nel caso specifico l'operatore di uguaglianza.
Scrivendo IF(t==0) esprimi questo concetto: se la variabile t è uguale a zero allora fai questo.
Inoltre, ti voglio avvissare, che l'essere intelligente è l'operatore non il PC! Non devi fidarti di cosa ti dice il compilatore, perché è in grado di trovare errori di sintassi.
Per esempio se vuoi ottenere una somma e scrivi c=a*b, il codice, per il compilatore, è corretto...ma evidentemente c'è qualcosa che non va!
Comunque, confondere il simbolo "==" col simbolo "=" è un tipico errore che si commette agli inizi. Non preoccuparti.
La cosa importante è: scrivi prima i tuoi codici su un foglio e fai quello che farebbe il PC, secondo il suo pensiero (stupido) e no secondo il tuo.
A occhio si ved che vuoi fare serie o parallelo a secondo del valor della variabile t.
Quel segno di "=" all'interno del costrutto IF non mi piace per niente (non conosco il C, ma sicuramente è quello).
Il simbolo "=" è il simbolo assegnazione.
Scrivendo t=0 imponi il valore zero alla variabile t.
Il simobolo "==" è un operatore relazionale, nel caso specifico l'operatore di uguaglianza.
Scrivendo IF(t==0) esprimi questo concetto: se la variabile t è uguale a zero allora fai questo.
Inoltre, ti voglio avvissare, che l'essere intelligente è l'operatore non il PC! Non devi fidarti di cosa ti dice il compilatore, perché è in grado di trovare errori di sintassi.
Per esempio se vuoi ottenere una somma e scrivi c=a*b, il codice, per il compilatore, è corretto...ma evidentemente c'è qualcosa che non va!
Comunque, confondere il simbolo "==" col simbolo "=" è un tipico errore che si commette agli inizi. Non preoccuparti.
La cosa importante è: scrivi prima i tuoi codici su un foglio e fai quello che farebbe il PC, secondo il suo pensiero (stupido) e no secondo il tuo.
A occhio si ved che vuoi fare serie o parallelo a secondo del valor della variabile t.
Il Conte di Montecristo
Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.
Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
Se non studio un giorno, me ne accorgo io. Se non studio due giorni, se ne accorge il pubblico.
Io devo studiare sodo e preparare me stesso perché prima o poi verrà il mio momento.
Abraham Lincoln
-

EdmondDantes
11,9k 8 11 13 - Disattivato su sua richiesta
- Messaggi: 3619
- Iscritto il: 25 lug 2009, 22:18
- Località: Marsiglia
0
voti
- Codice: Seleziona tutto
//Programma dimostrativo sull'utilizzo della funzione If
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
* if è un costrutto e non una funzione
* #include <stdlib.h> non lo metterei, solo per usare system()... comunque vedi tu
* #include <math.h> invece è proprio inutile per fare somme e divisioni
- Codice: Seleziona tutto
main()
{
int R1=20,R2=30,t,RT;
* visto che fai delle divisioni, io userei un "float" al posto di un "int", almeno per R1,R2,RT
* RT=0 (già che ci sei)
- Codice: Seleziona tutto
if (t=0)
RT=(R1*R2)/(R1+R2);
else if (t=1)
RT=R1+R2;
* t==0 e t==1, come già ti è stato detto
* aggiungerei anche un altro else printf("Errore \n"); return 1; ...giusto per...
- Codice: Seleziona tutto
printf("%d \n",RT);
* se usi float, %d diventa %f ..volendo puoi decidere anche la precisione...
- Codice: Seleziona tutto
system("pause");
* inutile, secondo me. vedi sopra
- Codice: Seleziona tutto
return 0;
}
finalmente
compito per casa: fai la stessa cosa con un numero N di resistenze inserite dall'utente
in /dev/null no one can hear you scream
0
voti
ok grazie a tutti....ho risolto il problema consisteva nel sostituire il "=" con "=="....grazie di nuovo....però oggi ho un altro problema con il C...questo è il sorgente sapreste dirmi dov'è l'errore....
- Codice: Seleziona tutto
#include <stdio.h>
#include <stdlib.h>
#define s 0
#define c 0
main()
{
int n,m;
do{
printf("Inserisci un numero ");
scanf("%d",&n);
s=s+n
c= c++
}
while(n=>0);
m=s/c;
printf("mediia è %d \n",m);
system("pause");
}
0
voti
Io ne vedo almeno due: ti mancano i punti e virgola ";" al termine di due righe di codice:
Inoltre non ha senso scrivere
Basterebbe:
Questo, però, se scriviamo:
senza usare i
Ciao.
Paolo.
Edit: le variabili vanno inizializzate:
- Codice: Seleziona tutto
s=s+n;
c= c++;
Inoltre non ha senso scrivere
- Codice: Seleziona tutto
c=c++;
Basterebbe:
- Codice: Seleziona tutto
c++;
Questo, però, se scriviamo:
- Codice: Seleziona tutto
int c;
int s;
senza usare i
- Codice: Seleziona tutto
#define
Ciao.
Paolo.
Edit: le variabili vanno inizializzate:
- Codice: Seleziona tutto
int c;
int s;
void main (void)
{
c = 0;
s = 0;
}
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
11 messaggi
• Pagina 1 di 2 • 1, 2
Chi c’è in linea
Visitano il forum: Nessuno e 24 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)


