Estructura de un programa C

Slides:



Advertisements
Presentaciones similares
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
Advertisements

PROGRAMACIÓN EN C.
Repaso para la construcción del intérprete 2012
Fundamentos de la Programación Estructurada
Programación I Teoría I
Variables Prof. Gonzalo Pastor.
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Objetos de un programa Datos: Se denomina dato a toda aquella información característica de una entidad y que es susceptible de tratamiento en un programa.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
ESTRUCTURAS DE SECUENCIA
Una breve introducción
Ingeniero Anyelo Quintero
Conceptos Básicos de Java
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.

Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Tema 3 Entrada y Salida.
UNIVERSIDAD DE MANAGUA I CUATRIMESTRE INTRODUCCION A LA PROGRAMACION
Lenguaje C.
LENGUAJE “C” Programación.
Semana 5 Subprogramas..
Características de “C”
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
CARACTERÍSTICAS DE LOS PROGRAMAS
Unidad III Elementos del lenguaje C++
Tema 2: Los tipos de datos
Capítulo 1 “Elementos de Programación”
Informática Ingeniería en Electrónica y Automática Industrial
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
ESTRUCTURA DE DATOS ESD-243
Administración de Proyectos de desarrollo de Software Ciclo de vida de un proyecto Enfoque moderno Temas Componentes Directivas Declaraciones globales.
Programación en Lenguaje C
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Introducción Lenguaje de Programación ING2101 SECC Ayud. Ariel Fierro Sáez.
Estructuras de Control.
Informática Ingeniería en Electrónica y Automática Industrial
Programación en C para electrónicos
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Elementos básicos del lenguaje
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Alto Nivel. Y Es un compilador. YContiene un conjunto de palabras.
Departamento de Informática Universidad Técnica Federico Santa María Temas 2,3,4: Estructura de un Programa Pascal Declaraciones Tipos de Datos Simples.
FUNDAMENTOS DE PROGRAMACIÓN
Términos algoritmo diseñar algoritmo implementar algoritmo
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
 Un lenguaje se puede definir como un conjunto de palabras y formas de expresión por medio de las cuales se comunican y relacionan miembros de una comunidad.
Capitulo 4 Arreglos o Arrays Unidimensionales Bidimensionales Strings
Computación I (CI-2125) Clase 2 Prof. Mireya Morales.
PRINCIPIOS DE PROGRAMACIÓN

Presente un cuestionario con los aspectos mas importantes sobre los
1.  En el Lenguaje C, los nombres usados para referirse a las variables, las constantes, las funciones y otros objetos definidos por el usuario se conocen.
Fundamentos de Programación
Práctica Profesional PHP.
Lic. Carla Aguirre Montalvo
Programación de Computadores
CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.
Lenguaje de programación c
EL TIPO DE DATO LOGICO y constantes.
Informática Ingeniería en Electrónica y Automática Industrial
Características de “C” Esta conformado por un Ambiente Integrado. Es un Lenguaje de Nivel medio.Es un compilador. Contiene un conjunto de palabras reservadas.
1 Conceptos Fundamentales de Programación Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión
Transcripción de la presentación:

Estructura de un programa C Semana 2 Estructura de un programa C

El lenguaje C Dennis Ritchie fue el encargado del diseño del lenguaje C y de se implementación. C ha sufrido numerosos cambios a lo largo de su historia. La primera versión del lenguaje data de 1978 y se conoce como K&R C, es decir, C de Kernighan & Ritchie. Descrita en la primera edición de su libro “The C Programming Language”.

El lenguaje C El 14 de diciembre de 1989 se acordó la definición de lo que es “C estándar” y se publico la especificación en 1990. Durante mucho tiempo se conoció a esta versión del lenguaje como ANSI-C para distinguirla asi del K&R C. C ha tenido un gran impacto en el diseño de otros muchos lenguajes. Ha sido la base para definir la sintaxis y ciertos aspectos de la semántica de lenguajes tan populares como C++, Java y C#.

Implementación de un Programa Escribir el programa, codificar. Compilar. Probar el programa. Los pasos, por lo general, se repiten muchas veces para mejorar la calidad del programa en cada iteración.

