Esquema de un programa en C: bloques básicos



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

SOLUCION EXAMEN junio 2006

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

Tema 2: La clase string

Reglas básicas de la programación en lenguaje C

Arrays y Cadenas en C

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

Introducción al tipo de dato ARRAY

Preliminares. Tipos de variables y Expresiones

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

Tema 6. Reutilización de código. Programación Programación - Tema 6: Reutilización de código

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

Problemas de Redes de Computadores. Conjunto de problemas 1

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

1 Estructura básica de un programa C++

FUNDAMENTOS DE INFORMÁTICA 1º Ingeniería Industrial

Modulo 1 El lenguaje Java

Introducción a PHP. * No es necesario declarar previamente las variables.

Prof. Dr. Paul Bustamante

Programación estructurada

Examen Principios de Programación Febrero 2012

Lenguaje C Funciones. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Elementos léxicos del lenguaje de programación Java

Introducción al lenguaje Java

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

El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */

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

Introducción a la Programación en MATLAB

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

Creación de Funciones de Conducción

TIPOS DE VARIABLES EN PHP. DECLARACIÓN Y ASIGNACIÓN. LA INSTRUCCIÓN ECHO PARA INSERTAR TEXTO O CÓDIGO. (CU00816B)

Bloque 4. La descomposición funcional y el diseño descendente

Pruebas de unidad con JUnit

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

Tema 9. Vectores y Matrices

Ficheros. fd = open(nombre, modo)

Que es PHP? Que se puede hacer con PHP? Sintaxis del lenguaje. Variables. Operadores básicos. Condicionales. Ciclos.

Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.

Estructura de Datos [Tipos de datos concretos y tipos de datos abstractos]

Estructuras Repetitivas: SENTENCIA WHILE EN MATLAB INFORMÁTICA T2 INGENIERÍA INDUSTRIAL JORNADA ESPECIAL

Tutorial Básico de vbscript

Ejercicio 1 (2 puntos. Tiempo: 25 minutos)

Tema: Arreglos de Objetos en C++.

Para leer la entrada de consola, lo primero que se hace es construir un Scanner que este asociado al flujo de entrada estándar System.

LABORATORIO 1 OPERACIONES DE ENTRADA Y SALIDA

Programación Orientada a Objetos con Java

Programación: QBASIC

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

1 ELEMENTOS BASICOS DEL LENGUAJE

Introducción a la programación orientada a objetos

Examen Septiembre Curso Programación en C++ Pág. 1

Contenidos. Archivos en C++ Archivos en C++ Introducción

INTELIGENCIA ARTIFICIAL 2015 TALLER RÁPIDO DE PROGRAMACIÓN EN JAVA

Programación Estructurada

Presentación. Programación I. Conceptos Avanzados de Programación. :: Prof. Yeniffer Peña

Prof. Dr. Paul Bustamante

11. Algunas clases estándar de Java (II)

Prof. Dr. Paul Bustamante

Manual de PHP Básico - WebEstilo

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Titulo: Suma de N primeros números

PROCEDIMIENTOS Y FUNCIONES DE LA PROGRAMACIÓN (VISUAL BASIC)

Programación en C. (Segunda Parte) DATSI, FI, UPM José M. Peña. Programación en C

Las Bondades de la Función SPRINTF

Curso 0 de Informática

Fundamentos de Programción (I)

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Clases y funciones amigas: friend

Matrices equivalentes. El método de Gauss

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Tema: Sobrecarga de Operadores.

Tema 5: Diseño modular. Índice. Notas. Programación 2. Curso Notas. Ejemplo. La herramienta make. 1 Diseño modular.

1. DML. Las subconsultas

Arquitectura de Computadores: Exámenes y Controles

OBJETIVOS. Explicar el manejo de archivos de texto. Explicar el manejo de archivos binarios. Desarrollar programas que usen archivos.

Convirtiendo arboles de expresión lambda en diferentes strings.

PRÁCTICA DE LABORATORIO 3 Tipo Abstrato de Dato

Fundamentos de Informática. Primer Curso de Ingenieros Químicos. Práctica 1. Dev C++ Compilador de C para Windows

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Tema 7: Programación con Matlab

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

