GTA-Expert Forum: Varie Domande Linguaggio C - GTA-Expert Forum

Salta al contenuto

  • (3 Pagine)
  • +
  • 1
  • 2
  • 3
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

Varie Domande Linguaggio C

#21 L'utente è offline   Kraff 

  • Vice
  • Gruppo: Moderatori
  • Messaggi: 9636
  • Iscritto il: 17/01/07
  • Provenienza:Crema
  • GTA Preferito:GTA: San Andreas

Inviato il 03 marzo 2013 - 11:53

x=1;

do {
  x++;
} while (x<10);


In pratica si ripete il ciclo fino a quando la condizione rimane vera. In questo caso continuiamo ad aumentare x fino a quando raggiunge il 10.
0

#22 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 11:54

se mi dai qualche minuto provo a scriverne uno.... Vuoi anche i commenti o puoi fare a meno?

edit:... lui vuole while non do while anche se e' piu' o meno la stessa cosa....

Messaggio modificato da Logitech il 03 marzo 2013 - 11:57

0

#23 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 marzo 2013 - 11:56

Preferirei averli se non ti dispiace :sese:

Kraff non ho capito molto, cioè ho capito cosa fa ma non la sintassi...
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#24 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 12:02

#include <stdio.h>
#include <conio.h>
main()
{
    int x=0;
    /**Guardia del while sempice non composta. Sino a quando x e' minore di 10 viene incrementato di 1**/
    while(x<10)
        x+=1;
}


Per spiegarlo come di deve servirebbe una tavola di traccia comunque il ciclo si ripete sino a quando la guardia non diventa falsa. In questo caso, nel momento in cui x diventera' 10 la guardia sara' falsa perche' la variabile non e' piu' minore di 10 e si uscira' dal ciclo

Messaggio modificato da Logitech il 03 marzo 2013 - 12:03

0

#25 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 marzo 2013 - 12:14

Ok ho capito :sese:

Ora mi servirebbe un esempio con la funzione Switch Case!
Di questa funzione non so niente, ne a cosa serve ne come si usa...
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#26 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 12:16

E' una funzione a selezione multipla. Provo a scriverti un codice facile...
0

#27 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 03 marzo 2013 - 12:18

++ e -- rispettivamente incrementano e decrementano il valore di una variable, di qualunque tipo (nativo) essa sia. Possono essere posti come suffisso o prefisso di una variabile. Quando vengono usati come suffisso, la variabile viene incrementata/decrementata successivamente all'istruzione in cui viene utilizzata; come prefisso, invece, la variabile viene incrementata/decrementata prima che venga utilizzata nell'istruzione in cui è inserita. Ti faccio alcuni esempi:

int varA, varB, varC;

varA = 1;
varB = 2;
varC = varA++ + varB; // 3

In questo caso varC è dato dalla somma di varA e varB e poi varA viene incrementato. Il codice corrisponde a:

int varA, varB, varC;

varA = 1;
varB = 2;
varC = varA + varB; // 3
varA += 1;

Nel caso del prefisso:

int varA, varB, varC;

varA = 1;
varB = 2;
varC = ++varA + varB; // 4

Ora, varA viene incrementato e varC è dato sempre dalla somma di varA e varB. Questo è come il compilatore interpreta il codice:

int varA, varB, varC;

varA = 1;
varB = 2;
varA += 1;
varC = varA + varB; // 4

Se tale operatore viene usato singolarmente in una linea, produrrà lo stesso risultato sia se viene usato come suffisso che come prefisso. Esempio:

int varA;

varA = 0;
varA++; // 1
++varA; // 2

La struttura di controllo while esegue determinate istruzioni solo se la/e condizione/i è/sono vera/e, altrimenti esce dal ciclo. Esempio:

int varA;

varA = 10;

while(varA > 0) {
    varA--; // varA -= 1
}

Finché varA è maggiore di 0, il contenuto del while viene eseguito. In questo caso, il ciclo ha eseguito 10 iterazioni.

Il costrutto do-while è molto simile al suo parente while. Anziché verificare la "verità" o "falsità" di una o più condizioni prima di eseguire le istruzioni contenute in esso, il controllo avviene successivamente. Esempio:

int varA;

varA = 10;

do {
    varA--; // varA -= 1
} while(varA > 0);

Come vedi, prima vengono eseguite le istruzioni contenute all'interno, poi viene controllata la veridicità o meno della condizione. Contrariamente al while, il ciclo ha compiuto 9 iterazioni.

switch-case è anch'essa una struttura di controllo. Può essere definita come una concatenazione non visibile di più costrutti if (in realtà il controllo avviene comunque una sola volta). Il suo funzionamento è intuibile a vista:

int varA;

varA = 3;

switch(varA) {
    case 1:
        varA = 3;
        break;
    case 2:
        varA = 4;
        break;
    default:
        varA = 5;
        break;
}

Visto che varA assume il valore 3 prima dell'esecuzione dello switch-case, nessun case soddisfa il risultato 3, per cui verranno eseguite le istruzioni poste al di sotto della clausola default fino all'istruzione break, che non fa altro che uscire dalla struttura di controllo. varA avrà quindi valore 5. Nota: il break dell'ultimo case (default incluso) può essere omesso, dato che il costrutto è giunto al termine.

Nei tuoi esercizi, ho notato che dimentichi di inizializzare la variabile che verifichi in un secondo momento. E' d'obbligo assegnare un valore ad una variabile prima di controllarla, altrimenti potrebbe assumere un valore indefinito. Inoltre, vedo che confondi i vari operatori. Spero che la lista seguente possa aiutarti:

  • Comuni:
    • Aritmetici:
      • =, assegnazione;
      • + (+=), addizione;
      • - (-=), sottrazione;
      • * (*=), moltiplicazione;
      • / (/=), divisione;
      • % (%=), modulo (resto o quoziente);
      • ++, incremento;
      • --, decremento

    • Relazionali:
      • ==, uguaglianza;
      • <, minore di;
      • >, maggiore di;
      • != (<>), diverso

    • Logici:
      • !, negazione;
      • &&, congiunzione;
      • ||, disgiunzione

  • Poco comuni:
    • Binari:
      • << (<<=), spostamento (o rotazione, per valori signed) bit verso sinistra;
      • >> (>>=), spostamento (o rotazione, per valori signed) bit verso destra;
      • & (&=), prelevamento bit;
      • | (|=), settaggio bit;
      • ^ (^=), inversione bit;
      • ~, inversione qualunque bit

Messaggio modificato da Wesser il 03 marzo 2013 - 23:19

Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#28 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 12:28


#include <stdio.h>
#include <conio.h>
main()
{
    int x=1;
    switch(x)/**In base al valore che assumera' la var. X (o qualunque altra variabile voglia) si "entrera" in un case diverso**/
    {
        case 0: /** Se x ha valore 0 si entra qui altrimenti in 1, 2 o qualunque altro case tu abbia "definito"**/
                break;/**Questo serve ad uscire dal case e a non eseguire le op. presenti negli altri case**/
        case 1: printf("OK");
                break;
        case 2: /**In case 1 c'e' una printf ma si puo' utilizzare qualunque cosa e fare qualunque azione o visualizzazione
                e' come se in ogni case ci fosse un programma a se stante*/
                break;
   	default: /**Se il valore di x non rientra in un valore "ammisibile" per gli altri case, si "entra" in default e si 
                 	eseguono le varie op che hai deciso in caso di valore "non corretto".
             	break;
 /** default si puo' decidere se usarlo o meno. Sta al programmatore decidere**/

}
}



Riesci a capirlo? Altrimenti provo a scriverlo in un altro modo....

Messaggio modificato da Logitech il 03 marzo 2013 - 13:03

0

#29 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72430
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 03 marzo 2013 - 12:51

Visualizza MessaggiFederico Ronaldo, il 03 marzo 2013 - 12:14 ha detto:

Di questa funzione non so niente, ne a cosa serve ne come si usa...


Ma non ce l'avete un libro? :gh:

Logitech per completezza avresti dovuto mettergli anche il default così capisce dove va a finire se non entra in nessuno dei case :ahsisi:
Wesser l'ha spiegato molto bene comunque, quindi Fede dovrebbe aver capito tutto :ghgh:
0

#30 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 12:55

Visualizza MessaggiFabio206, il 03 marzo 2013 - 12:51 ha detto:

Visualizza MessaggiFederico Ronaldo, il 03 marzo 2013 - 12:14 ha detto:

Di questa funzione non so niente, ne a cosa serve ne come si usa...


Ma non ce l'avete un libro? :gh:

Logitech per completezza avresti dovuto mettergli anche il default così capisce dove va a finire se non entra in nessuno dei case :ahsisi:


e' vero non c'ho pensato... ora lo aggiungo..
0

#31 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 marzo 2013 - 12:59

Visualizza MessaggiFabio206, il 03 marzo 2013 - 13:51 ha detto:

Visualizza MessaggiFederico Ronaldo, il 03 marzo 2013 - 12:14 ha detto:

Di questa funzione non so niente, ne a cosa serve ne come si usa...


Ma non ce l'avete un libro? :gh:


No, il libro o meglio "Manuale" come ho detto prima è completamente inutile.
Il professore inoltre insegna malissimo e quindi mi ritrovo qui a chiedervi aiuto e a chiedere a me stesso che cazzo ci faccio in questa scuola di merda.

Comunque vi ringrazio tutti per l'aiuto, più tardi analizzerò i codici perchè adesso sto iniziando a studiare Inglese.
Probabilmente più tardi creerò dei programmini per vedere se ho fissato i concetti, tornate nel topic tra qualche ora per vedere se ci sono nuovi messaggi :sese:

Grazie a tutti...
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#32 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 03 marzo 2013 - 13:53

