Tema 1: Introducción a C

Documentos relacionados
Elementos de un programa en C

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

Lección 2 Introducción al lenguaje C

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

Tema 3 Constantes, Variables y Tipos

Tema 4. Operadores y Expresiones

El lenguaje C. 1. Identificadores, constantes y variables

Principios de Computadoras II

Curso de Programación Avanzada en C

LENGUAJE. Tema 2 Elementos de un programa

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Tema 2. El lenguaje JAVA

Operadores y Expresiones

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

OPERADORES Y EXPRESIONES

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

TIPOS DE DATOS BASICOS EN LENGUAJE C

Programación estructurada (Introducción a lenguaje C)

Lenguaje de programación C. Introducción

Ficha de Aprendizaje N 13

Operadores. Javier Fernández Rivera -

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

4. Operadores Operador asignación

Lenguajes de programación

Programación En Lenguaje C

Unidad II Fundamentos de C++ M.C. Juan Carlos Olivares Rojas

Java para programadores

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

PHP: Lenguaje de programación

Programación. Test Autoevaluación Tema 3

2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación Estructurada

Expresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz

Expresiones y sentencias

1 Estructura básica de un programa C++

SISTEMAS INFORMÁTICOS PROGRAMACION I - Contenidos Analíticos Ing. Alejandro Guzmán M. TEMA 2. Diseño de Algoritmos

Elementos léxicos del lenguaje de programación C

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Datos y tipos de datos

INICIACIÓN A LA PROGRAMACIÓN EN 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:

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

Operadores de comparación

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

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)

Programación en java. Estructuras algorítmicas

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

INICIACIÓN A LA PROGRAMACIÓN II

Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Apuntadores (Punteros)

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Sintaxis básica, variables y 7pos

Estructuras de Datos Declaraciones Tipos de Datos

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

INTRODUCCIÓN AL LENGUAJE C

Capítulo 7 OPERADORES Y EXPRESIONES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

CONCEPTOS BASICOS DEL LENGUAJE JAVA

Tema 2. El lenguaje de programación Java (Parte 1)

Tema 13: Apuntadores en C

Fundamentos de Programación 2017-I

Fundamentos de Informática E.U.P. Universidad de Sevilla

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

Tema 2 Introducción a la Programación en C.

Datos y tipos de datos

TIPOS DE DATOS BASICOS EN LENGUAJE C

LENGUAJE. Tema 1 - Introducción

EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO

FUNDAMENTOS DE INFORMÁTICA

Preliminares. Tipos de variables y Expresiones

Tema 3. Tipos de datos simples

REFERENCIA DEL LENGUAJE

Computación II. Introducción a Visual Basic

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

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

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Práctica de constantes, expresiones y operadores. Programación en C 1

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

FUNDAMENTOS DE INFORMÁTICA

Fundamentos de programación

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Programación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática

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

Lenguaje C. Tipos de Datos Simples y Estructuras de Control

Guía práctica de estudio 05: Diagramas de flujo

Representación de la información

PROCESADORES DE LENGUAJE. Hoja de ejercicios de FLEX

Enteros. Son los números que no contienen componentes fraccionarios y, por tanto, no contienen punto decimal.

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

Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la ejecución del programa.

Tema 3 Elementos básicos de programación

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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

Transcripción:

Fundamentos de Informática I ETSII Tema 1: Introducción a C. Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Tema 1: Introducción a C Índice: Objetivos Conceptos previos Tipos de datos, variables y constantes. Comentarios. Operadores y expresiones Estructura de un programa en C Trazas 1

Tema 1: Introducción a C Objetivos Conocer los operadores básicos de C Conocer los tipos de datos Manejar un entorno de desarrollo (prácticas) C Creado por Dennis Ritchie (laboratorios Bell, 1972). Herramienta para programadores (su primer objetivo es ser útil). Genera un código eficiente y rápido. El código de C es portable. Flexible y potente: C combina elementos de los lenguajes de alto nivel con otros propios de ensamblador. No impone restricciones a la hora de programar. Es un lenguaje estructurado: funciones, estructuras, bucles,... 2

Estructura de un programa en C main: indica donde empezar a ejecutar el código void main ( ) { instrucción 1; instrucción 2; instrucción n; } Las instrucciones deben finalizar con ;. {... }: delimitan un conjunto de instrucciones Estructura de un programa en C void main ( ) {. } int main ( ) {. return 0; } 3

