Vous êtes sur la page 1sur 138

Programacin

Clase 14. Lenguaje C y C++


Prof. Gonzalo Mller
gmullerb@mail.com

Facultad de Ingeniera Universidad Central de Venezuela

Clase Anterior
Tipos de Datos: Numricos:
Entero:
Sin Signo: 1, 2, 4 y 8 bytes. Con Signo: 1, 2, 4 y 8 bytes.

Real:
4 bytes. 8 bytes.

Lgicos. Carcter.
Programacin Prof. Gonzalo Mller Clase 14 GM - 2

Lenguaje de programacin Compilado


Creacin de un programa utilizando un lenguaje de programacin compilado
Algoritmo + Tipos de Datos Editor de Texto Programa fuente: Fortran, Pascal, C++, etc. Compilador (Traductor) Programa objeto (.o, .obj) Enlazador (librera) Libreras del sistema (.o, .obj)
Programacin Prof. Gonzalo Mller Clase 14 GM - 3

Programa ejecutable (.exe)

Lenguaje de programacin Compilado


Creacin de un programa utilizando un lenguaje de programacin compilado
Algoritmo + Tipos de Datos Editor de Texto Programa fuente: Fortran, Pascal, C++, etc. Compilador (Traductor) Programa objeto (.o, .obj) Enlazador (librera) Libreras del sistema (.o, .obj)
Programacin Prof. Gonzalo Mller Clase 14 GM - 4

Correccin de errores de sintaxis

Correccin de errores de lgica

Programa ejecutable (.exe)

Lenguaje de programacin Compilado


Programa fuente: Contiene las instrucciones en el lenguaje de programacin. Programa objeto: Mdulo que no esta listo para ejecucin que contiene las instrucciones en cdigo de maquina. Libreras del sistema: Mdulos que contienen funciones especiales o predefinidas. Programa ejecutable: Programa que puede ser cargado o ejecutado por el sistema operativo.
Programacin Prof. Gonzalo Mller Clase 14 GM - 5

Lenguaje de programacin C/C++


Creacin de un programa utilizando el lenguaje de programacin C o C++
Programa fuente en C C++ (.c, .cpp) Preprocesador Compilador Programa objeto (.o, .obj) Enlazador Programa ejecutable (.exe)
Programacin Prof. Gonzalo Mller Clase 14 GM - 6

Libreras del sistema (.o, .obj)

Ambiente de Desarrollo C/C++


Editor de Texto

Depurador

Ambiente de Desarrollo

Preprocesador

Enlazador

Compilador

MinGWStudio BloodShed DevC++ CodeBlocks,


Programacin Prof. Gonzalo Mller Clase 14 GM - 7

Lenguaje C/C++
En 1970 Ken Thompson de los laboratorios Bell crea el lenguaje B como resultado de desarrollar un compilador para el lenguaje Fortran para UNIX. Este lenguaje produca programas relativamente lentos. En 1971 Dennis Ritchie, desarrolla el lenguaje C (NB) con base en el lenguaje B. A principios de los 80 Bjarne Stroustrup en los Bell Laboratories desarrolla C++. C++ surge como una mejora de C.

Programacin Prof. Gonzalo Mller Clase 14 GM - 8

Lenguaje C/C++
Es Flexible. Permite la escritura a alto y bajo nivel. El Cdigo es Porttil. Con pequeas o ninguna modificacin puede ser compilado en diferentes sistema operativos. Los Programas son ms Rpidos. Los Programas son ms Compactos. Ocupan menos Memoria Principal.
Programacin Prof. Gonzalo Mller Clase 14 GM - 9

Lenguaje C/C++
El vocabulario de C esta compuesto: Identificadores. Palabras Claves (keywords). Constantes. Operadores. Separadores. Comentarios.

Programacin Prof. Gonzalo Mller Clase 14 GM - 10

Vocabulario de C
Identificador: Es el nombre que el programador coloca para referirse a una determinada locacin de memoria, una variable en memoria. Es ms cmodo que identificar un locacin de memoria con nmero correspondiente a la direccin.
Identificador

A 31
Localidad Direccin

Programacin Prof. Gonzalo Mller Clase 14 GM - 11

Vocabulario de C
Reglas para definir un Identificador: 1. Se forma con un secuencia de los siguientes caracteres:

abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRST UVWXYZ 0123456789 _


Programacin Prof. Gonzalo Mller Clase 14 GM - 12

Vocabulario de C
2. No puede contener espacios en blanco, ni ningn otro carcter diferente de los indicados en anteriormente. 3. El primer carcter no puede ser un dgito. 4. Hay distincin entre las letras maysculas y minsculas. 5. Puede tener hasta 31 caracteres.
Recomendacin: utilizar un nombre que tengan un significado para el dato que representa.
Programacin Prof. Gonzalo Mller Clase 14 GM - 13

Vocabulario de C
Palabras clave: estn constituidas por una serie de palabras que define el lenguaje y que el programador no puede utilizar como identificador ya que tiene una funcin especfica.

struct short switch if

float long return break

case char else const

void int do static

