Arrays, Matrices y Cadenas

Documentos relacionados
media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

Tema 8 Vectores y Matrices

Algoritmos y Programación I

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

Instituto Tecnológico de Celaya

TEMA 8: ESTRUCTURAS DE DATOS COMPLEJAS 1 VECTORES ESTÁTICOS 2 2 CADENAS O VECTORES DE CARACTERES 6 3 PASO DE CADENAS Y ARRAYS A FUNCIONES 8

PROGRAMACION / Clave: 11214

Lenguajes de programación LPSI EUI UPM CADENAS DE CARACTERES

Cadenas de Caracteres

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Tema 10: Tipos de datos definidos por el usuario

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Programación. Test Autoevaluación Tema 3

OPERADORES Y EXPRESIONES

Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C

Programación. Ejercicios Tema 3. Elementos Básicos del Lenguaje C

Es toda la información que utiliza el computador. Según sea la información que guardemos en los datos, se clasifican en los siguientes tipos:

Cadenas y Caracteres. Universidad Católica de Honduras Nuestra Señora Reina de la Paz. Asignatura. Programación Científica. Tema de Exposición

Arrays y Cadenas en C

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

Tema 14: Arreglos estáticos en C

EJEMPLOS DE PROGRAMACIÓN DE FUNCIONES EN C: Página 1 de 5

Escuela Politécnica Superior de Elche

Un puntero no es más que una variable estática cuyo contenido es una dirección de memoria.

MIA RICARDO GONZALEZ LOZANO APLICACIONES EN LENGUAJE C

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Punteros, Arreglos y Cadenas en C

ESCUELA POLITÉCNICA SUPERIOR PRÁCTICA 2: EXPRESIONES, PRINTF Y SCANF

Introducción al tipo de dato ARRAY

Elementos de un programa en C

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

LENGUAJES DE PROGRAMACIÓN I Lenguaje C

Introducción a los Computadores

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Procesos e Hilos en C

ARCHIVOS. 1. Introducción. 2. Definición de archivo. 3. Archivos de acceso secuencial. 4. Gestión de un archivo secuencial de estructuras

Unidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas

Arrays. Programación. Licenciatura de Lingüística y Nuevas Tecnologías

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Prof. Dr. Paul Bustamante

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Informática I para Bachillerato

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Informática Ingeniería en Electrónica y Automática Industrial

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

TUTORIAL PSEINT. Ing. Ronald Rentería Ayquipa. Fundamentos de Programación

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

El lenguaje de Programación C. Fernando J. Pereda

Tema 9. Vectores y Matrices

Programcaión Básica. Arreglos y Estructuras de Datos (2)

INDICE Capitulo 1. El Turbo C++ y el Lenguaje C Capitulo 2. Declaración e inicialización de variables Capitulo 3. Funciones de entrada y salida

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Tema 2. El lenguaje JAVA

Apuntadores (Punteros)

Vectores. 27/05/05 Programación Digital I 1

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Lenguaje de Programación

Tipos de Datos Estructurados

Tema 2. Memoria Dinámica. 2.1 Datos estáticos y dinámicos

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Examen Principios de Programación Febrero 2012

Se guardan en archivos con extencion c y los cabezales con extension h

Fundamentos de programación

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Clases y Objetos. Informática II Ingeniería Electrónica

INTRODUCCIÓN AL LENGUAJE C

Paso de Borland Turbo C (bajo DOS) a Anjuta (Linux) 1.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Contenido. Capítulo 1. Introducción a lenguaje C 1

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

LABORATORIO DE PROCESADORES DE LENGUAJE Curso: Práctica 2: Analizador léxico/sintáctico/semántico con Flex y Bison

PROPIEDADES DE LOS CAMPOS. Cada campo de una tabla dispone de una serie de características que proporcionan un control

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

TIPOS DE DATOS DEFINIDOS POR EL PROGRAMADOR: Estructuras CONTENIDOS