Estructura de un programa en C Cabecera Cuerpo /* Instrucciones de preprocesador */ /* Variables globales */ void main() { /* Declaraciones de variables locales */... /* Entrada de datos */... /* Proceso */... /* Salida de datos: resultados */... } Ejemplo Inclusión de ficheros Declaraciones de constantes, macros,... #include <stdio.h> #define nombre Pepito Variables globales int i = 7; void main () Inicio de programa { int n; Variables locales /* Este es un programa tonto */ n = 25; Instrucción de asignación printf( Hola %s, soy el número %d y yo el %d.\n, nombre, n, i); } Fin de programa Programa principal Comentario Instrucción de salida (escritura) 4

Estructura de un programa en C Comentarios Añade legibilidad al código fuente Facilita la comprensión posterior por el propio programador y por otros (trabajo en equipo) Inserta información adicional de cualquier tipo No influye en absoluto sobre el rendimiento final del programa generado Ejemplo int i; Cerrar comentario /* Se utilizará como contador en el bucle principal */ Abrir comentario 5

Identificadores y palabras reservadas Identificador: nombre dado a un elemento del programa (constantes, variables y funciones). Reglas para construir un identificador : Deben comenzar por letra (a..z o A..Z) o subrayado (_). El resto del identificador puede constar de letras, dígitos numéricos o subrayado. Se distinguen mayúsculas y minúsculas. Pueden tener hasta 32 caracteres (dependiendo del compilador). No pueden coincidir con las palabras reservadas del lenguaje. Palabras reservadas: identificadores que tienen un significado predefinido dentro del lenguaje (main, int,...). Variables y constantes Sirven para almacenar datos (información) durante la ejecución del programa. Variable: simbología que nos permite asociar un nombre a un almacén de información temporal en un programa. Esta información puede variar durante la ejecución. Constante: lo mismo que la variable pero su contenido permanece constante. 6

Declaración de variables tipo_de_datos variable1 [=valor1] [, variable2 [= valor2] ]; Reservar memoria para almacenar los datos durante la ejecución de un programa. Asignar a un identificador un tipo de datos. Permite la utilización posterior por el programa de la información almacenada en la variable. No se le da ningún valor. Ejemplo: int contador; unsigned int edad=88; char sexo= H, letra1, letra2; float f=6.99; Inicialización de variables Declaración int a, b, c; float f=2.4, g=0.0; char d, e = k ; Valores de Variables a=indeterminado b=indeterminado c=indeterminado f=2.4 g=0.0 d=indeterminado e= k 7

Asignación de variables variable = expresión; Asigna el resultado de evaluar la expresión a la variable. El valor anterior de la variable se pierde Ejemplo: int a,b,c; int d,e; a = 5; b = 6; c = b+a-4; Declaración Asignación Tipos de variables (ámbito) Variables locales: son visibles únicamente en la función donde se declaran. Se crean cuando se ejecuta la función y se destruyen al finalizar ésta. Variables globales: visibles por todas las funciones del programa. Se declaran antes de la función main. Perduran durante toda la ejecución del programa. 8

Ejemplo /* Variables globales */ int j=5, k; int main() { /* Variables locales */ int i; char c= p ; int valor=899; /* Instrucciones */... return 0; } Constantes La información que tiene una constante no varía, por lo que se suelen utilizar para definir valores que se repiten a lo largo del programa (sentencia de preprocesador): #define nombre_constante valor_constante #define pi 3.14159 #define titulo TEXTO FIJO #define numero_alumnos 100 9

Constantes Las tiras de caracteres (frases) entre comillas dobles ( hola, 999 ). Se sitúan delante del programa principal Se distinguen mayúsculas y minúsculas #define nombre Pepito Grillo #define c a #define Mi_Inicial z #define mi_inicial I #define valor 3.677 #define j 5 Los caracteres deben ir entre comillas simples ( a, 9 ) Tipos de datos El ordenador debe tener un patrón para interpretar las secuencias de bits. Todos los datos deben tener un tipo de dato asociado. Definen: Longitud del dato (valores máximo y mínimo). Operaciones que se puede realizar con ese dato. Conjunto de valores posibles. Clasificación: Simples. Estructurados: compuestos de otros tipos de datos simples o estructurados. 10