Programacin Prof. Gonzalo Mller Clase 14 GM - 14

Vocabulario de C
Constantes: Numricas. Lgicas. Carcter. Cadena de Caracteres. Simblicas.

Programacin Prof. Gonzalo Mller Clase 14 GM - 15

Vocabulario de C
Constantes Numricas: Enteras: Formada con secuencia de dgitos del 0 al 9, , +.
Con signo. Sin signo.
Sufijo Opcional: u , U .

Hexadecimal:
Tiene el Prefijo: 0x, 0X.

Sufijo Opcional: l , L. Constante de 4 bytes.


Programacin Prof. Gonzalo Mller Clase 14 GM - 16

Vocabulario de C
Ejemplo: Entera sin signo: 25 Hexadecimal: 0xFE68 De 4 bytes: 98L
98l 0xFE68L 25ul 25u 25U

Entera con signo: -678 -789

Programacin Prof. Gonzalo Mller Clase 14 GM - 17

Vocabulario de C
Reales: Formada con secuencia de dgitos del 0 al 9, , , +, e, E y/o . .
Sufijo Opcional: f , F. Constante de 4 bytes.

Ejemplo: Real: 9010.5 567e10 -2.4E10 Real de 4 bytes: 9010.5f 567e10f -2.4E10 Constantes Lgicas:
Verdadero: true. Falso: false.
Programacin Prof. Gonzalo Mller Clase 14 GM - 18

Vocabulario de C
Constantes Carcter:
Encerradas entre apostrofes. Caracteres especiales: `\t, `\\, `\n, etc.

Constantes Texto:
Encerradas entre comillas. Caracteres especiales: `\t, `\\, `\n, etc.

Ejemplo:
`a Lenguaje C++ es el mejor

Programacin Prof. Gonzalo Mller Clase 14 GM - 19

Vocabulario de C
Constantes Carcter:
Encerradas entre apostrofes. Caracteres especiales: `\t, `\\, `\n, etc.

Constantes Texto:

Equivalente a <br/> en Html

Encerradas entre comillas. Caracteres especiales: `\t, `\\, `\n, etc.

Ejemplo:

Equivalente a <br/> en Html

`a Lenguaje C++ es el mejor

Programacin Prof. Gonzalo Mller Clase 14 GM - 20

Vocabulario de C
Operadores: Son signos especiales o un conjunto de ellos que indican diferentes operaciones a realizar

+ * =

Programacin Prof. Gonzalo Mller Clase 14 GM - 21

Vocabulario de C
Operadores: Asignacin. Aritmticos. Incrementales. Relacionales. Lgicos.

Programacin Prof. Gonzalo Mller Clase 14 GM - 22

Vocabulario de C
Operador Asignacin, = : Coloca un valor dado a una variable. Una constante. El valor de otra variable. El resultado de una expresin. Constante Variable = Valor Variable Expresin
Siempre a la izquierda
Programacin Prof. Gonzalo Mller Clase 14 GM - 23

Vocabulario de C
Ejemplo:
A = 1000 A = B A = (A + 1)/2 + B*6 C = A C = 200 R = 4.5 R = 25.5*X +Y

Programacin Prof. Gonzalo Mller Clase 14 GM - 24

Vocabulario de C
Operadores Aritmticos: Suma: + Resta: Multiplicacin: * Divisin: /
Tener cuidado con el tipo de dato utilizado.
Ambos tipos de datos enteros divisin entera

Residuo de divisin entera: % Se puede utilizar con variables y constantes.


Programacin Prof. Gonzalo Mller Clase 14 GM - 25

Vocabulario de C
Operadores Relacionales: Mayor que: > Menor que: < Igual que: == Mayor o igual que: >= Menor o igual que: <= Distinto que: != Se utilizan con variables y constantes para formar expresiones lgicas sencillas.
Programacin Prof. Gonzalo Mller Clase 14 GM - 26

Vocabulario de C
Operadores Lgicos: Y: && O: || Se utilizan expresiones lgicas sencillas para formar expresiones lgicas compuestas. Negacin: !

Programacin Prof. Gonzalo Mller Clase 14 GM - 27

Vocabulario de C
Separadores: estn constituidos por: Espacios en blanco. Tabuladores. Caracteres de nueva lnea.

Programacin Prof. Gonzalo Mller Clase 14 GM - 28

Vocabulario de C
Comentarios: es posible introducir comentarios en el programa fuente, que permitan aclarar parte del mismo. El compilador ignora los comentarios.
/* : indica al compilador el comienzo de un comentario. */ : indica al compilador el final de un comentario. // : indica al compilador que el resto de la lnea es un comentario.

Programacin Prof. Gonzalo Mller Clase 14 GM - 29

Vocabulario de C
/* y */ Siempre deben ser usados en pareja. Ejemplo: /* Este es un comentario: lenguaje C++ es el mejor lenguaje de programacin */ // Este es otro comentario: la mayora de los // sistema operativos son desarrollados en C++

Programacin Prof. Gonzalo Mller Clase 14 GM - 30

Estructura Bsica de un programa en C/C++