Prof. Dr. Paul Bustamante

Manual del programador

Java Inicial (20 horas)

8. Sentencia return y métodos

Compiladores e Intérpretes Proyecto N 1 Sintaxis de MiniJava Segundo Cuatrimestre de 2015

Curso de Excel Avanzado

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

Hoja1!C4. Hoja1!$C$4. Fila

Unidad III El lenguaje de programación C

Transcripción:

Esquema de un programa en C: bloques básicos // Incluimos los ficheros de cabecera que necesitemos. // Esto es un comentario #include <stdio.h> #include <stdlib.h> // Si queremos definir alguna constante, podemos hacerlo #define TAMANYO_BUFFER 128 #define MAX_PROCESOS 10 // A continuación definimos las variables globales de // nuestro programa. Estas variables se pueden usar en // cualquier función del programa. // a,b, y c son enteros. d es un carácter. procs es un vector de enteros y buffer un vector de // caracteres. En C no hay booleanos, podemos usar el tipo int. // Un valor igual a 0 es falso, cualquier otra cosa es cierto. //Tampoco existe el tipo string, se define como una cadena de caracteres, acabada en el carácter \0. int a,b,c; char d; int procs[max_procesos]; char buffer[tamanyo_buffer]; // A continuación el código, encapsulado en funciones. Lo correcto es definir primero las variables // locales y poner el código a continuación void funcion1(void) // esta función no devuelve nada y no recibe // parametros int funcion2(int a) // esta función devuelve un entero y recibe un entero return 1; int funcion3(int a, char b, char *c) // d es una variable local, solo está definida en el contexto de esta función int d; // esta función devuelve un entero y recibe un entero, // un char y un puntero a char return 0; // PUNTO ENTRADA DEL PROGRAMA. La función principal tiene un prototipo fijo, se llama main int main(int argc,char *argv[]) // devuelve un int y recibe dos parámetros // argc es el numero de argumentos del programa // argv es la lista de argumentos 1

Ejemplo de invocación de un programa en C desde línea de comandos #programa Este programa tendrá, en el main, argc=1, argv[0]= programa #programa A B C Este programa tendrá, en el main, argc=4, argv[0]= programa, argv[1]= A, argv[2]= B, argv[3]= C #programa 12345 Este programa tendrá, en el main, argc=6, argv[0]= programa, argv[1]= 1, argv[2]= 2, argv[3]= 4, argv[4], 5 y argv[5]= 6, siempre se recibe como cadena de caracteres. En Variables Definición variables simples Tipo nombre_variable; Definición vectores Tipo nombre_variable[dimensión_vector]; En el caso de la dimensión del vector, es conveniente utilizar o bien constantes o bien números, no variables. La utilización de variables no siempre funciona como esperáis aunque el compilador la acepte. Utilizaremos básicamente tres tipos de datos: enteros (int), caracteres (char), y punteros (sean variables simples o vectores). Un int se puede utilizar como booleano, sabiendo que si vale 0 es falso y si vale diferente de 0 es cierto. Una cadena de caracteres se puede usar como string, sabiendo que un string (que en C no existe como tipo) debe acabar en \0, sino es simplemente una vector de caracteres. Los parámetros que recibimos en argv los recibimos como string (acabados en \0 ). Un puntero puede ser a cualquier cosa, puede ser un puntero a entero (int *), puntero a char (char *) o puntero genérico (void *). Punteros Un puntero es una dirección de memoria, por lo tanto, serán o 32 o 64 bits dependiendo de la arquitectura. Cuando definimos una variable tipo puntero en C, debemos asignarle un valor para poder utilizarla, o estaremos accediendo a una dirección indeterminada. En C, cuando utilizamos el nombre de un vector, el compilador lo traduce por la dirección del primer elemento. En el siguiente ejemplo la función escribe_mesaje recibe la dirección de buffer. 2