Tipos de datos: entero (int) Es un subconjunto finito de los números enteros con signo. Declaración: int variable1 [= valor1] [, variable2 [= valor2] ]; Ejemplo: int i, j=7; int mivalor=2224, mi_numero; Tipos de datos: entero (int) Tamaño: depende del número de bytes que el compilador/procesador utiliza. Matizaciones de tipo: short, long, unsigned. Tipo int short int long int unsigned int Palabra 16 bits 16 bits 16 bits 32 bits 16 bits Palabra 32 bits 32 bits 16 bits 32 bits 32 bits 11

Tipos de datos: entero (int) int unsigned int long int unsigned long int Bits 16 bits 16 bits 32 bits 32 bits Rango [-32.768.. 32.767] [0.. 65.536] [-2.147.483.648.. 2.147.483.647] [0.. 4.294.967.296] Tipos de datos: entero (int) Operaciones Aritméticas: + - * / % (5/2 2 5%2 1) Comparación: >, >=, <, <=, ==,!= Resultado: 0 (falso) ó 1 (cierto). 12

Tipos de datos: real (float, double) Subconjunto de los reales con signo (racionales: cociente de dos números enteros, al disponer de un número limitado de bits). Declaración: float variable [= valor1] [, variable [= valor] ]; double variable [= valor1] [, variable [= valor] ]; Ejemplo: float v1=3.7, v2 ; double v3 ; Tipos de datos: real (float, double) La diferencia entre float y double es su tamaño. Tipo float double Palabra 16 bits 32 bits 64 bits Palabra 32 bits 32 bits 64 bits 13

Tipos de datos: real (float, double) Operaciones Aritméticas: + - * / (división real, algún componente real) Comparación: >, >=, <, <=, ==,!= Resultado: 0 (falso) o 1 (cierto). Tipos de datos: carácter (char) Conjunto finito y ordenado de caracteres que el ordenador es capaz de reconocer. Contiene un solo carácter. Un carácter se almacena como un valor entero de 8 bits. El ordenador interpreta este código en función de unas tablas de conversión (código ASCII). Se representan ente comillas simples: A. 14

Tipos de datos: carácter (char) Caracteres: Alfabéticos: a..z, A..Z Numéricos: 0..9 Especiales: +, -, *, /, <,... Contiene los caracteres no imprimibles (retorno de carro, fin de cadena,...). \n Nueva línea \t Tabulado \b Retroceso \r Retorno de carro \f Salto de página \\ Barra atrás (\) \ Apóstrofe ( ) \ Comillas ( ) Tipos de datos: carácter (char) Declaración: char variable1 [= valor1 ] [, variable2 [= valor2 ] ]; Ejemplo: char c= +, caracter; char c2= 0, c3= \n ; char c4= 2, c5=2; char c1=65; 15

Tipos de datos: carácter (char) Operaciones Aritméticas: + - * / % (división entera) Comparación: >, >=, <, <=, ==,!= Resultado: 0 (falso) o 1 (cierto). Tipos de datos: carácter (char) Tabla ASCII: caracteres de control no imprimibles 16

Tipos de datos: carácter (char) Tabla ASCII: caracteres imprimibles Tipos de datos: carácter (char) Tabla ASCII: caracteres extendidos imprimibles 17

Ejemplo char c=10; int i; c=c-1; i=c; c=i; i = A > B ; c= A +35; Tabla ASCII: toma como valor del carácter la posición en la tabla ASCII. i 0 (falso) Ejemplo char a=0, b, c, d, e; b = a; c = a ; d = ab ; e = \n ; b 0 c 97 (la letra a está en la posición 97 de la tabla ASCII) Error: ab no es un carácter (son dos). Dará un error en compilación. No es un error: un solo carácter especial. 18

Expresiones Expresión: colección de operandos unidos por operadores, para construir una formula algebraica que representa un valor (un dato simple). Tipos de expresiones: Aritméticas: resultado y operandos numéricos. Relacionales: resultado entero (cierto o falso), operandos de cualquier tipo Lógicas: operandos expresiones, resultado de tipo int. Expresiones: reglas básicas Una constante, una variable y una llamada a función (términos) es una expresión (ejemplo: 33, -2, 5.78, n, a ). Una secuencia de términos separada por operandos es una expresión ( 3*4+5, n>5). No es válido poner un operador seguido de otro, usar paréntesis (10 / -3 10 / (-3)). Nunca debe omitirse el signo de multiplicación (2n 2*n). En las expresiones lógicas, la expresión puede ir precedida por el operador! (negación). En las expresiones aritméticas debe haber consistencia de tipos. En cada tipo de expresión debe utilizarse los operadores válidos para los tipos de datos que componen la expresión. 19