Conceptos básicos de programación. Código fuente: Es un archivo de texto plano que contiene una serie de sentencias, escrito por el programador en algún lenguaje. En el caso de C estos archivos deberían tener la extensión .c (el código en si) y .h (archivos de cabecera). Estos archivos serán transformados a lenguaje de maquina, mediante el compilador.

Proceso de Compilación #include <stdio.h> void main (void){ printf(“Hola mundo \n”); return; }

C un lenguaje compilado. Un archivo de texto con extensión “.c” llamado código fuente lo procesa un compilador de lenguaje C. El compilador lee y analiza todo el código. Si el programa esta correctamente escrito según la definición del lenguaje, el compilador genera un nuevo archivo con su traducción a código de maquina. Si no, muestra los errores que ha detectado. El resultado es un programa ejecutable.

Conceptos básicos de programación. Código objeto: mediante un programa llamado compilador se transforma el código fuente en un lenguaje entendible por el computador. Los archivos de código objeto en c tiene la extensión .obj – “.o”.

Características. C es un lenguaje estructurado de nivel medio, ya que combina elementos de lenguajes de alto nivel (manipulación de bits, bytes, direcciones) y elementos básicos como números y caracteres. El código fuente C es portable, lo que significa que es independiente del computador y sistema operativo en el que opere, pero dependiente del compilador.

Estructura de un programa en C. /* Descripción de Bibliotecas*/ #include <stdio.h> /* Función Principal*/ void main (void) { /* Cuerpo del programa*/ printf(“Hola mundo \n”); return; }

Estructura de un programa en C. /* comentario*/ El texto escrito entre /* y */ son comentarios, sirven para entender mejor el código. Pueden estar en mas de una línea.

Estructura de un programa en C. #include <stdio.h> Es la inclusión de un archivo de cabecera. Sirve para indicar al compilador que incluya otro archivo de bibliotecas de información. En este caso en stdio.h incluye las funciones de entrada y salida de datos estándar. STD=Standard IO=Input/Output

Estructura de un programa en C. void main(void) Función principal del programa. Para que el programa ejecute correctamente debe tener void, es lo primero que se ejecuta al llamar a un programa. El primer void (vacío) significa que cuando el programa acabe no devolverá nada. El segundo void indica que la función main no requiere argumentos. OBS: Funciones en profundidad Certamen 2

Estructura de un programa en C. { Indica el comienzo de una función en este caso main. printf(“Hola mundo \n”); Cuerpo principal del programa, donde el programa hace algo. ; corresponde al final de una sentencia, de esta forma C separa una instrucción de otra.

Estructura de un programa en C. return Hace que el programa devuelva un valor, o en este caso elegimos no retornar nada. } Esta llave indica el fin de la función.

Identificadores. Son nombres que nos permiten referenciar a valores guardados en memoria, como variables, constantes y funciones. Reglas que rigen a los identificadores Deben comenzar con una letra Pueden seguir letras, números o el carácter _ Ejemplos: hola Universidad_Santa_María PI AnsiC2007

Identificadores. Están formados por letras y dígitos, excepto el primer carácter que debe ser una letra. Se pueden utilizar mayúsculas y minúsculas no tildada. OBS: No son equivalentes mayúsculas y minúsculas. ANSI C es sensible a mayúsculas o minúsculas, por lo tanto HoLa NO es lo mismo que HOLA.

Identificadores. Hay ciertas palabras claves en C que tienen un significado estándar y por eso no pueden ser utilizados como identificadores. Las palabras claves están en minúscula. Varios identificadores son reservados y no pueden ser utilizados por el programador Ejemplos: main int char if while for return

Constantes. Son identificadores con valores inalterables a lo largo de la ejecución de un programa. Constantes carácter: cualquier caracter individual encerrado en comillas simples como ’c’,’5’,’@’, es representado como un numero entero entre 0 y 255 código ASCII. Constantes de caracteres: un conjunto de caracteres encerrados entre comillas dobles, como por ejemplo “hola”,”palabra”, “etc”

