PDA

View Full Version : [C++]


Giuseppe214
07-11-2007, 17:16
salve a tutti avrei bisogno di aiuto!!
ho un problema che dice questo:
"data una sequenza di numeri, contare quelli negativi e positivi e comunicarli
:help: grazie

marko.fatto
07-11-2007, 17:23
edit...

variabilepippo
07-11-2007, 17:25
Quali problemi incontri? Un forum non è il luogo dove si possono postare problemi e attendere che qualcuno li risolva. Devi mostrare un pizzico di buona volontà... :)


controlla il resto della divisione per due...


Positivi e negativi, non pari e dispari... ;)

Giuseppe214
07-11-2007, 17:27
Il programma in parte l'ho fatto
#include <stdio.h>
#include <iostream>
int main() {
using namespace std;
int a,b,c,d,e,i,n;
cout<<"Inserisci il primo numero: ";
cin>>a;
cout<<"Inserisci il primo numero: ";
cin>>b;
cout<<"Inserisci il primo numero: ";
cin>>c;
cout<<"Inserisci il primo numero: ";
cin>>d;
cout<<"Inserisci il primo numero: ";
cin>>e;
if (a > 0) or (b > 0) (c > 0) or (d > 0) or (e > 0);
i=i++;
else if (a < 0) or (b < 0) (c < 0) or (d < 0) or (e < 0)
n=n++;
cout<<"Inumeri positivi sono': "<<i<<"I numeri negativi sono: "<<n<<endl;
system("Pause");
}

Non sono capace ancora di usare gli if else

marko.fatto
07-11-2007, 17:30
Positivi e negativi, non pari e dispari... ;)

scusa sono lesso:muro:

Il programma in parte l'ho fatto
#include <stdio.h>
#include <iostream>
int main() {
using namespace std;
int a,b,c,d,e,i=0,n=0;
cout<<"Inserisci il primo numero: ";
cin>>a;
cout<<"Inserisci il primo numero: ";
cin>>b;
cout<<"Inserisci il primo numero: ";
cin>>c;
cout<<"Inserisci il primo numero: ";
cin>>d;
cout<<"Inserisci il primo numero: ";
cin>>e;
if ((a > 0) || (b > 0) || (c > 0) || (d > 0) || (e > 0))
i++;
else if ((a < 0) || (b < 0) || (c < 0) || (d < 0) || (e < 0))
n++;
cout<<"Inumeri positivi sono': "<<i<<"I numeri negativi sono: "<<n<<endl;
system("Pause");
}

Non sono capace ancora di usare gli if else

così...

variabilepippo
07-11-2007, 17:36
Non sono capace ancora di usare gli if else


Ci sono tante cosette che dovresti ripassare oltre ai costrutti if/else... ;)


#include <iostream>

using namespace std;

int main(){
int p, n, num;
p = 0;
n = 0;
do
{
cout << "Inserire un numero (0 per terminare): ";
cin >> num;
if (num > 0) p++; else if (num < 0) n++;
} while (num != 0);
cout << "Positivi: " << p << endl;
cout << "Negativi: " << n << endl;
}

Giuseppe214
07-11-2007, 17:42
Sto imparando ad usarlo ora!!2 settimane Grazie mille dell'aiuto

Invece questo non so proprio cosa voglia dire:
"date le equazioni di due rette y=mx+q, trovare le coordinate dei punti di intersezione"
Che cosa si deve fare??

marko.fatto
07-11-2007, 17:49
ti consiglio un ripassino anche in geometria:stordita:

variabilepippo
07-11-2007, 17:58
Che cosa si deve fare??


Si deve risolvere un banale sistema di 2 equazioni di primo grado. Sul piano cartesiano, qual è l'intersezione tra le rette:

y = x

e

y = -x+1

Giuseppe214
08-11-2007, 14:33
Ho fatto qst formula con il metodo della sottrazione

#include <stdio.h>
#include <iostream>