Expresiones aritméticas Son expresiones matemáticas. Operandos: numéricos (enteros o reales). Operadores: aritméticos (+ - * / % ++ --). Resultado: numérico. El resultado de la división es diferente dependiendo del tipo de los operandos (entero o real). Expresiones aritméticas Operador - + * / % -- ++ Acción Resta o menos unario Suma Multiplicación División División módulo (resto de la división entera) Decremento en 1 (unario) Incremento en 1 (unario) Tipos de Datos int, float, double, char int, float, double, char int, float, double, char int, float, double, char int, char int, char int, char 20

Expresiones aritméticas: operadores unarios Necesitan un único valor numérico para realizar la operación. Signo negativo (-): Indica que el valor numérico que sigue es un valor negativo. Ejemplo: int i=-10; Incremento (++): Se utiliza para aumentar el valor de su operando en una unidad. Ejemplo: int i=0 ; i++; La variable "i" contendrá el valor 1 Decremento (--): Se utiliza para disminuir el valor de su operando en una unidad. Ejemplo: int i=0 ; i--; La variable i contendrá el valor -1 Expresiones aritméticas: operadores unarios ++ y Operador prefijo: precede al operando (--x, ++x). Operador sufijo: detrás del operando (x--, x++). Cuando estos operadores se usan instrucción aislada tiene el mismo efecto: en una ++x; x++; --x; x--; Cuando se usan en una expresión: Operador prefijo: primero el decremento o incremento y después se opera con el resultado. Operador sufijo: primero se evalúa la expresión y después se realiza el decremento o incremento. 21

Expresiones aritméticas: operadores unarios ++ y int X=5, Y=5, K, M; K = --X; K=4 X=4 M = Y--; M=5 Y=4 Expresiones aritméticas: operadores binarios Necesitan dos valores numéricos para realizar la operación. Suma (+): Se utiliza para sumar dos valores numéricos. Ejemplo: int i=0, j=10, k = 7; i=j+k; Resta (-): Se utiliza para restar dos valores numéricos. Ejemplo: int i=0, j=10, k = 7 ; i=j-k; Multiplicación (*): Se utiliza para multiplicar dos valores numéricos. Ejemplo: int i=0, j=10, k = 7 ; i=j*k; 22

Expresiones aritméticas: operadores binarios División (/): Divide dos valores numéricos. Dependiendo del tipo de datos (entero/real) la división obtendrá decimales o no. Ejemplo: int i=0, j=10, k = 7 ; i=j/k; Resto módulo (%): Obtiene el resto de la división entera dos valores numéricos. Los operandos deben ser necesariamente números enteros. Ejemplo: int i=0, j=10, k = 7 ; i=j+k; Reducidos (+=, -=, *=, /=): Simplifican las expresiones en las que la variable a la izquierda del igual también aparece a la derecha. Ejemplo: int i=10; i+=2; Expresiones aritméticas: operadores reducidos += -= *= /= %= ++ -- incrementa el valor de una variable en un valor determinado decrementa el valor de una variable en un valor determinado multiplica el valor de una variable por un valor determinado divide el valor de una variable por un valor determinado calcula el resto de la división autoincremento (en 1, sólo para enteros y char) autoincremento (en 1, sólo para enteros y char) x = x + 10; Es equivalente a x += 10; x = x 10; Es equivalente a x -= 10; 23

Expresiones aritméticas: precedencia de operadores 3*2+5*3 Valor? 6+15=21 3*7*3=21*3=63 Las operaciones entre paréntesis se evalúan primero. Si hay paréntesis anidados se evalúa primero el más interno. Los operadores se evalúan según las reglas de precedencia. Dentro del mismo orden de precedencia se evalúa de izquierda a derecha. Expresiones aritméticas: precedencia de operadores Máxima ++ -- - (unario) * / % Mínima + - 24

Ejemplo int a, b=5, c=2, d=3, e=6; a=d*b/2; /*a = 3*5/2 = 15/2 = 7*/ a=d*(b/2); /*a = 3*(5/2) = 3*2 = 6*/ a=d+e*b/2; /*a = 3+6*5/2 = 3+30/2 = 3+15 = 18*/ a=(d+e)*b/2; /*a = (3+6)*5/2 = 9*5/2 = 45/2 = 22*/ Ejemplo int main() { int a, b, c; a=2; b=3; c=b/a+5; printf( Resultado: %d\n,c); return 1; } 3/2+5 = 1+5 = 6 25