Constantes. Constantes numéricas: Números. Constantes simbólicas: poseen un nombre como las variables, pero no pueden cambiar de valor se declaran con const.

Definición de las constantes. const tipo nombre=valor; #define identificador valor Ejemplo #include <stdio.h> #define PI 3,14 #define TEXTO “Prueba” const int dolar=561; main…

Tipos de datos. Cuando en C se dice que una variable es de un tipo, se quiere decir que pertenece a un conjunto especifico de valores con los cuales se puede realizar un conjunto determinado de operaciones.

Variables. Similares a las constantes, la diferencia radica en que se les puede cambiar su valor y el tipo de dato que contienen debe ser definido. Reservan en una determinada posición de memoria, una determinada cantidad de memoria de acuerdo a su tipo, con un nombre que se usará para mantener un valor que puede ser referenciado y modificado en el programa. Todas las variables deben ser declaradas antes de ser usadas. int c;

Operador de tamaño sizeof. Este se puede aplicar al nombre del tipo entre paréntesis o al identificador. En el primer caso devuelve el número de bytes que ocupa en memoria la variable de ese tipo, y en el segundo el número de bytes que ocupa la variable. sizeof(int) retorna 2 bytes

EJEMPLO: char car; /* car es una variable de tipo char */ CHAR (CARACTER) 1 BYTE RANGO: -128... 127 char 0...255 unsigned char EJEMPLO: char car; /* car es una variable de tipo char */

EJEMPLO: int x; /* x es de tipo entero */ INT (ENTERO) 2 BYTES RANGO PARA 16 BITS: -32768 .. 32767 int 0 .. 65535 unsigned int EJEMPLO: int x; /* x es de tipo entero */

EJEMPLO: short x,y; /* declara x e y como enteros cortos */ SHORT (ENTERO CORTO) 1 BYTE RANGO: -128.. 127 short 0 .. 255 unsigned short EJEMPLO: short x,y; /* declara x e y como enteros cortos */

EJEMPLO: long var; /* var es de tipo long*/ LONG (ENTERO LARGO) 4 BYTES RANGO: -2147483648 .. 2147483647 long 0 .. 4.294.967.295 unsigned long EJEMPLO: long var; /* var es de tipo long*/

ENUM (ENUMERACIÓN) Tipo enumerado, lista de valores representados por identificadores. Ejemplo: enum semana { lunes, martes, miercoles, jueves, viernes, sabado, domingo} ; enum semana ayer /* ayer es un tipo enumerado semana * / /* lunes toma el valor 0 y domingo el valor 6* /

FLOAT (REALES EN SIMPLE PRECISION) 4 BYTES RANGO: -3.402823E+38 .. -1.40129E45 negativos 1.401293E-45 .. 3.40282E38 positivos Ejemplo: float x; /* x es un real */

DOUBLE (REALES EN DOBLE PRECISION) 8 BYTES RANGO: -1.79769313316E308 .. 4.94065E-324 negativos 4.94065E-324 .. 1.797334862316E308 positivos EJEMPLO: double x; /* x es un real en doble precisión * /

Ejemplo: void f (int a); /* la función no retorna valores */ VOID (Vacío) Se utiliza para declarar funciones que no retornan ningun valor o no aceptan parametros. Ejemplo: void f (int a); /* la función no retorna valores */

Sentencias de declaración. <tipo_dato> <identificador>; <tipo_dato> <identificador> = valor; <tipo_dato> <identificador1>, <identificador2>,…<identificadorn>; Ejemplo: float j; int i = 100; char a, b, c;

Declaración de variables. Una vez que se ha declarado una variable es imposible hacerla cambiar de tipo. #include <stdio.h> int main(void) { int a; float a; /* ERROR!!! */ a = 2; return 0; }

Declaración con inicialización. El valor inicial de una variable declarada esta indefinido. Si se accede al valor de una variable no inicializada el compilador no arrojará error, pero existirá un comportamiento indeterminado.

#include <stdio.h> int main(void) { int a = 2; Ejemplo. #include <stdio.h> int main(void) { int a = 2; float b = 2.0, c, d = 1.0, e; b = a + c; return 0; } ¿Cuánto vale b?

Operadores. Los operadores son símbolos especiales que indican determinadas acciones a realizar sobre las variables y/o constantes sobre las que actúan el programa.

Operadores aritméticos. Existen dos tipos de operadores aritméticos: Binarios (dos operandos): + suma. - resta. * multiplicación. / división. % resto ó módulo.

Operadores aritméticos. Unarios. ++ incremento (suma 1). -- decremento (resta 1). - cambio de signo.

Sintaxis operadores aritméticos. Binarios: <variable 1> <operador> <variable 2> Por ejemplo a + b Unarios: <variable> <operador> y al revés <operador> <variable> Por ejemplo – a, --a, o a ++.

Post/pre incremento/decremento Los operadores ++ y -- pueden ir antes o después de una expresión. La diferencia es que el pre-incremento primero suma 1 a la variable y luego se asigna, y en el post-incremento primero se asigna y luego suma. Ejemplo: int x = 1,y; y = x ++; /* ‘y’ es 1 y ‘x’ vale 2*/ y = ++ x; /* ‘x’ vale 2 e ‘y’ también vale 2*/

Algunos principios. La división de dos números enteros proporciona un número entero. Los operadores solo funcionan con datos numéricos, no es posible por ejemplo concatenar strings con el +. La dualidad carácter entero hace que se pueda utilizar la suma o la resta (o cualquier otro operador aritmético) con variables o valores del tipo char. Ejemplo ‘a’ + 1 es ‘b’ (o el valor 98, ya que ‘a’ es 97). Recordar que ‘a’ no es “a”.

Operadores de asignación. Los operadores aritméticos recién vistos tienen su correspondiente operador de asignación. = asignación simple. += Suma. -= Resta. *= multiplicación. /= división. %= resto.

Operadores de asignación. Con estos operadores se pueden escribir de forma mas breve expresiones del tipo: n = n + 3 se puede escribir como n += 3 k = k * ( x – 2 ) se puede sustituir por k *= x - 2

Operadores relacionales. Estos se utilizan para comparar el contenido de dos variables. En C existen 6 básicos: > mayor que. < menor que. >= mayor o igual que. <= menor o igual que. == igual que. != distinto que.

Operadores relacionales. El resultado que devuelven estos operadores es 1 para Verdadero y 0 para Falso, sin embargo C considera como Falso el valor 0 y Verdadero cualquier valor distinto de 0.

Los operadores básicos son tres: Operadores lógicos. Los operadores básicos son tres: && And || Or ! Not Actúan sobre expresiones lógicas, permitiendo unirlas y formar otras más complejas.

Operadores a nivel de bits. Permiten efectuar operaciones bit a bit entre dos variables o constantes. & And bit a bit. | Or bit a bit. ! Not bit a bit. << x Desplazamiento a la izquierda en x bits. >> x Desplazamiento hacia la derecha en x bits.

Precedencia de operadores La prioridad en la tabla esta dada desde la más alta a la más baja. Por claridad, siempre es mejor utilizar paréntesis para inducir un orden en la evaluación de las expresiones.

Precedencia de operadores

Conversión explicita e implícita de tipos Cuando se evalúa una expresión y el resultado se asigna a una variable, se debe tener en cuenta el tipo de todos los operandos y la variable en la que se almacena. Conversion Implícita: Si se asigna el valor de un entero int a una variable de menor tamaño de bytes como char, el entero corto cambia a un valor entero automáticamente.

Conversión explicita e implícita de tipos Ejemplo: int char 1000 -24 10000 16 -5000 120 Se puede asignar un entero int a un char. C se encarga de hacer la conversión de tipos de ahí que se denomina conversión implícita.

Conversión explicita e implícita de tipos Pero en 1 byte (char) no caben los 4 bytes (long). C toma los 8 bits menos significativos del int y los almacena en el char. O sea preserva el valor solo si el número esta entre -128 y 127.

Operadores de conversión de tipos. Conversión Explícita: Puede convertir un valor de un tipo de datos a otro compatible indicándolo explícitamente y NO delegando la conversión a C. Ejemplo: #include <stdio.h> int main(void) { int a = 1,b = 2; float x; x = a / ( float ) b; return ( 0 ); }

