Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tecnologías Industriales
Fundamentos de Informática
Tema 7
Vectores y cadenas de
caracteres
Sección 1:
• Introducción. ¿Qué es un vector?
• Vectores unidimensionales
• Cadenas de caracteres
• Paso de vectores unidimensionales a funciones.
Sección 2:
• Vectores multidimensionales: matrices
• Paso de vectores multidimensionales a funciones
Introducción
¿Qué es un VECTOR?
• Los índices son números enteros positivos que están encerrados entre
corchetes.
Vector
Lista 15 -20 -11 70 -3 5
unidimensional
0 1 2 3 4 5
0 1 2 3 4 5
Lista
0 15 -20 64 70 -3 5 Vector
Bidimensional
1 43 2 11 -4 11 27
ó Matriz
2 11 17 -47 -11 -12 1
Vectores unidimensionales
Vectores unidimensionales
• Es un conjunto de elementos del mismo tipo.
• Declaración:
tipo nombre_vector[TAMAÑO];
– tipo
• Hace referencia al tipo de los datos contenidos en el vector.
– TAMAÑO
• Hace referencia al número de elementos máximos que puede contener el
VECTOR.
OJO: Este tamaño se define en tiempo de compilación y no puede modificarse en ejecución.
(Programación estática versus programación dinámica.)
• Muy útil la utilización del #define para los tamaños
• En la ejecución del programa, se reservan tantos huecos como el tamaño
definido del vector, siendo cada hueco del tamaño requerido por el tipo de
dato del vector.
• El primer elemento de un VECTOR tiene obligatoriamente índice 0.
• Si un VECTOR tiene como máximo n elementos, el último elemento se referencia con el
índice n-1.
#include<stdio.h>
Declaración de un vector de 10
int main(void) elementos enteros
{
int x[10]; Primera posición del vector
int t;
Última posición del vector, la 9
for ( t = 0 ; t<10 ; t++ ) {
x[t] = t; /*asigna un valor a cada elemento del vector*/
}
Elemento t del vector x
printf(“Los elementos del vector x son:\n”);
for ( t = 0 ; t<10 ; t++ ) {
printf(“%d ”, x[t]); /*escribir los elementos*/
}
return 0; ¿Cuál es la salida del programa?
}
Tema 7: Vectores y cadenas de caracteres
10
Vectores unidimensionales: Ejemplo
El mismo ejemplo anterior utilizando #define: MUCHO MEJOR
#include<stdio.h>
#define N 10 Si cambia el tamaño del vector
void main(void) con cambiar el valor del #define
es suficiente
{
int x[N];
int t;
int lista[10];
Cadenas de caracteres
Cadenas de caracteres
• Función gets():
• Función puts():
• Prototipo:
int puts( char * cadena_de_caracteres );
• Utilización:
puts(cadena);
Peligros:
• Cuidado al utilizar scanf(“%s”, cad); ya que SÓLO lee una palabra (no una frase), pues cuando
encuentra el carácter ‘\n’ o ‘ ’ (el carácter blanco), scanf() finaliza la lectura del buffer.
Tanto scanf() como gets() no realizan ningún control para evitar leer más caracteres de los
reservados por la variable vector, lo que resulta muy peligroso.
#include <stdio.h>
#define N 10
Advertencia: Mucho cuidado al copiar o concatenar dos cadenas con strcpy() o strcat()
ya que si nos pasamos del tamaño reservado para la cadena de caracteres, el
compilador no nos avisa y puede fallar en la ejecución.
EJEMPLO 4 EJEMPLO 5
Programa que muestra la Programa que muestra una
longitud de la cadena leída cadena al revés
#include<stdio.h> #include<stdio.h>
#include<string.h> #include<string.h>
#define N 80 #define N 80
int main(void)
{ int a[N];
int i;
printf(“los valores\n”);
for (i=0;i<N;i++) {
scanf(“%d:”, &a[i]);
}
printf(“\n”);
printf(“\nlos valores originales en main son: “);
for (i=0;i<N; i++) {
printf(“%d”, a[i]);
}
printf(“\n”);
Modificar( a );
printf(“\nlos valores en main depues del cambio son: “);
for (i=0;i<N; i++) {
printf(“%d”,a[i]);
} Parámetro real: se pasa como argumento real la
return 0; dirección del primer elemento del vector, que viene
} determinada por el nombre de la variable vector, en
este caso a. Tema 7: Vectores y cadenas de caracteres
33
Paso de vectores unidimensionales a funciones
Reordenar(n,x);
printf(“\nLista de números reordenada:\n”);
Vectores multidimensionales:
Matrices
Vectores multidimensionales ó Matrices
int main(void)
{
int x[M][N]= {{6,2, 0},{3,4,1}};
int i, j;
for(i=0;i<NF;i++) {
for(j=0;j<NC;j++) {
printf(“Elemento %d,%d : ”, i,j);
scanf(“%d”, &a[i][j]);
}
}
www.comillas.edu