Ejemplo void main() 1-2/3*4 = 1-0*4 = 1 { int a, b, c, d, r1, r2; a=1; b=2; c=3; (1-2)/(3*4) = -1/(3*4) = d=4; -1/12 = 0 r1=a-b/c*d; r2=(a-b)/(c*d); printf( r1:%d r2:%d\n,r1,r2); } Expresiones relacionales Relación de unos valores con otros. Operandos: cualquiera. Operadores: comparación. (>, >=, <, >=, ==,!= ) Resultado: Cierto <> 0(1) Falso 0 26

Expresiones relacionales: operadores Operador Acción > Mayor que >= Mayor o igual que < Menor que <= Menor o igual que == Igual!= Distinto Expresiones relacionales: operadores Menor que (<): devuelve verdadero si el primer operando es estrictamente menor que el segundo operando. Ejemplo: int i=7, j=10; i<j es verdadero Menor o igual que (<=): devuelve verdadero si el primer operando es menor o igual que el segundo operando. Ejemplo: int i=7, j=10, k=10; i<=j es verdadero j<=k es verdadero Mayor que (>): devuelve verdadero si el primer operando es estrictamente mayor que el segundo operando. Ejemplo: int i=7, j=10; j>i es verdadero 27

Expresiones relacionales: operadores Mayor o igual que (>=): devuelve verdadero si el primer operando es estrictamente mayor o igual que el segundo operando. Ejemplo: int i=7, j=10, k=10; j>=i es verdadero j>=k es verdadero Igual (==): devuelve verdadero si el primer operando es estrictamente igual que el segundo operando. Ejemplo: int i=7, j=7, k=10; i==j es verdadero i==k es falso Distinto (!=): devuelve verdadero si el primer operando es estrictamente distinto del segundo operando. Ejemplo: int i=7, j=7, k=10; i!=k es verdadero i!=j es falso Expresiones relacionales: precedencia de operadores Máxima Mínima > >= < <= ==!= 28

Ejemplo void main() { S == C 0 (falso) int a, b, r1, r2; char c; a = 1; b = 2; c = S ; r1 = c == C ; 2 >=1 1 (cierto) r2 = b >= a; printf( r1:%d r2:%d\n,r1,r2); } Expresiones lógicas Expresiones relacionales conectadas entre sí. Operandos: expresiones relacionales.. Operadores: comparación (&&,,! ). Resultado: retornan < >0 (cierto) y 0 (falso), entero o real. 29

Expresiones lógicas: operadores Operador Acción && And ( y lógico) la expresión es cierta si ambos operandos son ciertos Or ( o lógico) la expresión es cierta si cualquier operando es cierto.! Not ( no lógico) operando prefijo, niega un operando booleano Expresiones lógicas: operadores Y (&&): devuelve verdadero si se cumplen simultáneamente las dos condiciones o expresiones lógicas que se proporcionan como operandos. Ejemplo: int i=7, j=10, k=15; ((i < j) && (i < k)) es cierto ((i < j) && (i > k)) es falso O ( ): devuelve verdadero si se cumple al menos una de las dos condiciones o expresiones lógicas que se proporcionan como operandos. Ejemplo: int i=12, j=10, k=15; ((i < j) (i < k)) es cierto NO (!): devuelve el valor contrario del que representa su único operando. Ejemplo: int i=7, j=10;! (i < j) es falso! (i == j) es verdadero 30

Expresiones lógicas: tabla de verdad A B A && B A B!A 1 1 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 Expresiones lógicas: precedencia de operadores Máxima! && Mínima 31

Resumen de operadores Tipo expresión Operandos Operadores Resultado Aritméticas Numéricos (enteros o reales) + - * / % ++ -- Numérico Relacionales Numéricos y carácter < <= > >= ==!= <>0 ó 0 Lógicas Numéricos, carácter y expresiones &&! <>0 ó 0 Resumen de precedencia de operadores Máxima Mínima! ++ -- * / % + - > >= < <= ==!= && Para evitar que los operadores se evalúen con esta preferencia se usan paréntesis. 32

