cts_i_vars

download cts_i_vars

of 17

Transcript of cts_i_vars

  • Constants

    3.14159

    3.14159f

    12

    'a'

    Constant double, t un punt.

    Constant int, sense punt.

    Constant char, amb apstrof.

    Constant float, t punt i f.

  • Constants enteres

    Podem afegir el sufix U per indicar sense signePodem afegir el sufix L per indicar llargaPodem afegir el prefix 0 (i dgits entre 0 i 7) per indicar octal (en base 8)

    Podem afegir el prefix 0x o 0X (dgits entre 0 i 9 i A-F) per indicar hexadecimal (en base 16)

    325U 123456789UL 01234 0x46def

  • Constants reals

    Pot tenir dues parts: mantissa (obligatria) i exponent (enter,opcional) separades per e (o E)0.4e3 (0.4 10)

    12.56E31 (12.56 10)

    Si afegim el sufix f, ser float10e2 = 1010 = 1000 100

  • Constants carcter i cadena de carcters

    nic carcter entre apstrofs: 'A', '7', '='Tamb smbols especials: '\n' '\0' '\"' '\''

    Seqencia de carcters entre cometes acabades en '\0':"Aixo es un salt de linia:\n"Ull! "A" ('A' '\0') no s el mateix que 'A'

  • VariablesQuan es fa la declaraci, sassigna espai de memria per a guardar valors.

    Dels noms usats en diem variables. Una variable t tres propietats: un lloc a la memria on guardar el seu valor, el tipus de dada guardat en el lloc reservat a la memria, i el nom amb el que ens referim al lloc a la memria.

    Exemples de declaracions de variables:

    int x;int v, w, y;

  • Tipus de dades numriques

    Hi ha diversos tipus de dades numriques: int, float i double. Els int poden qualificar-se amb long i unsignedExemples de declaracions de variables :

    int i, j, k;float numeroUn, numeroDos;long granEnter;double granNumero;

    Quan es declara la variable, tamb es pot inicialitzar. Per exemple, inicialitzarem les variables recompte i altura a 10 i 34 aix:

    int recompte = 10, altura = 34;

  • Precisi dels tipus de dades (32bits)

    Els tipus de dades es guarden a memria amb diferents precisions.

    Tipus valor min maxint enter -32768 32767unsigned enter 0 65535long enter -2147483648 2147483647unsigned long enter 0 4294967295float real -3.40282347e+38 3.40282347e+38double real -1.79769313486231570e+308 -1.79769313486231570e+308char 0 255

  • Precisi dels tipus de dades (64bits)

    Tipus valor min maxint enter -2147483648 2147483647unsigned enter 0 4294967295long enter -9223372036854775806 9223372036854775807unsigned long enter 0 18446744073709551615float real -3.40282347e+38 3.40282347e+38double real -1.79769313486231570e+308 -1.79769313486231570e+308char 0 255

    Els tipus de dades es guarden a memria amb diferents precisions.

  • Instruccions dassignaci

    A una variable li donem (assignem) un valor utilitzant una instrucci dassignaci.

    La sintaxi s = ;

    Exemples:sum = primerNumero + segonNumero;

    promig = (un + dos + tres) / 3.0;

  • Declaraci i assignaci de tipus bsics

    Codi Estat de la memria

    Aint primerNumero, segonNumero;

    A. A. Es reserva espai a la memria.

    primerNumero

    segonNumeroBprimerNumero = 234;segonNumero = 87;

    int primerNumero, segonNumero;primerNumero = 234;segonNumero = 87;

    B. B. Es dna valor a les variables.

    234

    87

  • Assignaci de dades numriques

    Codi Estat de la memria

    int numero;numero = 237;numero = 35; numero

    A. A. Es reserva espai a la memria.

    B. B. Es dna el valor 237237 a numeronumero.

    237

    Aint numero;Bnumero = 237;

    Cnumero = 35;C. C. El valor 3535

    substitueix el valor anterior 237.237.

    35

  • Operadors aritmtics

    A C hi ha els segents operadors aritmtics.

    Aix s una divisi entera on sha truncat la part decimal.

  • Operadors aritmtics

    Com savalua lexpressix + 3 * y

    Resposta: x es suma a 3*y.

    Es determina lordre davaluaci segons unes regles de precedncia.

    Un operador amb precedncia ms alta savalua abans que un altre amb menor precedncia.

    Si dos operadors tenen la mateixa precedncia, per la majoria dels operadors, savalua lexpressi desquerra a dreta.

  • Regles de precedncia

    Ordre Grup Operador ReglaAlt Subexpressi () Savaluen

    primer. La ms endinada, abans. Al mateix nivell desquerra a dreta.

    Operadorunitari

    -, + En segon lloc

    Operadormultiplicador

    *, /, % En tercer lloc. Al mateix nivell desquerra a dreta

    Baix Operadoraddici

    +, - En ltim lloc. Al mateix nivell

  • Casting de tipus

    Si x s un float i y s un int, quin ser el tipus de dada de lexpressi?

    x * y

    La resposta s float. Lexpressi anterior es diu que s una expressi mixta.

    Els tipus de dades dels operands a les expressions mixtes es converteixen basant-se en unes regles de promoci. Les regles de promoci asseguren que el tipus de dada resultant duna expressi ser el mateix que el del operand que tingui ms precissi.

  • Casting explcit

    Enlloc de basar-nos en les regles de promoci, podem fer un casting explcit posant abans de loperand el tipus de dada segons aquesta sintaxi:

    ( )

    Exemple (float) x / 3

    (int) (x / y * 3.0)

    casting x a float i llavors dividir-lo per 3.

    Fer el casting del resultat de l expressi x / y * 3.0 to int.

  • Casting implcit

    A la segent expressi:double x = 3 + 5;

    El resultat de 3 + 5 s de tipus int. Per ja que la variable x s double, el valor 8 (tipus int) es promociona a 8.0 (tipus double) abans de ser assignat a x.

    Notem que s una promoci. En sentit contrari, una democi no est permesa.

    int x = 3.5;Un valor amb ms precisi no es pot assignar a una variable de menor precisi.

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17