Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porRemigio San Antonio Modificado hace 10 años
1
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para definir puntos en 3-D, vectores, matrices, palabras, etc.
2
TABLAS Sintaxis nombre_nuevo_tipo = tabla [rango, rango,...] de nombre_tipo donde rango se define como primer_rango.. ultimo_rango siendo primer_rango y ultimo_rango expresiones de constantes de tipo entero el número de elementos que se pueden guardar en la tabla es igual a ultimo_rango–primer_rango+1
3
TABLAS Ejemplos algoritmo tipo vector = tabla [1..10] de real palabra = tabla [1..10] de caracteres matriz = tabla [1..20,1..30] de entero ftipo var v1,v2: vector; p:palabra; m:matriz fvar
4
Operaciones La única operación que se puede realizar con un tipo tabla es la asignación. La asignación puede ser: Tabla -> Tabla Componente de la tabla -> variable del tipo base Objeto del tipo base -> componente Sobre los componentes de la tabla se pueden realizar las mismas operaciones que sobre cualquier objeto del mismo tipo base.
5
Operaciones Ejemplos tipo vector = tabla [1..10] de real ftipo var v1,v2: vector ; n: real fvar Tabla -> Tabla v1 := v2 Componente de la tabla -> variable del tipo base v1[1] := n Objeto del tipo base -> componente n := v1[7]
6
Operaciones Ejemplos Cualquier operación que se puede realizar con el tipo base v1[1] := LeerReal() v1[2] := v1[1] *v2[1] /0.5 EscribirReal (v1[2]) EscribirReal(v1[1]+v2[2])
7
Convenio de longitud El número de elementos contenidos en una variable de tipo tabla siempre ha de ser menor o igual a la que aparece en la definición. Dos tipos de convenios se utilizan para indicar el número de elementos de una tabla: La marca específica de final (centinela) El conocimiento explícito de la longitud
8
Calcular el producto escalar de dos vectores de 25 elementos reales algoritmo producto_escalar const N: entero = 25 fconst tipo vector = tabla [1..N] de real ftipo var v1, v2: vector; j : entero; p: real fvar
9
Leer los N primeros reales y guardarlos en el vector v1 var v1, v2: vector; j : entero; p: real fvar j:= 1 mientras j <= N hacer v1[j] := LeerReal() j := j+1 fmientras
10
Leer los N siguientes reales y guardarlos en el vector v2 j:= 1 mientras j <= N hacer v2[j] := LeerReal() j := j+1 fmientras
11
Multiplicar componente a componente v1 y v2 j:= 1; p := 0 mientras j <= N hacer p := p + v1[j] * v2[j] j := j+1 fmientras EscribirReal (p)
12
algoritmo producto_escalar const N: entero = 25 fconst tipo vector = tabla [1..N] de real ftipo var v1, v2: vector; j : entero; p: real fvar j:= 1 mientras j < N hacer v1[j] := LeerReal j := j+1 fmientras j:= 1 mientras j < N hacer v2[j] := LeerReal j := j+1 fmientras j:= 1; p := 0 mientras j <= N hacer p := p + v1[j] * v2[j] j := j+1 fmientras EscribirReal (p) falgoritmo
13
Estructura repetitiva para para indice en [rango_inicial..rango_final] (paso expresión) hacer Sentencias fpara para j en [1..N] hacer v1[j] := LeerEntero() fpara para j en [1..N] paso 2 hacer v1[j] := v1[j] + 10 fpara
14
Leer los N siguientes reales y guardarlos en el vector v2 para j en [1..N] hacer v2[j] := LeerReal() hacer
15
Multiplicar componente a componente v1 y v2 p := 0 para j en [1..N] hacer p := p + v1[j] * v2[j] fpara EscribirReal (p)
16
Lee una secuencia de enteros acabada en 0 y un siguiente entero e indica si este entero aparece en la secuencia anterior algoritmo búsqueda_entero const N: entero = 25 fconst tipo tentero = tabla [1..N] de entero ftipo var t1: tentero; n, j: entero encontrado: booleano fvar
17
Leer la secuencia de enteros, guardarlos en la tabla t1 y leer el siguiente entero j:= 1; t1[j] := LeerEntero mientras t1[j] != 0 y j < N hacer j := j+1 t1[j] := LeerEntero fmientras n := LeerEntero
18
Buscar el entero en la secuencia guardada en el la tabla t1 j:= 1; encontrado := falso mientras t1[j] != 0 y no encontrado hacer si t1[j] = n entonces encontrado := cierto fsi j := j+1 fmientras si encontrado entonces EscribirCaracter(‘S’) sino EscribirCaracter(‘N’) fsi
19
algoritmo búsqueda_entero const N: entero = 25 fconst tipo tentero = tabla [1..N] de entero ftipo var t1: tentero; n, j: entero ; encontrado: booleano fvar j:= 1; t1[j] := LeerEntero mientras t1[j] != 0 y j < N hacer j := j+1; t1[j] := LeerEntero fmientras n := LeerEntero; j:= 1; encontrado := falso mientras t1[j] != 0 y no encontrado hacer si t1[j] = n entonces encontrado := cierto fsi j := j+1 fmientras si encontrado entonces EscribirCaracter(‘S’) sino EscribirCaracter(‘N’) fsi falgoritmo
20
Llegir dos vector de 4 components reals I escriure el vector resultant de sumar els dos vectors component a component 123 0 -5 0 -1 23 4 12 2 23 -1
21
Llegir dos vector de N components reals I escriure el vector resultant de sumar els dos vectors component a component algoritme sumar_vectors const N: enter = 4 fconst tipus vector = taula [1..N] de reals ftipus var v1,v2: vector; j: enter fvar
22
algoritme sumar_vectors const N: enter = 4 fconst tipus vector = taula [1..N] de reals ftipus var v1,v2: vector; j: enter fvar per j en [1..N] fer v1[j] := LlegirReal() fper per j en [1..N] fer v2[j] := LlegirReal() fper per j en [1..N] fer escriureReal (v1[j] + v2[j]) fper falgoritme
23
Estructura repetitiva per per index en [rang_inicial..rang_final] fer Sentències fper for (index = rang_inicial; index <=rang_final;increment index) {.. Sentències } for (j= 0; j<N; j++) { v1[j] = v1[j + 2]; } Les taules en C comencen a la posició 0
24
Llegir una seqüència de enters acabada en 0 i escriure-la incrementant cada element amb la mitjana de la seqüència algoritme incrementar_seqüència const N: enter = 25 fconst tipus tenter = taula [1..N] de enter ftipus var t1: tenter; suma,n, j: enter mitjana: real fvar
25
Llegir la seqüència d’enters, guardarlos en la taula1 i calcular la mitjana j:= 1; t1[j] := LlegirEnter ; suma := t1[j] mentre t1[j] != 0 i j < N fer j := j+1; t1[j] := LlegirEnter suma := suma + t1[j] fmentre mitjana := EnterAReal(suma)/ EnterAReal(j) n := j
26
Escriure la seqüència dels enters incrementada amb la mitjana per j en [1..n ] fer EscriureReal (EnterAReal(t1[j]) + mitjana) fper
27
algoritme incrementar_seqüència const N: enter = 25 fconst tipus tenter = taula [1..N] de enter ftipus var t1: tenter; suma,n, j: enter ; mitjana: real; fvar j:= 1; t1[j] := LlegirEnter ; suma := t1[j] mentre t1[j] != 0 i j < N fer j := j+1; t1[j] := LlegirEnter suma := suma + t1[j] fmentre mitjana := EnterAReal(suma)/ EnterAReal(j) n := j per j en [1..n ] fer EscriureReal (EnterAReal(t1[j]) + mitjana) fper falgoritme
28
Traducció a C # define N 25 typedef int tenter [N]; void main(void) { tenter t1; int suma,num, j; float mitjana, aux; j= 0; cin >> t1[j] ; suma = t1[j]; while (t1[j] != 0 && j < N-1) { j = j+1; cin >> t1[j] ; suma = suma + t1[j]; } mitjana = (float)suma / (float)j; num = j; for (j =0; j< num; j++){ aux = (float) t1[j] + mitjana ; cout << aux <<endl; } system(“PAUSE”); }
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.