Ejercicio Expresiones aritméticas 6/8 3.2/0.4-11%3 (3+2)*(1+1) (i*3)+(i*2) Expresiones relacionales (i<2) (i<=2) (i*3)>=(1+2)*i (2+i)!=(1+i) Resultado Resultado Evaluar las siguientes expresiones, suponiendo que i=2 Ejercicio Expresiones aritméticas 6/8 3.2/0.4-11%3 (3+2)*(1+1) (i*3)+(i*2) Expresiones relacionales (i<2) (i<=2) (i*3)>=(1+2)*i (2+i)!=(1+i) Resultado 0 8.0 3.84 10 10 Resultado FALSO VERDADERO VERDADERO FALSO i=2 33

Ejercicio Expresiones aritméticas 6/8 3.2/0.4-11%3 (3+2)*(1+1) (i*3)+(i*2) Expresiones relacionales (i<2) (i<=2) (i*3)>=(1+2)*i (2+i)!=(1+i) Resultado Resultado Evaluar las siguientes expresiones, suponiendo que i=2 Ejercicio Expresiones aritméticas 6/8 3.2/0.4-11%3 (3+2)*(1+1) (i*3)+(i*2) Expresiones relacionales (i<2) (i<=2) (i*3)>=(1+2)*i (2+i)!=(1+i) Resultado 0 8.0-2 10 10 Resultado FALSO VERDADERO VERDADERO VERDADERO i=2 34

Ejercicio Expresiones lógicas (i<2) O (i<10) (7>=6) Y (3= =3) No (i<1) ((i<1) O (i*2>1)) Y (i>1) En C (i<2) (i<10) (7>=6) && (3= =3)!(i<1) ((i<1) (i*2>1)) && (i>1) Resultado Evaluar las siguientes expresiones, suponiendo que i=2 Ejercicio Expresiones lógicas (i<2) O (i<10) (7>=6) Y (3= =3) No (i<1) ((i<1) O (i*2>1)) Y (i>1) En C (i<2) (i<10) (7>=6) && (3= =3)!(i<1) ((i<1) (i*2>1)) && (i>1) Resultado VERDADERO VERDADERO VERDADERO VERDADERO i=2 35

Traza: estado de un programa Tabla que muestra el cambio de estado de un programa en el tiempo (valor de todas las variables utilizadas, paso a paso). void main() a b c d {???? int a=6,b=5,c,d; 6 5?? c=a+b; 6 5 11? b+=5; 6 10 11? d=c*(a-b)+4; 6 10 11-40 } Tipos de instrucciones o sentencias 1. Instrucción de declaración 2. Instrucción de asignación 3. Instrucción de función 4. Instrucción condicionales 5. Bucles 6. Comentarios 7. Instrucción compuesta o bloque 36

Tipos de instrucciones o sentencias Instrucción de declaración: declaran variables. Se puede dar un valor inicial a la variable. int i, j; Instrucción de asignación: sirve para asignar valores a las variables. x = 234; y = -8; a = x * 2 + y / 5; Tipos de instrucciones o sentencias Instrucción de función: llaman a alguna función, que se encarga de realizar las acciones que tiene asignadas. Las funciones pueden retornar valores, por lo que la sentencia puede implicar una asignación. printf( Hola ); a = suma(x, y); Instrucción condicionales: permiten ejecutar unas instrucciones u otras en función de una determinada condición. Son if y switch. 37

Tipos de instrucciones o sentencias Bucles: repiten un grupo de instrucciones un número determinado de veces. Son while, do-while y for. Comentarios: instrucciones que no se ejecutan. Sirven para poner notas a un programa. /* Esto es un comentario */ Instrucción compuesta o bloque: conjunto de instrucciones encerradas entre llaves. Instrucción de asignación variable = expresión; Evalúa la expresión y deja su valor en la memoria reservada para la variable. Destructiva: el valor que contenía la variable desaparece. La parte izquierda únicamente puede ser una variable. Ejemplo: a = b+3; a = 77; a + b = 55; INCORRECTO 38

Ejemplo: intercambio de variables void main() { int aux, a, b; a=10; b=20; aux=a; a=b; b=aux; } a basura 10 10 10 20 20 b basura basura 20 20 20 10 aux basura basura basura 10 10 10 Ejemplo int a = 3, b = 7; a++; b += 2; b += ++a; b += a++; a=4 b=7 a=4 b=9 a=5 b=14 a=6 b=19 39