Está en la página 1de 78

Programacin en C / C++

http://www.cartagena99.com/recurs
os/recursos_programacion.php
Programacin en C
1
EL SOFTWARE (PROGRAMAS)
Las operaciones que debe realizar el hardware son especficas 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 mquina funcione,
se domina tambin programas del sistema. Estos programas son bsicamente el Sistema
Operativo, los editores de texto, los compiladores/interpretes (lenguajes de
programacin) 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 recuperacin 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 programacin sirven para escribir programas que permitan la
comunicacin usuario maquina. Unos programas especiales llamados traductores
(compiladores o interpretes) convierten las instrucciones escritas en lenguajes de
programacin 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 anlisis
estadstico, etc de denominan programas de aplicacin.
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 cdigo de mquina. Los traductores se dividen en: compiladores e interpretes
COMPILADOR
LA COMPILACION Y SUS FASES
La compilacin es el proceso de traduccin de programas fuente a programas objeto. El
programa objeto obtenido de la compilacin ha sido traducido normalmente a cdigo de
mquina.
Para conseguir el programa mquina real se debe utilizar un programa llamando montador o
enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina
directamente ejecutable.
El proceso de ejecucin de un programa escrito en un lenguaje de programacin 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 compilacin
5. Obtencin 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
Programacin en C 15
Programacin en C 16
UNA FORMA NUEVA DE PENSAR
Es muy importante destacar que cuando hacemos referencia a la programacin orientada a
objetos no estamos hablando de unas cuantas caractersticas nuevas aadidas a un lenguaje
de programacin. Estamos hablando de una nueva forma de pensar acerca del proceso de
descomposicin de problemas y de desarrollo de soluciones de programacin.

La programacin 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 programacin
estructurada, que consiste en descomponer el problema objeto de resolucin en
subproblemas y ms subproblemas hasta llegar a acciones muy simples y fciles de codificar.
Se trata de descomponer el problema en acciones, en verbos. En el ejemplo de un programa
que resuelva ecuaciones de segundo grado, descomponamos el problema en las siguientes
acciones: primero, pedir el valor de los coeficientes a, b y c; despus, calcular el valor del
discriminante; y por ltimo, en funcin del signo del discriminante, calcular ninguna, una o
dos races.

Como podemos ver, descomponamos el problema en acciones, en verbos; por ejemplo
el verbo pedir, el verbo hallar, el verbo comprobar, el verbo calcular
Programacin en C 17
La programacin orientada a objetos es otra forma de descomponer problemas.
Este nuevo mtodo de descomposicin es la descomposicin en objetos; vamos
a fijarnos no en lo que hay que hacer en el problema, sino en cul es el
escenario real del mismo, y vamos a intentar simular ese escenario en nuestro
programa.

Los lenguajes de programacin tradicionales no orientados a objetos, como C,
Pascal, BASIC, o Modula-2, basan su funcionamiento en el concepto de
procedimiento o funcin. Una funcin es simplemente un conjunto de
instrucciones que operan sobre unos argumentos y producen un resultado. De
este modo, un programa no es ms que una sucesin 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.
Programacin en C 18
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 bsico no es la funcin, sino un ente denominado precisamente
objeto. Un objeto es la representacin en un programa de un concepto, y
contiene toda la informacin necesaria para abstraerlo: datos que describen sus
atributos y operaciones que pueden realizarse sobre los mismos.
Programacin en C 19
EJEMPLOS DE OBJETOS.
ndice
Estructura de un programa
C.
Variables bsicas.
Operaciones aritmticas.
Sentencias de control.
Arrays y Strings.
Funciones.
Estructuras de datos.
Entrada/Salida bsica.
Ejemplos I.
Modificadores de
mbito de las
variables.
Punteros y memoria
dinmica.
Operadores de bit.
Preprocesador C y
compilacin.
Libreras estndar.
Ejemplos II.
Programacin en C
20
Programacin en C
21
CONCEPTOS BASICOS DE C
Estructura de un programa en C
Programacin en C
22
Todo programa en C se construye bsicamente mediante tres
tipos de objetos:
Funciones.
Variables.
Tipos de datos.
Programacin en C
23
#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 ...
Definicin de
Cabecera y/o
Ficheros
Declaracin
de Datos
Funcin Principal
Otras Funciones
y/o
Procedimientos

