Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III...

43
Sistemas Digitales Sesión 4: Repaso Lenguaje C (1)

Transcript of Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III...

Page 1: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

Sistemas Digitales IISesión 4: Repaso Lenguaje C (1)

Page 2: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

11Generalidades del lenguaje C Introducción a este lenguaje.

22Estructura de Código en C Cómo es la programación usando Lenguaje C

Agenda para la claseAgenda para la clase

Page 3: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Estructuras de Control

Estructura, variables y Operadores

Generalidades del lenguaje CGeneralidades del lenguaje C

Ejercicios

Ejemplos

Page 4: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

UNIDAD CENTRAL DE PROCESO

UNIDAD CENTRAL DE PROCESO

MEMORIAMEMORIA

RELOJRELOJ

SOFTWARE

Lenguaje C para S.E. Programas portables y

robustos. Tener código C rápido y

pequeño. Identificar los elementos

críticos en cada programa. Desarrollar software para el

control de Hardware: Firmware.

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 5: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Algunas preguntas sobre C ¿Qué es el lenguaje C?

• Lenguaje de Programación El desarrollo inicial de C se llevó a cabo en los Laboratorios Bell de AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus características fueron tomadas de un lenguaje anterior llamado "B".

¿Una de sus mejores características?• Portabilidad del código en diferentes sistemas Hardware.

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 6: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Lenguaje Ensamblador Una misma aplicación deberá ser diseñada para cada

procesador si ellos tienen diferentes filosofías de diseño

Algoritmo

INTEL x86

INTEL x86 ARMv9ARMv9 m68km68k Power

PC

Power PC

CódigoCódigo CódigoCódigo CódigoCódigo CódigoCódigo

ASM x86

ASM x86

ASM ARMv9

ASM ARMv9

ASM m68k

ASM m68k

ASM PPC

ASM PPC

Código de máquina

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 7: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Lenguaje C Una misma aplicación puede ejecutarse en diferentes

procesadores, solo es necesario volverla a compilar

AlgoritmoAlgoritmo

INTEL x86

INTEL x86 ARMv9ARMv9 m68km68k Power

PC

Power PC

CódigoCódigo

Comp x86

Comp x86

Comp ARMv9

Comp ARMv9

Comp m68k

Comp m68k

Comp PPC

Comp PPC

Código de máquina

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 8: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Algunas preguntas sobre C ¿Por qué se utiliza C?

• Debido a la flexibilidad, se puede ser más productivo.• Lenguaje pequeño, estructurado, mediano nivel.

¿Por qué no usar C?• Código generado.• Asignación dinámica de memoria.• Uso de la pila.• Optimizaciones.• Acceso al mapa de memoria.• Interrupciones.

Contra: El código generado puede ser más grande que

si se hace en ASM.Pro: Una aplicación muy compleja en ASM es muy

difícil de depurar.

Contra: El código generado puede ser más grande que

si se hace en ASM.Pro: Una aplicación muy compleja en ASM es muy

difícil de depurar.

Contra: C manipula la memoria sin la intervención

directa del usuario.Pro: Mediante punteros y

haciendo uso del Linker, es posible decir a C como utilizar la memoria más

eficientemente.

Contra: C manipula la memoria sin la intervención

directa del usuario.Pro: Mediante punteros y

haciendo uso del Linker, es posible decir a C como utilizar la memoria más

eficientemente.

Contra: Una mala implementación en C puede

acabar con el Stack.Pro: Mediante el linker, es posible modificar en cierto nivel el manejo del Stack.

Contra: Una mala implementación en C puede

acabar con el Stack.Pro: Mediante el linker, es posible modificar en cierto nivel el manejo del Stack.

Contra: Las optimizaciones no tienen en cuenta el

funcionamiento del Hardware.Pro: Existen palabras

reservadas para indicarle a C que no lleve a cabo ciertas

optimizaciones.

