SlideShare una empresa de Scribd logo
1 de 96
Programación en C / C++
http://www.cartagena99.com/recurs
os/recursos_programacion.php
Programación en C 1
EL SOFTWARE (PROGRAMAS)
Las operaciones que debe realizar el hardware son específicas por una lista de instrucciones,
llamadas programas o software. El software se divide en dos grandes grupos: software del
sistema y de aplicaciones
Software de sistema Es el conjunto de programas indispensable para que la máquina funcione,
se domina también programas del sistema. Estos programas son básicamente el Sistema
Operativo, los editores de texto, los compiladores/interpretes (lenguajes de
programación) y los programas de utilidad.
Uno de los programas masi importantes es el Sistema Operativo que sirve, esencialmente para
facilitar la escritura y usos de sus programas. Este dirige las operaciones globales de la
computadores e instruye a la computadora para ejecutar otros programas y controla el
almacenamiento y recuperación de archivos (programas y datos).
Gracias al Sistema Operativo es posible que el programador pueda introducir y grabar nuevos
programas así como instruir a la computadora para que los ejecute.
Los lenguajes de programación sirven para escribir programas que permitan la
comunicación usuario maquina. Unos programas especiales llamados traductores
(compiladores o interpretes) convierten las instrucciones escritas en lenguajes de
programación en instrucciones escritas en lenguajes de maquina que esta pueda
entender.
Los programas de utilidad facilitan el uso de la computadora. Por ejemplo el editor
de textos
Los programas que realizan tareas concretas como nominas, contabilidad análisis
estadístico, etc de denominan programas de aplicación.
LENGUAJE DE MAQUINA
LENGUAJE DE BAJO NIVEL
LENGUAJE DE BAJO NIVEL
LENGUAJE DE ALTO NIVEL
LENGUAJE DE ALTO NIVEL
TRADUCTORES DE LENGUAJE
Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en
lenguajes de alto nivel a código de máquina. Los traductores se dividen en: compiladores e interpretes
COMPILADOR
LA COMPILACION Y SUS FASES
La compilación es el proceso de traducción de programas fuente a programas objeto. El
programa objeto obtenido de la compilación ha sido traducido normalmente a código de
máquina.
Para conseguir el programa máquina real se debe utilizar un programa llamando montador o
enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina
directamente ejecutable.
El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un
compilador suele tener los siguientes pasos:
1. Escritura del programa fuente y guardarlo en un dispositivo de almacenamiento
2. Introducir el programa fuente en memoria
3. Compilar el programa con el compilador
4. Verificar y corregir errores de compilación
5. Obtención del programa objeto
6. El enlazador obtiene el programa ejecutable
7. Se ejecuta el programa y se tendrá la salida deseada
EJECUCION DE UN PROGRAMA
FASES DE EJECUCION DE UN PROGRAMA
PROGRAMACION ESTRUCTURADA
VS
PROGRAMACION ORIENTADA A
OBJETOS
Programación en C 16
Programación en C 17
UNA FORMA NUEVA DE PENSAR
Es muy importante destacar que cuando hacemos referencia a la programación orientada a
objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de
programación. Estamos hablando de una nueva forma de pensar acerca del proceso de
descomposición de problemas y de desarrollo de soluciones de programación.
La programación orientada a objetos surge en la historia como un intento para dominar la
complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de
enfrentarse a esta complejidad ha sido empleando lo que llamamos programación
estructurada, que consiste en descomponer el problema objeto de resolución en subproblemas
y más subproblemas hasta llegar a acciones muy simples y fáciles de codificar. Se trata de
descomponer el problema en acciones, en verbos. En el ejemplo de un programa que resuelva
ecuaciones de segundo grado, descomponíamos el problema en las siguientes acciones:
primero, pedir el valor de los coeficientes a, b y c; después, calcular el valor del discriminante;
y por último, en función del signo del discriminante, calcular ninguna, una o dos raíces.
Como podemos ver, descomponíamos el problema en acciones, en verbos; por ejemplo
el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular…
Programación en C 18
La programación orientada a objetos es otra forma de descomponer problemas.
Este nuevo método de descomposición es la descomposición en objetos; vamos a
fijarnos no en lo que hay que hacer en el problema, sino en cuál es el escenario
real del mismo, y vamos a intentar simular ese escenario en nuestro programa.
Los lenguajes de programación tradicionales no orientados a objetos, como C,
Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto de
procedimiento o función. Una función es simplemente un conjunto de
instrucciones que operan sobre unos argumentos y producen un resultado. De
este modo, un programa no es más que una sucesión de llamadas a funciones, ya
sean éstas del sistema operativo, proporcionadas por el propio lenguaje, o
desarrolladas por el mismo usuario.
PROGRAMACION ESTRUCTURADA VS
P.O.O.
Programación en C 19
PROGRAMACION ESTRUCTURADA VS
P.O.O.
En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java,
el elemento básico no es la función, sino un ente denominado precisamente
objeto. Un objeto es la representación en un programa de un concepto, y contiene
toda la información necesaria para abstraerlo: datos que describen sus atributos y
operaciones que pueden realizarse sobre los mismos.
Programación en C 20
EJEMPLOS DE OBJETOS.
Índice
• Estructura de un programa
C.
• Variables básicas.
• Operaciones aritméticas.
• Sentencias de control.
• Arrays y Strings.
• Funciones.
• Estructuras de datos.
• Entrada/Salida básica.
• Ejemplos I.
• Modificadores de
ámbito de las
variables.
• Punteros y memoria
dinámica.
• Operadores de bit.
• Preprocesador C y
compilación.
• Librerías estándar.
• Ejemplos II.
Programación en C 21
Programación en C 22
CONCEPTOS BASICOS DE C
Estructura de un programa en C
Programación en C 23
Todo programa en C se construye básicamente mediante tres
tipos de objetos:
 Funciones.
 Variables.
 Tipos de datos.