Directivas de Preprocesador
main() {

Declaraciones Secuencia de Sentencias


}
Programa Fuente (*.c,*.cpp)

Programacin Prof. Gonzalo Mller Clase 14 GM - 31

Estructura Bsica de un programa en C/C++

Directivas de Preprocesador
Mdulo principal

main() {

Declaraciones Secuencia de Sentencias


}
Programa Fuente (*.c,*.cpp)

Programacin Prof. Gonzalo Mller Clase 14 GM - 32

Mdulo principal

Directivas de Preprocesador
main() {

Declaraciones Secuencia de Sentencias


}

Programacin Prof. Gonzalo Mller Clase 14 GM - 33

Mdulo principal
Constituye el bloque principal de un programa en C/C++. Todo programa en C/C++ debe tener un bloque main.
C/C++
main() {

JavaScript <script> </script>

Programacin Prof. Gonzalo Mller Clase 14 GM - 34

Declaraciones

Directivas de Preprocesador
main() {

Declaraciones Secuencia de Sentencias


}

Tipos de Datos

Programacin Prof. Gonzalo Mller Clase 14 GM - 35

Declaraciones
Le indican al compilador el tipo y propiedades de una variable.

tipo variable tipo variable1, variable2,

Programacin Prof. Gonzalo Mller Clase 14 GM - 36

Tipos de Datos
Entero Tamao 1 byte (char) Sin signo (unsigned) unsigned char Con signo (signed) signed char signed short signed long

2 bytes (short) unsigned short 4 bytes (long) unsigned long


Programacin Prof. Gonzalo Mller Clase 14 GM - 37

Tipos de Datos
Reales: de 4 Bytes: float de 8 Bytes: double

Programacin Prof. Gonzalo Mller Clase 14 GM - 38

Tipos de Datos
Reales: de 4 Bytes: float de 8 Bytes: double Lgico: bool Carcter: char

Programacin Prof. Gonzalo Mller Clase 14 GM - 39

Declaraciones
Le indican al compilador el tipo y propiedades de una variable.

tipo variable

Numricos: Entero: Sin Signo: 1, 2, 4 bytes: unsigned char, unsigned short, unsigned long Con Signo: 1, 2, 4 bytes: signed char, signed short, signed long Real: 4 bytes: float 8 bytes: double Lgicos: bool Carcter.: char

Programacin Prof. Gonzalo Mller Clase 14 GM - 40

Declaraciones
Le indican al compilador el tipo y propiedades de una variable.

tipo variable

Numricos: Entero: Sin Signo: 1, 2, 4 bytes: unsigned char, unsigned short, unsigned long Con Signo: 1, 2, 4 bytes: signed char, signed short, signed long Real: 4 bytes: float 8 bytes: double Lgicos: bool Carcter.: char

Programacin Prof. Gonzalo Mller Clase 14 GM - 41

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas por un vendedor informal en medio da.
Debe ser Numrica. Debe ser Entera, ya que se vende las donas enteras Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos). Puede ser de 1 byte, ya que es difcil que un vendedor informal venda ms de 255 donas en medioda.

Entera sin signo de 1 byte


Programacin Prof. Gonzalo Mller Clase 14 GM - 42

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas por un vendedor informal en medio da.
Debe ser Numrica. Debe ser Entera, ya que se vende las donas enteras Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos). Puede ser de 1 byte, ya que es difcil que un vendedor informal venda ms de 255 donas en medioda. LV

Entera sin signo de 1 byte


Programacin Prof. Gonzalo Mller Clase 14 GM - 43

donasVendidas: entera sin signo de 1 byte

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas por un vendedor informal en medio da.
Debe ser Numrica. Debe ser Entera, ya que se vende las donas enteras Debe ser Entera sin signo, ya que el vendedor entrega las donas no las recibe (sin considerar productos devueltos por el comprador o hurtos). Puede ser de 1 byte, ya que es difcil que un vendedor informal venda ms de 255 donas en medioda. LV

Entera sin signo de 1 byte

unsigned char donasVendidas


Programacin Prof. Gonzalo Mller Clase 14 GM - 44

donasVendidas: entera sin signo de 1 byte

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio da por una semana.
Debe ser Numrica. Debe ser Real, ya que el promedio es un nmero no necesariamente entero, es decir, puede contener decimales. Puede ser de 4 bytes, ya que este tipo ofrece una precisin de 6 cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

Real de 4 bytes

Programacin Prof. Gonzalo Mller Clase 14 GM - 45

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio da por una semana.
Debe ser Numrica. Debe ser Real, ya que el promedio es un nmero no necesariamente entero, es decir, puede contener decimales. Puede ser de 4 bytes, ya que este tipo ofrece una precisin de 6 cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

Real de 4 bytes

LV

donasPromedio: real de 4 bytes

Programacin Prof. Gonzalo Mller Clase 14 GM - 46

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar las cantidad de donas vendidas promedio vendidas por un vendedor informal en medio da por una semana.
Debe ser Numrica. Debe ser Real, ya que el promedio es un nmero no necesariamente entero, es decir, puede contener decimales. Puede ser de 4 bytes, ya que este tipo ofrece una precisin de 6 cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

Real de 4 bytes

LV

donasPromedio: real de 4 bytes

float donasPromedio
Programacin Prof. Gonzalo Mller Clase 14 GM - 47

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar si un vendedor informal vendi donas de chocolate en medio da.
Debe ser Lgica, ya que se necesita almacenar dos situaciones, si vendi o no vendi, verdadero si vendi y falso de lo contrario.

Lgica

Programacin Prof. Gonzalo Mller Clase 14 GM - 48

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar si un vendedor informal vendi donas de chocolate en medio da.
Debe ser Lgica, ya que se necesita almacenar dos situaciones, si vendi o no vendi, verdadero si vendi y falso de lo contrario.

Lgica

LV

chocoDonas: lgica

Programacin Prof. Gonzalo Mller Clase 14 GM - 49

Declaraciones
Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenar si un vendedor informal vendi donas de chocolate en medio da.
Debe ser Lgica, ya que se necesita almacenar dos situaciones, si vendi o no vendi, verdadero si vendi y falso de lo contrario.

Lgica

LV

chocoDonas: lgica

bool chocoDonas

Programacin Prof. Gonzalo Mller Clase 14 GM - 50

Declaraciones
Ejemplo:
Tipo Identificador

signed char llamadas /*Variable tipo Entero con Signo de 1 byte llamada Llamadas*/
Tipo Identificador1 Identificador3

float minimo, maximo, media /*Variables tipo Real de 4 byte llamadas Minimo, Maximo y Media*/

Programacin Prof. Gonzalo Mller Clase 14 GM - 51

Declaraciones
Las variables siempre debe declararse antes de ser utilizadas. El compilador necesita saber la cantidad de memoria que necesita reservar para la variable. Ejemplo: Directivas de Preprocesador
main() { float minimo, maximo, media/* Mnimo , Mximo y Media*/

Secuencia de Sentencias
Programacin Prof. Gonzalo Mller Clase 14 GM - 52

Tipos de Datos
Observaciones respecto a los enteros: Existe el tipo entero: int
No esta normalizado por la ANSI. No es recomendable su uso por que su tamao depende del compilador.

Programacin Prof. Gonzalo Mller Clase 14 GM - 53

Sentencias

Directivas de Preprocesador
main() {

Declaraciones Secuencia de Sentencias


}

Algoritmo

Programacin Prof. Gonzalo Mller Clase 14 GM - 54

Sentencias

C/C++
main() {
//Declaraciones //Algoritmo

PC Algoritmo { }

DRE
Algoritmo

DF
Comienzo

Fin

Fin

Programacin Prof. Gonzalo Mller Clase 14 GM - 55

Sentencias
Constituye una combinacin adecuada de identificadores, constantes, operadores y separadores, la cual realiza una operacin especfica. Ejemplo:
c = a + b Superior = r = b + 1 Mitad = n * 0.5f

Programacin Prof. Gonzalo Mller Clase 14 GM - 56

Sentencias
Tipos de Sentencia: Declarativas: Se declara un identificador. Asignacin: Se realiza un operacin de asignacin. Control: Se lleva a cabo alguna operacin condicionada o repetitiva. Llamada: Se realiza una llamada a una subrutina. Nula: No se realiza ninguna operacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 57

Sentencias
Todas las sentencias excepto las de control deben terminar con el smbolo ; . Ejemplo:
Declarativas: Asignacin: Llamadas: Nula:
float acumulador; acumulador = 0; printf(C++ es el 1); ;

Programacin Prof. Gonzalo Mller Clase 14 GM - 58

Directivas de Preprocesador

Directivas de Preprocesador
main() {

Declaraciones Secuencia de Sentencias


}
Programacin Prof. Gonzalo Mller Clase 14 GM - 59

Directivas de Preprocesador
Ahorran la escritura y aumentan la legilibidad del cdigo. Sus principales funciones son: Definir de constantes simblicas. Incluir de archivos de cabecera de libreras predefinidas.

Programacin Prof. Gonzalo Mller Clase 14 GM - 60

Libreras

Librera
Mdulo1 Mdulo2 Mdulo3 Mdulo4 Mdulo5 Mdulo6 Mdulo7 Mdulo8 Mdulo9
Programacin Prof. Gonzalo Mller Clase 14 GM - 61

Libreras Predefinidas
Son programas objeto que contiene conjunto de mdulos preprogramados.
La directiva #include del preprocesador permite incluir archivo cabecera:

#include <Archivo> Ejemplo:


#include <math.h>
Los archivos cabecera (*.h, *.hpp): Son archivos destinados exclusivamente a la declaracin de identificadores.
Programacin Prof. Gonzalo Mller Clase 14 GM - 62

Libreras Predefinidas
Son libreras predefinidas por C, con mdulos de: Entrada y salida. Matemticas bsicas. Manejo de archivos. Manejo de Cadena de Caracteres. Ordenamiento y bsqueda. entre otras.

Programacin Prof. Gonzalo Mller Clase 14 GM - 63

Libreras Estndar
Los archivos cabecera de las principales libreras estndar son: Entrada/Salida: stdio.h Matemticas: math.h Utileras Generales: stdlib.h

Programacin Prof. Gonzalo Mller Clase 14 GM - 64

Libreras Estndar
Ejemplo: Si desea realizar operaciones matemticas y de entrada y salida sera necesario incluir la libreras respectivas:
#include <math.h> #include <stdio.h> main() {

Programacin Prof. Gonzalo Mller Clase 14 GM - 65

Funciones Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor.

Entrada Teclado

Programa

Salida Monitor

Programacin Prof. Gonzalo Mller Clase 14 GM - 66

Funciones Entrada/Salida
C ofrece un conjunto de funciones de entrada y salida predefinidas en las libreras estndar stdio, las principales son: De salida: printf. De entrada: scanf. Entrada Teclado Programa
printf

scanf

Salida Monitor

Programacin Prof. Gonzalo Mller Clase 14 GM - 67

Funciones Entrada/Salida
C ofrece un conjunto de funciones de entrada y salida predefinidas en las libreras estndar stdio, las principales son: De salida: printf. De entrada: scanf. Entrada Teclado Programa
Equivalente en Javascript prompt document.write

scanf

printf

Salida Monitor

Programacin Prof. Gonzalo Mller Clase 14 GM - 68

Funciones Entrada/Salida
printf: Presenta en informacin en pantalla. Formas de uso: 1. Solo texto, sin formato:
printf(Texto);

Texto: constante texto que contiene la informacin que se desea presentar en pantalla.

Programacin Prof. Gonzalo Mller Clase 14 GM - 69

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: Lenguaje C++ es el 1*/ printf(Lenguaje C++ es el 1); /* Escribe en dos lneas en pantalla: Lenguaje C++ es el Mejor!*/ printf(Lenguaje C++\n); printf(es el Mejor!);

Programacin Prof. Gonzalo Mller Clase 14 GM - 70

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: Lenguaje C++ es el 1*/ printf(Lenguaje C++ es el 1);
Equivalente en Javascript: document.write(Lenguaje C++ es el 1);

/* Escribe en dos lneas en pantalla: Lenguaje C++ es el Mejor!*/ printf(Lenguaje C++\n); printf(es el Mejor!);
Equivalente en Javascript: document.write(Lenguaje C++ <br/>); document.write(es el Mejor!);
Programacin Prof. Gonzalo Mller Clase 14 GM - 71

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio. Fase 1: Diseo y Anlisis: DES, DRE DF y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 72

Funciones Entrada/Salida
2. Texto + variables, con formato: Presenta el contenido de un conjunto de variables en pantalla.
printf(Formato,variable1,variable2,);

Formato: constante texto que establece que tipo de variables estn contenidas en las lista y como debe presentarse en pantalla.

Programacin Prof. Gonzalo Mller Clase 14 GM - 73

Funciones Entrada/Salida
El formato esta constituido por al menos una lista de especificadores de las variables a escribir:

Formato slo variables especificador1 especificador2 especificador3

Programacin Prof. Gonzalo Mller Clase 14 GM - 74

Funciones Entrada/Salida
Un especificador esta formado por un carcter porcentaje y una letra, la cual indica el tipo de variable correspondiente:
Letra c d u x,X f,e,E,g,G Tipo de dato Carcter Entero con signo Entero sin signo Hexadecimal Real

%letra

Programacin Prof. Gonzalo Mller Clase 14 GM - 75

Funciones Entrada/Salida
Algunos formatos bsicos para la escritura seran:
Formato %u %d %x %f %e %g %.2f %c Tipo de dato Entero sin signo Entero con signo Hexadecimal Real Real Real Real (2 decimales) Carcter

Programacin Prof. Gonzalo Mller Clase 14 GM - 76

Funciones Entrada/Salida
Algunos formatos bsicos para la escritura seran:
Formato %u %d %x %f %e %g %.2f %c Tipo de dato Entero sin signo Entero con signo Hexadecimal Real Real Real Real (2 decimales) Carcter

No existe especificador para tipo lgico


Programacin Prof. Gonzalo Mller Clase 14 GM - 77

Funciones Entrada/Salida
El formato esta constituido por al menos una lista de especificadores de las variables a escribir, que indican el tipo de cada una: Formato slo variables especificador1 especificador2 especificador3

%letra1 %letra2 %letra3

Programacin Prof. Gonzalo Mller Clase 14 GM - 78

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte

Programacin Prof. Gonzalo Mller Clase 14 GM - 79

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte

unsigned char contador;

Programacin Prof. Gonzalo Mller Clase 14 GM - 80

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte

unsigned char contador; /* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador); Formato %u
Programacin Prof. Gonzalo Mller Clase 14 GM - 81

Tipo de dato Entero sin signo

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador);
Formato

/* Escribe en pantalla: El valor de la variable contador y media*/ printf(%u %f, contador, media);
Formato

Programacin Prof. Gonzalo Mller Clase 14 GM - 82

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador);
Lista de Variables

/* Escribe en pantalla: El valor de la variable contador y media*/ printf(%u %f, contador, media);
Lista de Variables

Programacin Prof. Gonzalo Mller Clase 14 GM - 83

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador); /* Escribe en pantalla: El valor de la variable contador y media*/ printf(%u %f, contador, media);
Correspondencia

Programacin Prof. Gonzalo Mller Clase 14 GM - 84

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador); /* Escribe en pantalla: El valor de la variable contador y media*/ printf(%u %f, contador, media);
Correspondencia

Programacin Prof. Gonzalo Mller Clase 14 GM - 85

Funciones Entrada/Salida
Ejemplo:
/* Escribe en pantalla: El valor de la variable contador*/ printf(%u, contador);
Equivalente en Javascript: document.write(contador);

/* Escribe en pantalla: El valor de la variable contador y media*/ printf(%u %f, contador, media);
Equivalente en Javascript: document.write(contador + + media);

Programacin Prof. Gonzalo Mller Clase 14 GM - 86

Funciones Entrada/Salida
printf(%letra1 %letra2 %letra3,
Correspondencia

variable1,variable2,variable3);

Programacin Prof. Gonzalo Mller Clase 14 GM - 87

Funciones Entrada/Salida
printf(%letra1 %letra2 %letra3,
Correspondencia

variable1,variable2,variable3);

1 Especificador del Formato1 Variable de la Lista

Programacin Prof. Gonzalo Mller Clase 14 GM - 88

Funciones Entrada/Salida
printf(%letra1 %letra2 %letra3,
Correspondencia

variable1,variable2,variable3);

1 Especificador del Formato1 Variable de la Lista 2 Especificador del Formato2 Variable de la Lista

Programacin Prof. Gonzalo Mller Clase 14 GM - 89

Funciones Entrada/Salida
printf(%letra1 %letra2 %letra3,
Correspondencia

variable1,variable2,variable3);

1 Especificador del Formato1 Variable de la Lista 2 Especificador del Formato2 Variable de la Lista 3 Especificador del Formato3 Variable de la Lista

Programacin Prof. Gonzalo Mller Clase 14 GM - 90

Funciones Entrada/Salida
printf(%letra1 %letra2 %letra3,
Correspondencia

variable1,variable2,variable3);

1 Especificador del Formato1 Variable de la Lista 2 Especificador del Formato2 Variable de la Lista 3 Especificador del Formato3 Variable de la Lista
Programacin Prof. Gonzalo Mller Clase 14 GM - 91

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio. La edad y promedio debe estar almacenado en variables. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.
Programacin Prof. Gonzalo Mller Clase 14 GM - 92

Funciones Entrada/Salida
El formato esta constituido por un texto que contiene la lista de especificadores de las variables a escribir, que indican el tipo de cada una: Formato con texto Texto especificador1 Texto especificador2

Texto %letra1 Texto %letra2

Programacin Prof. Gonzalo Mller Clase 14 GM - 93

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;

Programacin Prof. Gonzalo Mller Clase 14 GM - 94

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);

Formato %u %f
Programacin Prof. Gonzalo Mller Clase 14 GM - 95

Tipo de dato Entero sin signo Real

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


Formato

printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);

Formato %u %f
Programacin Prof. Gonzalo Mller Clase 14 GM - 96

Tipo de dato Entero sin signo Real

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);
Lista de Variables

Programacin Prof. Gonzalo Mller Clase 14 GM - 97

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


Texto

printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);

Programacin Prof. Gonzalo Mller Clase 14 GM - 98

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


Especificador

printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);


Especificador

Formato %u %f

Tipo de dato Entero sin signo Real

Programacin Prof. Gonzalo Mller Clase 14 GM - 99

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


Correspondencia

printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);

Programacin Prof. Gonzalo Mller Clase 14 GM - 100

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);
Correspondencia

Programacin Prof. Gonzalo Mller Clase 14 GM - 101

Funciones Entrada/Salida
Ejemplo:
LV contador: entera sin signo de 1 byte media: real de 4 bytes

unsigned char contador; float media;


printf(Se encontraron %u datos, cuyo promedio fue %f, contador, media);
Equivalente en Javascript: document.write(Se encontraron + contador + datos, cuyo promedio fue + media);

Programacin Prof. Gonzalo Mller Clase 14 GM - 102

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio. La edad y promedio debe estar almacenado en variables. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.
Programacin Prof. Gonzalo Mller Clase 14 GM - 103

Operador Referencia
&: Obtiene la direccin en memoria de una variable. Ejemplo:
unsigned char A; A = 101; printf(%u\n, 101); printf(%u\n, A); printf(%u, &A);

A 101 31

Identificador

Direccin

Escribe 101 en la pantalla Escribe 101 en la pantalla Escribe 31 en la pantalla

Programacin Prof. Gonzalo Mller Clase 14 GM - 104

Funciones Entrada/Salida
scanf: Lee un dato desde el teclado y escribe en la variable indicada el resultado. Forma de uso:
scanf(Formato,&variable);

Formato: constante texto que establece que tipo de variable ser leda.

Programacin Prof. Gonzalo Mller Clase 14 GM - 105

Funciones Entrada/Salida
El formato en realidad est constituido nicamente por el especificador que indica el tipo de dato a leer: %letra
Tipo de dato Carcter Entero con signo u Entero sin signo x Hexadecimal f,e,E,g,G float Letra c d Observacin No lee espacio en blanco Prefijo l para long, h para short, hh para char, ll para long long Prefijo l para long, h para short, hh para char, ll para long long Hexadecimal Prefijo l o L para double

Programacin Prof. Gonzalo Mller Clase 14 GM - 106

Funciones Entrada/Salida
De esta forma algunos formatos bsicos para la lectura seran:
Formato %c %hhd %hhu %hd %hu %ld %lu %f %lf Tipo de dato char signed char unsigned char signed short unsigned short signed long unsigned long float double

(ISOC9899) (ISOC9899)

Programacin Prof. Gonzalo Mller Clase 14 GM - 107

Funciones Entrada/Salida
De esta forma algunos formatos bsicos para la lectura seran:
Formato %c %hhd %hhu Tipo de dato char signed char unsigned char

(ISOC9899) (ISOC9899)

La lectura de un carcter puede ser problemtica, por lo que es recomendable utilizar una variable entera en su lugar cuando se posible
Programacin Prof. Gonzalo Mller Clase 14 GM - 108

Funciones Entrada/Salida
Ejemplo:
LV cantidad: entera sin signo de 2 byte

Programacin Prof. Gonzalo Mller Clase 14 GM - 109

Funciones Entrada/Salida
Ejemplo:
LV cantidad: entera sin signo de 2 byte

unsigned short cantidad;

Programacin Prof. Gonzalo Mller Clase 14 GM - 110

Funciones Entrada/Salida
Ejemplo:
unsigned short cantidad; /* Lee de teclado: variable cantidad*/ El valor de la

scanf(%hu, &cantidad); Formato %c %hu


Programacin Prof. Gonzalo Mller Clase 14 GM - 111

Tipo de dato char unsigned short

Funciones Entrada/Salida
Ejemplo:
/* Lee de teclado: variable cantidad*/ El valor de la

scanf(%hu, &cantidad); /* Lee de teclado: variable media*/ scanf(%f, &media);


Es necesario tener extrema precaucin e indicar el especificador correcto para la variable dada en funcin de evitar sobrescribir la memoria
Programacin Prof. Gonzalo Mller Clase 14 GM - 112

El

valor

de

la

Funciones Entrada/Salida
Ejemplo:
/* Lee cantidad de datos*/ printf(Cantidad de datos:); scanf(%hu, &cantidad); /* Lee media de datos*/ printf(Media de datos:); scanf(%f, &media);
Si un programa se detiene abruptamente o se guinda es recomendable revisar todos los scanf del programa fuente ya que alguno puede estar ocasionando el problema
Programacin Prof. Gonzalo Mller Clase 14 GM - 113

Funciones Entrada/Salida
Ejemplo:
/* Lee cantidad de datos*/ printf(Cantidad de datos:); scanf(%hu, &cantidad);
Equivalente en Javascript: cantidad = parseInt(prompt(Cantidad de datos:));

/* Lee media de datos*/ printf(Media de datos:); scanf(%f, &media);


Equivalente en Javascript: media = parseFloat(prompt(Media de datos:));

Programacin Prof. Gonzalo Mller Clase 14 GM - 114

Ejercicio

Construir un programa en C que lea la edad y promedio y lo presente a la salida. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 115

Ejercicio

Construir un programa en C para hallar la hipotenusa2 de un triangulo dado sus catetos. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 116

Ejercicio

Construir el programa en C para promediar dos notas. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 117

Sentencias de Control
Permiten ejecutar una sentencia o una secuencia de sentencias de forma repetitiva o no, dada un condicin. Sentencia Condicional. Sentencia Repetitiva.
Si se ejecuta una secuencia de sentencias las mismas deben ser colocadas entre llaves { }.
Programacin Prof. Gonzalo Mller Clase 14 GM - 118

Sentencias de Control
Condicional Sencilla
JavaScript/ C/C++
{ }

PC

DRE

DF

if(Condicin) Si(Condicin) { }

Condicin
V

Condicin
V

Programacin Prof. Gonzalo Mller Clase 14 GM - 119

Sentencias de Control
Ejemplo: Construir un bloque de sentencias en C que convierta un nmero positivo A en par.

Programacin Prof. Gonzalo Mller Clase 14 GM - 120

Sentencias de Control
Condicional Doble
JavaScript/ C/C++
} else { }

PC
{

DRE

DF

if(Condicin) Si(Condicin) {

Condicin
V F

Condicin

} sino { }

Programacin Prof. Gonzalo Mller Clase 14 GM - 121

Sentencias de Control
Ejemplo: Construir un programa en C que calcule las races reales de una ecuacin cuadrtica Ax2 + Bx C.

Programacin Prof. Gonzalo Mller Clase 14 GM - 122

Sentencias de Control
Estructura Repetitiva Mientras
JavaScript/C /C++ PC DRE DF

while(Condicin) Mientras(Condici { n) }

{ }

Mientras (Condicin)

Condicin
V

Programacin Prof. Gonzalo Mller Clase 14 GM - 123

Sentencias de Control
Estructura Repetitiva Hacer Mientras nica sentencia de control que termina en ;.
JavaScript/C /C++
do { } while(Condicin); }

PC
Hacer {

DRE

DF

Mientras (Condicin)
V

Condicin

Mientras(Condici n)

Programacin Prof. Gonzalo Mller Clase 14 GM - 124

Ejercicio

Construir el programa en C que sume los nmeros del A al B. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.

Programacin Prof. Gonzalo Mller Clase 14 GM - 125

Funciones Entrada/Salida
scanf retorna la cantidad de elementos ledos. Si este valor es 0, indica que hubo un error convirtiendo el dato ledo en el tipo correspondiente.
Su principal utilidad es para el caso en que el usuario ingrese texto en un valor numrico. De ser este el caso el scanf finaliza y retorna 0, pero el buffer de entrada queda con los caracteres ingresados por el usuario, por lo que es necesario eliminarlos para que subsecuentes llamadas funcionen correctamente.
Programacin Prof. Gonzalo Mller Clase 14 GM - 126

Funciones Entrada/Salida
Forma de uso:
while(scanf(Formato,&Variable) == 0) { getchar(); }
Elimina un carcter del buffer de entrada

Sale del bucle solo cuando un valor numrico fue asignado a la variable

Programacin Prof. Gonzalo Mller Clase 14 GM - 127

Ejercicio

Construir el programa en C que lea un nmero real validando que no sea texto.

Programacin Prof. Gonzalo Mller Clase 14 GM - 128

Metodologa para creacin de un programa C


Metodologa para creacin de un programa 1. Realizar el anlisis del problema a resolver: 1. Definir los datos de entrada y de salida. 2. Teora asociada, requerimientos, etc. 2. Disear y probar el algoritmo: Construir DRE o el DF. 3. Definir los tipos de datos de las diferentes variables utilizadas en el algoritmo. Construir Lista de variables. 4. Codificar en C/C++: 1. Lista de Variables Declaraciones. 2. Algoritmo Secuencia de Sentencias. Fin
Programacin Prof. Gonzalo Mller Clase 14 GM - 129

Metodologa para creacin de un programa C


1

Diagrama Entrada - Salida


Salidas

Entradas

Programacin Prof. Gonzalo Mller Clase 14 GM - 130

Metodologa para creacin de un programa C


1

Diagrama Entrada - Salida


Salidas

Entradas

DRE
Nombre FIN

Programacin Prof. Gonzalo Mller Clase 14 GM - 131

Metodologa para creacin de un programa C


1

Diagrama Entrada - Salida


Salidas

Entradas

DRE
Nombre FIN

Lista de Variables
Variables variable : tipo
Programacin Prof. Gonzalo Mller Clase 14 GM - 132

Metodologa para creacin de un programa C


1

Diagrama Entrada - Salida


Salidas 4 2

Entradas

C/C++
main() {
//Declaraciones //Algoritmo

DRE
Nombre FIN

Lista de Variables
Variables variable : tipo

Programacin Prof. Gonzalo Mller Clase 14 GM - 133

Metodologa para creacin de un programa C


1

Diagrama Entrada - Salida


Salidas 4 2

Entradas

C/C++
main() {
//Declaraciones //Algoritmo

DRE
Nombre FIN

Lista de Variables
Variables variable : tipo

Programacin Prof. Gonzalo Mller Clase 14 GM - 134

Ejercicios
Construir un programa en C para: a) Calcular la sumatoria de los primeros N nmeros enteros. b) Calcular el factorial de N. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.
Programacin Prof. Gonzalo Mller Clase 14 GM - 135

Ejercicios
Construir un programa en C para: c) Promediar los pares y promediar los impares de los nmeros entre A y B. d) Contar la cantidad de nmeros mltiplos de K que hay en los primeros N nmero enteros. Fase 1: Diseo y Anlisis: DES, DRE DF, LV y CF. Fase 2: Codificacin: programa estructurado en C. Notacin, Documentacin e Indentacin.
Programacin Prof. Gonzalo Mller Clase 14 GM - 136

Resumen
Creacin de un programa Compilado. Ambiente de Desarrollo C. Lenguaje C/C++ Vocabulario: Identificadores, Operadores, Constantes, etc. Funcin Main. Declaraciones: Tipos de Datos. Secuencia de Sentencias.
Programacin Prof. Gonzalo Mller Clase 14 GM - 137

Palabras

Claves,

Estructura bsica de un programa en C.

Resumen
Directivas de preprocesador, Libreras y Funciones. Funciones Entrada/Salida: printf: Sin formato, Con formato. scanf. Sentencias de Control. Condicionales. Repetitivas. Metodologa para creacin de un programa C.
Programacin Prof. Gonzalo Mller Clase 14 GM - 138