void escribe_mensaje(char *msj) write(1,msj,strlen(msj)); int main(int argc,char *argv[]) strcpy(buffer, esto es una prueba ); escribe_mensaje(buffer); // igual que si ponemos escribe_messaje(&buffer[0]) Asignación (=) int x=4; char a= A ; int *p=&x; // p es un puntero a entero, inicializado con la dirección de x int v[10]; // los vectores en C van de 0 a (n-1), en este caso de 0..9 v[0]=1;v[1]=2;v[9]=19; Comparación: iguales (==) para comparar enteros, char s y punteros int x=4;char a= A ; if (x==4) // Hacer algo si son iguales else if (a== A ) // lo que sea Otras comparaciones: mayor (>), menor (<), mayor igual (>=), menor igual (<=), diferentes ( =) Hay que tener cuidado con las preferencias, ante la duda poned paréntesis // Si quereis hacer una asignación y una comparación en una línea, por ejemplo el equivalente a esto int fd; fd=open( fichero,o_rdonly); if (fd<0) escribe_error( error al abrir el fichero\n ); // no se puede hacer asi if (fd=open( fichero,o_rdonly)<0) escribe_error( error al abrir el fichero\n ); // Hay que hacerlo asi con paréntesis, porque en C primero se compara y luego se asigna if ((fd=open( fichero,o_rdonly))<0) escribe_error( error al abrir el fichero\n ); Strings El tipo string no existe en C. Se dice que es un string cuando es un vector de caracteres acabado en \0. El carácter \n indica el salto de línea Para utilizar estas funciones, hay que consultar que ficheros de cabecera (include) hay que incluir (stdio.h, string.h, etc). Consultad en el man (man strlen, man sprintf, etc) Inicialización 3

// buffer es un vector de de char s propósito general strcpy(buffer, Hola, esto es un ejemplo\n ); // strcpy(destino,origen) char *buffer= Este mensaje es mas para usos fijos, normalmente constantes\n ; Calcular la longitud: int strlen(char *s) Generar un string a partir de varios tipos simples : int sprintf(char *s,char *formato,.) o Recibe un número variable de parámetros. El formato indica como generar el nuevo string, se substituyen caracteres especiales por la lista de variables que hay al final.(%d = int, %c= char, %s=string) sprintf(buffer, Puedo usarlo para inicializar\n ); sprintf(buffer, Puedo poner enteros aquí %d aquí %d y aquí %d\n,1,2,3); sprintf(buffer, Puedo combinar otras variables, chars %c o otros strings %s\n, x, esto se pondra al final ); Comparación: int strcmp(char *s1,char *s2) (devuelve 0 si son iguales) char buffer[64],buffer1[128]; strcpy(buffer, Hola ); if (strcmp(buffer, Hola )==0) strcpy(buffer1, Son iguales!\n ); write(1,buffer,strlen(buffer1)); else strcpy(buffer1, Son diferentes!\n ); write(1,buffer,strlen(buffer1)); Convertir de int string y de string int Para convertir tipos de datos, es suficiente con dos funciones sencillas: sprintf podemos usarla para pasar de int a string int x=1000; // para escribir un número por pantalla, necesitamos que sea ascii sprintf(buffer, %d,x); write(1,buffer,strlen(buffer)); int atoi(char *s) convierte un string a int. o Por ejemplo, un programa que suma dos números recibidos como argumentos 4

int main(int argc,char *argv[]) // esto es un vector de caracteres, variable local int x,y,suma; // Esto son enteros, variable locales x=atoi(argv[1]); y=atoi(argv[2]); suma=x+y; sprintf(buffer, La suma es %d\n,suma); write(1,buffer,strlen(buffer)); Código iterativo: while y for while(condicion) // código que se repite for(inicialización ; condición; modificación_por_iteracion) // ejemplo for (i=0;i<100;i++) Código condicional: if (condicion) codigo_ciertoelsecodigo_falso if(condición) // caso cierto if (condicion) // caso cierto else // caso falso if (condicion) else if (condicion) else if (condición) else Funciones tipo_de_retorno nombre_funcion(tipo_var1 var1,tipo_var2 var2, tipo_varn varn) Se utiliza void cuando no devuelve nada o cuando no tiene ningún parámetro int suma(int a,int b) return a+b; void escribe_error(char *msj) write(1,msj,strlen(msj)); exit(1); 5