/*Variantes de Definicin*/

#include<nombre_de_la_biblioteca>
#define nombre_de_la_constante

//Funcin principal

void main()
{
definicin de variables locales;
instrucciones del programa;

}

Estructura de un programa en C
Estructura de un programa en C
Funcin main():
#include <stdio.h>
int main()
{
printf(Hola mundo!!\n);
return(0);
}
Programacin en C
24
Estructura de un programa en C
Fichero hola.c
# include <stdio.h>
int main()
{
printf(Hola mundo!!\n);
return(0);
}

Programacin en C
25
Compilacin
Ejecucin
Caractersticas de C
Sensible a maysculas y minsculas: sum y Sum
Indentacin 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 librera estndar.
Variables y funciones definidas por el programador.
Programacin en C
26
ESTRUCTURA DE UN PROGRAMA
El inicio del programa debe llevar:
El smbolo de numeral (#) la sentencia include, y entre
signos de mayor y menor que (<>) el nombre de la librera
o fichero.
Seguidas de las libreras, para que Incluya en el
programa la directiva la cual contiene las funciones para
procesar datos.
#include <fichero>
27
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 dinmica.
#include <math.h >.- Rutinas matemticas.

28
Comentarios
Los comentarios en C pueden ocupar varias
lneas y se encuentran delimitados entre /* y
*/.

int main()
{
/* Esto es un comentario de varias
lineas.*/
return(0);
}
Programacin en C
29
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 informacin.
Sintaxis es la siguiente:

Imprime en pantalla el texto y el valor
30
scanf ("%d", &variable);
printf ("El valor es %d", variable);
La funcin COUT
Programacin en C
31
#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 CARCTER.
Se declara una variable de tipo carcter y se guarda en: getch() o
getche().
La diferencia es que getche() muestra en pantalla el carcter
introducido.
getch() lo mantiene oculto.
Sintaxis:
char opc;
opc=getch();
opc=getche();

32
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);
}

