Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C#]Problema con le iterazioni
Forum - C# / VB.NET - [C#]Problema con le iterazioni

Avatar
tuttodiMC (Normal User)
Expert


Messaggi: 318
Iscritto: 29/10/2012

Segnala al moderatore
Postato alle 14:20
Sabato, 10/08/2013
Salve a tutti in questi giorni sto eseguendo i problemi di project euler, ma non me ne esce uno. Adesso, al terzo problema ho riscontrato che Mono (sto su Ubuntu) non mi esegue le iterazioni. Di seguito il codice del terzo problema con il relativo output:

Codice sorgente - presumibilmente C++

  1. public static void Problema3()
  2. for (long i = 1; i == numero - 1; i++) {
  3.                                 Console.WriteLine("{0}", i);
  4.                                 if (numero % i == 0) {
  5.                                         maxdivisore = i;
  6.                                         for (long q = 2; q == i-1; q++) {
  7.                                                 if (i % q == 0) {
  8.                                                         maxdivisore = q;
  9.                                                 }
  10.                                         }
  11.                                 }
  12.                         }
  13.                         Console.WriteLine("{0}", maxdivisore);
  14. }



Output:

0

Press any key to continue...


Da dove deriva il problema? Aiutatemi non so che fare! Neanche nel metodo main(string[] args) mi esegue  le iterazioni. C'è soluzione o devo cambiare il linguaggio con cui eseguo glii esercizi?


Assembly is the way
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 14:53
Sabato, 10/08/2013
Nel tuo codice il ciclo for viene eseguito solamente se i è uguale a numero -1. Stessa cosa per il secondo for che viene eseguito solo se q è uguale a i-1.

Ultima modifica effettuata da dmr il 10/08/2013 alle 14:54


Principali interessi: Compilatori e generatori di parser.
PM Quote
Avatar
tuttodiMC (Normal User)
Expert


Messaggi: 318
Iscritto: 29/10/2012

Segnala al moderatore
Postato alle 19:27
Sabato, 10/08/2013
Non funzione neanche così:

Codice sorgente - presumibilmente Delphi

  1. for (long i = 1; i < numero; i++) {
  2.                                 if (numero % i == 0) {
  3.                                         for (long q = 2; q < i; q++) {
  4.                                                 if (i % q == 0) {
  5.                                                         maxdivisore = q;
  6.                                                 }
  7.                                         }
  8.                                 }
  9.                         }
  10.                         Console.WriteLine (maxdivisore.ToString());



Assembly is the way
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 21:29
Sabato, 10/08/2013
La variabile numero l'hai inizializzata?


Principali interessi: Compilatori e generatori di parser.
PM Quote
Avatar
Ultimo (Member)
Expert


Messaggi: 513
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 13:10
Lunedì, 12/08/2013

O.o'


Ultimo (Hai voluto la bicicletta ? ....)

Studiare LINQ, WPF, ASP.NET MVC, Entity Framwork, C#, Blend, XAML, Javascript, HTML5, CSS .....(tanta roba)

https://www.dropbox.com/s/c2aots5x4urgbhf/setup_game_sudoku ...
PM Quote
Avatar
tuttodiMC (Normal User)
Expert


Messaggi: 318
Iscritto: 29/10/2012

Segnala al moderatore
Postato alle 14:16
Lunedì, 12/08/2013
Si è inizializzata a 6000000000 o qualcosa di simile. Il problema però lo riscontro solo su Mono. Su Visual studio il ciclo scritto come il primo da me postato sarebbe funzionato.


Assembly is the way
PM Quote
Avatar
Dario DF (Member)
Newbie


Messaggi: 19
Iscritto: 19/06/2013

Segnala al moderatore
Postato alle 18:38
Lunedì, 12/08/2013
http://marc.info/?l=mono-bugs&m=102184390401625&w=1

Una variabile non inizializzata su Mono risulta in un numero "casuale" in memoria quindi potrebbe essere differente a ogni esecuzione

PM Quote
Avatar
tuttodiMC (Normal User)
Expert


Messaggi: 318
Iscritto: 29/10/2012

Segnala al moderatore
Postato alle 14:48
Martedì, 13/08/2013
Beh primo io l'ho inizializzata e non è una variabile ma un costante. Secondo non capisco perché uno dei difetti di C e C++ con le variabili debba essere riportato in C# quando è tanto meglio con Visual Studio che le variabili non inizializzate sono effettivamente vuote!! Comunque ho capito che devo per forza usare il simbolo < per poter far arrivare il contatore al numero desiderato.


Assembly is the way
PM Quote
Avatar
dmr (Normal User)
Pro


Messaggi: 141
Iscritto: 04/01/2012

Segnala al moderatore
Postato alle 20:19
Martedì, 13/08/2013
Ma va ora o no?


Principali interessi: Compilatori e generatori di parser.
PM Quote