Operadores de entrada y salida. Para la salida de datos se utiliza habitualmente printf. Es una función disponible en la biblioteca stdio.h El uso mas simple es para mostrar una cadena por pantalla. printf ( “un string” ); Para incluir salto de línea se debe incluir \n. printf ( “un string\n” );

Operadores de entrada y salida. Para mostrar números enteros o flotantes se debe usar necesariamente cadenas con formato.

Ejemplo. Si a es una variable de tipo int con valor 5, b es una variable de tipo float con valor 1.0, y c es una variable de tipo char con valor 100, esta llamada a la función printf : printf ( "Un entero: %d, un flotante: %f, un byte: %hhd\n", a, b, c ); Por pantalla… Un entero: 5, un flotante: 1.000000, un byte: 100

Operadores de entrada y salida. Las marcas de formato para enteros aceptan modificadores. Un número positivo: reserva un número de espacios determinado (el que se indique) para representar el valor y muestra el entero alineado a la derecha. Ejemplo: la sentencia printf ( "[%6d]", 10 ); muestra en pantalla: [ 10]

Operadores de entrada y salida. Un número negativo: reserva tantos espacios como indique el valor absoluto del número para representar el entero y muestra el valor alineado a la izquierda. Ejemplo: la sentencia printf ( "[%-6d]", 10 ); muestra en pantalla: [10 ]

Operadores de entrada y salida. Un número que empieza por cero: reserva tantos espacios como indique el valor absoluto del número para representar el entero y muestra el valor alineado a la izquierda. Los espacios que no ocupa el entero se rellenan con ceros. Ejemplo: la sentencia printf ( "[%06d]", 10 ); muestra en pantalla: [000010]

Operadores de entrada y salida. El signo +: muestra explícitamente el signo (positivo o negativo) del entero. Ejemplo: la sentencia printf ( "[%+6d]", 10 ); muestra en pantalla: [ +10]

Operadores de entrada y salida. Hay dos notaciones alternativas para la representación de flotantes que podemos seleccionar mediante la marca de formato adecuada:

Operadores de entrada y salida. La forma convencional muestra los números con una parte entera y una decimal separadas por un punto. La notación científica representa al número como una cantidad con una sola cifra entera y una parte decimal, pero seguida de la letra e y un valor entero. Por ejemplo, en notación científica, el número 10.1 se representa con 1.010000e+01.

Operadores de entrada y salida. Los modificadores de formato que se han presentado para los enteros son válidos para flotantes, además la posibilidad de fijar la precisión: Un punto seguido de un número: indica cuántos decimales se mostrarán. Ejemplo: la sentencia printf ( "[%6.2f]", 10.1 ); muestra en pantalla: [ 10.10]

Marcas de formato para texto. C distingue entre caracteres y cadenas:

Marcas de formato para texto. Por ejemplo printf ( "[%c]", 97 ); muestra en pantalla: [a] El valor 97 también puede representarse con el literal ’a’, así que esta otra sentencia printf ( "[%c]", ’a’ ); también muestra en pantalla:

Marcas de formato para texto. printf ( "[%s]", "un string” ); En pantalla se muestra esto: [un string] También puedes usar números positivos y negativos como modificadores de estas marcas. Su efecto es reservar los espacios que se indique y alinear a derecha o izquierda.

Entrada por teclado. La función scanf, disponible al incluir stdio.h, permite leer datos por teclado. Se usa de un modo similar a printf: su primer argumento es una cadena con marcas de formato. A éste le siguen una o más direcciones de memoria. Si se desea leer por teclado el valor de una variable entera a: scanf ( "%d", &a );

Entrada por teclado. scanf recibe: Una cadena cuya marca de formato indica de qué tipo es el valor que vamos a leer por teclado:

Entrada por teclado. La dirección de memoria que corresponde al lugar en el que se depositará el valor leído. Se debe proporcionar una dirección de memoria por cada marca de formato indicada en el primero argumento. \n.

Ya se viene … … el CERTAMEN FIN Ya se viene … … el CERTAMEN