33
TIPOS DE ARCHIVOS
Programacin en C
34
Programacin en C
Variables bsicas
Programacin en C
35
CONCEPTOS BASICOS
Programacin en C
36
mbito de las variables
La declaracin 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 slo dentro de la
funcin. (Tiene prioridad sobre el mbito global)
Programacin en C
37
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
funcin */
Programacin en C
38
AMBITO DE LAS VARIABLES
39
Variable Global Variable Local
#include <stdio.h>
int x;
int main()
{
}
#include <stdio.h>
int main()
{
int x;
}
Programacin en C 40
C++ dispone del operador (::), llamado operador de resolucin 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.
Considrese el siguiente ejemplo:
int a = 2; // declaracin de una variable global a
void main(void)
{
...
printf("a = %d", a); // se escribe a = 2
int a = 10; // declaracin 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 ms exterior
oculta por otra variable local del mismo nombre. Este operador slo permite acceder a una
variable
global oculta por una variable local del mismo nombre.
OPERADOR DE VISIBILIDAD
Tipos de variables
Programacin en C
41
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 carcter, con un rango de 0 a 255).
2. Los valores enteros (tipo de dato int ) son aquellos nmeros que se aprendieron a contar
(1, 4, -2, 1354);normalmente, tienen un tamao de 16 bits, 2 bytes o una palabra, con rango de -
32768 a 32767.
En Windows 98 yWindows NT, los valores enteros tienen un tamao de 32 bits con un rango de -
2147483648 a 2147483647.
3. Los valores en coma flotante (tipo de dato float ) son nmeros que tienen una parte fraccional,
como por ejemplo pi(3,14159), y exponentes. Tambin se conocen como nmeros 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 precisin (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 precisin largos) son incluso ms precisos
(normalmente, tamao 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
tambin se puede utilizar para la creacin de punteros genricos.
7. El tipo de dato puntero no contiene informacin en el mismo sentido que el resto de los tipos de
datos; en su lugar, cada puntero contiene la direccin de la posicin 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
Programacin en C
42
long double 96 18 3.3621e-4932 1.18973e+493
Modificadores de tipos
Ciertos tipos bsicos admiten diversos
modificadores:
unsigned :Slo valores positivos (sin signo).
signed : Valores positivos y negativos (por omisin).
long : Formato largo (para enteros nicamente).
Ejemplos:
unsigned int
signed char
long int (usualmente representado como long)
unsigned long int
Programacin en C
44
Llamada sizeof()
La llamada sizeof() se utiliza para determinar el
nmero de bytes que ocupa una variable o un
tipo:

int a;
sizeof(a);
sizeof(unsigned int);
Programacin en C
45
Uso de los tipos de datos en C++
Programacin en C
46
Expresiones constantes
Para definir las constantes de tipo carcter
asociadas a caracteres especiales se usan
secuencias de escape:
\n: Retorno de carro.
\t: Tabulador.
\b: Bell.
\0: Carcter nulo.
...
Programacin en C
47
Declaracin de variables
Declaracin simple:
char c;
unsigned int i;
Declaracin mltiple:
char c,d;
unsigned int i,j,k;
Declaracin y asignacin:
char c=A;
unsigned int i=133,j=1229;
Programacin en C
48
Expresiones constantes
El formato de las expresiones constantes es;
Un expresin real se puede dar tanto en notacin
decimal (2.56) como cientfica (2.45E-4).
A una expresin de tipo long se le aade un L al final
(200L).
Una expresin de tipo carcter se define entre
comillas simples (A).
Programacin en C
49
Declaracion de una constante
Programacin en C
50
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 (Cdigo ASCII
de A) */
Programacin en C
51
Casting
Programacin en C
52
/* ejemplo 4.- realizamos conversiones de tipos implcitas y explcitas */
#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;
}
La funcin printf

Programacin en C
53

/* 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
Programacin en C
54
Secuencias de Escape
Programacin en C
55
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.
Constantes y E/S simple
Programacin en C
56
#include <stdio.h>
#define PI 3.1416 /* definicin de constante */
int main ()
{
float perim, radio; int dos=2;
printf(" Calcula el permetro de una circunferencia");
printf(" Indique el tamao de radio de la circunferencia");
scanf("%f", &radio);
perim= dos*PI*radio;
printf(" El permetro de la circunferencia es %f", perim);
printf(Valores utilizados para calcular el permetro:");
printf(" Constante PI=%f, valor de dos = %d, radio=%f ",
PI, dos,radio);
return 0;
}
#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/\n\n", 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/\n\n", 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);
}
Programacin en C
Operaciones aritmticas
Programacin en C
58
Operaciones aritmticas
El operador de asignacin es el igual (=).
Los operadores aritmticos son:
Suma (+)
Resta (-)
Multiplicacin (*)
Divisin (/)
Mdulo o resto (%)
Programacin en C
59
Operaciones aritmticas
Divisin entera vs divisin 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
Programacin en C
60
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 */
Programacin en C
61
Operaciones de asignacin
El operador de asignacin en C es el igual(=)
a=b+3;
Existen otras variantes de asignacin:
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);
Programacin en C
62
OPERADORES
Programacin en C
63
Dentro de c++ tenemos los tpicos operadores matemticos + - * / y tambin los operadores
unarios (++ --) En este primer ejemplo vemos operadores unarios y la asignacin mltiple.
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los peradores\n";
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 comparacin
Los operadores de comparacin en C son:
Igual (==)
Distinto (!=)
Mayor (>) y Mayor o igual (>=)
Menor (<) y Menor o igual (<=)
El resultado de un operador de comparacin es un
valor entero (0 es falso) y (distinto de 0
verdadero).
a=3>7 /* a vale 0 (falso) */