int main() {
using namespace std;
int m,m1,q,q1,x,y;
cout<<"Inserisci la m della prima retta: ";
cin>>m;
cout<<"Inserisci la q della prima retta: ";
cin>>q;
cout<<"Inserisci la m della seconda retta: ";
cin>>m1;
cout<<"Inserisci la q della seconda retta: ";
cin>>q1;
x = (q1-q)/m-m1;
y = m1*((q1-q)/(m-m1))+q1;
cout<<"Il punto di intersezione e': "<<x<<" "<<y<<endl;
system("Pause");
}


Va bene così?

variabilepippo
08-11-2007, 14:56
Questa è una versione leggermente migliorata:


#include <iostream>
#include <cstdio>

using namespace std;

int main() {
double m,m1,q,q1,x,y;
cout<<"Inserisci la m della prima retta: ";
cin>>m;
cout<<"Inserisci la q della prima retta: ";
cin>>q;
cout<<"Inserisci la m della seconda retta: ";
cin>>m1;
cout<<"Inserisci la q della seconda retta: ";
cin>>q1;
// Non viene gestito il caso di rette parallele!
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;
system("PAUSE");
}

Giuseppe214
08-11-2007, 16:02
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;
system("PAUSE");
}

-(q-q1) è la stessa cosa di (q1-q)
perchè m*x+q?Non è giusto qll mio?

variabilepippo
08-11-2007, 16:14
Hai verificato se il tuo codice fornisce risultati esatti? :rolleyes:

Inoltre ho sistemato un paio di questioni "stilistiche"...

Giuseppe214
08-11-2007, 16:31
Per le parallele e coincidenti mi da errore sull'if :mc:
maledetti if :muro:

#include <iostream>
#include <cstdio>

using namespace std;

int main() {
double m,m1,q,q1,x,y;
cout<<"Inserisci la m della prima retta: ";
cin>>m;
cout<<"Inserisci la q della prima retta: ";
cin>>q;
cout<<"Inserisci la m della seconda retta: ";
cin>>m1;
cout<<"Inserisci la q della seconda retta: ";
cin>>q1;
if (m = m1) and (q != q1);
cout<<"Rette parallele e distinte"<<;
else if (m = m1) and (q = q1);
cout<<"Rette coincidenti<<;
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;
system("PAUSE");
}

marko.fatto
08-11-2007, 17:28
negli if...
al posto di and metti ||
al posto di = metti == (se no fai un'assegnazione non un controllo)
e tutto l'argomento dell'if lo metti tra parantesi e togli il ;

Giuseppe214
08-11-2007, 17:35
Ah si ora funziona

marko.fatto
08-11-2007, 17:36
if ((m == m1) || ( q != q1))
cout<<"Rette parallele e distinte";
else if ((m == m1) || (q == q1))

Giuseppe214
08-11-2007, 17:40
si ho visto mi ero dimenticato la q!!
Ma mi esegue anche l'altro pezzo di codice
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;

come faccio a farlo fermare?

#include <iostream>
#include <cstdio>

using namespace std;

int main() {
double m,m1,q,q1,x,y;
cout<<"Inserisci la m della prima retta: ";
cin>>m;
cout<<"Inserisci la q della prima retta: ";
cin>>q;
cout<<"Inserisci la m della seconda retta: ";
cin>>m1;
cout<<"Inserisci la q della seconda retta: ";
cin>>q1;
if ((m == m1) || (q != q1))
cout<<"Rette parallele e distinte";
else if ((m == m1) || (q == q1))
cout<<"Rette coincidenti";
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;
system("PAUSE");
}

marko.fatto
08-11-2007, 17:46
metti tutto il resto in un else
else
{
x = -(q-q1)/(m-m1);
y = m*x+q;
cout<<"Punto di intersezione = ("<< x <<","<< y <<")"<<endl;
}

vizzz
08-11-2007, 17:48
negli if...
al posto di and metti ||


sbagliato! and -> && :)

marko.fatto
08-11-2007, 18:07
sbagliato! and -> && :)

vero :doh: