Introducción a la programación Conceptos básicos Elementos básicos de C Estructura de un programa en C Departamento de Automática Universidad de Alcalá Sistemas Operativos Estructura de un programa en C 1 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Índice 1 2 3 Introducción a la programación ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Conceptos básicos Historia de C Estándares de C Primer contacto Fases de desarrollo de un programa Visión general Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Sistemas Operativos Estructura de un programa en C 2 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación ¿Por qué programar? Nuestra civilización funciona sobre software Casi todas las actividades de la ingeniería implican software: Diseño, control, monitorización, simulación, optimización, ... La mayor parte del software no es visible Los programas NO suelen correr sobre un PC con pantalla, teclado y una caja bajo la mesa Una minoría de los programas son parecidos a la ofimática Los programas corren sobre microprocesadores Los micros se integran en casi todo: Sistemas empotrados Programar es necesario porque: Casi todo sistema digital está programado El software aporta inteligencia a los dispositivos Razones pedagógicas: Estructura la mente y potencia pensamiento lógico ... y además, programar es divertido Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Estructura de un programa en C 3 / 29 ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación ¿Por qué programar? Áreas de aplicación: Robótica Control Monitorización Visión artificial Inteligencia artificial Sistemas Operativos Automatización Estructura de un programa en C 4 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación ¿Por qué programar? Áreas de aplicación: Aeroespacial Comunicaciones Procesado de señal Navegación Navegación Diseño de ala y motores Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Planificación de la misión Estructura de un programa en C 5 / 29 ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación ¿Por qué programar? Áreas de aplicación: Informática personal ¡Hasta sirve para hacer procesadores de texto y videojuegos! Sistemas Operativos Estructura de un programa en C 6 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación ¿Por qué usar C? Características de C Es pequeño, eficiente y estable Hay mucho código C escrito C es la base de muchos otros lenguajes C++, Java, AWK, PHP, ... C es muy usado en sistemas empotrados También se usan otros lenguajes: C++, ADA, e incluso Java No todo son ventajas Bajo nivel (puede ser ventaja) Poco estructurado: Difícil de aprender Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Estructura de un programa en C 7 / 29 ¿Por qué programar? ¿Por qué usar C? Vocabulario básico de programación Introducción a la programación Vocabulario básico de programación Términos comunes en programación Código fuente: Lo que escribe el programador Compilar : Generar un ejecutable a partir del código fuente Ejecutable: Programa en código máquina que se ejecuta Biblioteca: Funciones externas que realizan ciertas tareas Palabra: Según el micro, 16, 32 ó 64 bits Algoritmo: Secuencia de acciones para solucionar un problema Términos importantes en Ingeniería Industrial Sistema empotrado: Ordenador insertado en un objeto Sistema crítico: Sistema que nunca debe fallar Sistema de tiempo real: Sistema con restricciones de tiempo Sistemas Operativos Estructura de un programa en C 8 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Historia de C Creado por Brian Kernighan y Dennis Ritchie en los laboratorios AT&T Originariamente se creó para codificar UNIX UNIX fue creado por Ritchie junto con Ken Thompson Programar un SO en un lenguaje de alto nivel fue revolucionario UNIX fue portado a distintas máquinas y plataformas Originariamente C se describió en la primera edición del K&R (1978) El K&R fue usado como estándar de facto de C Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos Estructura de un programa en C 9 / 29 Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Estándares de C 1988: Segunda edición del K&R, actualizado con ANSI C, incorpora biblioteca estándar 1989 (C89): Nuevas órdenes para el preprocesador y nuevas palabras reservadas: const, volatile, declaraciones y chequeo de tipos 1995 (C89): Nuevas cabeceras: iso646.h, wctype.h, textttwchar.h, ampliación de printf/scanf, nuevas funciones y tipos 1999 (C99 or ISO/IEC 9899): Vectores de tamaño variable, tipos booleanos, mejor soporte para caractéres no ingleses, mejor soporte de coma flotante y comentarioes estilo C++ 2011 (C11 or ISO/IEC 9899:2011): Define noreturn, elimina gets, estructuras y uniones anónimas, aserciones estáticas Sistemas Operativos Estructura de un programa en C 10 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Primer contacto (I) Hola, mundo include define funciones externas /⇤ ⇤ Mi programa en C ⇤/ #i n c l u d e <s t d i o . h> En este caso stdio.h El programa empieza en main() i n t main ( ) { p r i n t f ( " Hola , mundo\n " ) ; } r e t u r n 0 ; // F i n return finaliza la ejecución // y /* ... */ son comentarios C ignora fin de línea El ; indica fin de instrucción Sistemas Operativos Conceptos básicos Primer contacto (II) printf imprime una cadena Estructura de un programa en C 11 / 29 Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos Fases de desarrollo de un programa Ciclo de desarrollo 1 Edición 2 Compilación 3 Ejecución 4 Depuración Edición Compilación vi, vim, emacs, gedit, etc. $ vi enteros.c Depuración cc (gcc), make, ar, etc. $ gcc enteros.c –o enteros Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos gdb, ddd $ gdb enteros Estructura de un programa en C 13 / 29 Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Fases de desarrollo de un programa: Compilación Preprocesamiento Compilación Generación Enlace y optimización de código objeto gcc cpp cpp programa.c comp comp programa.i as as programa.s Sistemas Operativos ld ld programa.o Estructura de un programa en C a.out 14 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Conceptos básicos Historia de C Estándares de C Conceptos básicos Fases de desarrollo de un programa Visión general Visión general Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Estructura de un programa en C 15 / 29 Variables Constantes Sentencias de control Vectores Funciones Variables (I) Los programas necesitan almacenar datos Cada dato se guarda en una variable Todas las variables se definen al principio La definición indica el tipo de dato Sistemas Operativos Tipos de datos básicos en C Entero: int Coma flotante: float Carácter: char Hay otros muchos tipos de datos Estructura de un programa en C 16 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Variables (II) Cálculo de una media #i n c l u d e <s t d i o . h> i n t main ( ) { i n t v a r 1 =3 , v a r 2 =5; f l o a t v a r 3 =1.5 , r e s u l t a d o ; r e s u l t a d o = ( var1 + var2 + var3 ) / 3; p r i n t f ( " La media de %d , %d y %d e s %f \n " , var1 , var2 , var3 , r e s u l t a d o ) ; } return 0; Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Estructura de un programa en C 17 / 29 Variables Constantes Sentencias de control Vectores Funciones Constantes (I) A veces se necesita usar valores constantes Conviene definirlas como tales ¡Mejor no usar variables! Sistemas Operativos Constantes en C #define valor contenido valor es igual a contenido valor, por convenio, se pone en mayúsculas Estructura de un programa en C 18 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Constantes (II) Cálculo del área de un círculo #i n c l u d e <s t d i o . h> #d e f i n e PI 3 . 1 4 1 5 9 2 6 5 i n t main ( ) { float radio = 1.5; f l o a t area ; a r e a = PI ⇤ r a d i o ⇤ r a d i o ; p r i n t f ( " R a d i o= %f , a r e a= %f " , r a d i o , a r e a ) ; } return 0; Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Estructura de un programa en C 19 / 29 Variables Constantes Sentencias de control Vectores Funciones Sentencias de control (I) Los programas necesitan repetir operaciones Un bucle es una porción de código que se repite Todo bucle tiene una condición La condición determina si se sigue repitiendo o no ¡Cuidado con los bucles infinitos! Sistemas Operativos Tipos de bucle while: Mientras se cumple una condición for: Para una condición inicial, mientras se cumpla, se hace una acción Estructura de un programa en C 20 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Sentencias de control (II) Ejemplo de bucle (versión 1) #i n c l u d e <s t d i o . h> i n t main ( ) { int variable = 0; } w h i l e ( v a r i a b l e < 5) { p r i n t f ( " V a r i a b l e = %d\n " ) ; v a r i a b l e ++; } Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Estructura de un programa en C 21 / 29 Variables Constantes Sentencias de control Vectores Funciones Sentencias de control (III) Ejemplo de bucle (versión 2) #i n c l u d e <s t d i o . h> i n t main ( ) { int variable ; } f o r ( v a r i a b l e =0; v a r i a b l e <5; v a r i a b l e ++) { p r i n t f ( " V a r i a b l e = %d\n " , v a r i a b l e ) ; } Sistemas Operativos Estructura de un programa en C 22 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Sentencias de control (IV) A veces interesa ejecutar o no código según una condición Puede ser numérica o lógica ¡Cuidado con los bucles infinitos! Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Ejecución condicional if: Ejecuta código según una condición else: Ejecuta código si la condición no se cumple (optativo) Estructura de un programa en C 23 / 29 Variables Constantes Sentencias de control Vectores Funciones Sentencias de control (V) Ejemplo de if (versión 1) i n t edad = 1 9 ; i f ( edad > 1 8 ) { p r i n t f ( " Mayor de edad " ) ; } else { p r i n t f ( " Menor de edad " ) ; } Ejemplo de if (versión 2) i n t num = 2 0 ; i f ( ( num > 1 0 ) && ( num %2 == 0 ) ) { p r i n t f ( "num e s mayor de 10 y p a r " ) ; } Sistemas Operativos Estructura de un programa en C 24 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Vectores (I) También llamados arrays Son datos consecutivos del mismo tipo Similar a un vector matemático ˛v = (a0 , a1 , a2 , ..., an ) Se accede por índice: v [3] Los elementos se manejan como variables int v[4] v[0] 3 v[1] 5 v[2] 2 Definición de vector tipo nombre[tamaño]; Ejemplo: int vector[10]; Ejemplo: vector[2] = 4; Ejemplo: printf("$d", vector[2]); v[3] 0 Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Estructura de un programa en C 25 / 29 Variables Constantes Sentencias de control Vectores Funciones Vectores (II) Ejemplo de vector int vector [10]; int i ; f o r ( i =0; i <10; i ++) { v e c t o r [ i ] = 8⇤ i ; } p r i n t f ( " Tabla d e l 8" ) ; f o r ( i =0; i <10; i ++) { p r i n t f ( " 8 x %d = %d\n " , i , v e c t o r [ i ] ) ; } Sistemas Operativos Estructura de un programa en C 26 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Vectores (III): Cadenas de caracteres Las cadenas de caracteres se manejan como vectores Definición: char nombre[tamaño]; char cad[5] cad[0]cad[1] cad[2]cad[3] cad[4] 'h' 'o' 'l' 'a' \0 Fin de cadena se marca con ’\0’ Tamaño = longitud + 1 Ejemplo de cadena (versión 1) Ejemplo de cadena (versión 2) char cadena [ 5 ] ; char cadena = " ho l a " ; cadena [0]= ’ h ’ ; cadena [1]= ’ o ’ ; cadena [2]= ’ l ’ ; cadena [3]= ’ a ’ ; c a d e n a [ 4 ] = ’ \0 ’ ; p r i n t f ( " %s " , c a d e n a ) ; Sistemas Operativos Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C p r i n t f ( " %s " , c a d e n a ) ; Estructura de un programa en C 27 / 29 Variables Constantes Sentencias de control Vectores Funciones Funciones (I) Un programa típico contiene mucho código Incluso millones de líneas Descomponer el problema Divide y vencerás Las funciones son trozos de código reutilizables Implementan una tarea Función especial: main() Las funciones pueden devolver un valor Ejemplo void imprimir () { p r i n t f ( " Hola , mundo " ) ; } i n t main ( ) { imprimir () ; } return 0; Regla: Meter en una función el código que se use más de una vez Sistemas Operativos Estructura de un programa en C 28 / 29 Introducción a la programación Conceptos básicos Elementos básicos de C Elementos básicos de C Variables Constantes Sentencias de control Vectores Funciones Funciones (II) Ejemplo con funciones i n t sumar ( i n t a , i n t b ) { int c = a + b; return c ; } i n t main ( ) { i n t v a r 1 = 3 , v a r 2 =2 , r e s u l t a d o ; r e s u l t a d o = sumar ( a , b ) ; p r i n t f ( " R e s u l t a d o = %d " , r e s u l t a d o ) ; } return 0; Sistemas Operativos Estructura de un programa en C 29 / 29
© Copyright 2025