Contra: Las optimizaciones no tienen en cuenta el

funcionamiento del Hardware.Pro: Existen palabras

reservadas para indicarle a C que no lleve a cabo ciertas

optimizaciones.

Contra: Explícitamente, C no permite manipular el mapa de

memoria.Pro: Existen algunas directivas y

parámetros del linker que permiten hacer esto.

Contra: Explícitamente, C no permite manipular el mapa de

memoria.Pro: Existen algunas directivas y

parámetros del linker que permiten hacer esto.

Contra: C directamente no maneja interrupciones.

Pro: Con algunas directivas se pueden emplear las

interrupciones.

Contra: C directamente no maneja interrupciones.

Pro: Con algunas directivas se pueden emplear las

interrupciones.

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 9: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Diferencias principales entre S.E. y PC. Memoria RAM limitada. Memoria ROM limitada. Espacio para el Stack limitado. Programación orientada al hardware. Manejo de eventos: Interrupciones. Otras.

Problema: Sistemas embebidos con poca cantidad

de memoria.Pro: Codificación eficiente

usando tipos de datos pequeños y modos de

direccionamiento cortos.

Problema: Sistemas embebidos con poca cantidad

de memoria.Pro: Codificación eficiente

usando tipos de datos pequeños y modos de

direccionamiento cortos.

Problema: Normalmente cuando se programa en C, el

uso del hardware es problema del S.O.

Pro: Existen alternativas con C para manejar directamente

el hardware.

Problema: Normalmente cuando se programa en C, el

uso del hardware es problema del S.O.

Pro: Existen alternativas con C para manejar directamente

el hardware.

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 10: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Ventajas Lenguaje estándar. Se puede realizar código

estructurado. Más productivo. Fácil de comprender. Código reutilizable. Librería estándar. Portabilidad entre

diferentes plataformas.

Desventajas Gran cantidad de

memoria (Flash y RAM). Precio de las

herramientas de compilación y depuración algo costoso.

Problemas en el compilador.

Código generado innecesario.

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Page 11: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

;Lenguaje ensamblador, sintaxis Intel para procesadores x86mov eax,1; //mueve a al registro eax el valor 1 xor ebx, ebx; //pone en 0 el registro ebx int 80h; //llama interrupción 80h(80h=128sistema decimal)

Lenguaje de ProgramaciónLenguaje de Programación

Alto Nivel

Bajo Nivel

Máquina