Programacin en C
64
Operadores lgicos
Sobre expresiones booleanas (enteros) se definen
los siguientes operadores lgicos:
And lgico (&&)
Or lgico (||)
Negacin lgica (!)
Ejemplo
a=(3>2 || 5==4) && !1 /* Falso */
C tiene un modelo de evaluacin perezoso.
a=3>2 || w==4 /* w==4 no se evala */
Programacin en C
65
if ... else
int main()
{
int a=3,b;

if(a>2)
{
b=100+a;
printf(parte if);
}
else
printf(parte else);
}
Programacin en C
66
a>2
<if>
<else>
Programacin en C
67
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
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;
}
Programacin en C 68
#include <iostream>
int main ()
{
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
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 lgicos. A continuacin vemos algunos ejemplos de operadores lgicos (comparaciones) y la
combinacin de estos.
Programacin en C 69
Programa para probar operadores Lgicos
using namespace std;
#include <iostream>
int main () {
// Sacamos por salida standar un mensaje
cout << "Vamos a probar los operadores\n";
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);
}
Programacin en C
70
Operador ?
El operador condicional es el nico operador ternario de la gramtica C++ y sirve para
tomar decisiones. Proporciona un resultado entre dos posibilidades en funcin de una
condicin.
Sintaxis
expresion-relacional ? expr1 : expr2

El operador condicional ? : produce un resultado. En la expresin E1 ? E2 : E3, E1 es una
expresin relacional ( 4.9.12) que se evala primero. Si el resultado es cierto, entonces
se evala E2 y este es el resultado. En caso contrario (si E1 resulta falso), entonces se
evala E3 y este es el resultado. Observe que si la premisa E1 es cierta, entonces no llega
a evaluarse la expresin E3.

El operador ? : puede usarse para sustituir ciertas sentencias del tipo if-then-else,
aunque puede conducir a expresiones ms 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);

Programacin en C
72
while
int main()
{
int i=0,ac=0;

while(i<100)
{
printf(%d,i*i);
ac+=i;
i++;
}
}
Programacin en C
73
i<100
i=0
<while>
i++
do ... while
int main()
{
int i=0,ac=0;

do
{
printf(%d,i*i);
ac+=i;
i++;
}
while(i<10);
}
Programacin en C
74
i<100
i=0
<do>
i++
for
int main()
{
int i,ac=0;

for(i=0;i<100;i++)
{
printf(%d,i*i);
ac+=i;
}
}
Programacin en C
75
i<100
i=0
<for>
i++
Sintaxis:
for(inicializacin,condicin_permanencia,incremento)
1
2
3
3
2 1
break y continue
int main()
{
int i;
for(i=0;i<100;i++)
{
if(i%2==0)
continue;/*Comienza la iteracin*/
if(i%17==0)
break; /*Sale del bucle*/
printf(%d,i);
}
}
Programacin en C
76
Programacin en C 77
#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 iteracin en curso del bucle
se interrumpe aqu. */
}
printf( "El opuesto es: %d\n", -n );
a += n;
} while ( n >= -10 && n <= 10 );

printf( "Suma: %d", a );
return 0;
}
La instruccin de salto continue siempre se usa para
interrumpir (romper) la ejecucin normal de un bucle. Sin
embargo, el control del programa no se transfiere a la
primera instruccin despus del bucle (como s hace la
instruccin break, es decir, el bucle no finaliza, sino que,
finaliza la iteracin en curso, transfirindose el control del
programa a la condicin de salida del bucle, para decidir si
se debe realizar una nueva iteracin o no.

Por tanto, la instruccin continue finaliza (termina) la
ejecucin de una iteracin de un bucle, pero, no la
ejecucin del bucle en s. De forma que, la
instruccin continue salta (no ejecuta) las instrucciones
que existan despus de ella, en la iteracin de un bucle.
LA INSTRUCCION CONTINUE
Programacin en C 78
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: %d\n", -n );
a += n;
} while ( n >= -10 && n <= 10 );

printf( "Suma: %d", a );
return 0;
}
La instruccin de salto break se usa
para interrumpir (romper) la
ejecucin normal de un bucle, es
decir, la instruccin break finaliza
(termina) la ejecucin de un bucle y,
por tanto, el control del programa se
transfiere (salta) a la primera
instruccin despus del bucle.

También podría gustarte