Universidad Don Bosco (UDB) Facultad de Ingeniería / Escuela de Computación

Introducción a la programación orientada a objetos

Tema 2: La clase string

Uso avanzado de punteros

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

#include <stdio.h> /* Factorial de un número - versión 1- */

Herramientas computacionales para la matemática MATLAB: Otros tipos de datos

2.2 Nombres, Ligado y Ámbito

Tema 13: Apuntadores en C

TIPOS DE DATOS BASICOS EN LENGUAJE C

Tema: Sobrecarga de Operadores.

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

Hoja de problemas Estructuras de Control

Introducción a Lenguaje C. Jornadas de Octubre 2009 Grupo de Usuarios de Linux Universidad Carlos III Tania Pérez

Programación En Lenguaje C

Diseño de. Sistemas Informáticos Industriales. Tratamiento de cadenas de caracteres en C

Al concluir está práctica el estudiante será capaz de elaborar programas utilizando apuntadores y arreglos.

Las plantillas permiten definir funciones genéricas.

+5V 8K2 1K5. Arduino. Display LCD

Prof. Dr. Paul Bustamante

Transcripción:

Funciones Departamento de Electrónica Fundación San Valero Un array es un conjunto de variables del mismo tipo que tienen el mismo nombre y se diferencian en el índice. /* Declaramos 24 variables, una para cada hora del dia */ int temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8; int temp9, temp10, temp11, temp12, temp13, temp14, temp15, temp16; int temp17, temp18, temp19, temp20, temp21, temp22, temp23, temp0; int media; /* Ahora tenemos que dar el valor de cada una */ printf( "Introduzca las temperaturas desde las 0 hasta las 23 separadas por un espacio: " ); scanf( "%i %i %i... %i", &temp0, &temp1, &temp2,... &temp23 ); media = ( temp0 + temp1 + temp2 + temp3 + temp4 +... + temp23 ) / 24; printf( "\nla temperatura media es %i\n", media ); Es un programa muy largo. Aquí es donde se describe la potencia de Arrays 1

Mismo ejemplo utilizando matrices: int temp[24]; /* Con esto ya tenemos declaradas las 24 variables */ float media; int hora; /* Ahora tenemos que dar el valor de cada una */ for( hora=0; hora<24; hora++ ) printf( "Temperatura de las %i: ", hora ); scanf( "%i", &temp[hora] ); media += temp[hora]; media = media / 24; printf( "\nla temperatura media es %f\n", media ); Como ves es un programa más rápido de escribir (y es menos aburrido hacerlo), y más cómodo para el usuario que el anterior. Si nos equivocamos al escribir el tamaño (ponemos 25 en vez de 24) cometeremos un error y puede que no nos demos cuenta. Por eso es mejor usar una constante con nombre, por ejemplo ELEMENTOS. #define ELEMENTOS 24 int temp[elementos]; /* Con esto ya tenemos declaradas las 24 variables */ media; int hora; /* Ahora tenemos que dar el valor de cada una */ for( hora=0; hora<elementos; hora++) printf( "Temperatura de las %i: ", hora ); scanf( "%i", &temp[hora] ); media += temp[hora]; media = media / ELEMENTOS; printf( "\nla temperatura media es %f\n", media ); float 2

Un array en una serie de datos del mismo tipo. A la hora de definirlo es necesario especificar no sólo el tipo de dato a almacenar, sino el número a almacenar. Definición e inicialización de un array: tipo_dato nombre_array[número de datos] = primer elemento, segundo elemento,...; tipo_dato nombre_array[] = primer elemento, segundo elemento,...; Llamada a un elemento de un array: x[i], donde i es el índice. Para el primer elemento i = 0 y para el último i =numero de datos-1. intx[3]=1,2,3; printf( x = %d, y = %d, z = %d, x[0], x[1], x[2]); Los arrays y los punteros están muy relacionados, ya que el nombre de un array es también un puntero que apunta al primer elemento del array. Es decir, si tenemos definido un array x de tres elementos x==&x[0],x+1==&x[1],x+2==&x[2],*x==x[0],*(x+1)==x[1]y *(x+2) ==x[2]. El uso de punteros sobre arrays es más mucho eficiente. La llamada a una función que trabaja sobre un array se realiza pasandole como argumento el nombre del array, es decir, le pasamos un puntero. La función usa este puntero para realizar los cambios sobre el array original. 3