Programación en C 24
#include <biblioteca1.h>
#include <biblioteca2.h>
... declaraciones de funciones ...
... definiciones (cuerpos de funciones) ...
... declaraciones de variables globales ...
main()
{
... cuerpo del main ...
}
... otras definiciones de funciones ...
Definición de
Cabecera y/o
Ficheros
Declaración
de Datos
Función Principal
Otras Funciones
y/o
Procedimientos
/*Variantes de Definición*/
#include<nombre_de_la_biblioteca>
#define nombre_de_la_constante
//Función principal
void main()
{
definición de variables locales;
instrucciones del programa;
}
• Estructura de un programa en C
Estructura de un programa en C
Función main():
#include <stdio.h>
int main()
{
printf(“Hola mundo!!n”);
return(0);
}
Programación en C 25
Estructura de un programa en C
Fichero hola.c
# include <stdio.h>
int main()
{
printf(“Hola mundo!!n”);
return(0);
}
Programación en C 26
Compilación
Ejecución
Características de C
• Sensible a mayúsculas y minúsculas: sum y Sum
• Indentación y espacios en blanco.
• Sentencias (terminan con un punto y coma).
• Bloques (delimitados entre llaves).
• Elementos de un programa:
– Palabras reservadas (muy pocas).
– Funciones de librería estándar.
– Variables y funciones definidas por el programador.
Programación en C 27
ESTRUCTURA DE UN PROGRAMA
El inicio del programa debe llevar:
El símbolo de numeral (#) la sentencia “include”, y entre
signos de mayor y menor que (<>) el nombre de la librería
o fichero.
Seguidas de las librerías, para que “Incluya” en el
programa la directiva la cual contiene las funciones para
procesar datos.
#include <fichero>
28
ESTRUCTURA DE UN PROGRAMA
#include <stdio.h>.- Contiene las funciones de entrada y
salida de datos.
#include <conio.h>.- Declara varias funciones usadas
llamando la consola del sistema operativo.
#include <string.h>.- Manejo de cadenas.
#include <stdlib.h >.- Memoria dinámica.
#include <math.h >.- Rutinas matemáticas.
29
Comentarios
• Los comentarios en C pueden ocupar varias
líneas y se encuentran delimitados entre /* y
*/.
int main()
{
/* Esto es un comentario de varias
lineas.*/
return(0);
}
Programación en C 30
Programación en C
Entrada/salida básica
Programación en C 31
Funciones de entrada/salida
• Las funcionalidades de entrada/salida en C no
pertenecen a las palabras reservadas del
lenguaje. Son funciones de librería, por ejemplo:
– Entrada: scanf().
– Salida: printf().
Programación en C 32
printf()
• El formato de llamada de printf()es:
printf(format, exp1, exp2, exp3,..., expn);
donde:
– format : Es el string de formato de salida de los
datos.
– expi : Es la expresión a incluir dentro del formato.
Programación en C 33
printf()
Ejemplo:
int a=3;
float x=23.0;
char c=‘A’;
printf(“Hola mundo!!n”);
printf(“Un entero %dn”,a);
printf(“Un real %f ny un char %cn”,x,c);
Programación en C 34
printf()
Formato Expresión Resultado
%d %i entero entero decimal con signo
%u entero entero decimal sin signo
%o entero entero octal sin signo
%x %X entero entero hexadecimal sin signo
%f real real en notación punto
%e %E %g %G real real en notación científica
%c carácter carácter
%p puntero dirección de memoria
%s string cadena de caracteres
%ld %lu ... entero largo entero largo (distintos
formatos)Programación en C 35
printf()
• Otras opciones de formato:
– Precisión (número de decimales).
– Justificación (izquierda o derecha).
– Caracteres especiales (% o ).
– ...
Ver página del manual:
man printf
Programación en C 36
scanf()
• El formato de llamada de scanf()es:
scanf(format, dir1, dir2, dir3,..., dirn);
donde:
– format : Es el string de formato de entrada de los
datos.
– diri : Es la dirección donde se almacena el
resultado.
Programación en C 37
scanf()
Ejemplo
int a,*pa;
float x;
char c;
scanf(“%d”,&a); /* Lee un entero y lo
almacena en a */
scanf(“%f %c”,&x,&c); /* Lee x y c */
scanf(“%d”,pa); /* PELIGROSO */
pa=&a; scanf(“%d”,pa); /* OK. Lee a */
Programación en C 38
scanf() Lectura de strings
Ejemplo:
char *pc;
char str[82];
scanf(“%s”,pc); /* PELIGROSO */
scanf(“%s”,str); /* Lee hasta un blanco o
fin de línea */
scanf(“%[^n]”,str); /* Lee toda la línea */
Programación en C 39
ENTRADA Y SALIDA DE DATOS
Se utiliza las funciones de biblioteca:
“scanf” para la entrada de valores.
Sintaxis es la siguiente:
Lee el valor y lo guarda en una variable.
“printf” para la salida de información.
Sintaxis es la siguiente:
Imprime en pantalla el texto y el valor
40
scanf ("%d", &variable);
printf ("El valor es %d", variable);
La función COUT
Programación en C 41
#include <iostream>
int main()
{
int x = 5;
int y = 7;
cout << "n";
cout << x + y << " " << x * y;
cout << "n";
return 0;
}
ENTRADA Y SALIDA DE DATOS
ENTRADA DE TIPO CARÁCTER.
Se declara una variable de tipo carácter y se guarda en: getch() o
getche().
La diferencia es que getche() muestra en pantalla el carácter
introducido.
getch() lo mantiene oculto.
Sintaxis:
char opc;
opc=getch();
opc=getche();
42
Programa que realiza la suma de dos numeros.
#include <stdio.h>
int x;
main()
{
int a,b,suma;
a=5;
b=12;
suma=a+b;
suma=suma+b;
printf("%d",suma);
}
43
TIPOS DE ARCHIVOS
Programación en C 44
Programación en C
Variables básicas
Programación en C 45
CONCEPTOS BASICOS
Programación en C 46
Ámbito de las variables
• La declaración de las variables lleva asociado un
ámbito, dentro del cual la variable es visible:
– Ámbito global: La variable es visible para todas las
funciones del programa.
– Ámbito local: La variable es visible sólo dentro de la
función. (Tiene prioridad sobre el ámbito global)
Programación en C 47
Ámbito de las variables
int x,y;
int main()
{
float x,z;
/* Aquí x y z son reales e y un entero */
}
/* Aquí x e y son variables enteras */
/* La variable z no existe fuera de la
función */
Programación en C 48
AMBITO DE LAS VARIABLES
49
Variable Global Variable Local
#include <stdio.h>
int x;
int main()
{
}
#include <stdio.h>
int main()
{
int x;
}
Programación en C 50
C++ dispone del operador (::), llamado operador de resolución de visibilidad (scope
resolution operator). Este operador, antepuesto al nombre de una variable global que está
oculta por una variable local del mismo nombre, permite acceder al valor de la variable
globa l6.
Considérese el siguiente ejemplo:
int a = 2; // declaración de una variable global a
void main(void)
{
...
printf("a = %d", a); // se escribe a = 2
int a = 10; // declaración de una variable local a
printf("a = %d", a); // se escribe a = 10
printf("a = %d", ::a); // se escribe a = 2
}
El operador (::) no permite acceder a una variable local definida en un bloque más exterior
oculta por otra variable local del mismo nombre. Este operador sólo permite acceder a una
variable
global oculta por una variable local del mismo nombre.
OPERADOR DE VISIBILIDAD
Tipos de variables
Programación en C 51
1. Texto (tipo de dato char ) está constituido por caracteres simples, como a, Z, ¿, 3 y cadenas,
como “Esto es una prueba” (normalmente, de 8 bits o un byte por carácter, con un rango de 0 a 255).
2. Los valores enteros (tipo de dato int ) son aquellos números que se aprendieron a contar
(1, 4, -2, 1354);normalmente, tienen un tamaño de 16 bits, 2 bytes o una palabra, con rango de -
32768 a 32767.
En Windows 98 yWindows NT, los valores enteros tienen un tamaño de 32 bits con un rango de -
2147483648 a 2147483647.
3. Los valores en coma flotante (tipo de dato float ) son números que tienen una parte fraccional,
como por ejemplo pi(3,14159), y exponentes. También se conocen como números reales
(normalmente, son de 32 bits, 4 byteso 2 palabras, con un rango de +/-3,4E-38 a 3,4E+38).
4. Los valores en coma flotante de doble precisión (tipo de dato double ) tienen un rango
superior (normalmente de 64 bits, 8 bytes ó 4 palabras, con un rango de 1, 7E-308 a 1, 7E+308). Los
valores en coma flotante long double (doble precisión largos) son incluso más precisos
(normalmente, tamaño de 80 bits ó 5 palabras, con un rango de+/-1,18E-4932 a 1,18E-4932).
5. Los tipos de datos enumerados (tipo de dato enum ) permiten al usuario definir tipos de datos.
6. El tipo void se utiliza para especificar valores que ocupan cero bits y no tienen valor (este tipo
también se puede utilizar para la creación de punteros genéricos.
7. El tipo de dato puntero no contiene información en el mismo sentido que el resto de los tipos de
datos; en su lugar, cada puntero contiene la dirección de la posición de memoria que almacena
el dato actual.
8. El tipo de dato bool , al que se le puede asignar las constantes true (verdadero) y false (falso
Tipos de variables
Programación en C 52
long double 96 18 3.3621e-4932 1.18973e+493
Modificadores de tipos
• Ciertos tipos básicos admiten diversos
modificadores:
– unsigned :Sólo valores positivos (sin signo).
– signed : Valores positivos y negativos (por omisión).
– long : Formato largo (para enteros únicamente).
Ejemplos:
unsigned int
signed char
long int (usualmente representado como long)
unsigned long int
Programación en C 54
Llamada sizeof()
• La llamada sizeof() se utiliza para determinar el
número de bytes que ocupa una variable o un
tipo:
int a;
sizeof(a);
sizeof(unsigned int);
Programación en C 55
Uso de los tipos de datos en C++
Programación en C 56
Expresiones constantes
• Para definir las constantes de tipo carácter
asociadas a caracteres especiales se usan
secuencias de escape:
– ‘n’: Retorno de carro.
– ‘t’: Tabulador.
– ‘b’: Bell.
– ‘0’: Carácter nulo.
– ...
Programación en C 57
La función printf
Programación en C 58
/* ejemplo .- Ilustra formatos con reales y enteros */
#include <stdio.h>
#define va_int 805
#define va_float 332.41e-1
int main ()
{
printf(" %f ", va_float); /* imprime 33.241*/
printf(" %.1f ", va_float); /* imprime 33.2*/
printf(" %.4f ", va_float); /* imprime 33.2410*/
printf(" %1.4e ", va_float); /* imprime 3.3241e+01*/
printf(" %d ", va_int); /* imprime 805*/
printf(" %10f", va_float); /* imprime 33.241*/
return 0;
}
Variable tipo Caracter
Programación en C 59
Secuencias de Escape
Programación en C 60
Existe una serie de caracteres no imprimibles que el editor los toma como
comandos, por lo que la manera de acceder a ellos es mediante una secuencia
de escape.
#include <stdio.h>
int main(void) {
int x=45;
double y=23.354;
char z[]="Esto es vida";
/* utilizamos barras inclinadas (/) para ver claramente la anchura del campo de caracteres
*/
printf("Voy a escribir /45/ utilizando el formato %%d: /%d/n", x);
printf("Voy a escribir /45/ utilizando el formato %%1d: /%1d/n", x);
printf("Voy a escribir /45/ utilizando el formato %%10d: /%10d/nn", x);
printf("Voy a escribir /23.354/ utilizando el formato %%f:/%f/n", y);
printf("Voy a escribir /23.354/ utilizando el formato %%.3f: /%.3f/n", y);
printf("Voy a escribir /23.354/ utilizando el formato %%5.1f: /%5.1f/n", y);
printf("Voy a escribir /23.354/ utilizando el formato %%-10.3f:/%-10.3f/n", y);
printf("Voy a escribir /23.354/ utilizando el formato %%5f: /%5f/nn", y);
printf("Voy a escribir /Esto es vida/ utilizando el formato %%s: /%s/n", z);
printf("Voy a escribir /Esto es vida/ utilizando el formato %%.7s:/%.7s/n", z);
printf("Voy a escribir /Esto es vida/ utilizando el formato %%-15.10s: /%-15.10s/n", z);
printf("Voy a escribir /Esto es vida/ utilizando el formato %%15s: /%15s/n", z);
}
Declaración de variables
• Declaración simple:
– char c;
– unsigned int i;
• Declaración múltiple:
– char c,d;
– unsigned int i,j,k;
• Declaración y asignación:
– char c=’A’;
– unsigned int i=133,j=1229;
Programación en C 62
Expresiones constantes
• El formato de las expresiones constantes es;
– Un expresión real se puede dar tanto en notación
decimal (2.56) como científica (2.45E-4).
– A una expresión de tipo long se le añade un L al final
(200L).
– Una expresión de tipo carácter se define entre
comillas simples (‘A’).
Programación en C 63
Constantes y E/S simple
Programación en C 64
#include <stdio.h>
#define PI 3.1416 /* definición de constante */
int main ()
{
float perim, radio; int dos=2;
printf(" Calcula el perímetro de una circunferencia");
printf(" Indique el tamaño de radio de la circunferencia");
scanf("%f", &radio);
perim= dos*PI*radio;
printf(" El perímetro de la circunferencia es %f", perim);
printf(”Valores utilizados para calcular el perímetro:");
printf(" Constante PI=%f, valor de dos = %d, radio=%f ",
PI, dos,radio);
return 0;
}
Declaracion de una constante
Programación en C 65
Casting
• Casting: mecanismo usado para cambiar de tipo
expresiones y variables:
int a;
float b;
char c;
b=65.0;
a=(int)b; /* a vale 65 */
c=(char)a; /* c vale 65 (Código ASCII
de ‘A’) */
Programación en C 66
Casting
Programación en C 67
/* ejemplo 4.- realizamos conversiones de tipos implícitas y explícitas */
#include <stdio.h>
int main()
{
double d , e , f = 2.33 ;
int i = 6 ;
e = f * i ; /* e es un double de valor 13.98*/
printf( "Resultado = %f", e);
d = (int) ( f * i ) ; /* d es un double de valor 13.00*/
printf( "Resultado = %f", d);
d = (int) f * i ; /* f se ha convertido a un entero truncando sus*/
/*decimales, d es un double de valor 13.00*/
printf( "Resultado = %f", d);
return 0;
}
Programación en C
Operaciones aritméticas
Programación en C 68
Operaciones aritméticas
• El operador de asignación es el igual (=).
• Los operadores aritméticos son:
– Suma (+)
– Resta (-)
– Multiplicación (*)
– División (/)
– Módulo o resto (%)
Programación en C 69
Operaciones aritméticas
• División entera vs división real:
– Depende de los operandos:
4 / 3 --> 1 entero
4.0 / 3 --> 1.333 real
4 / 3.0 --> 1.333 real
4.0 / 3.0 --> 1.333 real
Programación en C 70
Pre/post-incrementos
Los operadores unarios (++) y (--) representan
operaciones de incremento y decremento,
respectivamente.
a++; /* similar a a=a+1 */
Ejemplos:
a=3; b=a++; /* a=4, b=3 */
a=3; b=++a; /* a=4, b=4 */
a=3; b=a--; /* a=2, b=3 */
Programación en C 71
Operaciones de asignación
El operador de asignación en C es el igual(=)
a=b+3;
Existen otras variantes de asignación:
a+=3; /* Equivalente a a=a+3 */
a*=c+d; /* Equivalente a a=a*(c+d) */
a/=a+1; /* Equivalente a a=a/(a+1) */
Para las asignaciones entre variables o
expresiones de tipos diferentes se recomienda
hacer casting:
a=(int)(x/2.34);
Programación en C 72
OPERADORES
Programación en C 73
Dentro de c++ tenemos los típicos operadores matemáticos + - * / y también los operadores
unarios (++ --) En este primer ejemplo vemos operadores unarios y la asignación múltiple.
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los peradoresn";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
// Sacamos el valor por pantalla de test
cout << "Valor de test: " << test << endl;
// Sacamos el valor por pantalla de test++
cout << "Valor de test++: " << (test++) << endl;
cout <<“El valor de test es”<<test<<endl;
// Sacamos el valor por pantalla de ++test
cout << "Valor de ++test: " << (++test) << endl;
cout << "Valor de test actual: " << test << endl;
// asignacion multiple
c = b = a = test;
// Veamos el resto de valores
cout << "Y los demas: " << c << " " << b << " " << a << endl;
return 0;
}
Operadores de comparación
Los operadores de comparación en C son:
– Igual (==)
– Distinto (!=)
– Mayor (>) y Mayor o igual (>=)
– Menor (<) y Menor o igual (<=)
El resultado de un operador de comparación es un
valor entero (0 es falso) y (distinto de 0
verdadero).
a=3>7 /* a vale 0 (falso) */
Programación en C 74
Operadores lógicos
Sobre expresiones booleanas (enteros) se definen
los siguientes operadores lógicos:
– And lógico (&&)
– Or lógico (||)
– Negación lógica (!)
Ejemplo
a=(3>2 || 5==4) && !1 /* Falso */
C tiene un modelo de evaluación perezoso.
a=3>2 || w==4 /* w==4 no se evalúa */
Programación en C 75
Operador ?
El operador condicional es el único operador ternario de la gramática C++ y sirve para
tomar decisiones. Proporciona un resultado entre dos posibilidades en función de una
condición.
Sintaxis
expresion-relacional ? expr1 : expr2
El operador condicional ? : produce un resultado. En la expresión E1 ? E2 : E3, E1 es una
expresión relacional ( 4.9.12) que se evalúa primero. Si el resultado es cierto, entonces se
evalúa E2 y este es el resultado. En caso contrario (si E1 resulta falso), entonces se
evalúa E3 y este es el resultado. Observe que si la premisa E1 es cierta, entonces no llega
a evaluarse la expresión E3.
El operador ? : puede usarse para sustituir ciertas sentencias del tipo if-then-else, aunque
puede conducir a expresiones más compactas que las correspondientes if...else. En el
ejemplo que sigue, a y se le asigna el valor 100:
x = 10;
y = x > 9 ? 100 : 200;
Operador ?
int main()
{
int a,b=4,c=5;
a=b>0 ? c : c+1;
/* Equivalente a
if(b>0)
a=c;
else
a=c+1;
}
cin>>n;
paginas=(16*240*(n*2))/(12*n);
marineros=n-((n*60)/70);
Programación en C 77
#include <iostream>
#include <stdio.h>
using namespace std;
main()
{
int b=10,c=5;
b>=1 && b<=5 ? printf ("hola"):printf ("Buenos dias");
}
if ... else
int main()
{
int a=3,b;
if(a>2)
{
b=100+a;
printf(“parte if”);
}
else
printf(“parte else”);
}
Programación en C 78
a>2
<if> <else>
Programación en C 79
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadoresn";
unsigned int test = 0;
unsigned int a = 0, b = 0, c;
// asignacion multiple
c = b = a = ++test;
b += 3;
c++;
a -= 1;
// Veamos el resto de valores
cout << "Son estos: c=" << c << " b=" << b << " a=" << a << endl;
a += b + c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Tomamos el valor a
cout << "Dame valores. na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
//Probamos el if
if (a > b) {
cout << "A es mayor que B" << endl;
}
//Probamos el if
if (a >= b) {
cout << "A es mayor o igual que B" << endl;
}
//Probamos el if
if (a <= b) {
cout << "A es menor o igual que B" << endl;
}
return 0;
}
Programación en C 80
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadoresn";
unsigned int test = 0;
int a = 23, b = 21, c = 34;
// Veamos el resto de valores
cout << "Valores: " << c << " " << b << " " << a << endl;
// Tomamos el valor a
cout << "Dame valores. na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Veamos una sentencia if-else sencilla
if (!(a == b))
cout << "a y b no son iguales" << endl;
else
cout << "a y b son iguales" << endl;
// Veamos otra sentencia if-else sencilla
if ((a == b) || (b == c))
cout << "A y B son iguales o B y C son iguales" << endl;
else
cout << "ni A y B son iguales ni B y C son iguales" << endl;
// Nota. Ley de De Morgan
// !(A && B) == !A || !B
// !(A || B) == !A && !B
return 0;
}
Operadores lógicos. A continuación vemos algunos ejemplos de operadores lógicos (comparaciones) y la
combinación de estos.
Programación en C 81
Programa para probar operadores Lógicos
using namespace std;
#include <iostream>
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadoresn";
unsigned int test = 0;
int a = 23, b = 21, c = 34;
// Veamos el resto de valores
cout << "Valores: " << c << " " << b << " " << a << endl;
// Tomamos el valor a
cout << "Dame valores. na=";
cin >> a;
// Tomamos el valor b
cout << "b=";
cin >> b;
// Tomamos el valor c
cout << "c=";
cin >> c;
cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl;
// Veamos una sentencia if-else sencilla
if (!a)
cout << "A es false (igual 0)" << endl;
else
cout << "A es true (distinto de 0)" << endl;
// Veamos una sentencia if-else sencilla
if (!b)
cout << "B es false (igual 0)" << endl;
else
cout << "B es true (distinto de 0)" << endl;
// Veamos una sentencia if-else sencilla
if (!c)
cout << "C es false (igual 0)" << endl;
else
cout << "C es true (distinto de 0)" << endl;
// Sentencia con operador logico o TERNARIO ()?:
c = (a == b)?0:1;
cout << "C es : " << c << endl;
return 0;
}
Switch
switch(ch)
{
case ‘A’: printf(“A”);
break;
case ‘B’:
case ‘C’: printf(“B o C”);
case ‘D’: printf(“B, C o D”);
break;
default: printf(“Otra letra”);
}
Programación en C 82
PROPOSICIÓN WHILE
Primero se evalúa expresión; si es falso (o es el valor cero), el control pasa directamente a proposición
siguiente (proposición que no se repite), pero si es verdadero (o el valor es distinto de cero), entonces
se ejecuta (proposición a repetir), y el control se devuelve al principio del ciclo while. De este modo,
proposición se ejecuta cero (la expresión es falsa en la primera evaluación) o varias veces hasta que
expresión sea falsa, en ese momento, el control pasará a la proposición que no se repite. El efecto de
esto es que la proposición puede ejecutarse cero, una o más veces.
Es posible que, sin advertirlo, se especifique una expresión que nunca se convierta en falsa (o cero), y
con esto el programa quedará en un ciclo infinito a menos que se introduzcan medios para escapar del
ciclo while; para evitar tal situación debe tenerse cuidado.
while
int main()
{
int i=0,ac=0;
while(i<100)
{
printf(“%d”,i*i);
ac+=i;
i++;
}
}
Programación en C 84
i<100
i=0
<while>
i++
Programación en C 85
Crear un programa que calcule el factorial de un número que sea un entero mayor o igual que cero teniendo como
condición que el bucle termina cuando su valor llega a 0.
Entrada : x
Salida : 1*2*3*4*5…..*x (si x>0)
1 (si x=0)
Restricciones: x ≥ 0
#include<stdio.h>
main()
{
int contador,numero,fact=1;
printf(“Ingrese el número para calcular el factorial ”);
scanf(“%d”,&numero);
if(numero >0)
{
contador=numero ;
while(contador)
{
fact=fact*contador;
contador--;
}
printf(“El factorial de %d es %d n”,numero,contador);
}
else if(numero==0)
printf(“El factorial de 0 es 1 n”);
else
printf(“los factoriales de números negativos no existen n”);
}
Programación en C 86
Cree un programa que calcule a^b, donde a >0 y b>0
Entrada : a,b
Salida : a^b
Restricciones: a>0 y b>0
Genere un programa que Calcule el inverso de un numero. ej. 541 su inverso es 145.
main()
{
int a=0,b=0,pot,n,con=1;
while (a<=0 || b<=0)
{
system("cls");
printf ("Ingresse at");
scanf("%d",&a);
printf ("Ingresse bt");
scanf("%d",&b);
}
pot=a;
n=b-1;
while (con<=n)
{
pot=pot*a;
con++;
}
printf("%d",pot);
}
do ... while
int main()
{
int i=0,ac=0;
do
{
printf(“%d”,i*i);
ac+=i;
i++;
}
while(i<10);
} Programación en C
i<100
i=0
<do>
i++
Este es un ciclo o estructura cíclica, pero la
principal diferencia es que este se ejecuta al
menos una vez.
Programación en C 88
Ej. 1 Escribir un programa donde se puedan leer tantos números como se quiera hasta que llegue un cero. El
resultado es la suma de todos los números leídos.
Ej. 2 Leer una serie de números por teclado hasta llegar a 0 e indique cual es el mayor.
Ej 3 Mostrar los múltiplos de 3 a partir del número 15 hasta el 30.
Ej 4 Mostrar la suma de numeros impares mientras el dato ingresado sea distinto de cero
do ... while
Programación en C 89
PROPOSICIÓN FOR
Sintaxis:
for (expresión1 ; expresión2 ; expresión3)
proposición verdadera;
proposición siguiente;
o
for (expresión1 ; expresión2 ; expresión3)
{
proposición verdadera1;
proposición verdadera2;
….
proposición verdaderaN;
}
proposición siguiente;
Primero se evalúa expresión1 (lo usual es que expresión1 inicie el ciclo); después, se evalúa
expresión2, si la expresión 2 es verdadera (o posee un valor distinto de 0) entonces se ejecuta la
proposición verdadera o el conjunto de expresiones verdaderas. Note que el conjunto de expresiones
verdaderas está compuesto por más de una expresión verdadera y por lo tanto debe de llevar las
llaves { }. Posterior al ejecutar la proposición o proposiciones verdades, entonces se ejecuta la
expresión 3, la cual generalmente aumenta o disminuye la variable, o variables que condicionan el
ciclo. Posteriormente se vuelve a evaluar la expresión2, si esto es verdadero se vuelve a ejecutar la
proposición o conjunto de proposiciones verdaderas, donde posteriormente se evalua la expresión3.
Note que la expresión1, sólo se ejecuta la primera vez, luego la expresión2 y expresión3 se pueden
ejecutar muchas veces mientras la expresión 2 sea verdadera.
Finalmente, si la expresión2 es falsa (o posee un valor 0), entonces se ejecuta la proposición
siguiente.
for
int main()
{
int i,ac=0;
for(i=0;i<100;i++)
{
printf(“%d”,i*i);
ac+=i;
}
}
Programación en C 90
i<100
i=0
<for>
i++
Sintaxis:
for(inicialización,condición_permanencia,incremento)
1
2
3
321
Programación en C 91
Crear un programa que calcule el factorial de un número que sea un entero mayor que cero.
#include<stdio.h>
main()
{
int contador,numero,fact=1;
printf(“Ingrese el número para calcular el factorial n”);
scanf(“%d”,&numero);
if (numero >0)
{
for( contador=numero ; contador ; contador--)
fact=fact*contador;
printf(“El factorial de %d es %d n”,numero,fact);
}
else if (numero==0)
printf(“El factorial de 0 es 1 n”);
else
printf(“los factoriales de números negativos no existen n”);
}
Ejercicio
Programación en C 92
Genere un programa para realizar la siguiente figura
Programación en C 93
main()
{
int i,j,N,b,pot,suma=0;
printf("Ingrese Nn");
scanf("%d",&N);
if(N>0 )
{
for(i=1;i<=N;i++)
{
pot=1;
for(j=1; j<=i ; j++)
{
pot=i*pot;
}
suma=suma+pot;
}
printf("El resultado es. %d n",suma);
}
else
printf("el número ingresado no es mayor que 0 n");
}
EJERCICIOS
Programación en C 94
break y continue
int main()
{
int i;
for(i=0;i<100;i++)
{
if(i%2==0)
continue;/*Comienza la iteración*/
if(i%17==0)
break; /*Sale del bucle*/
printf(“%d”,i);
}
}Programación en C 95
Programación en C 96
#include <stdio.h>
int main()
{
int n, a;
a = 0;
do
{
printf( "Introduzca un numero entero: " );
scanf( "%d", &n );
if ( n == 0 )
{
printf( "ERROR: El cero no tiene opuesto.n" );
continue;
/* En el caso de que n sea un cero,
la iteración en curso del bucle
se interrumpe aquí. */
}
printf( "El opuesto es: %dn", -n );
a += n;
} while ( n >= -10 && n <= 10 );
printf( "Suma: %d", a );
return 0;
}
La instrucción de salto continue siempre se usa para
interrumpir (romper) la ejecución normal de un bucle. Sin
embargo, el control del programa no se transfiere a la
primera instrucción después del bucle (como sí hace la
instrucción break, es decir, el bucle no finaliza, sino que,
finaliza la iteración en curso, transfiriéndose el control del
programa a la condición de salida del bucle, para decidir si
se debe realizar una nueva iteración o no.
Por tanto, la instrucción continue finaliza (termina) la
ejecución de una iteración de un bucle, pero, no la
ejecución del bucle en sí. De forma que, la
instrucción continue salta (no ejecuta) las instrucciones
que existan después de ella, en la iteración de un bucle.
LA INSTRUCCION CONTINUE
Programación en C 97
LA INSTRUCCION BREAK
#include <stdio.h>
int main()
{
int n, a;
a = 0;
do
{
printf( "Introduzca un numero entero: " );
scanf( "%d", &n );
if ( n == 0 )
{
printf( "ERROR: El cero no tiene opuesto.n" );
break;
/* En el caso de que n sea un cero,
el bucle se interrumpe. */
}
printf( "El opuesto es: %dn", -n );
a += n;
} while ( n >= -10 && n <= 10 );
printf( "Suma: %d", a );
return 0;
}
La instrucción de salto break se usa
para interrumpir (romper) la
ejecución normal de un bucle, es
decir, la instrucción break finaliza
(termina) la ejecución de un bucle y,
por tanto, el control del programa se
transfiere (salta) a la primera
instrucción después del bucle.

Más contenido relacionado

La actualidad más candente

Mikrokontroler pertemuan 2
Mikrokontroler pertemuan 2Mikrokontroler pertemuan 2
Mikrokontroler pertemuan 2Rumah Belajar
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03KuliahKita
 
Algoritma Record
Algoritma RecordAlgoritma Record
Algoritma Recordbrigidaarie
 
52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigo52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigoStefa Naranjo Meza
 
Instruction cycle.pptx
Instruction cycle.pptxInstruction cycle.pptx
Instruction cycle.pptxsuryansh85
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En Cpainni
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritmacasnadi
 
Loops in c programming
Loops in c programmingLoops in c programming
Loops in c programmingCHANDAN KUMAR
 
Pseint ejercicios 2016
Pseint ejercicios 2016Pseint ejercicios 2016
Pseint ejercicios 2016Don Augusto
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTJuanCardenas501369
 
Core programming in c
Core programming in cCore programming in c
Core programming in cRahul Pandit
 
Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura SecuencialRegina Flores
 

La actualidad más candente (16)

Mikrokontroler pertemuan 2
Mikrokontroler pertemuan 2Mikrokontroler pertemuan 2
Mikrokontroler pertemuan 2
 
Estructura repetitiva for y while
Estructura repetitiva for y whileEstructura repetitiva for y while
Estructura repetitiva for y while
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Algoritma Record
Algoritma RecordAlgoritma Record
Algoritma Record
 
25.fungsi hash
25.fungsi hash25.fungsi hash
25.fungsi hash
 
52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigo52 ejercicios en pseudocódigo
52 ejercicios en pseudocódigo
 
Instruction cycle.pptx
Instruction cycle.pptxInstruction cycle.pptx
Instruction cycle.pptx
 
Survey monkey
Survey monkeySurvey monkey
Survey monkey
 
Introducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En CIntroducción A Las Estructuras De Seleccion En C
Introducción A Las Estructuras De Seleccion En C
 
Kids coding
Kids codingKids coding
Kids coding
 
Struktur Runtunan Algoritma
Struktur Runtunan AlgoritmaStruktur Runtunan Algoritma
Struktur Runtunan Algoritma
 
Loops in c programming
Loops in c programmingLoops in c programming
Loops in c programming
 
Pseint ejercicios 2016
Pseint ejercicios 2016Pseint ejercicios 2016
Pseint ejercicios 2016
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINT
 
Core programming in c
Core programming in cCore programming in c
Core programming in c
 
Estructura Secuencial
Estructura SecuencialEstructura Secuencial
Estructura Secuencial
 

Destacado (20)

Punteros presentacion
Punteros presentacionPunteros presentacion
Punteros presentacion
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Señales posix
Señales posixSeñales posix
Señales posix
 
Gestion de memoria
Gestion de memoriaGestion de memoria
Gestion de memoria
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02Basededatosicompleto 091122141836-phpapp02
Basededatosicompleto 091122141836-phpapp02
 
Herencia
HerenciaHerencia
Herencia
 
P1
P1P1
P1
 
Estructuras en c++
Estructuras en c++Estructuras en c++
Estructuras en c++
 
Funciones recursivas
Funciones recursivasFunciones recursivas
Funciones recursivas
 
Memoria dinamica
Memoria dinamicaMemoria dinamica
Memoria dinamica
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
07 funciones
07 funciones07 funciones
07 funciones
 
Macros
MacrosMacros
Macros
 
Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016Punteros y funciones abril agosto 2016
Punteros y funciones abril agosto 2016
 
Material estudio c
Material estudio cMaterial estudio c
Material estudio c
 
Clase 02
Clase 02Clase 02
Clase 02
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Symb arag 2014
Symb arag  2014 Symb arag  2014
Symb arag 2014
 
Cover
CoverCover
Cover
 

Similar a 2do parcial c (20)

Parte i curso c
Parte i curso cParte i curso c
Parte i curso c
 
Unidad 2 curso c
Unidad 2 curso cUnidad 2 curso c
Unidad 2 curso c
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 
Estructuras de un programa
Estructuras de un programaEstructuras de un programa
Estructuras de un programa
 
El software 2
El software 2El software 2
El software 2
 
ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++ESTRUCTURA BASICA PARA C++
ESTRUCTURA BASICA PARA C++
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Elementos basicos c++
Elementos basicos c++Elementos basicos c++
Elementos basicos c++
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Turbo c
Turbo cTurbo c
Turbo c
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi   curso de programación - sesión 8 - ejemplo de creacion de un programaGiseproi   curso de programación - sesión 8 - ejemplo de creacion de un programa
Giseproi curso de programación - sesión 8 - ejemplo de creacion de un programa
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 
Algoritmos - Curso UNE
Algoritmos - Curso UNEAlgoritmos - Curso UNE
Algoritmos - Curso UNE
 
Presentacion c
Presentacion cPresentacion c
Presentacion c
 
Presentacion
PresentacionPresentacion
Presentacion
 

Más de Cesar Oswaldo Osorio Agualongo (15)

Aprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación PythonAprendizaje de Lenguaje de Programación Python
Aprendizaje de Lenguaje de Programación Python
 
Notas 2 do parcial
Notas 2 do parcialNotas 2 do parcial
Notas 2 do parcial
 
Repaso excel
Repaso excelRepaso excel
Repaso excel
 
Notas 2490
Notas 2490Notas 2490
Notas 2490
 
Notas 2625
Notas 2625Notas 2625
Notas 2625
 
Material iii parcial
Material iii parcialMaterial iii parcial
Material iii parcial
 
Punteros y funciones
Punteros y funciones Punteros y funciones
Punteros y funciones
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1Practica 6 manejo de archivos v1
Practica 6 manejo de archivos v1
 
Programacion semanal programacion i
Programacion semanal programacion iProgramacion semanal programacion i
Programacion semanal programacion i
 
Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016Silabo programacion i abril2016 agosto2016
Silabo programacion i abril2016 agosto2016
 
Definiciones lideres evaluado
Definiciones lideres evaluadoDefiniciones lideres evaluado
Definiciones lideres evaluado
 
Formato de proyecto
Formato de proyectoFormato de proyecto
Formato de proyecto
 
Carteles
CartelesCarteles
Carteles
 
42705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-201042705734 manual-basico-de-uso-project-2010
42705734 manual-basico-de-uso-project-2010
 

Último

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 

Último (20)

NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 

2do parcial c

  • 1. Programación en C / C++ http://www.cartagena99.com/recurs os/recursos_programacion.php Programación en C 1
  • 2. EL SOFTWARE (PROGRAMAS) Las operaciones que debe realizar el hardware son específicas por una lista de instrucciones, llamadas programas o software. El software se divide en dos grandes grupos: software del sistema y de aplicaciones Software de sistema Es el conjunto de programas indispensable para que la máquina funcione, se domina también programas del sistema. Estos programas son básicamente el Sistema Operativo, los editores de texto, los compiladores/interpretes (lenguajes de programación) y los programas de utilidad. Uno de los programas masi importantes es el Sistema Operativo que sirve, esencialmente para facilitar la escritura y usos de sus programas. Este dirige las operaciones globales de la computadores e instruye a la computadora para ejecutar otros programas y controla el almacenamiento y recuperación de archivos (programas y datos). Gracias al Sistema Operativo es posible que el programador pueda introducir y grabar nuevos programas así como instruir a la computadora para que los ejecute.
  • 3.
  • 4. Los lenguajes de programación sirven para escribir programas que permitan la comunicación usuario maquina. Unos programas especiales llamados traductores (compiladores o interpretes) convierten las instrucciones escritas en lenguajes de programación en instrucciones escritas en lenguajes de maquina que esta pueda entender. Los programas de utilidad facilitan el uso de la computadora. Por ejemplo el editor de textos Los programas que realizan tareas concretas como nominas, contabilidad análisis estadístico, etc de denominan programas de aplicación.
  • 10. TRADUCTORES DE LENGUAJE Los traductores de lenguaje son programas que traducen a su vez los programas fuente escritos en lenguajes de alto nivel a código de máquina. Los traductores se dividen en: compiladores e interpretes
  • 12.
  • 13. LA COMPILACION Y SUS FASES La compilación es el proceso de traducción de programas fuente a programas objeto. El programa objeto obtenido de la compilación ha sido traducido normalmente a código de máquina. Para conseguir el programa máquina real se debe utilizar un programa llamando montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable. El proceso de ejecución de un programa escrito en un lenguaje de programación y mediante un compilador suele tener los siguientes pasos: 1. Escritura del programa fuente y guardarlo en un dispositivo de almacenamiento 2. Introducir el programa fuente en memoria 3. Compilar el programa con el compilador 4. Verificar y corregir errores de compilación 5. Obtención del programa objeto 6. El enlazador obtiene el programa ejecutable 7. Se ejecuta el programa y se tendrá la salida deseada EJECUCION DE UN PROGRAMA
  • 14. FASES DE EJECUCION DE UN PROGRAMA
  • 15. PROGRAMACION ESTRUCTURADA VS PROGRAMACION ORIENTADA A OBJETOS Programación en C 16
  • 16. Programación en C 17 UNA FORMA NUEVA DE PENSAR Es muy importante destacar que cuando hacemos referencia a la programación orientada a objetos no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. Estamos hablando de una nueva forma de pensar acerca del proceso de descomposición de problemas y de desarrollo de soluciones de programación. La programación orientada a objetos surge en la historia como un intento para dominar la complejidad que, de forma innata, posee el software. Tradicionalmente, la forma de enfrentarse a esta complejidad ha sido empleando lo que llamamos programación estructurada, que consiste en descomponer el problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles de codificar. Se trata de descomponer el problema en acciones, en verbos. En el ejemplo de un programa que resuelva ecuaciones de segundo grado, descomponíamos el problema en las siguientes acciones: primero, pedir el valor de los coeficientes a, b y c; después, calcular el valor del discriminante; y por último, en función del signo del discriminante, calcular ninguna, una o dos raíces. Como podemos ver, descomponíamos el problema en acciones, en verbos; por ejemplo el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular…
  • 17. Programación en C 18 La programación orientada a objetos es otra forma de descomponer problemas. Este nuevo método de descomposición es la descomposición en objetos; vamos a fijarnos no en lo que hay que hacer en el problema, sino en cuál es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa. Los lenguajes de programación tradicionales no orientados a objetos, como C, Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto de procedimiento o función. Una función es simplemente un conjunto de instrucciones que operan sobre unos argumentos y producen un resultado. De este modo, un programa no es más que una sucesión de llamadas a funciones, ya sean éstas del sistema operativo, proporcionadas por el propio lenguaje, o desarrolladas por el mismo usuario. PROGRAMACION ESTRUCTURADA VS P.O.O.
  • 18. Programación en C 19 PROGRAMACION ESTRUCTURADA VS P.O.O. En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento básico no es la función, sino un ente denominado precisamente objeto. Un objeto es la representación en un programa de un concepto, y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.
  • 19. Programación en C 20 EJEMPLOS DE OBJETOS.
  • 20. Índice • Estructura de un programa C. • Variables básicas. • Operaciones aritméticas. • Sentencias de control. • Arrays y Strings. • Funciones. • Estructuras de datos. • Entrada/Salida básica. • Ejemplos I. • Modificadores de ámbito de las variables. • Punteros y memoria dinámica. • Operadores de bit. • Preprocesador C y compilación. • Librerías estándar. • Ejemplos II. Programación en C 21
  • 21. Programación en C 22 CONCEPTOS BASICOS DE C
  • 22. Estructura de un programa en C Programación en C 23 Todo programa en C se construye básicamente mediante tres tipos de objetos:  Funciones.  Variables.  Tipos de datos.
  • 23. Programación en C 24 #include <biblioteca1.h> #include <biblioteca2.h> ... declaraciones de funciones ... ... definiciones (cuerpos de funciones) ... ... declaraciones de variables globales ... main() { ... cuerpo del main ... } ... otras definiciones de funciones ... Definición de Cabecera y/o Ficheros Declaración de Datos Función Principal Otras Funciones y/o Procedimientos /*Variantes de Definición*/ #include<nombre_de_la_biblioteca> #define nombre_de_la_constante //Función principal void main() { definición de variables locales; instrucciones del programa; } • Estructura de un programa en C
  • 24. Estructura de un programa en C Función main(): #include <stdio.h> int main() { printf(“Hola mundo!!n”); return(0); } Programación en C 25
  • 25. Estructura de un programa en C Fichero hola.c # include <stdio.h> int main() { printf(“Hola mundo!!n”); return(0); } Programación en C 26 Compilación Ejecución
  • 26. Características de C • Sensible a mayúsculas y minúsculas: sum y Sum • Indentación y espacios en blanco. • Sentencias (terminan con un punto y coma). • Bloques (delimitados entre llaves). • Elementos de un programa: – Palabras reservadas (muy pocas). – Funciones de librería estándar. – Variables y funciones definidas por el programador. Programación en C 27
  • 27. ESTRUCTURA DE UN PROGRAMA El inicio del programa debe llevar: El símbolo de numeral (#) la sentencia “include”, y entre signos de mayor y menor que (<>) el nombre de la librería o fichero. Seguidas de las librerías, para que “Incluya” en el programa la directiva la cual contiene las funciones para procesar datos. #include <fichero> 28
  • 28. ESTRUCTURA DE UN PROGRAMA #include <stdio.h>.- Contiene las funciones de entrada y salida de datos. #include <conio.h>.- Declara varias funciones usadas llamando la consola del sistema operativo. #include <string.h>.- Manejo de cadenas. #include <stdlib.h >.- Memoria dinámica. #include <math.h >.- Rutinas matemáticas. 29
  • 29. Comentarios • Los comentarios en C pueden ocupar varias líneas y se encuentran delimitados entre /* y */. int main() { /* Esto es un comentario de varias lineas.*/ return(0); } Programación en C 30
  • 30. Programación en C Entrada/salida básica Programación en C 31
  • 31. Funciones de entrada/salida • Las funcionalidades de entrada/salida en C no pertenecen a las palabras reservadas del lenguaje. Son funciones de librería, por ejemplo: – Entrada: scanf(). – Salida: printf(). Programación en C 32
  • 32. printf() • El formato de llamada de printf()es: printf(format, exp1, exp2, exp3,..., expn); donde: – format : Es el string de formato de salida de los datos. – expi : Es la expresión a incluir dentro del formato. Programación en C 33
  • 33. printf() Ejemplo: int a=3; float x=23.0; char c=‘A’; printf(“Hola mundo!!n”); printf(“Un entero %dn”,a); printf(“Un real %f ny un char %cn”,x,c); Programación en C 34
  • 34. printf() Formato Expresión Resultado %d %i entero entero decimal con signo %u entero entero decimal sin signo %o entero entero octal sin signo %x %X entero entero hexadecimal sin signo %f real real en notación punto %e %E %g %G real real en notación científica %c carácter carácter %p puntero dirección de memoria %s string cadena de caracteres %ld %lu ... entero largo entero largo (distintos formatos)Programación en C 35
  • 35. printf() • Otras opciones de formato: – Precisión (número de decimales). – Justificación (izquierda o derecha). – Caracteres especiales (% o ). – ... Ver página del manual: man printf Programación en C 36
  • 36. scanf() • El formato de llamada de scanf()es: scanf(format, dir1, dir2, dir3,..., dirn); donde: – format : Es el string de formato de entrada de los datos. – diri : Es la dirección donde se almacena el resultado. Programación en C 37
  • 37. scanf() Ejemplo int a,*pa; float x; char c; scanf(“%d”,&a); /* Lee un entero y lo almacena en a */ scanf(“%f %c”,&x,&c); /* Lee x y c */ scanf(“%d”,pa); /* PELIGROSO */ pa=&a; scanf(“%d”,pa); /* OK. Lee a */ Programación en C 38
  • 38. scanf() Lectura de strings Ejemplo: char *pc; char str[82]; scanf(“%s”,pc); /* PELIGROSO */ scanf(“%s”,str); /* Lee hasta un blanco o fin de línea */ scanf(“%[^n]”,str); /* Lee toda la línea */ Programación en C 39
  • 39. ENTRADA Y SALIDA DE DATOS Se utiliza las funciones de biblioteca: “scanf” para la entrada de valores. Sintaxis es la siguiente: Lee el valor y lo guarda en una variable. “printf” para la salida de información. Sintaxis es la siguiente: Imprime en pantalla el texto y el valor 40 scanf ("%d", &variable); printf ("El valor es %d", variable);
  • 40. La función COUT Programación en C 41 #include <iostream> int main() { int x = 5; int y = 7; cout << "n"; cout << x + y << " " << x * y; cout << "n"; return 0; }
  • 41. ENTRADA Y SALIDA DE DATOS ENTRADA DE TIPO CARÁCTER. Se declara una variable de tipo carácter y se guarda en: getch() o getche(). La diferencia es que getche() muestra en pantalla el carácter introducido. getch() lo mantiene oculto. Sintaxis: char opc; opc=getch(); opc=getche(); 42
  • 42. Programa que realiza la suma de dos numeros. #include <stdio.h> int x; main() { int a,b,suma; a=5; b=12; suma=a+b; suma=suma+b; printf("%d",suma); } 43
  • 44. Programación en C Variables básicas Programación en C 45
  • 46. Ámbito de las variables • La declaración de las variables lleva asociado un ámbito, dentro del cual la variable es visible: – Ámbito global: La variable es visible para todas las funciones del programa. – Ámbito local: La variable es visible sólo dentro de la función. (Tiene prioridad sobre el ámbito global) Programación en C 47
  • 47. Ámbito de las variables int x,y; int main() { float x,z; /* Aquí x y z son reales e y un entero */ } /* Aquí x e y son variables enteras */ /* La variable z no existe fuera de la función */ Programación en C 48
  • 48. AMBITO DE LAS VARIABLES 49 Variable Global Variable Local #include <stdio.h> int x; int main() { } #include <stdio.h> int main() { int x; }
  • 49. Programación en C 50 C++ dispone del operador (::), llamado operador de resolución de visibilidad (scope resolution operator). Este operador, antepuesto al nombre de una variable global que está oculta por una variable local del mismo nombre, permite acceder al valor de la variable globa l6. Considérese el siguiente ejemplo: int a = 2; // declaración de una variable global a void main(void) { ... printf("a = %d", a); // se escribe a = 2 int a = 10; // declaración de una variable local a printf("a = %d", a); // se escribe a = 10 printf("a = %d", ::a); // se escribe a = 2 } El operador (::) no permite acceder a una variable local definida en un bloque más exterior oculta por otra variable local del mismo nombre. Este operador sólo permite acceder a una variable global oculta por una variable local del mismo nombre. OPERADOR DE VISIBILIDAD
  • 50. Tipos de variables Programación en C 51 1. Texto (tipo de dato char ) está constituido por caracteres simples, como a, Z, ¿, 3 y cadenas, como “Esto es una prueba” (normalmente, de 8 bits o un byte por carácter, con un rango de 0 a 255). 2. Los valores enteros (tipo de dato int ) son aquellos números que se aprendieron a contar (1, 4, -2, 1354);normalmente, tienen un tamaño de 16 bits, 2 bytes o una palabra, con rango de - 32768 a 32767. En Windows 98 yWindows NT, los valores enteros tienen un tamaño de 32 bits con un rango de - 2147483648 a 2147483647. 3. Los valores en coma flotante (tipo de dato float ) son números que tienen una parte fraccional, como por ejemplo pi(3,14159), y exponentes. También se conocen como números reales (normalmente, son de 32 bits, 4 byteso 2 palabras, con un rango de +/-3,4E-38 a 3,4E+38). 4. Los valores en coma flotante de doble precisión (tipo de dato double ) tienen un rango superior (normalmente de 64 bits, 8 bytes ó 4 palabras, con un rango de 1, 7E-308 a 1, 7E+308). Los valores en coma flotante long double (doble precisión largos) son incluso más precisos (normalmente, tamaño de 80 bits ó 5 palabras, con un rango de+/-1,18E-4932 a 1,18E-4932). 5. Los tipos de datos enumerados (tipo de dato enum ) permiten al usuario definir tipos de datos. 6. El tipo void se utiliza para especificar valores que ocupan cero bits y no tienen valor (este tipo también se puede utilizar para la creación de punteros genéricos. 7. El tipo de dato puntero no contiene información en el mismo sentido que el resto de los tipos de datos; en su lugar, cada puntero contiene la dirección de la posición de memoria que almacena el dato actual. 8. El tipo de dato bool , al que se le puede asignar las constantes true (verdadero) y false (falso
  • 51. Tipos de variables Programación en C 52 long double 96 18 3.3621e-4932 1.18973e+493
  • 52.
  • 53. Modificadores de tipos • Ciertos tipos básicos admiten diversos modificadores: – unsigned :Sólo valores positivos (sin signo). – signed : Valores positivos y negativos (por omisión). – long : Formato largo (para enteros únicamente). Ejemplos: unsigned int signed char long int (usualmente representado como long) unsigned long int Programación en C 54
  • 54. Llamada sizeof() • La llamada sizeof() se utiliza para determinar el número de bytes que ocupa una variable o un tipo: int a; sizeof(a); sizeof(unsigned int); Programación en C 55
  • 55. Uso de los tipos de datos en C++ Programación en C 56
  • 56. Expresiones constantes • Para definir las constantes de tipo carácter asociadas a caracteres especiales se usan secuencias de escape: – ‘n’: Retorno de carro. – ‘t’: Tabulador. – ‘b’: Bell. – ‘0’: Carácter nulo. – ... Programación en C 57
  • 57. La función printf Programación en C 58 /* ejemplo .- Ilustra formatos con reales y enteros */ #include <stdio.h> #define va_int 805 #define va_float 332.41e-1 int main () { printf(" %f ", va_float); /* imprime 33.241*/ printf(" %.1f ", va_float); /* imprime 33.2*/ printf(" %.4f ", va_float); /* imprime 33.2410*/ printf(" %1.4e ", va_float); /* imprime 3.3241e+01*/ printf(" %d ", va_int); /* imprime 805*/ printf(" %10f", va_float); /* imprime 33.241*/ return 0; }
  • 59. Secuencias de Escape Programación en C 60 Existe una serie de caracteres no imprimibles que el editor los toma como comandos, por lo que la manera de acceder a ellos es mediante una secuencia de escape.
  • 60. #include <stdio.h> int main(void) { int x=45; double y=23.354; char z[]="Esto es vida"; /* utilizamos barras inclinadas (/) para ver claramente la anchura del campo de caracteres */ printf("Voy a escribir /45/ utilizando el formato %%d: /%d/n", x); printf("Voy a escribir /45/ utilizando el formato %%1d: /%1d/n", x); printf("Voy a escribir /45/ utilizando el formato %%10d: /%10d/nn", x); printf("Voy a escribir /23.354/ utilizando el formato %%f:/%f/n", y); printf("Voy a escribir /23.354/ utilizando el formato %%.3f: /%.3f/n", y); printf("Voy a escribir /23.354/ utilizando el formato %%5.1f: /%5.1f/n", y); printf("Voy a escribir /23.354/ utilizando el formato %%-10.3f:/%-10.3f/n", y); printf("Voy a escribir /23.354/ utilizando el formato %%5f: /%5f/nn", y); printf("Voy a escribir /Esto es vida/ utilizando el formato %%s: /%s/n", z); printf("Voy a escribir /Esto es vida/ utilizando el formato %%.7s:/%.7s/n", z); printf("Voy a escribir /Esto es vida/ utilizando el formato %%-15.10s: /%-15.10s/n", z); printf("Voy a escribir /Esto es vida/ utilizando el formato %%15s: /%15s/n", z); }
  • 61. Declaración de variables • Declaración simple: – char c; – unsigned int i; • Declaración múltiple: – char c,d; – unsigned int i,j,k; • Declaración y asignación: – char c=’A’; – unsigned int i=133,j=1229; Programación en C 62
  • 62. Expresiones constantes • El formato de las expresiones constantes es; – Un expresión real se puede dar tanto en notación decimal (2.56) como científica (2.45E-4). – A una expresión de tipo long se le añade un L al final (200L). – Una expresión de tipo carácter se define entre comillas simples (‘A’). Programación en C 63
  • 63. Constantes y E/S simple Programación en C 64 #include <stdio.h> #define PI 3.1416 /* definición de constante */ int main () { float perim, radio; int dos=2; printf(" Calcula el perímetro de una circunferencia"); printf(" Indique el tamaño de radio de la circunferencia"); scanf("%f", &radio); perim= dos*PI*radio; printf(" El perímetro de la circunferencia es %f", perim); printf(”Valores utilizados para calcular el perímetro:"); printf(" Constante PI=%f, valor de dos = %d, radio=%f ", PI, dos,radio); return 0; }
  • 64. Declaracion de una constante Programación en C 65
  • 65. Casting • Casting: mecanismo usado para cambiar de tipo expresiones y variables: int a; float b; char c; b=65.0; a=(int)b; /* a vale 65 */ c=(char)a; /* c vale 65 (Código ASCII de ‘A’) */ Programación en C 66
  • 66. Casting Programación en C 67 /* ejemplo 4.- realizamos conversiones de tipos implícitas y explícitas */ #include <stdio.h> int main() { double d , e , f = 2.33 ; int i = 6 ; e = f * i ; /* e es un double de valor 13.98*/ printf( "Resultado = %f", e); d = (int) ( f * i ) ; /* d es un double de valor 13.00*/ printf( "Resultado = %f", d); d = (int) f * i ; /* f se ha convertido a un entero truncando sus*/ /*decimales, d es un double de valor 13.00*/ printf( "Resultado = %f", d); return 0; }
  • 67. Programación en C Operaciones aritméticas Programación en C 68
  • 68. Operaciones aritméticas • El operador de asignación es el igual (=). • Los operadores aritméticos son: – Suma (+) – Resta (-) – Multiplicación (*) – División (/) – Módulo o resto (%) Programación en C 69
  • 69. Operaciones aritméticas • División entera vs división real: – Depende de los operandos: 4 / 3 --> 1 entero 4.0 / 3 --> 1.333 real 4 / 3.0 --> 1.333 real 4.0 / 3.0 --> 1.333 real Programación en C 70
  • 70. Pre/post-incrementos Los operadores unarios (++) y (--) representan operaciones de incremento y decremento, respectivamente. a++; /* similar a a=a+1 */ Ejemplos: a=3; b=a++; /* a=4, b=3 */ a=3; b=++a; /* a=4, b=4 */ a=3; b=a--; /* a=2, b=3 */ Programación en C 71
  • 71. Operaciones de asignación El operador de asignación en C es el igual(=) a=b+3; Existen otras variantes de asignación: a+=3; /* Equivalente a a=a+3 */ a*=c+d; /* Equivalente a a=a*(c+d) */ a/=a+1; /* Equivalente a a=a/(a+1) */ Para las asignaciones entre variables o expresiones de tipos diferentes se recomienda hacer casting: a=(int)(x/2.34); Programación en C 72
  • 72. OPERADORES Programación en C 73 Dentro de c++ tenemos los típicos operadores matemáticos + - * / y también los operadores unarios (++ --) En este primer ejemplo vemos operadores unarios y la asignación múltiple. #include <iostream> int main () { // Sacamos por salida standar un mensaje cout << "Vamos a probar los peradoresn"; unsigned int test = 0; unsigned int a = 0, b = 0, c; // Sacamos el valor por pantalla de test cout << "Valor de test: " << test << endl; // Sacamos el valor por pantalla de test++ cout << "Valor de test++: " << (test++) << endl; cout <<“El valor de test es”<<test<<endl; // Sacamos el valor por pantalla de ++test cout << "Valor de ++test: " << (++test) << endl; cout << "Valor de test actual: " << test << endl; // asignacion multiple c = b = a = test; // Veamos el resto de valores cout << "Y los demas: " << c << " " << b << " " << a << endl; return 0; }
  • 73. Operadores de comparación Los operadores de comparación en C son: – Igual (==) – Distinto (!=) – Mayor (>) y Mayor o igual (>=) – Menor (<) y Menor o igual (<=) El resultado de un operador de comparación es un valor entero (0 es falso) y (distinto de 0 verdadero). a=3>7 /* a vale 0 (falso) */ Programación en C 74
  • 74. Operadores lógicos Sobre expresiones booleanas (enteros) se definen los siguientes operadores lógicos: – And lógico (&&) – Or lógico (||) – Negación lógica (!) Ejemplo a=(3>2 || 5==4) && !1 /* Falso */ C tiene un modelo de evaluación perezoso. a=3>2 || w==4 /* w==4 no se evalúa */ Programación en C 75
  • 75. Operador ? El operador condicional es el único operador ternario de la gramática C++ y sirve para tomar decisiones. Proporciona un resultado entre dos posibilidades en función de una condición. Sintaxis expresion-relacional ? expr1 : expr2 El operador condicional ? : produce un resultado. En la expresión E1 ? E2 : E3, E1 es una expresión relacional ( 4.9.12) que se evalúa primero. Si el resultado es cierto, entonces se evalúa E2 y este es el resultado. En caso contrario (si E1 resulta falso), entonces se evalúa E3 y este es el resultado. Observe que si la premisa E1 es cierta, entonces no llega a evaluarse la expresión E3. El operador ? : puede usarse para sustituir ciertas sentencias del tipo if-then-else, aunque puede conducir a expresiones más compactas que las correspondientes if...else. En el ejemplo que sigue, a y se le asigna el valor 100: x = 10; y = x > 9 ? 100 : 200;
  • 76. Operador ? int main() { int a,b=4,c=5; a=b>0 ? c : c+1; /* Equivalente a if(b>0) a=c; else a=c+1; } cin>>n; paginas=(16*240*(n*2))/(12*n); marineros=n-((n*60)/70); Programación en C 77 #include <iostream> #include <stdio.h> using namespace std; main() { int b=10,c=5; b>=1 && b<=5 ? printf ("hola"):printf ("Buenos dias"); }
  • 77. if ... else int main() { int a=3,b; if(a>2) { b=100+a; printf(“parte if”); } else printf(“parte else”); } Programación en C 78 a>2 <if> <else>
  • 78. Programación en C 79 #include <iostream> int main () { // Sacamos por salida standar un mensaje cout << "Vamos a probar los operadoresn"; unsigned int test = 0; unsigned int a = 0, b = 0, c; // asignacion multiple c = b = a = ++test; b += 3; c++; a -= 1; // Veamos el resto de valores cout << "Son estos: c=" << c << " b=" << b << " a=" << a << endl; a += b + c; cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl; // Tomamos el valor a cout << "Dame valores. na="; cin >> a; // Tomamos el valor b cout << "b="; cin >> b; // Tomamos el valor c cout << "c="; cin >> c; cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl; //Probamos el if if (a > b) { cout << "A es mayor que B" << endl; } //Probamos el if if (a >= b) { cout << "A es mayor o igual que B" << endl; } //Probamos el if if (a <= b) { cout << "A es menor o igual que B" << endl; } return 0; }
  • 79. Programación en C 80 #include <iostream> int main () { // Sacamos por salida standar un mensaje cout << "Vamos a probar los operadoresn"; unsigned int test = 0; int a = 23, b = 21, c = 34; // Veamos el resto de valores cout << "Valores: " << c << " " << b << " " << a << endl; // Tomamos el valor a cout << "Dame valores. na="; cin >> a; // Tomamos el valor b cout << "b="; cin >> b; // Tomamos el valor c cout << "c="; cin >> c; cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl; // Veamos una sentencia if-else sencilla if (!(a == b)) cout << "a y b no son iguales" << endl; else cout << "a y b son iguales" << endl; // Veamos otra sentencia if-else sencilla if ((a == b) || (b == c)) cout << "A y B son iguales o B y C son iguales" << endl; else cout << "ni A y B son iguales ni B y C son iguales" << endl; // Nota. Ley de De Morgan // !(A && B) == !A || !B // !(A || B) == !A && !B return 0; } Operadores lógicos. A continuación vemos algunos ejemplos de operadores lógicos (comparaciones) y la combinación de estos.
  • 80. Programación en C 81 Programa para probar operadores Lógicos using namespace std; #include <iostream> int main () { // Sacamos por salida standar un mensaje cout << "Vamos a probar los operadoresn"; unsigned int test = 0; int a = 23, b = 21, c = 34; // Veamos el resto de valores cout << "Valores: " << c << " " << b << " " << a << endl; // Tomamos el valor a cout << "Dame valores. na="; cin >> a; // Tomamos el valor b cout << "b="; cin >> b; // Tomamos el valor c cout << "c="; cin >> c; cout << "Y ahora son estos: c=" << c << " b=" << b << " a=" << a << endl; // Veamos una sentencia if-else sencilla if (!a) cout << "A es false (igual 0)" << endl; else cout << "A es true (distinto de 0)" << endl; // Veamos una sentencia if-else sencilla if (!b) cout << "B es false (igual 0)" << endl; else cout << "B es true (distinto de 0)" << endl; // Veamos una sentencia if-else sencilla if (!c) cout << "C es false (igual 0)" << endl; else cout << "C es true (distinto de 0)" << endl; // Sentencia con operador logico o TERNARIO ()?: c = (a == b)?0:1; cout << "C es : " << c << endl; return 0; }
  • 81. Switch switch(ch) { case ‘A’: printf(“A”); break; case ‘B’: case ‘C’: printf(“B o C”); case ‘D’: printf(“B, C o D”); break; default: printf(“Otra letra”); } Programación en C 82
  • 82. PROPOSICIÓN WHILE Primero se evalúa expresión; si es falso (o es el valor cero), el control pasa directamente a proposición siguiente (proposición que no se repite), pero si es verdadero (o el valor es distinto de cero), entonces se ejecuta (proposición a repetir), y el control se devuelve al principio del ciclo while. De este modo, proposición se ejecuta cero (la expresión es falsa en la primera evaluación) o varias veces hasta que expresión sea falsa, en ese momento, el control pasará a la proposición que no se repite. El efecto de esto es que la proposición puede ejecutarse cero, una o más veces. Es posible que, sin advertirlo, se especifique una expresión que nunca se convierta en falsa (o cero), y con esto el programa quedará en un ciclo infinito a menos que se introduzcan medios para escapar del ciclo while; para evitar tal situación debe tenerse cuidado.
  • 84. Programación en C 85 Crear un programa que calcule el factorial de un número que sea un entero mayor o igual que cero teniendo como condición que el bucle termina cuando su valor llega a 0. Entrada : x Salida : 1*2*3*4*5…..*x (si x>0) 1 (si x=0) Restricciones: x ≥ 0 #include<stdio.h> main() { int contador,numero,fact=1; printf(“Ingrese el número para calcular el factorial ”); scanf(“%d”,&numero); if(numero >0) { contador=numero ; while(contador) { fact=fact*contador; contador--; } printf(“El factorial de %d es %d n”,numero,contador); } else if(numero==0) printf(“El factorial de 0 es 1 n”); else printf(“los factoriales de números negativos no existen n”); }
  • 85. Programación en C 86 Cree un programa que calcule a^b, donde a >0 y b>0 Entrada : a,b Salida : a^b Restricciones: a>0 y b>0 Genere un programa que Calcule el inverso de un numero. ej. 541 su inverso es 145. main() { int a=0,b=0,pot,n,con=1; while (a<=0 || b<=0) { system("cls"); printf ("Ingresse at"); scanf("%d",&a); printf ("Ingresse bt"); scanf("%d",&b); } pot=a; n=b-1; while (con<=n) { pot=pot*a; con++; } printf("%d",pot); }
  • 86. do ... while int main() { int i=0,ac=0; do { printf(“%d”,i*i); ac+=i; i++; } while(i<10); } Programación en C i<100 i=0 <do> i++ Este es un ciclo o estructura cíclica, pero la principal diferencia es que este se ejecuta al menos una vez.
  • 87. Programación en C 88 Ej. 1 Escribir un programa donde se puedan leer tantos números como se quiera hasta que llegue un cero. El resultado es la suma de todos los números leídos. Ej. 2 Leer una serie de números por teclado hasta llegar a 0 e indique cual es el mayor. Ej 3 Mostrar los múltiplos de 3 a partir del número 15 hasta el 30. Ej 4 Mostrar la suma de numeros impares mientras el dato ingresado sea distinto de cero do ... while
  • 88. Programación en C 89 PROPOSICIÓN FOR Sintaxis: for (expresión1 ; expresión2 ; expresión3) proposición verdadera; proposición siguiente; o for (expresión1 ; expresión2 ; expresión3) { proposición verdadera1; proposición verdadera2; …. proposición verdaderaN; } proposición siguiente; Primero se evalúa expresión1 (lo usual es que expresión1 inicie el ciclo); después, se evalúa expresión2, si la expresión 2 es verdadera (o posee un valor distinto de 0) entonces se ejecuta la proposición verdadera o el conjunto de expresiones verdaderas. Note que el conjunto de expresiones verdaderas está compuesto por más de una expresión verdadera y por lo tanto debe de llevar las llaves { }. Posterior al ejecutar la proposición o proposiciones verdades, entonces se ejecuta la expresión 3, la cual generalmente aumenta o disminuye la variable, o variables que condicionan el ciclo. Posteriormente se vuelve a evaluar la expresión2, si esto es verdadero se vuelve a ejecutar la proposición o conjunto de proposiciones verdaderas, donde posteriormente se evalua la expresión3. Note que la expresión1, sólo se ejecuta la primera vez, luego la expresión2 y expresión3 se pueden ejecutar muchas veces mientras la expresión 2 sea verdadera. Finalmente, si la expresión2 es falsa (o posee un valor 0), entonces se ejecuta la proposición siguiente.
  • 89. for int main() { int i,ac=0; for(i=0;i<100;i++) { printf(“%d”,i*i); ac+=i; } } Programación en C 90 i<100 i=0 <for> i++ Sintaxis: for(inicialización,condición_permanencia,incremento) 1 2 3 321
  • 90. Programación en C 91 Crear un programa que calcule el factorial de un número que sea un entero mayor que cero. #include<stdio.h> main() { int contador,numero,fact=1; printf(“Ingrese el número para calcular el factorial n”); scanf(“%d”,&numero); if (numero >0) { for( contador=numero ; contador ; contador--) fact=fact*contador; printf(“El factorial de %d es %d n”,numero,fact); } else if (numero==0) printf(“El factorial de 0 es 1 n”); else printf(“los factoriales de números negativos no existen n”); }
  • 91. Ejercicio Programación en C 92 Genere un programa para realizar la siguiente figura
  • 92. Programación en C 93 main() { int i,j,N,b,pot,suma=0; printf("Ingrese Nn"); scanf("%d",&N); if(N>0 ) { for(i=1;i<=N;i++) { pot=1; for(j=1; j<=i ; j++) { pot=i*pot; } suma=suma+pot; } printf("El resultado es. %d n",suma); } else printf("el número ingresado no es mayor que 0 n"); }
  • 94. break y continue int main() { int i; for(i=0;i<100;i++) { if(i%2==0) continue;/*Comienza la iteración*/ if(i%17==0) break; /*Sale del bucle*/ printf(“%d”,i); } }Programación en C 95
  • 95. Programación en C 96 #include <stdio.h> int main() { int n, a; a = 0; do { printf( "Introduzca un numero entero: " ); scanf( "%d", &n ); if ( n == 0 ) { printf( "ERROR: El cero no tiene opuesto.n" ); continue; /* En el caso de que n sea un cero, la iteración en curso del bucle se interrumpe aquí. */ } printf( "El opuesto es: %dn", -n ); a += n; } while ( n >= -10 && n <= 10 ); printf( "Suma: %d", a ); return 0; } La instrucción de salto continue siempre se usa para interrumpir (romper) la ejecución normal de un bucle. Sin embargo, el control del programa no se transfiere a la primera instrucción después del bucle (como sí hace la instrucción break, es decir, el bucle no finaliza, sino que, finaliza la iteración en curso, transfiriéndose el control del programa a la condición de salida del bucle, para decidir si se debe realizar una nueva iteración o no. Por tanto, la instrucción continue finaliza (termina) la ejecución de una iteración de un bucle, pero, no la ejecución del bucle en sí. De forma que, la instrucción continue salta (no ejecuta) las instrucciones que existan después de ella, en la iteración de un bucle. LA INSTRUCCION CONTINUE
  • 96. Programación en C 97 LA INSTRUCCION BREAK #include <stdio.h> int main() { int n, a; a = 0; do { printf( "Introduzca un numero entero: " ); scanf( "%d", &n ); if ( n == 0 ) { printf( "ERROR: El cero no tiene opuesto.n" ); break; /* En el caso de que n sea un cero, el bucle se interrumpe. */ } printf( "El opuesto es: %dn", -n ); a += n; } while ( n >= -10 && n <= 10 ); printf( "Suma: %d", a ); return 0; } La instrucción de salto break se usa para interrumpir (romper) la ejecución normal de un bucle, es decir, la instrucción break finaliza (termina) la ejecución de un bucle y, por tanto, el control del programa se transfiere (salta) a la primera instrucción después del bucle.