Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Tipus de dades en C, Apuntes de Fundamentos de la Informática

Asignatura: Fonaments d'informática, Profesor: xavier Roca, Carrera: Enginyeria Informàtica, Universidad: UAB

Tipo: Apuntes

2013/2014

Subido el 09/11/2014

punsetambtetas
punsetambtetas 🇪🇸

4

(34)

13 documentos

1 / 41

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Tema 5.
Tipus de dades en C
Taules = Vectors = Arrays
Strings
Matrius
Registres
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Vista previa parcial del texto

¡Descarga Tipus de dades en C y más Apuntes en PDF de Fundamentos de la Informática solo en Docsity!

Tema 5.

Tipus de dades en C

Taules = Vectors = Arrays

Strings

Matrius

Registres

Arrays 1D (o vectors)

 Fins ara hem vist tipus de dades simples: int, float, char

 float pes;

 float pes1,pes2,pes3,pes4;

float pes1,pes2,· · ·,pesN;

Accés individual als elements de l ’ array
[]
notes:^10 ·············
MAX_ALUMNES-
Exemple:
notes[1] = 10;
Inicialització en la declaració
int parells[10] = {0,2,4,6,8,10,12,14,16,18};
Inicialització element a element
int parells[10];
int i;
for (i=0;i=<9;i++)
parells[i]=2*i; parells:

Inicialització d’arrays

Arrays 1D: Accés als elements de l’array

0 1 2 3 59

int edats[60]={19,20,19,18, · · ·, 19};

valors

índexos

 En C, la primera posició d’un array, sempre té índex 0 !!!!

 L’última posició d’un array, sempre té índex N-1, on N és la

longitud de l’array.

 L’accés a una certa posició es fa:

V=edats[2];

[<índex>];

Accedim a la

3ª posició

Inicialització en el

moment de la

declaració

Arrays 1D: Recorregut de Vectors

 Per recórrer un vector de dalt a baix necessitem:

  • Variable comptadora (i, p.ex.).
  • Saber la longitud del vector (L, p.ex.).
  • Estructura iterativa for.
for(i=0;i

Arrays 1D: Accés als elements de l’array

void main() { const int N_ALUMNES=100; /* Definició del màxim nº d'alumnes possible / float notes[N_ALUMNES]; / Array de 100 posicions per notes / int i; / Variable índex per recórrer l'array */ int n_aprovats;

/* Lectura de les notes dels alumnes / printf ("Introdueix les notes dels alumnes: \n"); / Bucle per accedir a tots els elements de l'array / for (i=0; i< N_ALUMNES; i++) { printf ("Introdueix nota de l'alumne %d: ", i+1); scanf ("%f", ¬es[i]); /Accés a la posició i de l'array/ } n_aprovats = 0; / Comptar quants alumnes han aprovat */ for (i=0; i< N_ALUMNES; i++) { if (notes[i] >= 5) n_aprovats++; } printf ("Nº d'alumnes aprovats: %d", n_aprovats); }

L’estructura iterativa
for, ens permet
recórrer un a un els
elements d’un array
 De la mateixa manera que hem vist la utilització del pas de paràmetres per referenciar
variables dels tipus bàsics, podem utilitzar aquesta idea per referenciar elements d’un array.
 En C++ la relació entre les referències ( apuntadors ) i arrays és molt més estreta , de
manera que podem utilitzar el nom del array com a paràmetre per passar per referència tot
un vector.
 En C i C++ els arrays sempre es passen per referència.
 EXEMPLE:
int V[5];
V[0]=5;
V: @1001 @

V[0]

V[1]

V[2]

V[3]

V[4]

Pas per referència i arrays

Pas per referència i arrays

v[0] v[1] v[2] v[3] v[4]

v

int V[5]={5,2,7,8,9};

/* Programa que llegeix i suma dos vectors */

include

void main() { int v1[5], v2[5]; int suma[5]; int i;

LlegirVector(v1,5); LlegirVector(v2,5); SumaVectors(v1,v2,suma,5); printf ("Suma dels vectors: "); for (i=0; i<5; i++) printf ("%d ", suma[i]); }

void LlegirVector ( int v[5], int n_elements) { int i; for (i=0; i

Pas d’arrays com a paràmetres

void main()

{

int v1[MAX], v2[MAX], suma[MAX]; int i;

LlegirVector(v1); LlegirVector(v2);

for (i=0; i

#define MAX 5

void LlegirVector (int v[MAX])

{

int i; for (i=0; i Entrega

  • Llistat tema 5:
    • Exercici 1
    • Exercici 2
    • Exercici 3
    • Exercici 5a

Cadenes de caràcters (strings): declaració

var
c : cadena
fivar

cadena de caràcters = array de char’s

PSEUDOCODI
#define MAX 50
char c[MAX];
LLENGUATGE C
H O L A \ ..........
MAX - 1
Marcador de final de cadena
 En C, el tipus cadena no existeix, però…
 Una cadena de caràcters (o string ), no deixa de ser un array de tipus
char. L’única particularitat que té és que inclou un caràcter especial, ‘\0’,
que permet indicar el final de la cadena.
Longitud array
Longitud cadena

Cadenes de caràcters: entrada i sortida

char cadena[10];
Entrada Sortida
scanf(“ %s ”,cadena);
gets(cadena);
printf(“ %s ”,cadena);
puts(cadena);

#include

#include

 ALERTA!! scanf llegeix fins al primer espai, mentre

que gets llegeix varies paraules.

Cadenes de caràcters: funcions de llibreria

#include