Diferència entre revisions de la pàgina «Introducció a C - 2a part»
Salta a la navegació
Salta a la cerca
(Es crea la pàgina amb «Al [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2te.htm resum teòric del mòdul 2 del d97] destaquem: = Tipus de variables = = Constant...».) |
|||
(16 revisions intermèdies per 2 usuaris que no es mostren) | |||
Línia 2: | Línia 2: | ||
= Tipus de variables = | = Tipus de variables = | ||
+ | Tipus enters (sense decimals): | ||
+ | {|| class="wikitable" | ||
+ | |'''Tipus''' | ||
+ | |'''Bytes ''' | ||
+ | |'''Ventall de valors''' | ||
+ | |- | ||
+ | |char | ||
+ | |1 | ||
+ | | -128 a 127 | ||
+ | |- | ||
+ | |unsigned char | ||
+ | |1 | ||
+ | |0 a 255 | ||
+ | |- | ||
+ | |short int | ||
+ | |2 | ||
+ | | -32768 a 32767 | ||
+ | |- | ||
+ | |unsigned short int | ||
+ | |2 | ||
+ | | 0 a 65535 | ||
+ | |- | ||
+ | |int | ||
+ | |4 | ||
+ | | -2.147.483.648 a 2.147.483.647 | ||
+ | |- | ||
+ | |unsigned int | ||
+ | |4 | ||
+ | | 0 a 4.294.967.295 | ||
+ | |- | ||
+ | |long int | ||
+ | |4 | ||
+ | | -2.147.483.648 a 2.147.483.647 | ||
+ | |- | ||
+ | |unsigned long int | ||
+ | |4 | ||
+ | | 0 a 4.294.967.295 | ||
+ | |} | ||
+ | |||
+ | Amb decimals: | ||
+ | {|| class="wikitable" | ||
+ | |'''Tipus''' | ||
+ | |'''Bytes ''' | ||
+ | |'''Ventall de valors''' | ||
+ | |'''Precisió''' | ||
+ | |- | ||
+ | |float | ||
+ | |4 | ||
+ | | 3.4 E-38 a 3.4 E+38 (i els negatius) | ||
+ | |6 decimals | ||
+ | |- | ||
+ | |double | ||
+ | |8 | ||
+ | | 1.7 E-308 a 1.7 E+308 (i els negatius) | ||
+ | |15 decimals | ||
+ | |- | ||
+ | |long double | ||
+ | |10 (o 12) | ||
+ | | 3.4E-4932 to 1.1E+4932 (i els negatius) | ||
+ | |19 decimals | ||
+ | |} | ||
+ | |||
+ | [https://www.tutorialspoint.com/cprogramming/c_data_types.htm C - Data Types] | ||
= Constants = | = Constants = | ||
Línia 18: | Línia 81: | ||
'''/''' Divisió | '''/''' Divisió | ||
'''%''' Residu (residu de la divisió entera) | '''%''' Residu (residu de la divisió entera) | ||
− | '''&''' '''i''' a nivell de | + | '''&''' '''i''' a nivell de byte |
− | '''|''' '''o''' a nivell de | + | '''|''' '''o''' a nivell de byte |
'''~''' Negador a nivell de bit | '''~''' Negador a nivell de bit | ||
+ | === Difeència entre el negat de byte (!) i el negat de bit (~) === | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(){ | ||
+ | unsigned short int nN = 23,nP,nB; | ||
+ | |||
+ | nP = !nN; // ! negat a nivell de byte | ||
+ | nB = ~nN; // negat a nivell de bit | ||
+ | |||
+ | printf("nN = %d, nP = %d, nB = %d\n",nN,nP,nB); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
== Operadors d'assignació == | == Operadors d'assignació == | ||
nom_variable '''=''' expressió; | nom_variable '''=''' expressió; | ||
Línia 33: | Línia 110: | ||
b = a'''++'''; /* a = 3 i b = 2 */ | b = a'''++'''; /* a = 3 i b = 2 */ | ||
b = '''++a'''; /* a = 3 i b = 3 */ | b = '''++a'''; /* a = 3 i b = 3 */ | ||
− | + | == Operadors relacionals == | |
'''==''' Igual que (no confondre amb l'operador d'assignació =) | '''==''' Igual que (no confondre amb l'operador d'assignació =) | ||
'''<''' Menor que | '''<''' Menor que | ||
Línia 40: | Línia 117: | ||
'''>=''' Major o igual que | '''>=''' Major o igual que | ||
'''!=''' Diferent que | '''!=''' Diferent que | ||
+ | |||
== Operadors lògics == | == Operadors lògics == | ||
'''!''' Negador a nivell de valor lògic ('''0''' es fals. Qualsevol altra número és cert) | '''!''' Negador a nivell de valor lògic ('''0''' es fals. Qualsevol altra número és cert) | ||
Línia 60: | Línia 138: | ||
== Sentències compostes == | == Sentències compostes == | ||
'''Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}'''. Una sentència composta també es coneix amb el nom de bloc. | '''Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}'''. Una sentència composta també es coneix amb el nom de bloc. | ||
− | + | <!-- | |
= Directives del preprocessador: '''#include''' i '''#define''' = | = Directives del preprocessador: '''#include''' i '''#define''' = | ||
= Funcions = | = Funcions = | ||
== Declaració de funcions == | == Declaració de funcions == | ||
== Implementació de funcions == | == Implementació de funcions == | ||
+ | --> |
Revisió de 15:29, 23 set 2022
Al resum teòric del mòdul 2 del d97 destaquem:
Contingut
Tipus de variables
Tipus enters (sense decimals):
Tipus | Bytes | Ventall de valors |
char | 1 | -128 a 127 |
unsigned char | 1 | 0 a 255 |
short int | 2 | -32768 a 32767 |
unsigned short int | 2 | 0 a 65535 |
int | 4 | -2.147.483.648 a 2.147.483.647 |
unsigned int | 4 | 0 a 4.294.967.295 |
long int | 4 | -2.147.483.648 a 2.147.483.647 |
unsigned long int | 4 | 0 a 4.294.967.295 |
Amb decimals:
Tipus | Bytes | Ventall de valors | Precisió |
float | 4 | 3.4 E-38 a 3.4 E+38 (i els negatius) | 6 decimals |
double | 8 | 1.7 E-308 a 1.7 E+308 (i els negatius) | 15 decimals |
long double | 10 (o 12) | 3.4E-4932 to 1.1E+4932 (i els negatius) | 19 decimals |
Constants
12312 constant tipus int 54154551145 constant no vàlida 54154551145. constant tipus double 1.25f constant tipus float 1.25l constant tipus long double
Operadors
Operadors aritmètics:
- Canvia el signe (és un operador unari, és a dir, actua només sobre un operant) + Suma - Resta * Producte / Divisió % Residu (residu de la divisió entera) & i a nivell de byte | o a nivell de byte ~ Negador a nivell de bit
Difeència entre el negat de byte (!) i el negat de bit (~)
#include <stdio.h> int main(){ unsigned short int nN = 23,nP,nB; nP = !nN; // ! negat a nivell de byte nB = ~nN; // negat a nivell de bit printf("nN = %d, nP = %d, nB = %d\n",nN,nP,nB); return 0; }
Operadors d'assignació
nom_variable = expressió; a = a+1; a += b significa a = a + b a -= b significa a = a – b a *= b significa a = a * b a /= b significa a = a / b a %= b significa a = a % b
Operadors incrementals
a = 2; b = a++; /* a = 3 i b = 2 */ b = ++a; /* a = 3 i b = 3 */
Operadors relacionals
== Igual que (no confondre amb l'operador d'assignació =) < Menor que > Major que <= Menor o igual que >= Major o igual que != Diferent que
Operadors lògics
! Negador a nivell de valor lògic (0 es fals. Qualsevol altra número és cert) && i lògica || o lògica
Altres operadors
unari: + no fa res, però serveix com a complement de l'operador unari -. sizeof(): torna la mida del tipus, variable o expressió introduït com argument. , (coma): serveix per avaluar expressions múltiples. El seu ús més freqüent és en expressions de la sentència for.
Expressions
(a-b*2.0)||(c!=a)
Jerarquia de les operacions
Conversions de tipus implícites i explícites (casting)
Sentències
Una sentència en C és una unitat executable com pot ser una assignació o una crida a una funció. Una sentència pot ser simple o composta.
Sentències simples
Les sentències simples acaben amb el caràcter ; (punt i coma).
Sentències compostes
Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}. Una sentència composta també es coneix amb el nom de bloc.