Analizzare sequenza di numeri c++

di il
20 risposte

Analizzare sequenza di numeri c++

Salve ragazzi ho bisogno di una mano, ho un importante esame di programmazione c++
il testo dell'esercizio dice: data una sequenza (non si sa di quanti numeri) se è crescente inserire nella variabile x il valore 1, altrimenti inserire in valore 0.
io ho provato a svolgerla ma quando inserisco i numeri: 2 3 6 5 4 3 2 mi da come risultato 1 (ovvero crescente) credo che il problema sia che il codice che inserisco analizza solo i primi numeri.. qualcuno può spiegarmi come devo fare??? vi prego
int i,t1,t2,x;

cin >> t1;
cin >> t2;
if (t1 < t2)
{
x = 1;
}
else if (t1 > t2)
{
x = 0;
}
while (t2 !=0)
{
t1 = t2;
cin >> t2;
if (x > 0)
{
if (!(t1 < t2))
{
x = 0;
}
}
else if (x < 0)
{
if (!(t1 > t2))
{
x = 0;
}
}
}

20 Risposte

  • Re: Analizzare sequenza di numeri c++

    Intanto usa i tag code per il codice
  • Re: Analizzare sequenza di numeri c++

    int i,t1,t2,x;
    
    cin >> t1;
    cin >> t2;
    if (t1 < t2)
    {
    x = 1;
    }
    else if (t1 > t2)
    {
    x = 0;
    }
    while (t2 !=0)
    {
    t1 = t2;
    cin >> t2;
    if (x > 0)
    {
    if (!(t1 < t2))
    {
    x = 0;
    }
    }
    else if (x < 0)
    {
    if (!(t1 > t2))
    {
    x = 0;
    }
    }
    }
  • Re: Analizzare sequenza di numeri c++

    Complimenti per l'indentazione!
  • Re: Analizzare sequenza di numeri c++

    Io ho esposto un quesito e speravo di trovare una risposta o almeno poter ragionare in merito ad un mio dubbio, ma a quanto pare si inviano risposte a caso su questo forum
  • Re: Analizzare sequenza di numeri c++

    La questione è che senza indentazione non c'è proprio modo di ragionare su quel codice. Ovvero non si capisce nulla. Quindi le polemiche non servono nulla.
  • Re: Analizzare sequenza di numeri c++

    Io non sto facendo nessuna polemica. Siccome sono una nuova iscritta non so bene come formulare le domande, quindi non mi sembrava opportuno ironizzare sulla questione ma consigliarmi come rendere agevole la comprensione.
  • Re: Analizzare sequenza di numeri c++

    Hai detto "sì inviano risposte a caso" e questa è polemica. Se indenti correttamente si ragiona altrimenti già è abbastanza tardi... buonanotte
  • Re: Analizzare sequenza di numeri c++

      int i,t1,t2,x;
    
           cin >> t1;
           cin >> t2;
          if (t1 < t2)
          {
               x = 1;
          }
          else if (t1 > t2)
           {
            x = 0;
           }
     while (t2 !=0)
       {
             t1 = t2;
              cin >> t2;
              if (x > 0)
               {
                           if (!(t1 < t2))
                             {
                                   x = 0;
                             }
               }
                      else if (x < 0)
                        {
                               if (!(t1 > t2))
                              {
                                      x = 0;
                              }
                        }
      }   
  • Re: Analizzare sequenza di numeri c++

    Quando si interrompe la sequenza di input? Dal codice mi sembra di capire quando si inserisce uno zero, ma a questo punto la domanda sorge spontanea: lo zero va analizzato come parte della sequenza?
  • Re: Analizzare sequenza di numeri c++

    No non si dovrebbe contare, lo uso soltanto per poter uscire dal ciclo
  • Re: Analizzare sequenza di numeri c++

    Ho rifatto il codice utilizzando questa volta il ciclo for e analizzando punto punto sembra essere giusto, l'unica cosa che non so come fare è: come escludere quello 0 che mi permette di chiudere il ciclo, dalla verifica di (t1<t2). vi invio il codice che ho fatto ora
    
    #include <iostream>
    using namespace std;
    int main()
    {
    	int x=-1, t1, t2,i;
    	cin >> t1;
    	t2=t1;
    	cin >> t2;
    	if (t1 < t2)
    	{
    		x = 1;
    	}
    	
    	for (i=3;t2!=0;i++)
    	{
    		t1=t2;
    		cin >> t2;
    
    		if (x > 0)
    		{
    			if (!(t1 < t2))
    			{
    				x = -1;
    			}
    		}
    		else if (x < 0)
    		{
    			if (!(t1 > t2))
    			{
    				x = 1;
    			}
    		}
    	}
    	
    	
    	return 0;
    } 
  • Re: Analizzare sequenza di numeri c++

    Secondo me ti stai complicando inutilmente la vita...

    Il mio consiglio è di lasciar perdere quel codice e ragionare diversamente:
    - innanzitutto se hai un minimo di dimestichezza con le espressioni logiche, ti faccio notare che
    x = t1 <= t2;
    coincide con
    if(t1 <= t2)
    {
        x = 1;
    }
    else
    {
        x = 0;
    }
    - quindi supponendo che la sequenza debba contenere minimo due elementi possiamo impostare il problema nel seguente modo:
    int main()
    {
    	int t1;
    	int t2;
    	cin >> t1;
    	cin >> t2;
    	int x = t1 <= t2;
    	while(t2)
    	{
    	    ...
    	}
    	cout << x;
    }
    a questo punto per completare il programma bastano 4 righe di codice da inserire all'interno del while.
    Ragionaci un po' e fammi sapere!
  • Re: Analizzare sequenza di numeri c++

    Eccomi ho fatto così, va bene?
    #include <iostream>
    using namespace std;
    int main()
    {
    	int t1, t2;
    	cin >> t1;
    	cin >> t2;
    	int x = t1 <= t2;
    	while (t2 != 0)
    	{
    		t1 = t2;
    		cin >> t2;
    		if (x == 1)
    		{
    			x = t1 <= t2;
    		}
    		
    	}
    	return 0;
    } 
  • Re: Analizzare sequenza di numeri c++

    Va bene, ma se vuoi che lo 0 non venga considerato come parte della sequenza devi aggiungere qualcosa nella condizione dell'if.
Devi accedere o registrarti per scrivere nel forum
20 risposte