int main (void){ //Variables int a, b, c; //Ingreso de datos printf(“Introduzca el primer numero (entero)”) scanf(“%d”,a); ESCRIBA(“Introduzca el segundo numero (entero)”) scanf(“%d”,b); //Proceso c = a + b //Salida printf(“La suma es: ”,c) }

C,C++,C#,Java,

Fortran, Pascal,

XML,HTML

Ensamblador

Alto Nivel

Bajo Nivel

Máquina

Page 12: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Estructuras de Control

Estructura, variables y Operadores

Generalidades del lenguaje C

Ejercicios

Ejemplos

Estructura, variables y Operadores

Page 13: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Estructura de un ProgramaEstructura de un Programa

INICIO

FIN

Declaración de variables

Acciones del Algoritmo

Encabezados

Directivas

//Mi primer programa en C#include <stdio.h>#include “mod1.h”;

int main(void){

int a, b, c = 0;

printf(“Digite el primer numero: ”); scanf(“%d”, &a); printf(“Digite el segundo numero: ”); scanf(“%d”, &b);

c = a + b; printf(“El resultado es: << c <<‘\n’; return 0; }

Page 14: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

VARIABLESVARIABLESLenguaje C

Page 15: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Una variable es un lugar en memoria para almacenar información.

Cada variable tiene un tamaño específico que le dice a la máquina cuanta memoria necesita reservar.

Existen variables locales y globales.

TipoNúmero de Bits

char 8

int 32

float 32

char (string)

N

Otros …

Variables y ConstantesVariables y Constantes

Page 16: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Locales-Automaticas

Una variable local se declara dentro de una función, son visibles solo dentro de la funcion

Ocultan a las variables globales con el mismo nombre.

“Nacen” y “mueren” con la función. A no ser que se declaren (static)

Globales

Una variable global se declara fuera de todas las funciones es visible en todo el programa

Se le puede cambiar el valor en cualquier parte del programa y lo mantiene.

Se recomienda usar pocas o ninguna variable global.

VariablesVariables

Page 17: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Palabras ReservadasPalabras Reservadas

Page 18: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

OPERADORESOPERADORESLenguaje C

Page 19: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

OperadoresOperadores

Page 20: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Operadores Aritméticos Suma: + Resta: - Multiplicación: * División: / Módulo: %

AritméticosAritméticos

OPERADOR ASOCIATIVIDAD

() Izquierda - derecha

*,/,% Izquierda – derecha

+,- Izquierda - derecha

= Derecha - izquierdaPri

ori

dad

Page 21: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Aritméticos especiales +=, -=, *=, /=, %=. Son una abreviatura de las expresiones de

asignación:

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADO

Suma += c += 7 c = c + 7

Resta -= d -= 4 d = d – 4

Multiplicación *= e *= 5 e = e * 5

División /= f /= 3 f = f / 3

Módulo %= g %=9 g = g % 9

AritméticosAritméticos

Page 22: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Aritméticos incrementales - decrementales: De un operando (++, – –)

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADO

Preincremento ++ ++a1. Se incrementa2. Se utiliza el valor

Predecremento -- --a1. Se decrementa2. Se utiliza el valor

Postincremento ++ b++1. Se utiliza el valor2. Se incrementa

Postdecremento -- b--1. Se utiliza el valor2. Se decrementa

AritméticosAritméticos

Page 23: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Operadores Relacionales Igualdad: == Diferente: != Mayor que: > Menor que: < Mayor o igual que: >= Menor o igual que: <= Ejemplos

RelacionalesRelacionales

Page 24: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Operadores Lógicos AND: && OR: || NOT: !

Otros Operadores: Ver o cambiar contenido de memoria: * Dirección de memoria de una variable: & Prueba incondicional: ? :

LógicosLógicos

Page 25: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Estructuras de Control

Estructura, variables y Operadores

Generalidades del lenguaje C

Ejercicios

Ejemplos

Estructuras de Control

Page 26: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Generalidades del Lenguaje CGeneralidades del Lenguaje C

Las estructuras de control permiten dar solución a cualquier problema de programación.

Existen tres estructuras de control: Secuenciales De Decisión Repetitivas

Entrada y Salida de datos.Operaciones.

Entrada y Salida de datos.Operaciones.Condicional: if

Selección Múltiple: switch

Condicional: ifSelección Múltiple: switchEstructuras ciclicas:

Para: forMientras: while

Haga-Mientras: do-while

Estructuras ciclicas:Para: for

Mientras: whileHaga-Mientras: do-while

Page 27: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Se debe incluir el encabezado “<stdio.h>”

scanf (“-----);

printf(“-----);

Entrada y Salida de DatosEntrada y Salida de Datos

scanf(“%d”, &a);

printf(“%d”, a);

Page 28: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

if (condicion1) { Instrucciones1}else if (condicion2){ Instrucciones2}

.

.

.else if (condicionN){ InstruccionesN}else{ InstruccionesE}

Se utilizan cuando interesa realizar acciones que involucren masDe dos alternativas

Condicional: IFCondicional: IF

Page 29: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

La selección se basa en el valor de una variable simple o de una expresión simple denominada expresión de control o selector.

Selección Múltiple: SwitchSelección Múltiple: Switchswitch (selector) { case val1: Instrucciones1; break; case val2: Instrucciones2; break; … case valN: InstruccionesN; break; default: InstruccionesDefault;}

Page 30: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Realiza un conjunto de operaciones mientras una condición se esté cumpliendo, o mientras una expresión sea verdadera

Ciclo: WhileCiclo: While

while (condición){Instrucciones;

}

(Condición)

Cuerpo

Fin

Page 31: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Bucle condicional que se ejecuta al menos una vez (muy semejante al ciclo while).

Ciclo: Do - WhileCiclo: Do - While

Cuerpo

do { Instrucciones;} while (expresión);

(Condición)

Page 32: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Realiza un conjunto de operaciones un determinado número de veces

Ciclo: ForCiclo: For

for( VC; condicionBucle; INC o DEC){

instrucciones;}

for(i = 0; i < n; i++) {

<Instrucciones>; ...

}

Page 33: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Estructuras de Control

Estructura, variables y Operadores

Generalidades del lenguaje C

Ejercicios

EjemplosEjemplos

Page 34: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjemplosEjemplos Diseñar un programa que lea tres números e

indique el tipo de triángulo que forman (isósceles, equilátero, escaleno). Comprobar que los números realmente formen un triángulo, sino emitir el error

Page 35: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjemplosEjemplos Diseñar un programa que lea como entrada tres

enteros que representa una fecha como el día, mes, año. Este debe imprimir el número de día, mes y año de la fecha del día siguiente. Típica de entrada: 28 3 1992 La salida típica: Fecha siguiente al día 28:03:1992 es 29:02:1992

Page 36: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjemplosEjemplos En el curso de informática I está dividido en parte teórica

(45%) y parte práctica (55%). En este se realizan tres parciales (uno del 10%, otro del 15% y el final del 20%) y N prácticas de igual porcentaje cada una. El profesor requiere un programa que calcule la nota definitiva de cada estudiante, el promedio definitivo del curso y el porcentaje de estudiantes que ganaron la materia.

MENU

1 Ingresar cantidad de estudiantes

2 Ingresar cantidad de prácticas

3 Ingresar Notas (mostrar definitiva de cada estudiante)

4 Mostrar Promedio del curso

5 Mostrar Porcentaje de estudiantes que ganaron

6 Salir

Seleccione una opción:

Page 37: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjemplosEjemplos

El profesor indica el número de estudiantes. El profesor indica cuántas prácticas se realizaron. Todas las notas deben estar entre 0 y 5 (validar datos). Al ingresar todas las notas de cada estudiante se debe

mostrar su promedio. El programa debe tener el menú que se muestra a

continuación. La única manera de terminar el programa es cuando el

profesor seleccione la opción de Salir.

Page 38: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

A continuación…A continuación…

Estructuras de Control

Estructura, variables y Operadores

Generalidades del lenguaje C

Ejercicios

Ejemplos

Ejercicios

Page 39: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjerciciosEjercicios Diseñe un algoritmo que lea dos valores A y B, y

encuentre A^B mediante sumas únicamente.

Page 40: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

EjerciciosEjercicios Realizar calculadora de dos variables complejas

usando un menú de selección

Page 41: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

Fin de la Clase!!!Fin de la Clase!!! Lecturas propuestas próxima clase

Funciones Motivación para la próxima clase.

Desarrollo de programas complejos utilizando la modularización mediante funciones

¿Preguntas por parte de ustedes?

Page 42: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

2009/1Circuitos Digitales III 2010/1Circuitos Digitales III 2010/1Circuitos Digitales IIICircuitos Digitales III 2010/1Sistemas Digitales II Universidad Santo Tomás

ReferenciasReferencias

Como Programar en C++ - Deithel & Deithel Ed. PRENTICE HALL

Sams Teach Yourself C++ in One Hour a Day, J. Liberty,S. Rao, B. Jones

http://newdata.box.sk/bx/c/

Page 43: Sesión 4: Repaso Lenguaje C (1). 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.

Sistemas Digitales IIFin de la clase 2