Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
/
| Definición de constantes y macros,
ENCABEZADO < declaración de variables globales,
| Inclusión de archivos.
\
// PRIMER.CPP
//
// Despliega un mensaje en la pantalla.
void main(void)
{
printf("El lenguaje C++ es poderoso\n");
}
#include <stdio.h>
1.3.- Comentarios.
La primera sirve para escribir comentarios que abarcan varias líneas, y utiliza los caracteres /*
para marcar el inicio de un comentario, y los caracteres */ para marcar el final, como se ve en
los siguientes ejemplos:
/* Este es un pequeño comentario */
Pueden incluirse los contenidos de otros archivos de texto en el archivo que contiene código
en C++ . Esto se logra por medio de la directiva #include en cualquiera de las tres formas
siguientes :
#include "nombre_archivo"
/* nombre_archivo se buscará en el directorio de trabajo actual */
#include "d:\trayectoria\nombre_archivo"
/* En este caso, nombre_archivo será buscado en el directorio especificado en
trayectoria */
Ejemplo:
#include "C:\DATOSCPP\PANTALLA.C"
#include <stdio.h>
#define CADENA "El Lenguaje C++ es poderoso\n"
void main(void)
{
printf(CADENA);
}
En este caso, el preprocesador sustituirá CADENA por El Lenguaje C++ es poderoso, de tal
manera que el compilador se encontrará con la instrucción: printf("El Lenguaje C++ es
poderoso\n");
La directiva #define también sirve para declarar macros, las cuales incluyen una ó más
instrucciones del Lenguaje C++ , como en:
#define CUBO(N) ((N)*(N)*(N))
Las macros pueden tomar formas complejas y ocupar varias líneas de código, como se muestra
en el siguiente ejemplo:
Obsérvese que al final de la primera línea se escribió una diagonal invertida ( \ ), la cual sirve
como enlace.
Existe un grupo de directivas del preprocesador que permiten controlar cuales partes del
código fuente se van a compilar al cumplirse ciertas condiciones. A continuación se muestra
una lista de tales directivas; dejándose la ejemplificación de su uso para unidades más
avanzadas de este trabajo.
#if
#ifdef
#if defined(algo)
#ifndef
#else
#elif
#endif
Además de las directivas vistas hasta aquí, existen las siguientes:
#error
#pragma inline
#pragma warn
#pragma saveregs
Todo programa de C++ debe contener una función llamada main() (principal), la cual sirve de
enlace con el sistema operativo que se esté utilizando. Cuando se intente obtener un
programa ejecutable(.EXE ) a partir de un archivo que no contenga una función main(), el
compilador desplegará un mensaje de error.
1.6.- Identificadores
Los nombres que son utilizados para referenciar variables, funciones, etiquetas y demás
objetos que se manejan con el Lenguaje C++, son referidos en forma genérica como
identificadores.
El usuario debe cuidar que los identificadores creados por él cumplan las siguientes:
1 <= n <="32"
Las palabras reservadas, como su nombre lo indica, son identificadores que tienen asignado un
uso específico y no podrán ser utilizadas como identificadores creados por el usuario.
Las palabras marcadas con + en la tabla 1.1 son las palabras reservadas específicas de C++, las
marcadas con @ son las palabras añadidas por Borland al C, y las palabras sin marca son las
palabras reservadas del C estándar.
1.7.- Entrada/Salida
En el archivo stdio.h se encuentran definidos, entre otros, los prototipos de las funciones
printf(), scanf(), gets() y puts() además de las macros getc(x) y putc(). A continuación
analizaremos cada una de estas funciones y macros:
donde:
Las funciones scanf() y printf() sirven para varios formatos, por lo cual son muy
voluminosas. Es por esto que se han desarrollado las funciones gets() y puts(),
específicas para la entrada/salida de cadenas de caracteres.
gets(nombre);
#include <conio.h>
Los listados 1.2 a 1.8 muestran ejemplos de utilización de formatos por medio de algunas
funciones antes mencionadas
#include<stdio.h>
#include<conio.h>
int main()
{
int y=12345;
printf("%13d\n",y);
getch();
return 0;
}
Listado 1.2
#include<stdio.h>
#include<conio.h>
int main()
{
int y=12345;
printf("y = %13d EN DECIMAL\n",y);
printf("y = %13o EN OCTAL\n",y);
getch();
return 0;
}
Listado 1.3
#include<stdio.h>
#include<conio.h>
int main()
{
int y=12345;
printf("y = %13d EN DECIMAL\n",y);
printf("y = %13x EN HEXADECIMAL\n",y);
getch();
return 0;
}
Listado 1.4
// IMPRIME ENTEROS SIN SIGNO
#include<stdio.h>
#include<conio.h>
int main()
{
int y= -12345;
printf("y = %13d ENTERO CON SIGNO\n",y);
printf("y = %13u ENTERO SIN SIGNO\n",y);
getch();
return 0;
}
Listado 1.5
Listado 1.6
Listado 1.7
Listado 1.8
..........
..........
int utilidad;
utilidad = 30;
printf("La utilidad es del %2d %\n", utilidad);
..........
desplegará :
La utilidad es del 30 %
C++ provee una nueva forma para manejar la entrada/salida, proporcionando una
sintaxis más sencilla, elegante e intuitiva que la de stdio.h , además de un mecanismo
más eficiente y flexible. La palabra iostream tiene su origen en las palabras: input
output stream , por lo que puede traducirse como flujo de entrada/salida. El flujo de
entrada/salida es utilizado para enviar datos desde una fuente ( productor ) a un destino (
consumidor ) . En esta forma se tiene una vasta jerarquía de clases para el manejo de
entrada/salida para archivos y dispositivos. En el archivo iostream.h se encuentran
definidos los objetos cin y cout.
El objeto cin utiliza al operador sobrecargado >> para tomar datos desde la entrada
estándar (habitualmente el teclado). El objeto cout utiliza al operador sobrecargado <<
para enviar datos hacia la salida estándar (normalmente la pantalla). Veamos como se
utilizan estos elementos en un pequeño ejemplo:
#include <iostream.h>
int main()
{
char nombre[30];
cout << "CUAL ES TU NOMBRE ? " ; cin>> nombre ;
cout << "\n" ; cout << "!! HOLA , " << nombre << " !! \n" ;
system("PAUSE");
return 0 ;
}
También es posible especificar el ancho de un campo por medio del manipulador setw(),
que se encuentra declarado en iomanip.h ; así como los manipuladores window(),
clrscr() y gotoxy() declarados en constrea.h, como se muestra en el listado 1.10.
#include <iostream.h>
#include <iomanip.h>
#include <constrea.h>
int main()
{
char nombre[10] ;
int numero = 150 ;
float sueldo ;
constream ventana0, ventana1, ventana2 ;
ventana0.window(1,1,80,25);
ventana1.window(10,05,20,05);
ventana2.window(10,07,40,07);
ventana0.clrscr();
ventana1.clrscr();
cout << "NUMERO: " << setw(3) << numero;
cout << " NOMBRE : " ; cin.getline(nombre,10);
ventana2.clrscr();
cout << "\nSUELDO : $ " ; cin>> sueldo ;
return 0;
} // verificar http://faculty.salisbury.edu/~dxdefino/constrea.htm
2.1.- Constantes
Podemos definir a una constante como una localidad de memoria (objeto), la cual tiene
un nombre y un tipo de dato asociados, además de un valor que permanece fijo durante
el tiempo de ejecución.
Los valores para las constantes, permitidos por Borland C++, se clasifican en cuatro
clases:
Para manejar los caracteres de control se utilizan las secuencias de escape que
empiezan con el carácter de diagonal hacia atrás (\) seguida de un carácter. Si el
carácter que sigue a la diagonal es alguno de los caracteres mostrados en la tabla 2.1,
se obtendrá el efecto explicado en ella; pero si es cualquiera de los demás caracteres
del Código ASCII, se visualizará el carácter tal cual.
Borland C++ permite el uso de dos caracteres juntos como valores de caracteres.
III).- Punto flotante, cualquiera con punto decimal ó con formato exponencial.
donde: pera, uva, manzana y fresa son constantes de enumeración y tienen los
siguientes valores:
pera = 0
uva = 1
manzana = 2
fresa = 3
y entonces :
pera = 0
uva = 1
manzana = 10
fresa = 6
En el Lenguaje C++ puede declararse una variable en cualquier lugar del programa, con
la única restricción de que la declaración preceda a la primera instrucción donde se
utiliza tal variable.
[, var2, ... ] ;
Ejemplos:
int algo, otro ;
2.3.- Ambito
El ámbito es una zona de programa donde puede utilizarse un identificador para accesar
su objeto . El ámbito va a depender, básicamente, del lugar del programa en que aparece
la declaración.
Ambito de BLOQUE.
Un bloque está formado por las instrucciones delimitadas por un par de llaves { }.
Es posible anidar una serie de bloques, y pueden declararse variables dentro de cada
bloque. Si, en diferentes bloques, existen variables con el mismo identificador, todas
serán consideradas como variables diferentes. Así que puede tenerse:
..............
..............
int x=5; // x del bloque 1
{
int x=10; // x del bloque 2
{
int x=20; // x del bloque 3
{
int x=30; // x del bloque 4
printf("x=%d",x); // x=30
}
printf("%d",x); // x=20
}
printf("%d",x); // x=10
Debe tenerse cuidado al utilizar identificadores iguales para diferentes variables. Lo más
recomendable es no utilizar los mismos identificadores y no intentar manejar variables
en un ámbito diferente al que pertenecen.
Ambito de FUNCION.
En esta clase sólo se encuentran los identificadores que se utilizan como etiquetas
cuando se tienen instrucciones goto. El identificador de una etiqueta debe ser único
dentro de una función, y no puede utilizarse la instrucción goto para saltar de una
función a otra.
Ambito de ARCHIVO.
Las variables declaradas fuera de cualquier bloque en un archivo son consideradas como
variables globales, y el ámbito de sus identificadores abarca todos los bloques
contenidos en el archivo en cuestión; por lo que: una variable con éste ámbito puede ser
utilizada en las funciones del archivo que estén definidas después del punto donde se
declaró dicha variable.
2.4.- Duración
Los objetos con duración estática están localizados en memoria durante todo el tiempo
de ejecución del programa. Las funciones, las variables con ámbito de archivo y las
variables con especificadores de clase de almacenamiento static ó extern, tienen
duración estática. Los objetos con duración estática son inicializados a cero , en
ausencia de un valor inicial explícito.
Los objetos de duración local, conocidos también como objetos automáticos, son
creados en la pila de la memoria RAM ó en los registros del microprocesador. La
memoria asignada a éstos objetos es liberada cuando finaliza la ejecución del bloque
2.5.- Enlace
. ENLACE EXTERNO,
. ENLACE INTERNO,
. SIN ENLACE.
Para aclarar lo relacionado con el especificador extern, revisemos los listados 2.1 y 2.2.
// EXTERN1.CPP
// EXTERN2.CPP
#include <iostream.h>
// DECLARACION de variables globales que:
extern int edad; // se encuentran en otro archivo
extern char nombre[];
void main()
{
cout << "\nCUAL ES TU NOMBRE ? " ; cin>> nombre ;
cout << "\nCUANTOS AÑOS TIENES, " << nombre << " ?" ; cin>> edad ;
cout << "\n\n" ;
cout << " TE FALTAN " << 100-edad ;
cout << " PARA LLEGAR A LOS CIEN, " << nombre << "\n" ;
}
Listado 2.1.- EXTERN2.CPP, que declara y utiliza variables globales definidas en otro
archivo.
2.6.- Operadores
Los objetos que se manejan en C++ van a tener un tipo de dato asociado, el cual
determina la cantidad de espacio de almacenamiento que se le asigna a cada uno de los
objetos de tal tipo, así como el conjunto de operaciones que podrán realizarse con los
valores almacenados. Las operaciones serán representadas a través de identificadores
específicos llamados operadores.
Los operadores aritméticos se aplican sobre objetos con valores numéricos, como se
muestra en la tabla 2.2 .
Los operadores relacionales se usan para comparar los valores que resultan de reducir
expresiones. Los resultados coincidirán con los valores de verdad:
Los operadores lógicos se aplican sobre los enunciados que resultan de las operaciones
relacionales, y el resultado siempre será un valor de verdad. Los operadores lógicos son:
&& Y ( Conjunción )
|| O ( Disyunción )
! NO ( Negación )
& Y ( Conjunción )
| O ( Disyunción )
Ejemplo 2.6.1:
Si tenemos la declaración:
char indice = 81 ;
Ejemplo 2.6.2
Se requiere que en el número 112 tengan valor 1 los bits que correspondan con los del
número 7 que tengan valor 1. En este caso, la operación a utilizar es la disyunción entre
bits, quedando las instrucciones en la siguiente forma:
char masc ;
masc = 112 | 7 ;
operador> |
Ejemplo 2.6.3
La disyunción exclusiva sirve para poner a uno los bits del primer operando cuyos
correspondientes bits en el segundo operando sean distintos, como se ve a continuación:
x = 125 ^ 120 ;
char x ;
Manualmente se tendría:
Los operadores de desplazamiento mueven todos los bits, de una variable entera ó de
carácter, hacia la izquierda ó hacia la derecha. A medida que los bits son desplazados
hacia un extremo, los lugares desocupados del estremo contrario van siendo ocupados
por ceros. Los unos que salen por los extremos no se pueden recuperar(no hay rotación).
Los operadores estudiados hasta aquí no son todos los que existen en el C++, sino los
que a mi juicio son indispensables para iniciar el estudio del lenguaje. Si,
posteriormente, es necesario utilizar algún operador no tratado en esta unidad, en ese
momento se estudiarán las características particulares de tal operador.
3.1.- Secuencia
A este grupo pertenecen las instrucciones que están formadas por una o varias
expresiones simples colocadas una a continuación de la otra. La sintaxis para las
instrucciones estructuradas en secuencia es la siguiente:
instruccion_1 ;
instruccion_2 ;
.........
instruccion_N ;
Ejercicios
1. Elabore un programa que permita determinar la distancia (m) que recorre un móvil
que se desplaza con una velocidad (m/s) constante, después de transcurrir un
determinado tiempo (s)
#include <stdio.h>
#include <conio.h>
int main()
{
int V;
int T;
int D;
printf("\n INGRESE ");
printf("\n ");
printf("\n Velocidad (m/s) : "); scanf("%i",&V);;
printf("\n Tiempo (s) : "); scanf("%i",&T);;
D= V*T;
Vf = Vi + A*T
3.2.-Selección
A este grupo pertenecen aquellas instrucciones que sirven para que la ejecución del
programa tome una de varias opciones existentes en una ramificación.
if( condición )
[bloque_1]
[else]
[bloque_2]
donde:
bloque_1 y bloque_2 pueden estar formados por uno ó
más instrucciones.
Esta estructura puede anidarse para elgir entre un grupo de más de dos opciones,
tomando la siguiente forma:
if(condición_1)
bloque_1;
else if(condición_2)
bloque_2;
else if(condición_3)
bloque_3;
............
else
bloque_N;
#include <iostream.h>
int main()
{
long ncontrol;
#include <iostream.h>
#include <conio.h>
int main()
{
int calif;
clrscr();
cout << "CALIFICACION: "; cin>> calif;
if(calif > 100)
cout << "ERROR: CALIFICACION DEMASIADO ALTA .....";
else if(calif < 0)
cout << "ERROR: CALIFICACION DEMASIADO BAJA .....";
else if( (calif>= 70) && (calif <=100))
cout << "CALIFICACION APROBATORIA.";
else cout << "CALIFICACION REPROBATORIA.";
getch();
return 0;
}
#include <stdio.h>
#include <conio.h>
int main()
{
float V;
int T;
int D;
printf("\n INGRESE ");
printf("\n ");
printf("\n Distancia (m) : "); scanf("%i",&D);
printf("\n Tiempo (s) : "); scanf("%i",&T);
if (T > 0)
V= static_cast<float>(D) / static_cast<float>(T);
printf("\n RESULTADO ");
printf("\n ");
printf("\n La velocidad en m/s es: %5.2f ", V);
getch();
return 0;
}
2. Elabore un programa que permita determinar el tiempo (s) que transcurrirá hasta que dos
autos se encuentren, considerando que estos autos separados una distancia (m) van uno
al encuentro del otro con velocidad constante (m/s)
Datos de prueba: distancia = 130 m
auto1: velocidad = 5 m/s T= D / (V1 + V2)
3. Elabore un programa que permita determinar el tiempo (s) que transcurrirá hasta que un
auto alcanza al otro, se sabe que estos autos separados una distancia (m) van en igual
dirección con velocidad constante (m/s). Considere la velocidad del primero auto mayor.
Datos de prueba: distancia = 120 m
auto1: velocidad = 9 m/s T= D / (V1 - V2)
auto2: velocidad = 6 m/s
4. Elabore un programa que permita determinar la aceleración (m/s²) de un bloque que se
encuentra en reposo, conociendo su masa (kg) y la fuerza (Newton) horizontal que se le
Espacio = Distancia
aplica. Se debe considerar que el valor de la masa sea mayor de cero
Datos de prueba: Fuerza = 54 N; Masa = 6 kg
5. Elabore un programa que permita determinar la potencia (watt o vatios) que realiza un
motor, conociendo el trabajo (joule) que realiza en un determinado tiempo (segundo). El
valor del tiempo debe ser positivo y diferente de cero
Datos de prueba: trabajo = 1000 j ; tiempo = 5 s
6. Elabore un programa que permita determinar si un número ingresado es un número
entero.
Dato de prueba: número = 57
7. Elabore un programa que permita determinar si un número entero positivo es número par.
Dato de prueba: numero = 38
8. Elabore un programa que permita expresar una cantidad dada en segundos a horas,
minutos y segundos. La cantidad debe ser entera y mayor a cero
Dato de prueba: Cantidad = 8000 s
2. Elabore un programa que permita aceptar dos números diferentes, seguidamente se debe
determinar y mostrar el mayor de los números.
3. Elabore un programa que permita aceptar un número entero de dos cifras, de tal manera
que si sus cifras son pares se debe mostrar la suma de estas cifras, pero si las cifras son
impares se debe mostrar el producto de estas cifras.
4. Elabore un programa que permita aceptar un número entero, seguidamente se debe
determinar y mostrar si el número es múltiplo de siete.
5. Elabore un programa que permita aceptar un número entero menor a 31524,
seguidamente se debe determinar y mostrar cuantas cifras tiene dicho número.
6. Elabore un programa que permita aceptar un número entero de dos cifras, seguidamente
se debe mostrar el número ingresado pero con sus cifras intercambiadas. Ej. Si el número
ingresado es 38 se debe mostrar 83.
7. Elabore un programa que permita aceptar los siguientes datos de un trabajador: código,
nombre, sueldo básico, año de ingreso a la empresa y número de hijos.
Si los años de servicio es mayor a 8 años se le da una bonificación de 10 soles por cada
año, en caso contrario se le da 4 soles por cada año de servicio. Si el numero de hijos es
menor a 4 se le da 8 soles por cada hijo, en caso contrario se le da sólo 20 soles. El sueldo
bruto es la suma del sueldo básico, la bonificación por años de servicio y la bonificación
por los hijos. Si el sueldo bruto es mayor a 1500 soles se le hace un descuento del 1.5% del
sueldo bruto, en caso contrario el descuento es el 0.5% del sueldo bruto. El sueldo neto es
igual al sueldo bruto menos el descuento.
Se pide realizar los cálculos necesarios para mostrar las bonificaciones, el sueldo bruto, el
descuento y el sueldo neto.
8. Elabore un programa que permita aceptar un número entero, seguidamente se debe
determinar y mostrar si el número ingresado es positivo, cero o negativo.
9. Elabore un programa que permita aceptar tres números diferentes, seguidamente se debe
determinar y mostrar el mayor y menor de los números.
10. Elabore un algoritmo/programa que permita determinar las raíces reales de una ecuación
de segundo grado (Ax² + Bx + C).
Dato de prueba: x² + 5x + 6
Para determinar las raíces puede utilizar
B B2 4AC B B2 4AC
2A 2A
Esta instrucción es útil cuando se tiene que elegir entre más de dos opciones, como es el
caso de manejo de menús. Esta instrucción es preferible que el uso de anidamientos de
varios if-else.
Su sintaxis es:
switch(expresión_entera)
{
case Const_1 : Bloque_1 ; break ;
case Const_2 : Bloque_2 ; break ;
.............................
.............................
.............................
case Const_N : Bloque_N ; break ;
default : Bloque_X ;
}
void main()
{
char opcion;
clrscr();
gotoxy(30,5);
cout << "MENU DE OPCIONES"; gotoxy(30,8);
cout << "1.- CREACION"; gotoxy(30,10);
cout << "2.- MODIFICACION"; gotoxy(30,12);
cout << "3.- ELIMINACION"; gotoxy(30,14);
cout << "0.- SALIDA"; gotoxy(30,18);
cout << "SU OPCION ? "; opcion= getche();
cout << "\n\n";
switch(opcion)
{
case '1': clrscr(); cout << "RUTINA DE CREACION \n"; break;
case '2': clrscr(); cout << "RUTINA DE MODIFICACION \n"; break;
case '3': clrscr(); cout << "RUTINA DE ELIMINACION \n"; break;
case '0': clrscr(); cout << "SALIDA DE LA APLICACIÓN \n";break;
default: clrscr(); cout << "OPCION INVALIDA.....\n";
}
}
Ejercicios
#include<stdio.h>
#include<conio.h>
int main()
{
int N;
printf("\n INGRESE ");
printf("\n ");
printf("\n Numero desde 1 hasta 7 : ");scanf("%i",&N);
switch (N)
{
case 1:
printf("\n Lunes ");
break;
case 2:
printf("\n Martes ");
break;
case 3:
2. Elabore un programa que acepte un número entero desde 1 hasta 12 (representa un mes
del año) y permita determinar a que estación del año pertenecen
Dato de prueba: Número = 6
3. Elabore un programa que permita ingresar dos números enteros y un operador aritmético
(+, -, /, *), seguidamente se debe determinar el resultado de la operación que indica el
operador.
Datos de prueba: A = 10 ; B = 5 ; OP = *
A: es el primer número; B: es el segundo número; OP: es el operador
4. Elabore un programa que permita aceptar el sueldo básico de un trabajador así como su
categoría (A, B, C). Se pide determinar cuanto se le debe pagar si se sabe que si la
categoría es “A” se le descuenta el 3% de su sueldo básico; si es “B” se le bonifica con el
1% de su sueldo básico y si es “C” se le bonifica con el 2% de su sueldo básico.
Datos de prueba: SB = 1000 soles; CAT = B
5. Elabore un programa que acepte un número entero hasta tres cifras, seguidamente se
debe determinar cuales de sus cifras tienen raíz cuadrada exacta
Dato de prueba: Número = 293
3.3.- Iteración
Con esta instrucción se maneja una estructura en la que, de entrada, se evalúa una
condición. En caso de que el resultado de tal evaluación sea un valor diferente de cero ,
se ejecuta un bloque de instrucciones, en el cual debe existir una instrucción que
while(condición)
bloque;
#include <iostream.h>
#define FALSO 0
int main()
{
int valor=1;
system("cls");
while(valor!=FALSO)
{
cout<<"\n Teclee un valor entero ( 0 para salir ): "; cin>>valor;
}
return 0;
}
Ejercicios
1. Elabore un programa que permita sumar todos los números naturales menores a un
número ingresado.
Dato de prueba: Número = 12
#include<stdio.h>
#include<conio.h>
La instrucción do-while tiene un comportamiento similar a while, sólo que en este caso
primero se ejecuta el bloque de instrucciones y después se evalúa la condición. Con esto
se asegura que el bloque se ejecutará al menos una vez.
do
bloque;
while(condición);
#include <iostream.h>
#include <conio.h>
void main()
{
char opcion;
do
{ // inicia ciclo 1
clrscr();
gotoxy(30,5);
cout << "MENU DE OPCIONES";
gotoxy(30,8); cout << "1.- CREACION";
gotoxy(30,10); cout << "2.- MODIFICACION";
gotoxy(30,12); cout << "3.- ELIMINACION";
gotoxy(30,14); cout << "0.- SALIDA";
gotoxy(30,18); cout << "SU OPCION ? ";
window(42,18,42,18);
do
{ // inicia ciclo 2 clrscr();
opcion="getche();"
}while((opcion < '0')||(opcion>'3'));// fin ciclo 2
Ejercicios
1. Elabore un programa que permita sumar todos los números naturales hasta un número
ingresado.
Dato de prueba: Número = 41
#include <iostream.h>
int main()
{
int N;
int I, S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para la suma : ";cin>>N;
S = 0;
I = 1;
do
{
S = S + I;
I = I + 1;
}
while ( I <= N);
cout<<"\n La Suma es: "<<S;
cout<<"\n ";
system("PAUSE");
return 0;
}
2. Elabore un algoritmo/programa que permita elegir que desea determinar el usuario con
respecto a la formula V=D/T
V : Velocidad D : Distancia T: Tiempo
#include <iostream.h>
int main()
{
float V, D, T;
int OP;
int Resp;
do
{
cout<<"\n Que desea determinar en V = D / T ";
3. Elabore un programa que permita sumar y contar todos los números naturales hasta un
número ingresado. Los números considerados deben ser múltiplos de cinco
Dato de prueba: Número ingresado = 80
4. Elabore un programa que permita determinar, utilizando un menú de opciones, el área de
un cuadrado, un triangulo, un círculo y un trapecio.
5. Elabore un algoritmo/programa que permita elegir que desea determinar el usuario con
respecto a la formula T= D / (V1 - V2)
6. Elaborar un programa que acepte un número entero, seguidamente se debe determinar el
factorial de la mayor cifra (valor absoluto) que tiene el número ingresado.
7. Elaborar un programa que acepte un número entero, seguidamente se debe determinar si
el numero ingresado es numero perfecto
8. Elaborar un programa que determine y muestre todos los números perfecto menores a
100.
Entre las instrucciones de iteración, for es la más versátil, ya que, entre otras
características, permite la declaración de variables dentro de su estructura.
donde:
inicialización es un bloque de instrucciones que puede
incluir la declaración de las variables
involucradas y la asignación de valores
iniciales.
Los bloques de inicialización, condición y control no son obligatorios, pero sí lo son los
tres punto y coma que los separan; de tal suerte que la forma mínima de una instrucción
for quedaría así:
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr();
for(int x=1 ; x <= 25 ; x++)
{ for(int y=1 ; y <=80 ; y++)
{ gotoxy(y,x);
if((x==25) && (y==80))
getch();
cout << '.';
}
}
return 0;
}
Listado 3.6.- Utilización de la instrucción for
Ejercicios
1. Elabore un algoritmo/programa que permita sumar todos los números naturales hasta un
número ingresado.
Dato de prueba: Número = 22
#include <iostream.h>
int main()
{
int N;
int I, S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para la suma : ";cin>>N;
S = 0;
for ( I = 1; I <= N; I++)
S = S + I; // hacemos uso de un acumulador
BREAK Y CONTINUE
Los enunciados break y continue son utilizados para modificar el flujo de control dentro de un
programa.
El break utilizado dentro de las estructuras de controlcausa la inmediata salida de dicha
estructura (por lo tanto no sigue repitiéndose el bloque y continúa la ejecución de las
instrucciones que le siguen a la estructura de control).
#include <iostream.h>
int main()
{
int num;
num = 1;
while (num <= 10)
{
if (num == 5)
{
break;
}
Lo que sucede es que cuando la variable num toma el valor 5, la condición del while se
Por otra parte, el enunciado continue, dentro de las estructuras de repetición, al ser ejecutado
salta las instrucciones que siguen en el bloque y ejecuta la siguiente repetición en el ciclo.
Veamos un ejemplo para aclarar el funcionamiento de continue:
#include <iostream.h>
int main()
{
int num;
num = 0;
while (num <= 7)
{
num = num + 1;
if (num == 5)
{
continue;
}
cout<<num<<"; ";
}
cout<<"\n ";
system("PAUSE");
return 0;
}
1 – 2 – 3 – 4 – 6 – 7- 8
Algunos programadores dicen que el uso del break y del continue dentro de las
estructuras de control (excepto el break en la estructura switch) viola las normas de la
programación estructurada. Lo cierto es que no es necesario el uso de break y continue
si se utilizan las estructuras correctas
Desde los orígenes del Lenguaje C ha existido la distinción entre definir y declarar una
función. Cuando se define una función se le está reservando espacio de almacenamiento
en memoria; en cambio cuando se declara solo se está avisando que más adelante se
encuentra una función con ciertas características, pero no se le reserva espacio en
memoria.
donde:
Cuando se declara una función, se está avisando al compilador que más adelante
encontrará la definicion de tal función, y que por el momento, tome nota de las
características de ella, como son: el tipo de dato que retorna, su nombre y los tipos de
argumentos que va a recibir. Con esto, no habrá ningún problema en invocar a la
función en un bloque de programa ubicado antes del lugar donde se encuentra escrita su
definición.
En el ejemplo 4.1, las líneas:
void saludo();
float calcula(float);
En este caso, el identificador arg no tiene uso alguno; por lo que es innecesaria su
inclusión.
Una invocación ó llamada a una función implica pasarle el control de la ejecución del
programa, así como los argumentos ó parámetros que requiere para realizar su tarea. En
el listado 4.1 se tienen las líneas:
// ENCABEZADOS
#include <iostream.h>
// DECLARACION DE FUNCIONES
void saludo();
float calcula(float);
// DEFINICION DE LA FUNCION PRINCIPAL
int main()
{
float costo, precio;
system("CLS");
// ENCABEZADOS
#include <iostream.h>
// DEFINICION DE LA FUNCION saludo()
void saludo()
{
system("CLS");
cout << "\n !! BIENVENIDO A LA VENTA ESPECIAL !!";
}
// DEFINICION DE LA FUNCION calcula()
float calcula(float x)
{
return( x * 1.6);
}
// DEFINICION DE LA FUNCION PRINCIPAL
int main()
{ float costo, precio;
system("CLS");
cout << "\n COSTO : $ "; cin>> costo;
saludo(); //INVOCACION A LA FUNCION saludo()
precio = calcula(costo); //INVOCACION A LA FUNCION calcula()
cout << "\n PRECIO : $ " << precio;
cout << "\n ";
system("PAUSE");
return 0;
En la mayoría de los casos, los identificadores ó nombres de los objetos deben ser
únicos, esto es, que dos objetos dentro del mismo ámbito no deben tener el mismo
nombre. Una de las excepciones la constituyen las funciones, que pueden compartir el
mismo nombre entre varias de ellas, dando la impresión de que a una sola función se le
ha "sobrecargado de tareas", razón por la cual se les llama funciones sobrecargadas.
Por ejemplo, supongamos que deseamos una función que sirva para sumar números. Lo
ideal sería contar con una sola función que realizara la suma de números de diferentes
tipos y que retornara un valor de acuerdo al tipo de resultado. El Lenguaje C++ permite
resolver este problema por medio de la sobrecarga de funciones.
A continuación se muestran los prototipos para cada una de las funciones que
comparten el nombre suma :
float suma(float,float);
double suma(double,double);
Aquí surge la pregunta: ¿ cómo distingue el compilador entre cada una de las funciones
suma()?.
Debido a que varias funciones sobrecargadas pueden usar el mismo identificador, C++
utiliza el concepto de nombres ampliados para controlar cada función individualmente.
El nombre ampliado de una función se construye tomando como base el nombre de la
función y los tipos de los argumentos. El tipo de retorno de la función no se utiliza en la
formación del nombre ampliado. La composición del nombre ampliado ocurre a nivel
del compilador, no al nivel del enlazador. El enlazador resuelve fácilmente las
referencias externas para sobrecargar las funciones debido a que éstas tienen nombres
ampliados únicos.
Ejercicios
int main()
{
int A, B;
int S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Primer numero : ";cin>>A;
cout<<"\n Segundo numero : ";cin>>B;
S= suma(A, B); //Se invoca a la funcion
cout<<"\n RESULTADO ";
cout<<"\n ";
cout<<"\n La suma es : "<<S;
cout<<"\n ";
system("PAUSE");
return 0;
}
2. Elabore un programa que permita utilizar una función que determine la suma, resta,
multiplicación y división de dos números enteros (no utilizar una función para cada
operación).
Dato de prueba: Primer numero = 12 Segundo numero = 10
3. Elabore un programa que permita utilizar una función que determine el área de: un
triángulo (b*h/2), un cuadrado (l*l) y un circulo (3.1415*r*r), Utilizar una función para
cada área a determinar.
Dato de prueba: base = 4; altura = 6; lado = 5; radio = 3
4. Elabore un programa que permita utilizar una función para determinar el máximo común
divisor de dos números enteros.
Dato de prueba: Primer numero = 12 Segundo numero = 10
Primera forma
#include <iostream.h>
int mcd(int a , int b)
{
int r; //usaremos el r como residuo
a = (a < 0) ? -a:a; //le damos el intervalo a
b = (b < 0) ? -b:b; //le damos el intervalo b
r = (a < b) ? a:b; //le damos el intervalo desde a hasta b
while ( (a % r) || (b % r)) //Usamos el "o"
Segunda forma
#include <iostream.h>
int mcd(int a , int b)
{
int r; //usaremos el r como residuo
do
{
r=a%b;
a=b;
b=r;
}while (b!=0);
return a;
}
int main()
{
int A, B, X;
float D;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Primer numero : ";cin>>A;
cout<<"\n Segundo numero : ";cin>>B;
if (A<B)
{
X=A;
A=B;
B=X;
}
D= mcd(A, B); //Se invoca a la funcion
cout<<"\n RESULTADO ";
cout<<"\n ";
5. Elabore un programa que permita utilizar una sola función para determinar la suma, resta
y multiplicación de dos números enteros.
Dato de prueba: Primer numero = 20 Segundo numero = 40
5.- Arreglos.
Los arreglos consisten de un conjunto de elementos del mismo tipo almacenados en
localidades contíguas de memoria. Los elementos de un arreglo comparten el mismo
nombre, pudiéndo distinguirse un elemento de otro a través de un subíndice.
Los elementos de los arreglos son variables de algún tipo dado, que al compartir el
mismo nombre pueden ser tratadas como una sola entidad.
donde:
Al declarar un arreglo dentro de una función, los valores almacenados en cada uno de
los elementos son desconocidos (se dice que el arreglo "tiene basura"), lo cual causa que
el programa correspondiente arroje resultados inesperados. Para evitar los valores
desconocidos, se recomienda asignar valores iniciales a cada uno de los elementos de
los arreglos, como se muestra a continuación:
En este caso particular, pudimos haber asignado los valores por medio de un estatuto for
de la siguiente forma:
Esta forma es la más conveniente en caso de que la cantidad de elementos sea grande y
que los valores a asignar sean iguales o las diferencia entre elementos consecutivos sea
constante.
Todo lo escrito en este ejemplo es válido para arreglos con elementos de cualquier tipo.
Ejercicios
void main(void)
{
int matriz[3][4];
clrscr();
for(int x=0 ; x < 3 x++)
{
for(int y=0; y< 4 ; y++)
{
matriz[x][y]=x+y+1 ;
gotoxy(y+1,x+1);
cout<< matriz[x][y];
}
cout<<"\n";
}
getch();
}
1234
2345
3456
En los párrafos anteriores, se ha mostrado la forma de asignar valores a cada uno de los
elementos de un arreglo una vez que se ha escrito su declaración. Aquí veremos la
manera de asignarle valores iniciales a los elementos, en la misma instrucción que
contiene la declaración del arreglo.
Por ejemplo, para declarar un arreglo de 10 enteros y al mismo tiempo asignarle a cada
uno de sus elementos los valores 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, puede escribirse:
En este caso, aunque no se escribe el tamaño de la dimensión del arreglo digitos, tiene el
mismo efecto que escribir:
digitos[0] = 0 ;
digitos[1] = 1 ;
digitos[2] = 2 ;
digitos[3] = 3 ;
digitos[4] = 4 ;
digitos[5] = 5 ;
digitos[6] = 6 ;
digitos[7] = 7 ;
digitos[8] = 8 ;
digitos[9] = 9 ;
Como puede verse, la primera forma es mucho más compacta, aunque, como en muchas
de las instrucciones de C++, la brevedad del código sacrifica la claridad.
Ejercicios
char cadena[8];
cadena[0] = 'A' ;
cadena[1] = 'R' ;
cadena[2] = 'R' ;
cadena[3] = 'E' ;
cadena[4] = 'G' ;
cadena[5] = 'L' ;
cadena[6] = 'O' ;
cadena[7] = '\0';
Al contener el carácter nulo, el arreglo cadena será reconocido por las funciones y
objetos diseñados para manipular cadenas de caracteres. Para manejar un arreglo de
cadenas de caracteres se debe declarar como un arreglo bidimensional de elementos de
tipo char, como puede observarse en el listado 5.2.
#include <iostream.h>
#include <conio.h>
int main()
{
unsigned short int calif[10];
char nombre[10][21]; // Se declara un arreglo bidimensional
// para 10 nombres de 20 caracteres por
// nombre mas un caracter para el nulo.
clrscr();
for( int x=1 ; x <= 10 ; x++)
{
gotoxy(10,x+1);
cout << "NOMBRE [" << x << "] = " ;
En el listado 5.2, se inicia con el subíndice 0 para no desperdiciar el primer elemento del
arreglo. Además, se debe recordar que el subíndice del último elemento del arreglo es
igual al tamaño de la dimensión menos 1.
Por Ejemplo:
es equivalente a:
char nombres[3][5];
nombres[0] = "HUGO" ;
nombres[1] = "PACO" ;
nombres[2] = "LUIS" ;
o así:
char nombres[3][5];
nombres[0][0] = 'H' ;
nombres[0][1] = 'U' ;
nombres[0][2] = 'G' ;
nombres[0][3] = 'O' ;
nombres[0][4] = '\0' ;
nombres[1][0] = 'P' ;
nombres[1][1] = 'A' ;
nombres[1][2] = 'C' ;
nombres[1][3] = 'O' ;
nombres[1][4] = '\0' ;
nombres[2][0] = 'L' ;
nombres[2][1] = 'U' ;
En los listados 5.3 y 5.4 se muestran las dos primeras formas, observándose que se
obtiene el mismo resultado.
#include <iostream.h>
#include <conio.h>
void main()
{
char nombres[][5] = { "HUGO","PACO","LUIS" };
int calif[] = { 100, 90, 100 };
clrscr();
for( int x=0 ; x < 3;x++)
{
gotoxy(35,x+10);
cout<< nombres[x];
gotoxy(40,x+10);
cout << calif[x];
}
}
#include <iostream.h>
#include <conio.h>
void main()
{
char nombres[][5] = { 'H','U','G','O','\0',
'P','A','C','O','\0',
'L','U','I','S','\0' };
int calif[] = { 100, 90, 100 };
clrscr();
for( int x=0 ; x< 3;x++)
{
gotoxy(35,x+10);
cout<< nombres[x];
gotoxy(40,x+10);
cout << calif[x];
}
}
En los listados 5.3 y 5.4, se muestra que no es necesario escribir el valor de la primera
dimensión de los arreglos cuando, en su declaración, se asignan valores constantes a los
elementos.
La ventaja que tiene la forma mostrada en 5.3 y 5.4 es que, al no especificar una de las
dimensiones, la cantidad de cadenas a manejar puede variarse con sólo agregarlas a la
lista o eliminarlas de ella.
Para leer una cadena de caracteres desde el teclado existe la función gets(), y para
desplegar una cadena en pantalla se usa la función puts(). Los prototipos de ambas
funciones se encuentran declarados en el archivo STDIO.H.
Por ejemplo, el listado 5.5 muestra un programa que sirve para leer y desplegar cadenas
de caracteres utilizando las funciones gets() y puts().
void main()
{
char nombre[31]; // Declara un arreglo de 31 caracteres
char saludo1[] = "?? HOLA,"; //Constante de caracteres
char saludo2[] = " !!";
clrscr();
gotoxy(20,10);
puts("¿ Cuál es tu nombre ? "); //Despliega cadena de car.
gotoxy(45,10);
gets(nombre); // Lee cadena de caracteres
strupr(nombre); // Convierte a mayúsculas
gotoxy(20,12);
puts(saludo1);
gotoxy(30,12);
puts(nombre);
gotoxy(30+strlen(nombre),12); // Longitud de la cadena
puts(saludo2);
}
Además de las funciones gets() y puts(), existe otro grupo de funciones para el manejo
de cadenas de caracteres, como strlen() y strupr() utilizadas en el programa del listado
5.5. Los prototipos de estas funciones se encuentran declarados en el archivo
STRING.H En la tabla 5.1 se describen brevemente algunas de las funciones para el
manejo de cadenas de caracteres en el C++ de Borland, cuyos prototipos se encuentran
declarados en el archivo STRING.H .
FUNCION DESCRIPCION
Copia una cadena de caracteres en otra.Se detiene cuando encuentra el
stpcpy
terminador nulo.
strcat Añade una cadena de caracteres a otra.
strchr Busca, en una cadena, un caracter dado.
strcmp Compara dos cadenas.
Macro que compara dos cadenas sin distinguir entre mayúsculas y
strcmpi
minúsculas.
Ejercicio 6 de IF
#include <iostream.h>
int main()
{
Ejercicio 7 de IF
#include <iostream.h>
int main()
{
int N;
cout<< "\n INGRESE UN NUMERO : " ; cin>>N;
Ejercicio 8 de IF
#include <iostream.h>
int main()
{
float N;
int NE, H, M, S;
cout<< "\n INGRESE UN NUMERO : " ; cin>>N;
NE = int(N);
if (N-NE==0 && N>0)
{
H=NE/3600;
M=(NE%3600)/60;
S=(NE%3600)%60;
cout<<H<<" HORA(S) "<<M<<" MINUTO(S) "<<S<<" SEGUNDO(S)";
}
cout<< "\n";
system("PAUSE");
return 0 ;
}
#include <iostream.h>
int main()
#include <iostream.h>
int main()
{
int N;
int a, b, S, M;
cout<< "\n INGRESE " ;
cout<< "\n NUMERO ENTERO DE DOS CIFRAS " ; cin>>N;
if (N>=10 && N<=99)
{
a=N/10;
b=N%10;
if (a%2==0 && b%2==0)
{
S= a+b;
cout<<"\n LA SUMA DE LAS CIFRAS ES : "<<S;
}
if (a%2!=0 && b%2!=0)
{
M= a*b;
cout<<"\n EL PRODUCTO DE LAS CIFRAS ES : "<<M;
}
}
else
cout<<"\n INGRESE UN NUMERO DE DOS CIFRAS";
cout<< "\n";
system("PAUSE");
return 0 ;
}
#include <iostream.h>
int main()
{
int N;
int a, b, NC;
cout<< "\n INGRESE " ;
cout<< "\n NUMERO ENTERO DE DOS CIFRAS " ; cin>>N;
if (N>=10 && N<=99)
{
a=N/10;
b=N%10;
NC= a+b*10;
cout<<"\n EL NUMERO CON LAS CIFRAS CAMBIADAS ES : "<<NC;
}
else
cout<<"\n INGRESE UN NUMERO DE DOS CIFRAS";
cout<< "\n";
system("PAUSE");
return 0 ;
}
#include <iostream.h>
int main()
{
char COD[5], NOM[10];
int SB, AI, NH;// SUELDO BASICO, AÑO DE INGRESO, NUMERO DE HIJOS
int AS, BA, BH, SBRUTO;
#include <iostream.h>
int main()
{
int N;
cout<< "\n";
#include <iostream.h>
int main()
{
int A, B, C;
int M, N;
cout<< "\n INGRESE TRES NUMEROS DIFERENTES" ;
cout<< "\n PRIMER NUMERO : " ; cin>>A;
cout<< "\n SEGUNDO NUMERO : " ; cin>>B;
cout<< "\n TERCER NUMERO : " ; cin>>C;
if (A>B && A>C )
{
M=A;
if (B>C)
N=C;
else
N=B;
}
else if (B>A && B>C)
{
M=B;
if (A>C)
N=C;
else
N=A;
}
else
{
M=C;
if (A>B)
N=B;
else
N=A;
}
cout<<"\n EL MAYOR NUMERO INGRESADO ES : "<<M;
cout<<"\n EL MENOR NUMERO INGRESADO ES : "<<N;
cout<< "\n";
system("PAUSE");
return 0 ;
}
Ejercicio switch01
#include<iostream.h>
int main()
{
int N;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero desde 1 hasta 7 : "; cin>>N;
switch (N)
{
case 1:
cout<<"\n Lunes ";
break;
case 2:
cout<<"\n Martes ";
break;
case 3:
cout<<"\n Miercoles ";
break;
case 4:
cout<<"\n Jueves ";
break;
case 5:
cout<<"\n Viernes ";
Ejercicio switch02
#include<iostream.h>
int main()
{
int N;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero desde 1 hasta 12 : "; cin>>N;
switch (N)
{
case 1:
case 2:
case 3:
cout<<"\n VERANO ";
break;
case 4:
case 5:
case 6:
cout<<"\n OTOÑO ";
break;
case 7:
case 8:
case 9:
cout<<"\n INVIERNO ";
break;
case 10:
case 11:
case 12:
cout<<"\n PRIMAVERA ";
break;
default:
cout<<"\n No existe el MES para el numero ingresado ";
}
cout<<"\n \n \n ";
Ejercicio switch03
#include<iostream.h>
int main()
{
int A, B;
char OP;
float RESULTADO;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n PRIMER NUMERO : "; cin>>A;
cout<<"\n SEGUNDO NUMERO : "; cin>>B;
cout<<"\n OPERADOR (+ , - , * , / ) : "; cin>>OP;
switch (OP)
{
case '+':
RESULTADO= A+B;
cout<<"\n LA SUMA ES: "<<RESULTADO;
break;
case '-':
RESULTADO= A-B;
cout<<"\n LA RESTA ES: "<<RESULTADO;
break;
case '*':
RESULTADO= A*B;
cout<<"\n LA MULTIPLICACION ES: "<<RESULTADO;
break;
case '/':
if (A!=0 && B!=0)
{
RESULTADO= static_cast<float>(A)/static_cast<float>(B);
cout<<"\n EL COCIENTE ES: "<<RESULTADO;
}
else cout<<"\n no se puede dividir entre cero ";
break;
default:
cout<<"\n No existe el MES para el numero ingresado ";
}
cout<<"\n \n \n ";
system("PAUSE");
return 0;
}
Ejercicio switch04
default:
cout<<"\n No existe la categoria ";
SW=0;
}
if (SW==1)
cout<<"\n PAGO : "<<PAGO;
cout<<"\n \n \n ";
system("PAUSE");
return 0;
}
Ejercicio switch05
#include<iostream.h>
int main()
{
int SWU,SWD,SWC=1;
int N;
int U, D, C;
cout<<"\n INGRESE ";
}
switch(D)
{
case 0:
case 1:
case 4:
case 9:
cout<<"\n LA CIFRAS: "<<D<<" TIENE RAIZ CUADRADA EXACTA";
break;
default:
SWD=0;
}
switch(C)
{
case 0:
case 1:
case 4:
case 9:
cout<<"\n LA CIFRAS: "<<C<<" TIENE RAIZ CUADRADA EXACTA";
break;
default:
SWC=0;
}
}
else
cout<<"\n EL NUMERO DEBE SER DE TRES CIFRAS";
#include <iostream.h>
int main()
{
int N;
int I, S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para la suma: "; cin>>N;
I = 2;
S = 0;
while ( I < N)
{
S = S + I; // hacemos uso de un acumulador
I = I +2;
}
cout<<"\n La Suma es: "<<S;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio WHILE03
#include <iostream.h>
int main()
{
int N;
int I, C;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para contar los valores: "; cin>>N;
I = 2;
C = 0;
while ( I < N)
{
C = C + 1; // hacemos uso de un CONTADOR
I = I +2;
}
cout<<"\n EL TOTAL DE NUMERO ES : "<<C;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio WHILE04
#include <iostream.h>
int main()
{
int N1, N2;
Ejercicio WHILE05
#include <iostream.h>
int main()
{
int N;
int I, S, M;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para contar los valores: "; cin>>N;
I = 3;
S = 0;
M = 1;
while ( I < N)
{
S = S + I; // hacemos uso de un Acumulador
M = M*I; // hacemos uso de una multiplicacion
I = I +3;
}
cout<<"\n LA SUMA ES : "<<S;
cout<<"\n EL PRODUCTO ES : "<<M;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio WHILE07
#include <iostream.h>
int main()
{
int N;
int C, S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n NUMERO ENTERO: "; cin>>N;
S=0;
while (N!=0)
{
C=N%10;
if(C%2!=0)
S=S+C;
N=N/10;
}
cout<<"\n LA SUMA ES : "<<S;
cout<<"\n ";
system("PAUSE");
return 0;
}
#include <iostream.h>
int main()
{
int N;
int C, D, S1, S2, SW;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n NUMERO ENTERO: "; cin>>N;
S1=0;
S2=0;
SW=0;
while (N!=0)
{
C=N%10;
if(SW==0)
{
S1= S1 + C;
SW=1;
}
else
{
S2= S2 + C;
SW=0;
}
N=N/10;
}
D= S1-S2;
cout<<"\n LA DIFERENCIA ES : "<<D;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio WHILE09
#include <iostream.h>
#include <math.h>
int main()
{
int N, B;
int R, I;
double NC;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n NUMERO ENTERO EN EL SISTEMA DECIMAL: "; cin>>N;
cout<<"\n LA BASE DEL NUEVO SISTEMA DE NUMERACION: "; cin>>B;
NC=0;
I=0;
Ejercicio DO_WHILE03
#include <iostream.h>
int main()
{
int N;
int I, S, C;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite: ";cin>>N;
S = 0;
C = 0;
I = 5;
do
{
S = S + I;
C = C +1;
I = I + 5;
}
while ( I <= N);
cout<<"\n La Suma es: "<<S;
cout<<"\n La Cantidad de numeros sumados es: "<<C;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio DO_WHILE04
#include <iostream.h>
int main()
{
float A, L, B, H, R, b;
int OP;
int Resp;
do
{
Ejercicio DO_WHILE06
#include <iostream.h>
int main()
{
int N;
int C, I, F, MAYOR=0;
Ejercicio FOR02
#include <iostream.h>
int main()
{
int N;
int I, S;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Numero limite para la suma : ";cin>>N;
S = 0;
for ( I = 2; I <= N; I=I+2)
S = S + I; // hacemos uso de un acumulador
cout<<"\n La Suma es: "<<S;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio FOR03
#include <iostream.h>
int main()
{
int N1, N2;
int I, C;
cout<<"\n INGRESE ";
cout<<"\n ";
Ejercicio FOR04
#include <iostream.h>
int main()
{
int N;
int C, I;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n NUMERO ENTERO : "; cin>>N;
C=0;
for(I=1; I<=N; I++)
if (N%I==0)
C=C+1;
if(C==2)
cout<<"\n El numero "<<N<<" es un numero primo absoluto";
else
cout<<"\n El numero "<<N<<" NO es un numero primo absoluto";
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio FOR05
#include <iostream.h>
int main()
{
int N;
int A, S, T, I;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n NUMERO ENTERO QUE LIMITA LA SERIE DE FIBONACCI : "; cin>>N;
A=0;
S=1;
cout<<"\n "<<A<<";"<<S;
for(I=3; I<=N; I++)
Ejercicio FUNCION02
#include <iostream.h>
//función que permite sumar, restar, multiplicar y dividir dos números enteros
float operacion(int A, int B, char OP)
{
float RESULTADO;
switch (OP)
{
case '+':
RESULTADO= A+B;
break;
case '-':
RESULTADO= A-B;
break;
case '*':
RESULTADO= A*B;
break;
case '/':
if (A!=0 && B!=0)
{
RESULTADO= static_cast<float>(A)/static_cast<float>(B);
}
break;
}
return RESULTADO;
}
// fin de la función
int main()
{
int X, Y;
char O;
float RESUL;
cout<<"\n INGRESE ";
cout<<"\n ";
cout<<"\n Primer numero : ";cin>>X;
cout<<"\n Segundo numero : ";cin>>Y;
Ejercicio ARREGLO03
#include <iostream.h>
int main()
{
int NUM[10];
int I, S;
float PROM;
cout<<"\n INGRESE 10 NUMEROS ENTEROS ";
cout<<"\n ";
for ( I=1; I<=10;I++)
cin>>NUM[I];
cout<<"\n ";
//SUMANDO LOS ELEMENTOS
S=0;
for ( I=1; I<=10;I++)
S = S + NUM[I];
// PROMEDIO
PROM = static_cast<float>(S)/10;
cout<<"\n LA SUMA ES: "<<S;
cout<<"\n EL PROMEDIO ES: "<<PROM;
cout<<"\n ";
system("PAUSE");
return 0;
}
Ejercicio ARREGLO06
#include <iostream.h>
int main()
{
int NUM[10];
int I, J, AUX, MENOR;
Ejercicio ARREGLO08
#include <iostream.h>
int main()
{
int NUM[10], PRI[10], NPRI[10];
int I, J, C;
int K=1, N=1;
cout<<"\n INGRESE 10 NUMEROS ENTEROS ";
cout<<"\n ";
for ( I=1; I<=10;I++)
cin>>NUM[I];
cout<<"\n ";
for ( I=1; I<=10;I++)
{
PRI[I]=0;
NPRI[I]=0;
}
// DETERMINANDO LOS PRIMOS ABSOLUTOS
for ( I=1; I<=10;I++)
{
Ejercicio ARREGLOBI03A
#include <iostream.h>
int main()
{
int NUM[3][4];
int I, J, S;
cout<<"\n ";
system("PAUSE");
Ejercicio ARREGLOBI03B
#include <iostream.h>
int main()
{
int NUM[3][4];
int S[3];
int I, J;