Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Utilizzo corretto del ciclo for

    Ciao,
    studio ingegneria e sono alle prese con l'esame di informatica.
    Purtroppo ho alcuni problemi con i ragionamenti riguardanti i cicli for. Ovvero non riesco bene a scrivere in linguaggio corretto. Vorrei sapere se qualcuno ha idee per risolvere il seguente programma VB6 che:

    -Legga in input un nmero intero (n) e crei un vettore composto da n elementi ognuno dei quali è un numero casuale compreso tra 50 e 150. (questo sono riuscito a farlo tramite max min e rnd)

    -Calcoli la somma degli elementi del vettore la cui posizione (nella numerazione degli elementi del vettore) è un numero primo. (qui ho provato diversi ragionamenti con i cicli for ma none è venuto fuori niente).

    -Visualizzi quanti elementi sono stati sommati ( questo dovrei riuscire a farlo mediante contatore esempio p=p+1 ma non riuscendo a fare il punto precedente non ho la possibilità di mettere il contatore).

    -Normalizzi il vettore composto dagli elementi la cui posizione è numero primo( riesco a fare anche questo, cioè tramite l'algoritmo della normalizzazione posso normalizzare il vettore ottenuto al punto 2).

    Il pratica il mio problema è riuscire a proporre un algoritmo che che calcoli la somma degli elementi di un vettore la cui posizione (nella numerazione deglie elementi del vettore) è un numero primo. Cioè devo dedurre la posizione numero primo degli elementi di un vettore e sommarli!!!
    G.G.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Okay, perché non cominci con qualche idea di codice ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    perchè le mie idee codice non funzionano.

    iflag=0
    for i =1 to n
    for j= 1 to n-1
    if i mod j =o then iflag =1
    next j
    A(i) = B(j)
    j=j+1
    next i
    G.G.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma in questo forum nessuno scriverà tutto il codice per te ... mentre se proponi qualcosa, si vede di gli errori ... ovviamente, qualcosa di sensato, magari commentato per farci capire cosa volevi fare e cosa non sei riuscito ancora a fare ...

    Del resto, se studi ingegneria e devi affrontare informatica, dovrai pure averla qualche idea ... altrimenti come vai ad un esame del genere?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Ok, mi chiedo perchè non si possa aiutare a comprendere il linguaggio del programma. Se non capisco una cosa da principio come posso abbozzare qualcosa? Ho detto che alcuni passaggi dell'esercizio sono riuscito a risolverli mediante i giusti algoritmi e volevo proporre questo esercizio perchè non riesco a farlo. Non vedo cosa ci sia di male. Comunque chiedo scusa, ho sicuramente sbagliato forum. Mi faccio dare una mano da qualcuno che voglia darla e che abbia un concetto utilitario della realtà dei forum.
    G.G.

  6. #6
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da nautica91
    Ok, mi chiedo perchè non si possa aiutare a comprendere il linguaggio del programma. Se non capisco una cosa da principio come posso abbozzare qualcosa? Ho detto che alcuni passaggi dell'esercizio sono riuscito a risolverli mediante i giusti algoritmi e volevo proporre questo esercizio perchè non riesco a farlo. Non vedo cosa ci sia di male. Comunque chiedo scusa, ho sicuramente sbagliato forum. Mi faccio dare una mano da qualcuno che voglia darla e che abbia un concetto utilitario della realtà dei forum.
    ciao, il punto credo che sia che non si tratta di mostrarti qualcosa di nuovo del linguaggio di programmazione, ciò che ti occorre per risolvere il quesito hai mostrato gia di conoscerlo (cicli, operratori...), si tratta di metterli insieme, credo che questo sia esattamente lo spirito dell'ingegneria... mettere insieme le conoscenze facendo lavorare il cervello.

    seppure noi dovessimo aiutarti, in questo caso lo faremo a tuo discapito, nel senso che l'esercizio ti serve proprio ad allenare la mente, anche perchè non vedo uno scenario di reale applicazione qui.

    credimi, non è che non ti vogliamo aiutare, anzi, ma il modo migliore per farlo e quello di lasciarti far lavorare il cervello.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da nautica91
    Ok, mi chiedo perchè non si possa aiutare a comprendere il linguaggio del programma.
    Per quello non servono i forum ma un tutor ...

    In un forum si fa una domanda precisa a cui si risponde.

    Se non capisco una cosa da principio come posso abbozzare qualcosa?
    Per questo c'è l'università ... il forum non è un'università ...

    Ho detto che alcuni passaggi dell'esercizio sono riuscito a risolverli mediante i giusti algoritmi e volevo proporre questo esercizio perchè non riesco a farlo.
    L'esercizio lo proponi con una tua idea di soluzione. Se non proponi alcun tentativo di soluzione ma solamente il problema, non va bene.

    Non vedo cosa ci sia di male. Comunque chiedo scusa, ho sicuramente sbagliato forum. Mi faccio dare una mano da qualcuno che voglia darla e che abbia un concetto utilitario della realtà dei forum.
    Auguri.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    ok ho afferrato. Adesso mi esprimo correttamente secondo regolamento.

    Parto dalla dichiarazione delle variabili nel seguente modo:

    Dim A() As Single [è il vettore dove metterò gli elementi casuali]
    Dim N As Integer [è il numero in input degli elementi che compongono il vettore]
    Dim I As Integer [è il numero mediante il quale posso determinare tramite opportuna operazione mod inerente al resto quali sono i numeri primi]
    Dim b() As Single [è il vettore che sarà formato dagli elementi primi del vettore A()]
    Dim somma As Integer [ è la somma degli elementi che compongono il vettore b()]

    Inizio mettendo in input un numero n-esimo di elementi del vettore che deve essere maggiore di zero, nel caso in cui il numero sia minore di zero entra in gioco un msgbox che specifica che vi è un errore) e uso il loop affinchè la condizione iniziale sia verificata.

    N = InputBox("inserire n° elementi")
    Do While N <= 0
    MsgBox " n deve essere maggiore di zero"
    N = InputBox("inserire n°elementi")
    Loop

    Una volta inserito il valore esatto di n faccio un redim per "caricare" nuovamente i vettori.
    ReDim A(N)
    ReDim b(N)

    Utilizzo ora un ciclo for per generare numeri casuali. inserisco anche randomize per far in modo che i numeri siano più casuali possibili.

    Randomize

    For I = 1 To N
    A(I) = 50 + Int(Rnd * 100)
    Text1.Text = Text1.Text & A(I) & vbNewLine
    Next I
    do in output tutto ad un text.

    fin qua il mio programma è abbastanza chiaro.
    Adesso so che I rappresenta la posizione i-esima. quindi devo prendere dei valori i-esimi primi e per fare questo posso utilizzare la funzione resto mod. Ovvero stabilisco inizialmente un iflag o un ctrl binario che sia =1 o =0
    facendo i mod j ottengo in resto che è uguale a zero e tramite un ciclo if gli assegno un ctrl=1. Affinche il numero sia primo deve verificarsi che il resto sia diveso da zero e dunque deve essere associato un ctrl=0.

    For I = 1 To N
    ctrl= 0
    For j = 2 To I - 1
    If I Mod j = 0 Then ctrl = 1
    Next j

    If ctrl=0 then [...]
    m=m+1



    somma = somma + b(m)
    Text2.Text = Text2.Text & b(m) & vbNewLine
    End If
    Next I

    è proprio qui che non riesco a capire come inserire i valori del ctrl=0, cioè i valori che si trovano in posizione i-esima risultanti numeri primi, in un vettore B(m). Cioè vorrei sapere con quale linguaggio posso prendere quei valori a cui ho associato ctrl=0 e ficcarli in quello schifoso vettore b().
    G.G.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da nautica91
    ok ho afferrato.
    Bene ...

    ... come inserire i valori del ctrl=0, cioè i valori che si trovano in posizione i-esima risultanti numeri primi, in un vettore B(m)
    Se non ho capito male ti servirebbe un

    codice:
    If ctrl=0 Then 
       m=m+1
       b[m]=A[I]
       ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    ottimo. burocrazia a parte.
    G.G.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.