Clase Programación 14

138 

Loading.... (view fulltext now)

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

Programación

Clase 14. Lenguaje C y C++

Prof. Gonzalo Müller

gmullerb@mail.com

Facultad de Ingeniería

Universidad Central de Venezuela

Programación

(2)

Clase Anterior



Tipos de Datos:

 Numéricos:

 Entero:

 Sin Signo: 1, 2, 4 y 8 bytes.  Con Signo: 1, 2, 4 y 8 bytes.

 Real:

 4 bytes.  8 bytes.

 Lógicos.

(3)

Programa fuente:

Fortran, Pascal, C++, etc. Editor de Texto Algoritmo + Tipos de Datos Compilador (Traductor)

Creación de un programa utilizando un lenguaje de programación compilado

Lenguaje de programación Compilado

(Traductor)

Programa objeto (.o, .obj)

Enlazador (librería)

(4)

Programa fuente:

Fortran, Pascal, C++, etc. Editor de Texto Algoritmo + Tipos de Datos Compilador (Traductor)

Creación de un programa utilizando un lenguaje de programación compilado

Corrección

Lenguaje de programación Compilado

(Traductor)

Programa objeto (.o, .obj)

Enlazador (librería) Corrección

de errores de sintaxis

(5)

Lenguaje de programación Compilado

 Programa fuente: Contiene las instrucciones en el lenguaje de programación.

 Programa objeto: Módulo que no esta listo para ejecución que contiene las instrucciones en código de maquina.

de maquina.

 Librerías del sistema: Módulos que contienen

funciones especiales o predefinidas.

 Programa ejecutable: Programa que puede ser

(6)

Programa fuente en C ó C++ (.c, .cpp)

Preprocesador

Creación de un programa utilizando el lenguaje de programación C o C++

Lenguaje de programación C/C++

Compilador

Programa objeto (.o, .obj)

Enlazador Librerías del sistema (.o, .obj)

(7)

Preprocesador Editor de Texto Depurador Ambiente de Desarrollo

Ambiente de Desarrollo C/C++

Compilador Enlazador • MinGWStudio Desarrollo

(8)

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 producía programas relativamente lentos.



En 1971 Dennis Ritchie, desarrolla el lenguaje C (NB) con base en el lenguaje B.

con base en el lenguaje B.



A principios de los 80 Bjarne Stroustrup en los Bell Laboratories desarrolla C++.

(9)

Lenguaje C/C++



Es Flexible.

 Permite la escritura a alto y bajo nivel.



El Código es Portátil.

 Con pequeñas o ninguna modificación puede ser

 Con pequeñas o ninguna modificación puede ser compilado en diferentes sistema operativos.



Los Programas son más Rápidos.



Los Programas son más Compactos.

(10)

Lenguaje C/C++



El vocabulario de C esta compuesto:

 Identificadores.

 Palabras Claves (keywords).

 Constantes.  Operadores.

 Separadores.

(11)

Vocabulario de C



Identificador: Es el nombre que el programador coloca para referirse a una determinada locación de memoria, una variable en memoria.

 Es más cómodo que identificar un locación de memoria con número correspondiente a la memoria con número correspondiente a la dirección.

A 31

(12)

Vocabulario de C



Reglas para definir un Identificador:

1. Se forma con un secuencia de los siguientes caracteres: 

a b c d e f g h i j k l m n o p q r s t u v w x y z

A B C D E F G H I J K L M N O P Q R S T



A B C D E F G H I J K L M N O P Q R S T

U V W X Y Z



0 1 2 3 4 5 6 7 8 9



_

(13)

Vocabulario de C

2. No puede contener espacios en blanco, ni ningún otro carácter diferente de los indicados en anteriormente.

3. El primer carácter no puede ser un dígito.

4. Hay distinción entre las letras mayúsculas y

4. Hay distinción entre las letras mayúsculas y minúsculas.

5. Puede tener hasta 31 caracteres.

(14)

Vocabulario de C



Palabras clave: están constituidas por una serie de palabras que define el lenguaje y que el programador no puede utilizar como identificador ya que tiene una función específica.

struct float case void

short long char int

(15)

Vocabulario de C



Constantes:  Numéricas.  Lógicas.  Carácter.  Cadena de Caracteres.  Simbólicas.

(16)

Vocabulario de C



Constantes Numéricas:

 Enteras: Formada con secuencia de dígitos del 0 al

9, –, +.  Con signo.  Sin signo.  Sin signo.  Sufijo Opcional: u , U .  Hexadecimal:  Tiene el Prefijo: 0x, 0X.

(17)

Vocabulario de C

Ejemplo:

Entera sin signo: 25 25u 25U

Entera con signo: -678 -789

Hexadecimal: 0xFE68

(18)

Vocabulario de C

 Reales: Formada con secuencia de dígitos del 0 al 9, , –, +, e, E y/o . .

 Sufijo Opcional: f , F. Constante de 4 bytes.

Ejemplo:

Real: 9010.5 567e10 -2.4E10

Real: 9010.5 567e10 -2.4E10

Real de 4 bytes: 9010.5f 567e10f -2.4E10



Constantes Lógicas:

 Verdadero: true.  Falso: false.

(19)

Vocabulario de C



Constantes Carácter:

 Encerradas entre apostrofes.

 Caracteres especiales: `\t´, `\\´, `\n´, etc.



Constantes Texto:

 Encerradas entre comillas.  Encerradas entre comillas.

 Caracteres especiales: `\t´, `\\´, `\n´, etc.

Ejemplo:

`a´

(20)

Vocabulario de C



Constantes Carácter:

 Encerradas entre apostrofes.

 Caracteres especiales: `\t´, `\\´, `\n´, etc.



Constantes Texto:

 Encerradas entre comillas.

Equivalente a <br/> en Html

 Encerradas entre comillas.

 Caracteres especiales: `\t´, `\\´, `\n´, etc.

Ejemplo:

`a´

“Lenguaje C++ es el mejor”

(21)

Vocabulario de C



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

+

*

*

=

(22)

Vocabulario de C



Operadores:  Asignación.  Aritméticos.  Incrementales.  Relacionales.  Lógicos.

(23)

Vocabulario de C



Operador Asignación, = : Coloca un valor dado a una variable.

 Una constante.

 El valor de otra variable.

 El resultado de una expresión.

 El resultado de una expresión.

Constante

Variable = Valor Variable

(24)

Vocabulario de C

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

(25)

Vocabulario de C



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

 Tener cuidado con el tipo de dato utilizado.

 Ambos tipos de datos enteros → división entera  Residuo de división entera: %

(26)

Vocabulario de C



Operadores Relacionales:

 Mayor que: >  Menor que: <  Igual que: ==

 Mayor o igual que: >=  Menor o igual que: <=  Distinto que: !=

(27)

Vocabulario de C



Operadores Lógicos:

 Y: &&  O: ||

 Se utilizan expresiones lógicas sencillas para formar expresiones lógicas compuestas.

(28)

Vocabulario de C



Separadores: están constituidos por:

 Espacios en blanco.

 Tabuladores.

(29)

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

/* : indica al compilador el comienzo de un comentario.

*/ : indica al compilador el final de un comentario.

// : indica al compilador que el resto de la línea es un comentario.

(30)

Vocabulario de C

 /* y */ Siempre deben ser usados en pareja. Ejemplo:

/* Este es un comentario: lenguaje C++ es el mejor lenguaje de programación */

lenguaje de programación */

// Este es otro comentario: la mayoría de los

(31)

Directivas de Preprocesador

main() {

Estructura Básica de un programa en C/C++

Declaraciones

Secuencia de Sentencias

}

(32)

Directivas de Preprocesador

main() {

Estructura Básica de un programa en C/C++

Módulo principal

Declaraciones

Secuencia de Sentencias

(33)

Directivas de Preprocesador main()

Módulo principal

main() { Declaraciones Secuencia de Sentencias }

(34)

Módulo principal

Constituye el bloque principal de un programa en C/C++.

 Todo programa en C/C++ debe tener un bloque main. C/C++ JavaScript C/C++ JavaScript main() { <script> … … } </script>

(35)

Directivas de Preprocesador main()

Declaraciones

main() { Declaraciones Secuencia de Sentencias } Tipos de Datos

(36)

Declaraciones

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

tipo

variable

tipo

variable

(37)

Entero

Tamaño Sin signo

(unsigned)

Con signo (signed)

Tipos de Datos

(unsigned) (signed) 1 byte (char) unsigned char signed char

2 bytes (short) unsigned short signed short

(38)

Tipos de Datos



Reales:

 de 4 Bytes: float

(39)

Tipos de Datos



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





Lógico: bool



Carácter: char

(40)

Declaraciones

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

tipo

variable

Numéricos: Entero:

Sin Signo: 1, 2, 4 bytes:

unsigned char, unsigned short, unsigned long 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 Lógicos: bool

(41)

Declaraciones

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

tipo

variable

Numéricos: Entero:

Sin Signo: 1, 2, 4 bytes:

unsigned char, unsigned short, unsigned long 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 Lógicos: bool

(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 día.

 Debe ser Numérica.

 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 difícil que un vendedor informal venda

más de 255 donas en mediodía.

(43)

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 día.

 Debe ser Numérica.

 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 difícil que un vendedor informal venda

más de 255 donas en mediodía.

Entera sin signo de 1 byte

LV

(44)

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 día.

 Debe ser Numérica.

 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 difícil que un vendedor informal venda

más de 255 donas en mediodía.

Entera sin signo de 1 byte

(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 día por una semana.

 Debe ser Numérica.

 Debe ser Real, ya que el promedio es un número no necesariamente

entero, es decir, puede contener decimales.

 Puede ser de 4 bytes, ya que este tipo ofrece una precisión de 6

cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

(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 día por una semana.

 Debe ser Numérica.

 Debe ser Real, ya que el promedio es un número no necesariamente

entero, es decir, puede contener decimales.

 Puede ser de 4 bytes, ya que este tipo ofrece una precisión de 6

cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

(47)

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 día por una semana.

 Debe ser Numérica.

 Debe ser Real, ya que el promedio es un número no necesariamente

entero, es decir, puede contener decimales.

 Puede ser de 4 bytes, ya que este tipo ofrece una precisión de 6

cifras significativas y para el vendedor es necesario a lo sumo 1 cifra.

Real de 4 bytes LV

(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 día.

 Debe ser Lógica, ya que se necesita almacenar dos situaciones, si

vendió o no vendió, verdadero si vendió y falso de lo contrario.

Lógica Lógica

(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 día.

 Debe ser Lógica, ya que se necesita almacenar dos situaciones, si

vendió o no vendió, verdadero si vendió y falso de lo contrario.

Lógica

Lógica LV

chocoDonas: lógica

(50)

Declaraciones

Ejemplo: Se requiere seleccionar el tipo de dato para una variable que almacenará si un vendedor informal vendió donas de chocolate en medio día.

 Debe ser Lógica, ya que se necesita almacenar dos situaciones, si

vendió o no vendió, verdadero si vendió y falso de lo contrario.

Lógica Lógica bool chocoDonas LV chocoDonas: lógica

(51)

Declaraciones

Ejemplo:

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

Tipo Identificador

Llamadas*/

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

Maximo y Media*/

(52)

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:

Ejemplo:

Directivas de Preprocesador

main() {

(53)

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 tamaño

depende del compilador. depende del compilador.

(54)

Directivas de Preprocesador main()

Sentencias

main() { Declaraciones Secuencia de Sentencias } Algoritmo

(55)

C/C++ PC DRE DF main() { //Declaraciones Algoritmo { Algoritmo Comienzo

Sentencias

//Declaraciones //Algoritmo } } Fin Fin

(56)

Sentencias

Constituye una combinación adecuada de

identificadores, constantes, operadores y separadores, la cual realiza una operación específica.

Ejemplo:

Ejemplo:

c = a + b

Superior = r = b + 1 Mitad = n * 0.5f

(57)

Sentencias



Tipos de Sentencia:

 Declarativas: Se declara un identificador.

 Asignación: Se realiza un operación de asignación.

 Control: Se lleva a cabo alguna operación

condicionada o repetitiva. condicionada o repetitiva.

 Llamada: Se realiza una llamada a una subrutina.

(58)

Sentencias



Todas las sentencias excepto las de control deben terminar con el símbolo ; .

Ejemplo:

Declarativas: float acumulador;

Declarativas: float acumulador;

Asignación: acumulador = 0;

Llamadas: printf(“C++ es el 1”);

(59)

Directivas de Preprocesador main()

Directivas de Preprocesador

{ Declaraciones Secuencia de Sentencias }

(60)

Directivas de Preprocesador



Ahorran la escritura y aumentan la legilibidad del código. Sus principales funciones son:

 Definir de constantes simbólicas.

 Incluir de archivos de cabecera de librerías predefinidas.

(61)

Módulo1 Módulo2

Librería

Librerías

Módulo2 Módulo3 Módulo4 Módulo5 Módulo6 Módulo7 Módulo8 Módulo9

(62)

Librerías Predefinidas

Son programas objeto que contiene conjunto de módulos preprogramados.



La directiva #include del preprocesador permite incluir archivo cabecera:

#include <Archivo> #include <Archivo>

Ejemplo:

#include <math.h>

(63)

Librerías Predefinidas

Son librerías predefinidas por C, con módulos de:

 Entrada y salida.

 Matemáticas básicas.

 Manejo de archivos.

 Manejo de Cadena de Caracteres.

 Ordenamiento y búsqueda.

(64)

Librerías Estándar



Los archivos cabecera de las principales librerías estándar son:

 Entrada/Salida: stdio.h

 Matemáticas: math.h

 Utilerías Generales: stdlib.h

(65)

#include <math.h>

Librerías Estándar

Ejemplo: Si desea realizar operaciones matemáticas y de entrada y salida sería necesario incluir la librerías respectivas: #include <math.h> #include <stdio.h> main() {

(66)

El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a través del teclado y el monitor.

Funciones Entrada/Salida

Programa Entrada Teclado Salida Monitor

(67)

Funciones Entrada/Salida



C ofrece un conjunto de funciones de entrada y salida predefinidas en las librerías estándar stdio, las

principales son:  De salida: printf.  De entrada: scanf.  De entrada: scanf. Programa Entrada Teclado Salida Monitor scanf printf

(68)

Funciones Entrada/Salida



C ofrece un conjunto de funciones de entrada y salida predefinidas en las librerías estándar stdio, las

principales son:  De salida: printf.  De entrada: scanf.  De entrada: scanf. Programa Entrada Teclado Salida Monitor scanf printf Equivalente en Javascript

(69)

Funciones Entrada/Salida



printf: Presenta en información en pantalla.

Formas de uso:

1. Solo texto, sin formato:

printf(Texto);

Texto: constante texto que contiene la información que se desea presentar en pantalla.

(70)

Ejemplo:

/* Escribe en pantalla: Lenguaje C++ es el 1*/

printf(“Lenguaje C++ es el 1”);

Funciones Entrada/Salida

/* Escribe en dos líneas en pantalla: Lenguaje C++ es el Mejor!*/

printf(“Lenguaje C++\n”); printf(“es el Mejor!”);

(71)

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”);

Funciones Entrada/Salida

/* Escribe en dos líneas en pantalla: Lenguaje C++ es el Mejor!*/

printf(“Lenguaje C++\n”); printf(“es el Mejor!”);

document.write(“Lenguaje C++ es el 1”);

(72)

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio.

Fase 1: Diseño y Análisis:

Fase 1: Diseño y Análisis:

DES, DRE ó DF y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(73)

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 están contenidas en las lista y como debe presentarse en pantalla.

(74)

Funciones Entrada/Salida

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

 Formato sólo variables

especificador1 especificador2 especificador3

 Formato sólo variables

(75)

Funciones Entrada/Salida

 Un especificador esta formado por un carácter porcentaje y una letra, la cual indica el tipo de variable correspondiente:

Letra Tipo de dato

c Carácter

%letra

c Carácter

d Entero con signo

u Entero sin signo

x,X Hexadecimal

(76)

Funciones Entrada/Salida

 Algunos formatos básicos para la escritura serían:

Formato Tipo de dato

%u Entero sin signo

%d Entero con signo

%x Hexadecimal %x Hexadecimal %f Real %e Real %g Real %.2f Real (2 decimales)

(77)

Funciones Entrada/Salida

 Algunos formatos básicos para la escritura serían:

Formato Tipo de dato

%u Entero sin signo

%d Entero con signo

%x Hexadecimal %x Hexadecimal %f Real %e Real %g Real %.2f Real (2 decimales) %c Carácter

(78)

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 sólo variables

especificador1 especificador2 especificador3

 Formato sólo variables

“especificador1 especificador2 especificador3” ↓

(79)

Funciones Entrada/Salida

Ejemplo: LV

contador: entera sin signo de 1 byte …

(80)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador;

LV

contador: entera sin signo de 1 byte …

(81)

LV

contador: entera sin signo de 1 byte …

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; …

/* Escribe en pantalla: El valor de

Formato Tipo de dato

%u Entero sin signo

… …

/* Escribe en pantalla: El valor de

la variable contador*/

(82)

Formato

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*/

(83)

Lista de Variables

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*/

(84)

Funciones Entrada/Salida

Ejemplo:

/* Escribe en pantalla: El valor de

la variable contador*/

printf(“%u”, contador);

Correspondencia

/* Escribe en pantalla: El valor de

la variable contador y media*/

(85)

Funciones Entrada/Salida

Ejemplo:

/* Escribe en pantalla: El valor de

la variable contador*/

printf(“%u”, contador);

Correspondencia

/* Escribe en pantalla: El valor de

la variable contador y media*/

(86)

Equivalente en Javascript:

document.write(contador);

Funciones Entrada/Salida

Ejemplo:

/* Escribe en pantalla: El valor de

la variable contador*/

printf(“%u”, contador);

document.write(contador);

Equivalente en Javascript:

document.write(contador + “ “ + media);

/* Escribe en pantalla: El valor de

la variable contador y media*/

(87)

Funciones Entrada/Salida

printf(“%letra1 %letra2 %letra3”,

variable1,variable2,variable3);

(88)

Funciones Entrada/Salida

printf(“%letra1 %letra2 %letra3”,

variable1,variable2,variable3);

Correspondencia

(89)

Funciones Entrada/Salida

printf(“%letra1 %letra2 %letra3”,

variable1,variable2,variable3);

Correspondencia

1º Especificador del Formato→1ª Variable de la Lista 2º Especificador del Formato→2ª Variable de la Lista

(90)

Funciones Entrada/Salida

printf(“%letra1 %letra2 %letra3”,

variable1,variable2,variable3);

Correspondencia

1º Especificador del Formato→1ª Variable de la Lista 2º Especificador del Formato→2ª Variable de la Lista 3º Especificador del Formato→3ª Variable de la Lista

(91)

Funciones Entrada/Salida

printf(“%letra1 %letra2 %letra3”,

variable1,variable2,variable3);

Correspondencia

1º Especificador del Formato→1ª Variable de la Lista 2º Especificador del Formato→2ª Variable de la Lista 3º Especificador del Formato→3ª Variable de la Lista

(92)

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio. La edad y promedio debe estar almacenado en variables.

almacenado en variables.

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

(93)

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

 Formato con texto

“Texto especificador1 Texto especificador2 …” ↓

(94)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

(95)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

Formato Tipo de dato

(96)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

Formato Tipo de dato

%u Entero sin signo

(97)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

(98)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

(99)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

Especificador

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

Formato Tipo de dato

%u Entero sin signo

Especificador

(100)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

(101)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

printf(“Se encontraron %u datos, cuyo

promedio fue %f”, contador, media);

(102)

Funciones Entrada/Salida

Ejemplo:

unsigned char contador; float media;

LV

contador: entera sin signo de 1 byte media: real de 4 bytes

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

Equivalente en Javascript:

document.write(“Se encontraron “ + contador + “ datos, cuyo promedio fue “ + media);

(103)

Ejercicio

Construir un programa en C que coloque en pantalla su edad y su promedio. La edad y promedio debe estar almacenado en variables.

almacenado en variables.

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(104)

Operador Referencia



&: Obtiene la dirección en memoria de una variable.

Ejemplo: unsigned char A; A = 101; A 101 Identificador A = 101; printf(“%u\n”, 101); printf(“%u\n”, A); printf(“%u”, &A); 31 Escribe 101 en la pantalla Escribe 101 en la pantalla Escribe 31 en la pantalla Dirección

(105)

Funciones Entrada/Salida



scanf: Lee un dato desde el teclado y escribe en la variable indicada el resultado.

Forma de uso:

scanf(Formato,&variable); scanf(Formato,&variable);

Formato: constante texto que establece que tipo de variable será leída.

(106)

Funciones Entrada/Salida

 El formato en realidad está constituido únicamente por el especificador que indica el tipo de dato a leer:

%letra”

Letra Tipo de dato Observación

c Carácter No lee espacio en blanco

c Carácter No lee espacio en blanco

d Entero con signo

Prefijo l para long, h para short,

hh para char, ll para long long

u Entero sin signo

Prefijo l para long, h para short,

(107)

Funciones Entrada/Salida

 De esta forma algunos formatos básicos para la lectura serían:

(ISOC9899)

Formato Tipo de dato

%c char

%hhd signed char

%hhu unsigned char (ISOC9899)

%hhu unsigned char

%hd signed short

%hu unsigned short

%ld signed long

%lu unsigned long

(108)

Funciones Entrada/Salida

 De esta forma algunos formatos básicos para la lectura serían:

(ISOC9899)

Formato Tipo de dato

%c char

%hhd signed char

%hhu unsigned char (ISOC9899)

%hhu unsigned char

La lectura de un carácter puede ser problemática, por lo que es recomendable utilizar una variable entera en su lugar

(109)

LV

cantidad: entera sin signo de 2 byte

Funciones Entrada/Salida

(110)

LV

cantidad: entera sin signo de 2 byte

Funciones Entrada/Salida

Ejemplo:

(111)

Funciones Entrada/Salida

Ejemplo:

unsigned short cantidad;

/* Lee de teclado: El valor de la

Formato Tipo de dato

%c char

… …

/* Lee de teclado: El valor de la

variable cantidad*/

(112)

Funciones Entrada/Salida

Ejemplo:

/* Lee de teclado: El valor de la

variable cantidad*/

scanf(“%hu”, &cantidad);

Es necesario tener extrema precaución e indicar

/* Lee de teclado: El valor de la

variable media*/

(113)

Funciones Entrada/Salida

Ejemplo:

/* Lee cantidad de datos*/

printf(“Cantidad de datos:”); scanf(“%hu”, &cantidad);

Si un programa se detiene abruptamente o se “guinda” es

/* Lee media de datos*/

printf(“Media de datos:”); scanf(“%f”, &media);

(114)

Equivalente en Javascript:

Funciones Entrada/Salida

Ejemplo:

/* Lee cantidad de datos*/

printf(“Cantidad de datos:”); scanf(“%hu”, &cantidad);

cantidad = parseInt(prompt(“Cantidad de datos:”));

Equivalente en Javascript:

/* Lee media de datos*/

printf(“Media de datos:”); scanf(“%f”, &media);

(115)

Ejercicio

Construir un programa en C que lea la edad y promedio y lo presente a la salida.

Fase 1: Diseño y Análisis:

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(116)

Ejercicio

Construir un programa en C para hallar la hipotenusa2 de un triangulo dado sus catetos.

Fase 1: Diseño y Análisis:

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(117)

Ejercicio

Construir el programa en C para promediar dos notas. Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF. DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(118)

Sentencias de Control

Permiten ejecutar una sentencia o una secuencia de sentencias de forma repetitiva o no, dada un

condición.

 Sentencia Condicional.

 Sentencia Condicional.

 Sentencia Repetitiva.

 Si se ejecuta una secuencia de sentencias las mismas

(119)

Sentencias de Control



Condicional Sencilla JavaScript/ C/C++ PC DRE DF if(Condición) { Si(Condición) { Condición Condición } { … } … … Condición V … … Condición V

(120)

Ejemplo: Construir un bloque de sentencias en C que convierta un número positivo A en par.

(121)

Sentencias de Control



Condicional Doble JavaScript/ C/C++ PC DRE DF if(Condición) { Si(Condición) { Condición V F V Condición F } else { } … } sino { … … … … … V … Condición F V … F

(122)

Ejemplo: Construir un programa en C que calcule las raíces reales de una ecuación cuadrática Ax2 + Bx – C.

Sentencias de Control

(123)

Sentencias de Control



Estructura Repetitiva Mientras

JavaScript/C /C++ PC DRE DF while(Condición) { Mientras(Condici ón) Condición } { … } … … Condición V Mientras (Condición) … …

(124)

Sentencias de Control



Estructura Repetitiva Hacer Mientras

 Única sentencia de control que termina en ;.

JavaScript/C /C++ PC DRE DF do Hacer { } while(Condición); { … } Mientras(Condici ón) … … … Mientras … … Condición

(125)

Ejercicio

Construir el programa en C que sume los números del A al B.

Fase 1: Diseño y Análisis:

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(126)

Funciones Entrada/Salida



scanf retorna la cantidad de elementos leídos.

 Si este valor es 0, indica que hubo un error convirtiendo el dato leído en el tipo correspondiente.

 Su principal utilidad es para el caso en que el usuario  Su principal utilidad es para el caso en que el usuario

ingrese texto en un valor numérico. 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.

(127)

Elimina un carácter del buffer de entrada

Funciones Entrada/Salida

Forma de uso:

while(scanf(Formato,&Variable) == 0) {

getchar(); Elimina un carácter del buffer de entrada Sale del bucle solo cuando un valor

numérico fue asignado a la variable

getchar(); }

(128)

Ejercicio

Construir el programa en C que lea un número real validando que no sea texto.

(129)

Metodología para creación de un programa

1º. Realizar el análisis del problema a resolver: 1º. Definir los datos de entrada y de salida. 2º. Teoría asociada, requerimientos, etc.

2º. Diseñar y probar el algoritmo: Construir DRE o el DF.

Metodología para creación de un programa C

2º. Diseñar 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.

(130)

Salidas Entradas

Diagrama Entrada - Salida

1

(131)

Salidas Entradas

Diagrama Entrada - Salida

DRE

1

2

Nombre

Metodología para creación de un programa C

Nombre

(132)

Salidas Entradas

Diagrama Entrada - Salida

DRE

1

2

Nombre

Metodología para creación de un programa C

Lista de Variables 3 Variables Nombre FIN

(133)

Nombre

Salidas Entradas

Diagrama Entrada - Salida

DRE 1 2 4 C/C++ main() {

Metodología para creación de un programa C

Nombre FIN Lista de Variables 3 Variables variable : tipo //Declaraciones //Algoritmo }

(134)

C/C++

main() {

Salidas Entradas

Diagrama Entrada - Salida

DRE

1

2

4

Nombre

Metodología para creación de un programa C

//Declaraciones //Algoritmo } Lista de Variables 3 Variables Nombre FIN

(135)

Ejercicios

Construir un programa en C para:

a) Calcular la sumatoria de los primeros N números enteros.

b) Calcular el factorial de N.

b) Calcular el factorial de N.

Fase 1: Diseño y Análisis:

DES, DRE ó DF, LV y CF.

Fase 2: Codificación: programa estructurado en C. Notación, Documentación e Indentación.

(136)

Ejercicios

Construir un programa en C para:

c) Promediar los pares y promediar los impares de los números entre A y B.

d) Contar la cantidad de números múltiplos de K que

d) Contar la cantidad de números múltiplos de K que hay en los primeros N número enteros.

Fase 1: Diseño y Análisis:

(137)

Resumen



Creación de un programa Compilado.



Ambiente de Desarrollo C.



Lenguaje C/C++

 Vocabulario: Identificadores, Palabras Claves, Operadores, Constantes, etc.

Operadores, Constantes, etc.



Estructura básica de un programa en C.

 Función Main.

(138)

Resumen



Directivas de preprocesador, Librerías y Funciones.



Funciones Entrada/Salida:

 printf: Sin formato, Con formato.

 scanf.





Sentencias de Control.

 Condicionales.

 Repetitivas.

Figure

Actualización...

Referencias

Actualización...

Related subjects :