Definición de una estructura: struct nombre_estructura tipo nombre_variable_1; tipo nombre_variable_2;... tipo nombre_variable_n; ; struct nombre_estructura nombre_variable_estructura; struct nombre_estructura tipo nombre_variable_1; tipo nombre_variable_2;... tipo nombre_variable_n; nombre_variable_estructura_1, nombre_variable_estructura_ 2,...; Ejemplos: structficha char nombre[20]; char apellidos [60]; int edad; ; struct ficha PrimeraFicha; structficha char nombre[20]; char apellidos [60]; int edad; PrimeraFicha; 4

La forma de referenciar a un elemento de la estructura es: PrimeraFicha.nombre[0]; PrimeraFicha.edad; Es posible definir arrays de estructuras. Para ello debe estar definido en primer lugar la estructura y luego definir una variable array de dicho tipo. Ejemplo: struct ficha Fichas[100]; En este caso la referencia se realiza de la siguiente forma: Fichas[0].edad; Al igual que en los arrays no podemos meter más de 20 elementos en la cadena. Vamos a ver un ejemplo para mostrar el nombre del usuario en pantalla: char nombre[20]; printf( "Introduzca su nombre (20 letras máximo): " ); scanf( "%s", nombre ); printf( "\nel nombre que ha escrito es: %s\n", nombre ); 5

Para usar estas funciones hay que añadir la directiva: strlen Esta función nos devuelve el número de caracteres que tiene la cadena (sin contar el '\0'). char texto[ ]= Javier"; int longitud; longitud = strlen(texto); printf( "La cadena \"%s\" tiene %i caracteres.\n", texto, longitud ); strcpy *cadena2); char *strcpy(char *cadena1, const char Copia el contenido de cadena2 en cadena1. cadena2 puede ser una variable o una cadena directa (por ejemplo "hola"). Debemos tener cuidado de que la cadena destino (cadena1) tenga espacio suficiente para albergar a la cadena origen (cadena2). 6

strcat char *strcat(char *cadena1, const char *cadena2); Copia la cadena2 al final de la cadena1. char nombre_completo[50]; char nombre[]= Javier"; char apellido[]= Garcia"; strcpy( nombre_completo, nombre ); strcat( nombre_completo, " " ); strcat( nombre_completo, apellido ); printf( "El nombre completo es: %s.\n", nombre_completo ); sprintf int sprintf(char *destino, const char *format,...); Funciona de manera similar a printf, pero en vez de mostrar el texto en la pantalla lo guarda en una variable (destino). El valor que devuelve (int) es el número de caracteres guardados en la variable destino. Con sprintf podemos repetir el ejemplo de strcat de manera más sencilla: char nombre_completo[50]; char nombre[]= Anselmo"; char apellido[]= Chila"; sprintf( nombre_completo, "%s %s", nombre, apellido ); printf( "El nombre completo es: %s.\n", nombre_completo ); 7

strcmp int strcmp(const char *cadena1, const char *cadena2); Compara cadena1 y cadena2. Si son iguales devuelve 0. Un número negativo si cadena1 va antes que cadena2 y un número positivo si es al revés: cadena1 == cadena2 -> 0 cadena1 > cadena2 -> número negativo cadena1 < cadena2 -> número positivo char nombre1[]= Javier"; char nombre2[]="pedro"; printf( "%i", strcmp(nombre1,nombre2)); 8