Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [C] spiegazione codice

  1. #1

    [C] spiegazione codice

    Salve. Ho iniziato da poco a programmare e devo fare degli esercizi in vista dell'esame.
    A partire da questi due codici devo capire cosa mi esce:
    PRIMO CODICE:
    codice:
    int g(int n)
    int g(int n) {
    int i;
    for (i=2;i<n && n%i;i++)
    ;
    if (i==n) return 1;
    return 0;
    }
    SECONDO CODICE:
    codice:
    int f(int n) {
    int c=0, i, j;
    for (i=1;i<=n;i++)
    if (n%i==0)
    if (g(i) != 0) c++;
    return c;
    }
    In particolare, non ho capito nel primo codice cosa serve la funzione for se poi non ho niente che giustifichi questa funzione... Poi non ho capito a cosa serve nella condizione del for "n%i"... Non ha senso...
    La seconda funziona non l'ho capita affatto...
    Grazie mille in anticipo

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: [C] spiegazione codice

    Originariamente inviato da Superandri91
    In particolare, non ho capito nel primo codice cosa serve la funzione for se poi non ho niente che giustifichi questa funzione...
    for NON È una funzione ma un costrutto che permette di creare un ciclo. Fa parte delle basi del linguaggio.

    Originariamente inviato da Superandri91
    Poi non ho capito a cosa serve nella condizione del for "n%i"... Non ha senso...
    La seconda funziona non l'ho capita affatto...
    Grazie mille in anticipo
    % è l'operatore modulo, restituisce cioè il resto della divisione intera tra i due operandi. Ha perfettamente senso, basta studiare E anche questo fa parte delle basi del linguaggio...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Non puoi provare a compilarle e vedere cosa ti esce?
    Comunque scrivo ad esempio:
    codice:
    4%2
    Mi viene restituito il resto,che in questo caso e' zero.
    Il for del primo esercizio e' vuoto,probabilmente lo scopo e' arrestare il programma finche' non si verifica una condizione (vedi cosa c'e' all' interno del for,qual'e' la condizione di uscita?).

  4. #4
    so benissimo cosa fa il for e cosa fa n%i... le ho studiate! ma nel for non ho capito perchè non c'è niente (dopo le varie condizioni c'è uno spazio vuoto) e nel secondo codice non ho capito proprio niente di quello che fa!

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Superandri91
    so benissimo cosa fa il for e cosa fa n%i... le ho studiate! ma nel for non ho capito perchè non c'è niente (dopo le varie condizioni c'è uno spazio vuoto) e nel secondo codice non ho capito proprio niente di quello che fa!
    Dopo il for c'è un ; che in C indica l'istruzione vuota. In pratica il corpo di quel ciclo è vuoto, cosa perfettamente lecita.

    Se indentassi si capirebbe meglio...

    codice:
    int g(int n) {
      int i;
      
      for (i = 2; i < n && n % i; i++)
        ;
    
      if (i == n) 
        return 1;
    
      return 0;
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    non so proprio cosa voglia dire indentare zio! comunque mi informerò! a cosa serve un ciclo for vuoto? :O

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Superandri91
    a cosa serve un ciclo for vuoto? :O
    È un esercizio, non deve necessariamente avere un'utilità... In certe situazioni comunque può essere utile.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Originariamente inviato da Superandri91
    non so proprio cosa voglia dire indentare zio!
    ^2 (sarebbero due facepalm, e i facepalm scalano esponenzialmente)
    comunque mi informerò! a cosa serve un ciclo for vuoto? :O
    In questo specifico caso ad incrementare la variabile i.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Alla fine di questo ciclo
    codice:
    for (i = 2; i < n && n % i; i++)
        ;
    L' unica variaible che sarà cambiata sarà i,quindi lo scopo è sicuramente di cambiare i.
    Con che criterio?Di incrementarlo di uno finchè è minore di n e da resto nella divisione con i.

  10. #10
    Originariamente inviato da ramy89
    Alla fine di questo ciclo
    codice:
    for (i = 2; i < n && n % i; i++)
        ;
    L' unica variaible che sarà cambiata sarà i,quindi lo scopo è sicuramente di cambiare i.
    Con che criterio?Di incrementarlo di uno finchè è minore di n e da resto nella divisione con i.
    OOO! Ci voleva cosi tanto? Grazie mille ramy89 per l'aiuto! Ora ho capito! Nel secondo codice cosa vuol dire g(i)? dove lo prende 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.