Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

perché nn funziona(LINGUAGGIO C)??

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto Utentefairyvilje

0
voti

[1] perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto Utentebob93 » 4 ott 2009, 16:42

Il compilatore nn mi da nessun errore...però i conti nn tornano il programma mi da in output dei risultati sbagliati...come mai?? grazie

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;
     
     
                 
}
Avatar utente
Foto Utentebob93
0 3
 
Messaggi: 49
Iscritto il: 23 gen 2009, 21:25

0
voti

[2] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto UtenteDonJ » 4 ott 2009, 16:42

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
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2562
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

0
voti

[3] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto UtenteDonJ » 4 ott 2009, 16:50

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?
"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
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2562
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

0
voti

[4] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto Utenteangus » 5 ott 2009, 14:04

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
Avatar utente
Foto Utenteangus
8.480 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[5] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto Utenteangus » 5 ott 2009, 16:55

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
Avatar utente
Foto Utenteangus
8.480 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[6] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto UtenteDonJ » 5 ott 2009, 17:02

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
Avatar utente
Foto UtenteDonJ
4.611 6 10 13
Master EY
Master EY
 
Messaggi: 2562
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria

0
voti

[7] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto UtenteEdmondDantes » 5 ott 2009, 17:15

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.
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
Avatar utente
Foto UtenteEdmondDantes
11,9k 8 11 13
Disattivato su sua richiesta
 
Messaggi: 3619
Iscritto il: 25 lug 2009, 22:18
Località: Marsiglia

0
voti

[8] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto Utenteangus » 5 ott 2009, 17:59

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 :mrgreen:
in /dev/null no one can hear you scream
Avatar utente
Foto Utenteangus
8.480 4 6 9
G.Master EY
G.Master EY
 
Messaggi: 4172
Iscritto il: 20 giu 2008, 17:25

0
voti

[9] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto Utentebob93 » 6 ott 2009, 15:57

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");
                 

}
Avatar utente
Foto Utentebob93
0 3
 
Messaggi: 49
Iscritto il: 23 gen 2009, 21:25

0
voti

[10] Re: perché nn funziona(LINGUAGGIO C)??

Messaggioda Foto UtentePaolino » 6 ott 2009, 16:10

Io ne vedo almeno due: ti mancano i punti e virgola ";" al termine di due righe di codice:

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
Avatar utente
Foto UtentePaolino
32,6k 8 12 13
G.Master EY
G.Master EY
 
Messaggi: 4226
Iscritto il: 20 gen 2006, 11:42
Località: Vigevano (PV)

Prossimo

Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti