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
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.
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)
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
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
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)
Preprocesador Editor de Texto Depurador Ambiente de Desarrollo
Ambiente de Desarrollo C/C++
Compilador Enlazador • MinGWStudio DesarrolloLenguaje C/C++
En 1970 Ken Thompson de los laboratorios Bell crea el lenguaje B como resultado de desarrollar uncompilador 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++.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.Lenguaje C/C++
El vocabulario de C esta compuesto:Identificadores.
Palabras Claves (keywords).
Constantes. Operadores.
Separadores.
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
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
_
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.
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
Vocabulario de C
Constantes: Numéricas. Lógicas. Carácter. Cadena de Caracteres. Simbólicas.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.
Vocabulario de C
Ejemplo:
Entera sin signo: 25 25u 25U
Entera con signo: -678 -789
Hexadecimal: 0xFE68
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.
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´
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”
Vocabulario de C
Operadores: Son signos especiales o un conjunto de ellos que indican diferentes operaciones a realizar+
*
*
=
Vocabulario de C
Operadores: Asignación. Aritméticos. Incrementales. Relacionales. Lógicos.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
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 +YVocabulario 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: %
Vocabulario de C
Operadores Relacionales:Mayor que: > Menor que: < Igual que: ==
Mayor o igual que: >= Menor o igual que: <= Distinto que: !=
Vocabulario de C
Operadores Lógicos:Y: && O: ||
Se utilizan expresiones lógicas sencillas para formar expresiones lógicas compuestas.
Vocabulario de C
Separadores: están constituidos por:Espacios en blanco.
Tabuladores.
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.
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
Directivas de Preprocesador
main() {
Estructura Básica de un programa en C/C++
Declaraciones
Secuencia de Sentencias
}
Directivas de Preprocesador
main() {
Estructura Básica de un programa en C/C++
Módulo principal
Declaraciones
Secuencia de Sentencias
Directivas de Preprocesador main()
Módulo principal
main() { Declaraciones Secuencia de Sentencias }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>
Directivas de Preprocesador main()
Declaraciones
main() { Declaraciones Secuencia de Sentencias } Tipos de DatosDeclaraciones
Le indican al compilador el tipo y propiedades de una variable.
tipo
variable
tipo
variable
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
Tipos de Datos
Reales:de 4 Bytes: float
Tipos de Datos
Reales: de 4 Bytes: float de 8 Bytes: double Lógico: bool Carácter: charDeclaraciones
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
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
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.
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
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
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.
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.
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
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
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
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
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*/
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() {
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.
Directivas de Preprocesador main()
Sentencias
main() { Declaraciones Secuencia de Sentencias } AlgoritmoC/C++ PC DRE DF main() { //Declaraciones Algoritmo { Algoritmo Comienzo
Sentencias
//Declaraciones … //Algoritmo … … } } Fin FinSentencias
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
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.
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”);
Directivas de Preprocesador main()
Directivas de Preprocesador
{ Declaraciones Secuencia de Sentencias }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.
Módulo1 Módulo2
Librería
Librerías
Módulo2 Módulo3 Módulo4 Módulo5 Módulo6 Módulo7 Módulo8 Módulo9 …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>
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.
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
#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() { …
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 MonitorFunciones Entrada/Salida
C ofrece un conjunto de funciones de entrada y salida predefinidas en las librerías estándar stdio, lasprincipales son: De salida: printf. De entrada: scanf. De entrada: scanf. Programa Entrada Teclado Salida Monitor scanf printf
Funciones Entrada/Salida
C ofrece un conjunto de funciones de entrada y salida predefinidas en las librerías estándar stdio, lasprincipales son: De salida: printf. De entrada: scanf. De entrada: scanf. Programa Entrada Teclado Salida Monitor scanf printf Equivalente en Javascript
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.
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!”);
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”);
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.
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.
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
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
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)
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
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” ↓
Funciones Entrada/Salida
Ejemplo: LV
contador: entera sin signo de 1 byte …
Funciones Entrada/Salida
Ejemplo:
unsigned char contador;
LV
contador: entera sin signo de 1 byte …
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*/
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*/
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*/
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*/
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*/
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*/
Funciones Entrada/Salida
printf(“%letra1 %letra2 %letra3”,
variable1,variable2,variable3);
Funciones Entrada/Salida
printf(“%letra1 %letra2 %letra3”,
variable1,variable2,variable3);
Correspondencia
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
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
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
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.
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 …” ↓
Funciones Entrada/Salida
Ejemplo:
unsigned char contador; float media;
LV
contador: entera sin signo de 1 byte media: real de 4 bytes
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
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
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);
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);
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
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);
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);
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);
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.
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
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.
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,
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
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
LV
cantidad: entera sin signo de 2 byte
Funciones Entrada/Salida
LV
cantidad: entera sin signo de 2 byte
Funciones Entrada/Salida
Ejemplo:
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*/
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*/
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);
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);
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.
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.
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.
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
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 VEjemplo: Construir un bloque de sentencias en C que convierta un número positivo A en par.
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 … FEjemplo: Construir un programa en C que calcule las raíces reales de una ecuación cuadrática Ax2 + Bx – C.
Sentencias de Control
Sentencias de Control
Estructura Repetitiva MientrasJavaScript/C /C++ PC DRE DF while(Condición) { Mientras(Condici ón) Condición … } { … } … … Condición V Mientras (Condición) … …
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
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.
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.
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(); }
Ejercicio
Construir el programa en C que lea un número real validando que no sea texto.
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.
Salidas Entradas
Diagrama Entrada - Salida
1
Salidas Entradas
Diagrama Entrada - Salida
DRE
1
2
Nombre
Metodología para creación de un programa C
Nombre
…
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
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 … }
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
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.
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:
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.
Resumen
Directivas de preprocesador, Librerías y Funciones. Funciones Entrada/Salida:printf: Sin formato, Con formato.
scanf.
Sentencias de Control.Condicionales.
Repetitivas.