Bah, qual è la ragione per cui reputi il vostro "manuale" inutile? Anch'io ho avuto un professore incompetente al massimo, però ho aperto libro e solo grazie a me stesso ho acquisito buone conoscenze in merito alla programmazione. Vedo la tua come una sorta di chiusura mentale verso l'informatica. :sese:
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#33 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 marzo 2013 - 14:03

In poche parole il metodo di insegnamento del mio professore è questo:

- Lui in 30 minuti spiega qualcosa sul linguaggio C
- Andiamo in laboratorio per fare esercizi.

Il metodo è buono, però il problema è che gli esercizi che ci da in laboratorio non sono solo su quello che ha spiegato ma anche su altre cose che noi non conosciamo...se gli chiediamo perchè ha fatto quella determinata cosa lui risponde "Non è importante tranquilli".
Poi al compito ci sono solamente quelle cose che non sono importanti :gh: cioè ma vaffanculo boh.
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#34 L'utente è offline   Logitech 

  • Delinquente
  • Gruppo: Utenti
  • Messaggi: 433
  • Iscritto il: 23/02/11
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 15:30

Figurati che noi abbiamo il libro sul C++ ma stiamo facendo il C Immagine Postata......

e ai compiti in classe ci da 2 ore mentre per fare i problemi che ci assegna ci vogliono anche 2gg......

Messaggio modificato da Logitech il 03 marzo 2013 - 15:38

0

#35 L'utente è offline   Lokrath 

  • Assassino
  • Gruppo: Moderatori
  • Messaggi: 4156
  • Iscritto il: 03/04/10
  • ID Social Club:Lokrath
  • GTA Preferito:GTA: TLaD

Inviato il 03 marzo 2013 - 16:25

Faccio giusto notare una cosa:

Visualizza MessaggiFederico Ronaldo, il 03 marzo 2013 - 11:17 ha detto:

Ho fatto un piccolo esercizio per esercitarmi con l'IF...pare sia giusto...

int main(){
int A; 
printf("Inserisci un valore da assegnare ad A: "); 
scanf ("%f", &A);
---------->if (A=1)<------------------ 
{ 
printf("/nIl valore di A è 1"); 
}
else 
{
printf("/nIl valore di A non è 1"); 
}
return 0; 
}



Vorrei un esempio con il Ciclo While visto che non l'ho capito molto :sese:

A==1
Andava messa un'uguaglianza, non un'assegnazione.
( ͡° ͜ʖ ͡°)
0

#36 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 03 marzo 2013 - 16:37

Visualizza MessaggiWesser, il 03 marzo 2013 - 13:18 ha detto:

++ e -- rispettivamente incrementano e decrementano il valore di una variable, di qualunque tipo (nativo) essa sia. Possono essere posti come suffisso o prefisso di una variabile. Quando vengono usati come suffisso, la variabile viene incrementata/decrementata successivamente all'istruzione in cui viene utilizzata; come prefisso, invece, la variabile viene incrementata/decrementata prima che venga utilizzata nell'istruzione in cui è inserita. Ti faccio alcuni esempi:

int varA, varB, varC;

varA = 1;
varB = 2;
varC = varA++ + varB; // 3

In questo caso varC è dato dalla somma di varA e varB e poi varA viene incrementato. Il codice corrisponde a:

int varA, varB, varC;

varA = 1;
varB = 2;
varC = varA + varB; // 3
varA += 1;



Quindi alla fine varA = 2 giusto?
Perchè viene incrementato dopo la somma 1+2 = 3 e prima valeva 1...

EDIT: Thx Lok :sese:

Messaggio modificato da Federico Ronaldo il 03 marzo 2013 - 16:38

La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#37 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 03 marzo 2013 - 18:26

Sì. :sese:
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#38 L'utente è offline   chucky87 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1543
  • Iscritto il: 06/12/05
  • GTA Preferito:Sconosciuto

Inviato il 03 marzo 2013 - 18:43

come diavolo fa un manuale ad essere inutile :\ anche se fosse ci sono miliardi di appunti in giro per la rete :D
0

#39 L'utente è offline   Federico Ronaldo 

  • Esecutore
  • Gruppo: Utenti
  • Messaggi: 6543
  • Iscritto il: 02/08/10
  • ID PSN:-
  • Gamertag:Fedez360
  • ID Social Club:-
  • Provenienza:Sardegna
  • GTA Preferito:GTA: Vice City

Inviato il 04 marzo 2013 - 13:58

Verifica affrontata con successo :qwe:

Risposti in totale 8 / 10 :sese:
La Firma non deve superare i 600 pixel di larghezza, i 250 pixel di altezza e i 90KB di peso.

[center][img]https://31.media.tumblr.com/0f68b214e263d129fcc3a2d58b490e2b/tumblr_inline_n0k2sfMxju1rvco8p.gif[/img][/center]
0

#40 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 04 marzo 2013 - 14:24

Dove hai sbagliato?
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

  • (3 Pagine)
  • +
  • 1
  • 2
  • 3
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi