Académique Documents
Professionnel Documents
Culture Documents
INDICE
Unidad 1. Introduccin al Lenguaje C++.
1.1. Historia del lenguaje C/C++.
1.2. Estructura de un programa en C++.
1.2.1. Los primeros pasos en la programacin.
1.2.2. Primer programa: Hola Mundo.
1.2.3. Definicin de variables.
1.2.3.1 Variables.
1.2.3.2 Nombres de variables.
1.2.3.3 Tipos de Datos.
1.2.3.4 Valores en nmero entero.
1.2.3.5 Nmeros en punto flotante.
1.2.3.6 Valores de caracteres.
1.2.3.7 Cadenas y booleanos.
1.2.4 Declaracin de variables.
1.3. Dialogo con el usuario: entrada y salida de datos.
1.3.1 Elementos de salida cout.
1.3.2 Elementos de entrada cin.
1.3.3 El estilo de programacin.
Ciclo while.
Ciclo do/while.
Ciclo for.
Las opciones break y continue.
4.4.1. El enunciado break.
4.4.2. El enunciado continue.
Bibliografa consultada.
Figura
1.
Evolucin de los lenguajes de programacin.
Antes del lenguaje B, los sistemas operativos fueron desarrollados usando el lenguaje ensamblador de la CPU en
particular sobre la cual se ejecutaba el sistema operativo. Usando el lenguaje B como una base, Dennis Ritchie
desarroll el lenguaje C para Bell Labs. El primer propsito del lenguaje C fue desarrollar un sistema operativo
para la minicomputadora DEC PDP-11 (Ver la Figura 2). El sistema operativo resultante se conoce como
UNIX.
Dennis Ritchie (1977). El lenguaje C se convirti en un lenguaje popular que el ANSI (American National
Standars Institute) liber en 1989 las normas para un estndar del lenguaje C. Un estndar de un lenguaje de
programacin es un documento que describe los detalles del lenguaje para que los programas se escriban con las
especificaciones estndar y sean porttiles entre diversos sistemas.
El lenguaje C++ es una extensin del lenguaje C. Bjarne Stroustrup de Bell Labs mejor el lenguaje C al
principio de los aos ochenta adicionando la capacidad de la programacin orientada a objetos (POO). El
objetivo del doctor Stroustrup fue mantener la eficiencia de C proporcionado la fuerza de la POO al lenguaje.
programa ejecutable se lleva a cabo un proceso de compilacin, al final el archivo ejecutable (*.exe) es una
secuencia de bits que son interpretados o ejecutados por la computadora.
Para realizar un programa en C++ hay que seguir los siguientes pasos (Figura 4):
Escribir
el
cdigo
fuente
del
programa
(nombre_programa.cpp ): donde escribir significa
traducir el algoritmo escrito en pseudocdigo o
diagramas de flujo al lenguaje de programacin en un
de textos.
Generar
el
cdigo
objeto
del
programa
(nombre_programa.obj ): Se ejecuta un programa
llamado compilador indicndole cual es nuestro cdigo
fuente (nombre_programa.cpp ).
El compilador
traduce el programa fuente al lenguaje interno de la
computadora .
Generar
el
archivo
ejecutable
(nombre_programa.exe ). Se ejecuta un programa
enlazador (llamado linker) indicndole cual es nuestro
cdigo objeto (nombre_programa.obj ). El linker
genera un archivo ejecutable *.exe que ya se puede
ejecutar.
editor
de
Nombre de la
funcin
Bloque
#include <iostream.h.>
void main()
{
...
... Aqu va el cdigo del programa
...
}
Figura 5.
Estructura
bsica de un programa C++.
en donde la instruccin main() se define como una funcin porque delante de la palabra contiene parntesis.
En todos los programas C++ debe de haber una funcin titulada main() , que ser la primera que se ejecute al
correr el programa.
Observe que el cuerpo de la funcin aparece englobado entre unas llaves: { y }. Las llaves sirven para marcar
el inicio y final de un bloque de cdigo, en este caso en particular para decirle a la computadora en donde inicia
la primera instruccin del programa y cuando se ha llegado al final del mismo.
En la primera lnea del programa:
#include <iostream.h>
el signo # indica que esta sentencia es en realidad una instruccin para el precompilador. El compilador realiza
en realidad varias pasadas a travs del programa que est compilando. En la primera pasada, antes de intentar
efectuar la conversin del cdigo, se limita a buscar los signos #, y a hacer las sustituciones en el programa que
sean necesarias como consecuencia de las sentencias que siguen a esos signos (#).
La razn de ser para las directivas del preprocesador es la siguiente: los diseadores del lenguaje C prefirieron
la simplicidad y elegancia del lenguaje a sus funciones. Hay que tener en cuenta que estaban diseando un
lenguaje para la programacin de sistemas (de hecho se utilizaba para el desarrollo del sistema operativo
UNIX), de forma que para ellos era extremadamente importante la velocidad, eficiencia y potencia del lenguaje,
e ignoraban otras caractersticas ms mundanas, incluyendo en estas algunas tan bsicas como las funciones de
entrada/salida. Se podra decir que desarrollaron un lenguaje con una gramtica completa pero prcticamente
sin vocabulario.
Ken Thompson,
creadores del Sistema Operativo UNIX.
La directiva del preprocesador #include indica al compilador la inclusin del cdigo para manipular los
objetos de entrada y salida de la librera iostream.h.
La funcin main() , indica que el programa se inicia aqu. En la lnea despus del corchete indicador del
inicio del bloque de cdigo {, se utiliza el objeto cout, cuyo nombre deriva de Console Output y muestra en el
monitor el mensaje de salida : Hola mundo. El dato Hola mundo es enviado al objeto cout al colocar de manera
sencilla el smbolo (enviar a) de insercin, <<, antes del mensaje y despus del nombre del objeto.
cout<<"Hola mundo";
Observe que la sentencia termina con un punto y coma ;. El programa termina su ejecucin cuando encuentra
el ultimo corchete, }, de la funcin main()
El objeto cout esta diseado para desplegar una cadena en el monitor. Quizs se pregunte por qu no apareci
\n en la salida. Los caracteres \ y n, utilizados juntos, forman una secuencia de escape para una lnea nueva.
Le indican a cout que enve instrucciones al elemento de salida para iniciar una lnea nueva. En C++, el
carcter de la diagonal invertida (\) permite un escape de la interpretacin normal que lo sigue, alterando el
significado del siguiente carcter.
Observe en los archivos fuente de sus dos programas que todos los comandos del lenguaje C++ (palabras
reservadas) estn escritas en minsculas a excepcin de las cadenas de caracteres que forman parte de las
sentencias cout y que estas instrucciones terminan con un punto y coma. Estas sentencias estn contenidas en
el bloque de la funcin principal {,}. En el lenguaje C++ los caracteres en minsculas son diferentes a las
maysculas.
Actividad 1.
Objetivo: el alumno identificar los errores de sintaxis de un programa C++.
Qu es la sintaxis?
La sintaxis de un lenguaje de programacin es el conjunto de reglas para formular instrucciones
gramaticalmente correctas en un lenguaje. En la prctica, esto significa que una instruccin C++ con la sintaxis
correcta tiene una forma apropiada especifica para el compilador. En esa forma, el compilador aceptar la
instruccin y no generar un mensaje de error.
1.Cul es el error de sintaxis en los siguientes programas?
a)
#include <iostream.h>
void main()
{
cout<<"hola mundo";
b)
include <iostream.h>
void main()
{
cout<<"hola mundo"
}
c)
include <iostream.h>
void main(
{
cout<<"hola mundo";
}
1.2.3.1 Variables.
Las variables son una funcin bsica de cualquier lenguaje de programacin. Las variables son lugares en la
memoria en donde pueden guardarse valores; tienen asociado un nombre, un tipo y un valor (Figura 7).
Monedas
100
Contenido (valor)
de la variable
Nombre de la
variable
La siguiente sentencia,
numero=10;
asigna el valor 10 a la variable numero utilizando el signo igual (=). Esta instruccin hace que la computadora
almacene el valor de 10 (si equivalente en binario) en una posicin de memoria que se ha reservado para
contener a la variable numero .
Antes de asignar un valor a una variable, dentro de un programa, debe definirse el tipo de dato que contendr
esa variable. En este ejemplo la declaracin,
int numero;
reserva espacio para contener un numero entero que se encuentre en un rango de 1 a 32767, es decir el nmero
puede almacenar un valor 1, 10, 1234, inclusive el 32767. Cuando la computadora lee el valor almacenado en
la memoria para imprimirlo
cout<<numero;
debe decidir de que forma ha de interpretar los ceros y unos almacenados en esa parte de la memoria para
desplegarlo en la pantalla, utilizando como informacin el tipo de dato asignado a la variable.
10
La primera lnea: #include<iostream.h> comunica al preprocesador que incluya dentro del programa el
contenido del archivo iostream.h. Este archivo contiene informacin relacionada con la entrada/salida de datos
(mostrar por pantalla un resultado, leer de teclado los datos que escribe el usuario, etc.) .
Un programa C++ est formado por una o ms funciones. main() es una funcin que debe aparecer en
cualquier programa C++ porque de all se inicia la ejecucin del mismo.
Las llaves ({,}) en este programa indican bloque de cdigo, en este caso particular el inicio y final de la funcin
main.
La lnea: int num; es una declaracin de una variable donde num es el nombre de la variable e int indica que
la variable es de tipo entero, es decir, que podrn almacenarse valores que sean nmeros enteros.
En la lnea num=10; le asignamos el nmero 10 a la variable. La sentencia
cout<<num*num;
11
Actividad 2.
Objetivo: el alumno identificar los errores de un programa C++.
Un error de sintaxis es una violacin de las reglas de programacin. Durante el proceso de compilacin de un
programa C++, se generarn mensajes de advertencia y error. El programa no compilar ms all del punto del
error hasta que sea corregido. Una vez que se corrige el error se debe intentar compilar otra vez el programa.
Si se detectan otros errores, deber corregirlos, volver a compilar el programa y as sucesivamente, hasta que
todo el programa est bien compilado.
Una vez que se ha compilado el programa y generado un archivo ejecutable, deber correrlo. Sin embargo, slo
porque se ha compilado el programa exitosamente no significa que se ejecutar correctamente dentro de todas
las posibles condiciones. Algunas fallas comunes que ocurren en esta etapa incluyen errores lgicos y de tiempo
de ejecucin. Un error de lgica ocurre cuando el compilador hace lo que le dice que haga, pero no hace lo que
usted quiere que haga. Un error de tiempo de ejecucin ocurre cuando el programa intenta realizar una
operacin ilegal como las definidas por las leyes de matemticas.
1.Cul es el error de sintaxis del siguiente programa?
#include <iostream.h>
void main()
{
int num
num=10;
cout<<El valor de la variable num es ;
cout<<num;
}
2.Encuentra el error de lgica del siguiente programa; Cul es el valor de la variable z?:
#include <iostream.h>
void main() {
int x,y,z;
z=x+y;
cout<<z;
}
12
Los identificadores que comienzan con dos subrayados, estn reservados para uso interno del compilador
C++.
C++ es sensible al tamao de las letras. As pues, las letras maysculas y minsculas se tratan como
caracteres diferentes.
nombre_apellidos
Nombre_Apellidos
NOMBRE_APELLIDOS
13
Actividad 3.
Objetivo: Identificar los nombres de variables correctos e incorrectos.
1.Indique con una cruz en la casilla correspondiente si los siguientes son nombres vlidos para las variables. Si
son nombre invlidos, explique por qu.
Variable
poder
densidad
m1234$
ampNuevo
1234
abcd
total
tangente
b34a
!examen
$peso
aux numero
Correcta
Incorrecta
Por qu?
14
15
Teclado
Pantalla
Figura 8. Los programas C++ procesan diferentes tipos de datos.
-10
+25
1000
253
-26351 +36
Como se observa, un nmero entero puede tener signo de mas (+) o menos (-) al principio o no tenerlo. No se
permiten comas, puntos decimales o smbolos especiales, como el signo de pesos ($). Algunos ejemplos de
valores invlidos en nmeros enteros son
$255.52
2,553 3.
6,243,892
1,49284
+6.0
Las asignaciones de espacio de almacenamiento ms comunes para el tipo de dato entero se muestran en la
Tabla 1.
Tabla 1. Tipo de dato Entero.
Palabra reservada
int
long
Tamao
2 Bytes
4 Bytes
Mximo valor
32,767
2,147,483,647
Mnimo valor
-32,768
-2,147,483,648
Actividad 4.
Objetivo: Distinguir el rango de valores para un nmero entero.
1.Indique con una cruz en la casilla correspondiente si los siguientes valores de tipo entero no son legales de
acuerdo a la Tabla 1.
16
Nmero entero
+35
35
-247
0
3.14
32,767
32768
Correcto
Incorrecto
Por qu?
2. El overflow o desbordamiento de pila se define como la condicin en que el programa intenta colocar ms
datos en un rea de memoria de los que sta puede contener, lo que provoca la emisin de un mensaje de error.
Por ejemplo, multiplicando dos nmero enteros puede fcilmente producir un resultado entero ms all de este
rango, dando un resultado incorrecto. En cul de las siguientes lneas del programa se produce un overflow?
#include <iostream.h>
void main()
{
int valor1,valor2,valor3;
valor1=32*1000;
valor2=100*1000;
valor3=(100*1000)/5;
cout<<Valor 1 =<<valor1;
cout<<Valor 2 =<<valor2;
cout<<Valor 3 =<<valor3;
}
5.
-6.2
3251.92
0.0
0.33
-6.67 +2.
Observe que los nmeros 5., 0.0 y +2. estn clasificados como nmeros en punto flotante, mientras que los
mismos nmeros escritos sin punto decimal (5,0,+2) seran valores en nmero entero. Como ocurre con los
valores en nmero entero, en los nmeros en punto flotante no se permiten smbolos especiales, como el signo
de pesos o la coma. Son ejemplos de nmeros invlidos en punto flotante.
5,326.25
24
123
6,459 $10.29
C++ tiene tres categoras de nmeros en punto flotante: flotante (float), doble (double) y largo doble (long
double). La diferencia entre estos nmeros es la cantidad de espacio para almancenaje que una computadora
utiliza en cada tipo.
17
Las asignaciones de espacio de almacenamiento ms comunes para el tipo de dato flotante se muestran en la
Tabla 2.
Tabla 2. Tipo de dato flotante.
Palabra reservada
float
double
long double
Tamao
2 Bytes
8 Bytes
10 Bytes
Mximo valor
3.4x1038
1.7x10308
1.1x104932
Mnimo valor
3.4x10-38
1.7x10-308
1.1x10-4932
Actividad 5.
Objetivo: Distinguir el rango de valores para un nmero flotante.
1.Indique con una cruz en la casilla correspondiente si los siguientes valores de tipo flotante no son legales de
acuerdo a la Tabla 2.
Nmero flotante
35.7
-35.7
0.456
25
3,240
32,767.70
$32,768.43
Correcto
Incorrecto
Por qu?
18
Los valores de caracteres normalmente se almacenan en una computadora utilizando cdigos ASCII (American
Standard Code For Information Interchange). Hay dos tipos de caracteres definidos en C++: el char y el
unsigned char, ambos se muestran en la Tabla 3.
Tabla 3. Tipo de dato char.
Palabra reservada
char
unsigned char
Tamao
1 Byte
1 Byte
Mximo valor
127
0
Mnimo valor
-128
255
Recuerde que los caracteres individuales se encierran en comillas sencillas. As a dentro denota un carcter
individual, mientras a significa una cadena de caracteres.
Los datos booleanos estn restringidos a uno de dos valores: true (verdadero) y false (falso), es la forma ms
simple de datos que puede usar un programa. Tradicionalmente, C y C++ no admitan los datos bolanos ms
que una representacin de nmeros enteros 1 y 0 para representar verdadero y falso.
En la practica, los datos booleanos son tiles para examinar una condicin especifica, y como la condicin
puede resultar cierta o falsa, permiten realizar una accin determinada.
int total;
Indica a la computadora
que
19
Donde el tipo de dato determina los valores que puede tomar la variable as como las operaciones que con ella se
pueden realizarse; el identificador indica el nombre de la variable.
De tal manera, la instruccin para declarar
int total;
declara total como el nombre de la variable capaz de almacenar un valor en nmero entero.
Las variables utilizadas para guardar los valores en punto flotante se declaran utilizando la palabra clave float.
Por ejemplo, la instruccin
float suma;
declara suma como una variable que ser utilizada para guardar un nmero en punto flotante. Otros ejemplos
de declaracin de variables se muestran a continuacin:
int k;
int j,k,m;
double temperatura;
long saldo;
20
#include <iostream.h>
void main() {
/*declaracion de variables*/
float calif1;
float calif2;
float total;
float promedio;
/*inicializacion de variables*/
calif1=85.5;
calif2=97.0;
/*procesa los datos de entrada*/
total=calif1+calif2;
promedio=total/2.0;
/*imprime los resultados*/
cout<<"La calificacin promedio es "<<promedio;
}
21
El programa asigna valores de tipo flotante a las variables calif1, calif2 y procesa esos valores para obtener el
total y promedio de las calificaciones
total=calif1+calif2;
promedio=total/2.0;
Note que cuando un nombre de variable se enva a cout el valor almacenado se colocar en el flujo de salida y se
desplegar.
cout<<"La calificacin promedio es "<<promedio;
Las variables en nmero entero, real y carcter se deben declarar antes de utilizarlos.
22
Observe que la primera letra guardada en la variable ch es a y la segunda letra guardada es m. Como una
variable slo se puede utilizar para guardar un valor a la vez, la asignacin de m a la variable hace que a quede
sobrescrita automticamente.
Actividad 6.
Objetivo: Distinguir los diferentes tipos de datos C++.
1.Indique con una cruz en la casilla correspondiente el tipo de dato al que corresponde cada nmero.
Nmero
Caracter
(char)
Cadena Entero
(String) (int)
Flotante
(float)
0
-120
2.0
X
X
65.4
-708
0'
250
-250.0
x
12456
175.
2.Determina los tipos de datos apropiados para almacenar los valores de los siguientes datos
a) El promedio de cuatro calificaciones.
b) Los nombres de las capitales del mundo.
c) Los nmeros de asientos de un tren de pasajeros.
d) Los nombres de los elementos de la tabla peridica de elementos de qumica.
3.Determina el tipo de dato adecuado para almacenar los siguientes valores
a)
b)
c)
d)
e)
23
En C++ la librera de funciones iostream se encarga de proporcionar al programador las operaciones bsicas de
Entrada/Salida (E/S) para que pueda enfrentarse con xito a la resolucin de problemas con computadora. Para
acceder a la biblioteca iostream se debe incluir en cada programa el archivo de cabecera iostream.h, mediante la
directiva del preprocesador #include. Es decir, casi todos los programas C++ contienen la directiva:
#include <iostream.h>
La biblioteca iostream se basa en el concepto de flujos. Un flujo o stream es un medio para describir el flujo o
secuencia de datos de una fuente (productor) a un destino (consumidor). C++ realiza todas las entradas y
salidas como flujos de caracteres. Si su programa recibe entrada del teclado, de un archivo de disco, de un
modem o de un ratn, C++ ve slo flujo de caracteres. C++ no tiene que conocer cual es el tipo de dispositivo
que proporciona la entrada; el sistema operativo maneja los dispositivos especficos y los programas manejan
caracteres de datos sin preocuparse del dispositivo.
24
Esta E/S por flujos significa que se pueden utilizar tanto las mismas funciones para recibir entrada desde el
teclado como desde un modem. Se pueden utilizar las mismas funciones para escribir en un archivo en disco,
impresora o en la pantalla. La Figura 11 ilustra los medios para encauzar o dirigir la salida o entrada del flujo
al dispositivo adecuado.
<<
cou
t
variable
>>
cin
variable
Descripcin
Dispositivo estndar de entrada
Dispositivo estndar de salida
Dispositivo estndar de error
Dispositivo estndar de error
El flujo cout se utiliza para visualizar resultados en la pantalla y el flujo cin para permitir al usuario leer o
capturar informaciones.
25
Donde elemento#1, elemento#2...elemento#n es una lista de elementos para escribirse en pantalla los
cuales estn separados por el operador de insercin de flujo ( <<). El objeto cout es un flujo de salida que se
liga o conecta al sistema de pantalla de su monitor. Los elementos se insertan dentro de un flujo de salida a
travs del operador de insercin de flujo (<<).
Para escribir informacin de caracteres, deber encerrar la informacin de la salida entre comillas tal y como se
muestra en la sentencia cout del programa
cout<<"Evaluacin de expresiones aritmticas";
Cuando quiera escribir informacin numrica fija, simplemente inserte los valores numricos dentro del flujo de
salida cout con el uso del operador de insercin (<<), por ejemplo
cout<<"\n5 + 3 + 4 / 2 = "<<5+3+4/2;
cout<<"\n5 + 3 * 4 / 2 = "<<5+3*4/2;
cout<<"\n5 + 3 / 4 + 2 = "<<5+3/4+2;
//10
//11
//7
26
La declaracin de la variable
int num;
indica que num es una variable de tipo entero, es decir, que se podrn almacenar valores que sean enteros. El
compilador reserva en la memoria principal de la computadora espacio suficiente para almacenar los valores
asignados para num.
La sentencia de asignacin
num=1;
guarda el valor de 1 en la variable num. y con la siguientes sentencias se imprime un mensaje en pantalla y se
recupera el contenido de la variable num .
cout<<"La variable num tiene un valor de -->";
cout<<num;
27
6.Escribe un programa para convertir de grados Fahrenheit a Celsius. Para 59 Fahrenheit el programa deber
desplegar el siguiente mensaje:
59 Fahrenheit son 15 celsius.
La frmula para convertir Fahrenheit a Celsius es C=(F-32)*5/9 donde la C representa a los grados Celsius y la
F a los Fahrenheit.
7.Escriba un programa que convierta horas y minutos a minutos. Por ejemplo para 2 horas y 15 minutos la
salida por pantalla deber mostrarse:
2 Horas y 15 Minutos son 125 Minutos.
8.Escriba un programa que despliegue los resultados de las expresiones 3.0*5.0, 7.1*8.3-2.2, 3.3/
(6.1*5) . Calcule manualmente el valor de estas expresiones para verificar que los valores desplegados son
correctos.
9.Escriba
un
programa
que
despliegue
el
resultado
de
la
expresin
15/2*7(7+(68-
15*33+45*45/16)/3)15+9 . Calcule manualmente el valor de estas expresiones para verificar que los valores
28
La instruccin de lectura se forma por la palabra cin y el operador de extraccin de flujo ( >>), que es seguido
por la variable que ser leda. El operador (>>) extrae los datos que se van a leer de los datos de entrada en la
memoria temporal de flujo (Figura 12).
#include <iostream.h>
void main()
{
cin>>
cout<<
}
Teclado
Pantalla
Figura 12. cin se utiliza para introducir datos y cout para desplegarlos.
La declaracin de la variable
int numero;
indica que numero es una variable de tipo entero y el compilador reserva en la memoria principal de la
computadora espacio suficiente para esa variable. Cuando la computadora ejecuta las sentencias:
cout<<"Dame un nmero -->";
cin>>numero;
29
Despliega un mensaje en la pantalla (se detiene la ejecucin del programa) esperando a que el usuario ingrese
un nmero entero. Este valor se asignar a la variable nmero y la computadora continuar con la ejecucin del
programa.
Si el nmero teclado despus del mensaje impreso fue 5 y se oprimi la tecla <Enter> en la pantalla aparecer:
Dame un nmero -->5
5 al cuadrado es -->25
La declaracin de la variable
float pies;
reserva en la memoria principal de la computadora espacio suficiente para contener a una variable de tipo
flotante. Cuando la computadora ejecuta las sentencias:
cout<<"Dame un nmero de pies -->";
cin>>pies;
Despliega un mensaje, esperando que el usuario ingrese un nmero y esperar la respuesta. Este valor se
asignar a la variable pies y la computadora continuar con la ejecucin del programa.
30
Si el nmero teclado despus del mensaje impreso fue 6 y se oprimi la tecla <Enter> en la pantalla aparecer:
Dame un nmero de pies -->6
6 pies son 72 pulgadas
Actividad 6.
Objetivo: Distinguir los diferentes tipos de datos C++.
La asignacin de tipos de datos para las variables tiene dos objetivos principales: detectar errores de operaciones
en los programas y determinar como ejecutar las operaciones.
1.El rea es una medida de una superficie determinada. As el rea de un rectngulo se calcula multiplicando el
largo por el ancho. Detecta y corrige los errores en los siguientes programas:
a)
#include <iostream.h>
void main() {
ancho=15
area=largo*ancho;
cout<<El area es <<area;
}
b)
#include <istocream.h>
void main() {
int largo,ancho,area;
area=largo*ancho;
largo=20;
ancho=15
cout<<El area es <<area;
}
31
c)
#include <istocream.h
void main {
int largo;ancho,area;
cout<<largo =;cin>>largo;
cout<<ancho =;cin>>ancho;
largo*ancho=area;
cout<<El area es <<area;
b)
#include <iostream.h>
void main()
{
int a,b,c;int x;
cin>>a;cin>>b;cin>>c;
cin>>a;cin>>b;cin>>c;
x=a*b/c%2;
x=x-(a+b/2.0)+c*a;
cout<<x;
}
cout<<x;
}
32
//este es un comentario
//este programa imprime un mensaje
//este programa calcula la raz cuadrada
Los comentarios mltiples de lnea empiezan con el smbolo /* y terminan con el smbolo */.
33
La cual indica que el valor que resulte de evaluar la expresin tiene que ser almacenado en la variable
especificada. Una expresin es cualquier combinacin de constantes, variables y llamadas a funciones que se
pueden evaluar para producir un resultado. De tal manera, la expresin en una instruccin de asignacin se
puede utilizar para efectuar clculos con los operadores aritmticos. Por ejemplo:
suma = 3+7
dif = 15-6
producto = 0.05*14.6
contador = contador+1
totalNuevo = 18.3+total
impuestos = 0.06*cantidad
pesoTotal = factor*peso
promedio = suma/elementos
En una instruccin de asignacin, la computadora calcula el valor de la expresin a la derecha del signo de
igual y luego guarda este valor en la variable ubicada a la izquierda del signo igual.
Por ejemplo en la
expresin
pesoTotal=factor*peso
factor
1.06
peso
155.0
pesoTotal
164.30
Variables en Memoria
A la variable se le asigna un valor inicial de 25. El operador de asignacin le indica a la computadora que
guarde el valor de la constante en la variable a la izquierda del signo.
suma=25;
El procesamiento del programa se inicia cuando se despliega en pantalla el valor inicial de la variable suma en
pantalla utilizando la sentencia
cout<<"El valor de la variable suma es -->"<<suma;
produciendo un valor de 35, que ser guardado nuevamente en la variable suma al lado izquierdo del signo
igual. La ultima instruccin del programa imprime el valor almacenado en la variable suma.
cout<<"\nEl valor de suma + 10 es -->"<<suma;
En la siguiente sentencia se despliega un mensaje pidiendo al usuario ingrese un valor de entrada desde el
teclado para la variable num y se utiliza la instruccin cin para almacenar el valor tecleado por el usuario.
cout<<"Introduce un nmero -->";
cin>>num;
El procesamiento del programa se inicia cuando la computadora recupera el valor proporcionado por el usuario
y lo multiplica por dos, produciendo un nuevo valor, que ser guardado nuevamente en la variable num
(sobrescribiendo entonces el valor anterior de la variable).
num=num*2;
La salida desplegada por el programa ser, para un valor proporcionado por el usuario de 2 es:
Introduce un nmero -->2
El doble del nmero es -->4
Observe que se declaran dos variables con una sola instruccin declaratoria; esto es posible porque las variables
son del mismo tipo de datos. En las siguientes sentencias se asignan valores iniciales a las variables
a=2;
b=6;
Las instrucciones cout hacen que el valor almacenado en las variables a,b se desplieguen en pantalla
cout<<"El valor de a es -->"<<a;
Finalmente las instrucciones cout despliegan los valores almacenado en a,b y el programa termina.
cout<<"\nEl valor de a es -->"<<a;
cout<<"\nEl valor de b es -->"<<b;
En las siguientes sentencias se despliegan mensajes mediante la instruccin cout pidiendo al usuario ingrese
un valor de entrada desde el teclado para la variable a y b respectivamente; se utiliza la instruccin cin para
almacenar el valor tecleado por el usuario.
cout<<"Introduce el valor de a -->";
cin>>a;
cout<<"Introduce el valor de b -->";
cin>>b;
El programa termina cuando procesa las instrucciones cout , desplegando los contenidos de las variables a y b.
cout<<"El valor de a es -->"<<a;
cout<<"\nEl valor de b es -->"<<b;
La salida desplegada por el programa ser, para un valor proporcionado por el usuario para la variable a=2 y
b=6:
Introduce el valor de a -->2
Introduce el valor de b -->6
El valor de a es -->8
El valor de b es -->6
Actividad 7.
Objetivo: el alumno determinar los valores de las variables y la salida impresa de los programas C+
+.
La operacin de asignacin es una operacin destructiva debido a que el valor almacenado en una
variable se pierde o destruye y se sustituye por el nuevo valor en la sentencia de asignacin.
1.Cul es el valor de las variables enteras a,b?
#include <iostream.h>
void main()
{
/*declaracin de variables*/
int a,b;
/*asignacin de valores*/
a=5;
b=7;
/*procesa los datos de entrada*/
a=a+1;
b=a+b;
/*imprime los resultados*/
cout<<"El valor de a es -->"<<a;
cout<<"\nEl valor de b es -->"<<b;
}
/*asignacin de valores*/
c=3;
b=8;
/*procesa e imprime los datos de entrada*/
cout<<"El valor de c es -->"<<c;
c=b+1;
cout<<"\nEl valor de b es -->"<<b;
cout<<"\nEl valor de c es -->"<<c;
}
15.Escribir un programa que solicite al usuario un nmero dado de horas y lo convierta en el equivalente de
minutos y segundos. Por ejemplo, para el nmero ledo desde el teclado
Dame el nmero de horas: 1
17.Escriba un programa que calcule e imprima el nmero de segundos que hay en un determinado nmero de
das.
18.Desarrolle un programa para leer datos expresados en pies y transformarlos a centmetros, metros, pies y
yardas. Los factores de conversin son:
1 pie = 12 pulgadas.
1 yarda = 3 pies.
1 pulgada = 2.54 centmetros.
1 metro = 100 centmetros.
La salida impresa en su pantalla sera la siguiente (por ejemplo para 3 pies)
Nmero de pies: 3
3
3
3
3
pies
pies
pies
pies
son
son
son
son
.9144 metros
91.4 centmetros
36 pulgadas
1 yardas
19.Escriba un programa que lea desde el teclado dos variables enteras y que permita intercambiar los contenidos
(valores) de las variables. Una salida tpica del programa sera
El valor de a: 3
El valor de b: 5
El intercambio de variables
a=5
b=3
2.3.Operadores aritmticos.
Los operadores utilizados para las operaciones aritmticas se llaman operadores aritmticos y se muestran a
continuacin:
Tabla 5. Tabla de operadores aritmticos.
Operador
*
/
%
+
-
Significado
Multiplicacin
Divisin
Mdulo aritmtico
Suma
Resta
Ejemplo
5*5
14/7
20 % 7
3+4
5-7
Una expresin simple de aritmtica consiste en un operador aritmtico que conecta a dos operandos en la forma
de:
Operando operador Operando
Dividir un nmero entero entre el nmero entero 2 produce un resultado de nmero entero. Como los nmeros
enteros no pueden contener una fraccin, no se obtiene el resultado esperado 3.3
Pero si realizamos la expresin aritmtica:
10.0/3
Para obtener un resultado confiable, es necesario establecer el orden de prioridad (jerarqua) de las operaciones
aritmticas como se listan a continuacin
1.
2.
3.
4.
Jerarqua
(mayor)
(menor)
Los parntesis deben utilizarse para especificar grupos lgicos de operandos y para indicar con claridad, tanto a
la computadora como a los programadores, el orden deseado de las operaciones aritmticas. En ausencia de
parntesis, las expresiones que contienen operaciones mltiples sern evaluadas de acuerdo con la prioridad, o
precedencia de los operadores.
Cuando utilice los parntesis recuerde que el nmero de parntesis que abren, ( , siempre debe igualar al
nmero de parntesis que cierran, ) , para que no existan conjuntos dispares.
4+2*5
4+10
14
7+5-6
11-6
5
9+7*8-36/5
9+56-36/5
9+56-7.2
65-7.2
57.8
3.5 + 5.09-14.0/4.0
3.5+5.09-3.5
8.59-3.9
5.09
1.
2.
3.
4.
2.1*(1.5+30*4.1)
2.1*(1.5+12.3)
2.1*13.8
28.98
Actividad 8.
Objetivo: el alumno determinar los valores de las expresiones siguientes.
1. Determina el valor de las siguientes expresiones.
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
l)
m)
4+2*6
3+5*(10-(2*4))
(9+3)*5 / 4 % 7+1
3.5+5.09-14.0/4.0
2*3/12*8/4
10*(1+7*3)
(10+3) / 4
20.0-2.0/(6.0+3.0)
(24+2*6) / 4
3+4*(8*(4-(9+3)/6))
4-40 / 5
5 % 2
16/2*(7+(68-15*33+(4*2/16)/2)+4)+19
X-(A+B / 2)+Y*Z
A+B*(Y-(Z % 2))
(X+Y/Z)/(X-Y/Z)
3.Suponga que la distancia tiene un valor en nmero entero de 1, v tiene un valor en nmero entero de 50, n
tiene un valor en nmero entero de 10, y t tiene un valor en nmero entero de 5. Evale las siguientes
expresiones:
a)
b)
c)
d)
e)
f)
g)
h)
i)
n/t+3.
v/t+n-10*distancia.
v-3*n+4*distancia.
distancia/5.
18/t.
t*n.
v/20.
(v+n)/(t+distancia).
v+n/t+distancia.
/*valores de entrada*/
cout<<"Introduce el valor de la base -->";
cin>>base;
cout<<"Introduce el valor de la altura -->";
cin>>altura;
/*procesa los datos de entrada*/
area=(base*altura)/2;
/*imprime los resultados*/
cout<<"La superficie del tringulo es -->"<<area;
}
La base es una variable de tipo flotante, que expresa la base del tringulo; altura es una variable de tipo
flotante. La variable area almacena la superficie del tringulo.
int base,altura;
float area;
En las siguientes sentencias se despliegan mensajes mediante la instruccin cout pidiendo al usuario ingrese el
valor de la base y la altura respectivamente; se utiliza la instruccin cin para almacenar el valor tecleado
por el usuario.
cout<<"Introduce el valor de la base -->";
cin>>base;
cout<<"Introduce el valor de la altura -->";
cin>>altura;
El resultado de una divisin depende de que los nmeros que se dividen sean enteros o de punto flotante. El uso
de los parntesis ayudar a clarificar el criterio de orden de procedencia de las operaciones, as los parntesis
de la subexpresin (base*altura ) indica que es la primera en evaluarse y despus de obtener el resultado se
divide entre dos.
El programa termina cuando procesa la instruccin cout , desplegando el resultado del calculo
cout<<"\nLa superficie del tringulo es -->"<<area;
Antes de poder utilizar las variables en cualquier lugar del programa, ya sea para asignarles un valor o que
puedan intervenir como parte de una expresin, se deben declarar. La variable prom es de tipo flotante, que
expresa el promedio de los tres valores enteros num1,num2,num3
int num1,num2,num3;
float prom;
En las siguientes sentencias se despliegan mensajes mediante la instruccin cout pidiendo al usuario ingrese
los valores para las variables num1,num2,num3
cout<<"Introduce el primer valor -->";
cin>>num1;
cout<<"Introduce el segundo valor -->";
cin>>num2;
cout<<"Introduce el tercer valor -->";
cin>>num3;
Como el promedio de tres nmeros enteros puede ser un nmero en punto flotante, la variable prom , que se
emplea para guardar el promedio fue declarada como una variable de punto flotante. Observe que los parntesis
son necesarios para la instruccin de asignacin
prom=(num1+num2+num3)/3.0;
Sin los parntesis, el nico valor que se dividira entre tres sera el nmero entero num3 (esto se debe a que la
divisin tiene una jerarqua superior a la suma).
El programa termina cuando procesa la instruccin cout , desplegando el resultado del calculo
cout<<"El promedio de tres nmeros es -->"<<prom;
Cuando ejecute el programa, por ejemplo para valores de 10,6,5 aparecer el siguiente resultado:
y tres variables de tipo flotante para almacenar clculos intermedios y los resultados finales
float raiz1,raiz2,raiz;
El programa pide al usuario los tres valores de tipo entero con las instrucciones cout y almacena los valores
utilizando cin .
Con las variables almacenadas en la memoria de la computadora, entonces el programa calcula las raices de la
ecuacin, aplicando las siguientes sentencias previamente diseadas para resolver el problema
raiz=sqrt(b*b-4*a*c);
raiz1=(-b+raiz)/(2*a);
raiz2=(-b-raiz)/(2*a);
Observe la importancia de los parntesis para definir el orden de evaluacin de la expresin. Observe que la
funcin sqrt calcula la raz cuadrada del argumento (b*b-4*a*c) y que para algunos valores de a,b y c se
obtiene un error. Esto es debido a que la variable raiz toma un valor negativo, lo que indica que no hay races
reales sino complejas.
El programa termina cuando procesa la instruccin cout , desplegando el resultado del calculo
cout<<"\nRaices de la ecuacin "<<a<<"x2+"<<b<<"x+"<<c<<"=0";
cout<<"\nRaiz 1 -->"<<raiz1;
cout<<"\nRaiz 2 -->"<<raiz2;
Cuando ejecute el programa, por ejemplo para valores de 1,3,2 aparecer el siguiente resultado:
Raices de
Introduce
Introduce
Introduce
donde nmero almacena el valor proporcionado por el usuario y digito se utiliza para los clculos realizados por
el programa
El programa pide al usuario el nmero de cinco dgitos utilizando la instruccin cout y guarda el valor en
nmero utilizando cin .
cout<<"Introduce un nmero de cinco dgitos -->";
cin>>numero;
Para obtener el inverso de un nmero, la clave esta en obtener el valor que representa cada cifra dentro de un
nmero (valor relativo). Por ejemplo, en la cantidad 543, el 5 tiene un valor relativo de 500, 4 tiene un valor
relativo de 40 y 3 tiene un valor relativo de 3. Para obtener el valor relativo de las unidades utilizamos entonces
la frmula:
digito=numero%10;
cout<<digito;
e inmediatamente se manda imprimir el valor en pantalla. El siguiente paso obtener de nuevo el valor de las
unidades pero no del nmero original, por lo que efectuamos:
numero=numero/10;
digito=numero%10;
cout<<digito;
Cuando ejecute el programa, por ejemplo para el valor 12345 aparecer el siguiente resultado:
Introduce un nmero de cinco dgitos -->12345
El inverso de 12345 es -->54321
25.Elabore un programa para calcular las monedas que deben darse como cambio en los siguientes casos:
Si todas las compras fueran menores de un peso.
Si el comprador pagara siempre con un billete de a peso.
Si debiramos dar en cambio el nmero mnimo de monedas.
Si solamente podemos dar en cambio monedas de un centavo, de cinco, de diez, de veinte, y de cincuenta.
El programa obtiene el total de la compra y hace el clculo correspondiente. Una salida tpica para el programa
sera:
Monto de la compra: 45
Cambio: 55
Nmero de monedas de 1 centavo: 0
Nmero de monedas de 5 centavos: 1
Nmero de monedas de diez centavos: 1
Nmero de monedas de 20 centavos: 2
Se quiere correr el programa para las siguientes compras: 97 Centavos, 78 centavos, 54 centavos, 21 centavos y
1 centavo.
Significado
Igualdad
Desigualdad
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Ejemplo
x==3
x!=3
x<3
x>3
x<=3
x>=3
Los operadores relacionales en la tabla se pueden usar para comparar dos variables o expresiones. En general,
slo se debe comparar datos de la misma clase de datos. Esto significa que los enteros deben compararse con
enteros, punto flotante con punto flotante y caracteres con caracteres. La nica excepcin a la regla es que los
valores de punto flotante se pueden comparar con enteros, porque los enteros son reales. En todos los casos, la
operacin genera un resultado booleano de verdadero o falso.
Los operadores relacionales tambin se pueden combinar con operadores aritmticos; por ejemplo:
5+3<4
Ahora la pregunta es: Cmo evala la computadora esta expresin?, Primero realiza la operacin de adicin o
la operacin relacional?; si primero realiza la operacin de adicin, el resultado es falso. Sin embargo, si realiza
la operacin relacional, 3 es menor que 4 y all el resultado es verdadero.
Como debe sospechar, la operacin de adicin se realiza primero y despus la operacin relacional. En
consecuencia, el resultado es falso, porque 8 no es menor que 4. Recuerde, cuando los operadores relacionales
se combinan con operadores aritmticos dentro de una expresin, los operadores relacionales siempre se
realizan al final.
Tabla 8. Prioridad de los operadores.
Prioridad
1.
2.
3.
4.
5.
Operador
Contenido del parntesis ().
^
*, /, %
+, =, <, >, <=, >=, !=
(5*2)>7*2
10>7*2
10>14
FALSO
(6*5+7*3/4)<=(6*3/7)
(30+7*3/4)<=(6*3/7)
(30+21/4)<=(6*3/7)
(30+5)<=(6*3/7)
35<=(6*3/7)
35<=18/7
35<=2
FALSO
(1560%6*2+7)<(7+8*3*4)
(0*6*2+7)<(7+8*3*4)
(0*2+7)<(7+8*3*4)
(0+7)<(7+8*3*4)
7<(7+8*3*4)
7<(7+24*4)
7<(7+96)
7<103
VERDADERO
Actividad 9.
Objetivo: el alumno determinar los valores de las variables y la salida impresa de los programas C+
+.
1. Si A y B son variables enteras que tienen asignados los valores 3 y 6, respectivamente, entonces determine el
valor lgico de las siguientes expresiones.
1. (2+3*A)<>6+(B-1)
2. (1+(2/2)%B)<=4*A
3. 2-7/(2*B-A)==0
4. B>=A+3
2.Determine el valor de las siguientes expresiones. Suponga que a=5, b=2, c=4, d= 6 y e=3.
a)
b)
c)
d)
e)
a>b
a<>b
d%b==c%b
a*c!=d*b
(a+b*c/e+4)=((a*5%6)%(c+b/a))
&&
||
Significado
Negacin
Conector y
Conector o
El operador NOT () se usa para negar, o invertir un valor booleano. Debido a que solo hay dos valores posibles
bolanos (verdadero y falso), la negacin de uno da como resultado el otro.
Una tabla de verdad muestra el resultado de una operacin lgica sobre un valor booleano.
Tabla 10. Operador de negacin.
A
Verdadero
Falso
!A
Falso
Verdadero
B
Verdadero
Falso
Verdadero
Falso
A || B
Verdadero
Verdadero
Verdadero
Falso
Observe en la tabla que A || B es verdadero si A es verdadero o B es verdadero. Por supuesto si ambos A y B son
verdaderos, el resultado es verdadero.
El operador AND (&&) tambin opera sobre valores de multiplicacin de bolanos. Aqu, si A y B son variables
booleanas, entonces la expresin A && B es verdadero slo cuando A y B ambos son verdaderos. Otra forma de
decir esto es que cualquier falso da como resultado falso. En trminos de tabla de verdad.
Tabla 12. Operador And (&&).
A
Verdadero
Verdadero
Falso
Falso
B
Verdadero
Falso
Verdadero
Falso
A && B
Verdadero
Falso
Falso
Falso
Los operadores lgicos son operadores que permiten formular condiciones complejas a partir de condiciones
simples. Por ejemplo, considere lo siguiente:
(-6<0) && (12>=0)
Es esta expresin verdadera o falsa?. Bien 6<0 es verdadero y 12>=0 es verdadero. En consecuencia la
expresin debe ser verdadera. Al evaluar una expresin lgica recuerde que los operadores relacionales tienen
una jerarqua superior que los operadores lgicos. Los operadores relacionales y lgicos tienen una jerarqua de
ejecucin similar a los operadores aritmticos.
Jerarqua
(mayor)
( )
*, /, %
==, !=, <, >, <=, >=
!
&&
||
(menor)
del
parntesis
Actividad 10.
Objetivo: el alumno determinar los valores de las variables y la salida impresa de los programas C+
+.
1. Determina el valor de las siguientes expresiones lgicas:
2.Determine la salida generada por lo siguiente. Considere la variable entera X=-7 y la variable entera Y=3.
(!(3*X<4*Y) && (5*X>=Y))
de la operacin if.
Observe que el flujo del programa se modifica, dependiendo del resultado de una expresin de verificacin. La
verificacin if puede ser verdadera (diferente de cero) o falsa (cero). Recuerde que, durante una operacin de
verificacin C++ iguala un valor distinto de cero con verdadero y un valor cero con falso. Si la expresin de
verificacin es verdadera (diferente de cero), se ejecutan los enunciados if. Sin embargo, si el resultado de la
verificacin es falso (cero) se ignoran los enunciados if y el programa continua el flujo. Esto se conoce como
una operacin de seleccin o toma de decisiones, porque el programa selecciona o decide entre una o dos
posibles alternativas, dependiendo de las condiciones que se verifican.
La sintaxis C++ para el enunciado if es como sigue:
if (expresin) {
enunciado 1;
enunciado 2;
//enunciado compuesto
enunciado n;
//fin del if
La palabra reservada if y su expresin de verificacin asociada se escriben en la primera lnea del enunciado;
La expresin debe estar entre parntesis. Despus de la primera lnea estn los enunciados que se ejecutarn si
la verificacin es verdadera. Este bloque de enunciados se encierra entre llaves. Una llave izquierda, {,
seala el inicio del bloque del enunciado, y una llave derecha, }, denota el final del bloque. Si hay ms de un
enunciado por ejecutarse dentro de este bloque, el grupo completo de enunciados se conoce como enunciado
compuesto. Cuando un enunciado compuesto se encuentra dentro de un programa C++, todo el grupo de
enunciados se trata como un enunciado sencillo. Los enunciados compuestos siempre debern estar encerrados
entre llaves. Sin embargo es opcional cuando hay solamente un enunciado dentro del bloque.
La expresin de evaluacin ( calif>6 ) en la estructura selectiva if, permite que el flujo del programa siga por
un camino especifico.
Si la condicin es falsa, no se ejecutan las sentencias contenidas en el bloque if y continua el flujo normal del
programa con la siguiente sentencia
cout<<"\n***Fin del programa.";
La salida impresa por el programa cuando el usuario proporciona un valor para la variable calif de 8 es
Introduce una calificacin -->8
Calificacin aprobatoria
***Fin del programa.
Este programa pide al usuario dos valores que se almacenan en las variables enteras x, y. Las variables se
comparan con la sentencias if:
if(x>y), if(x<y), if(x==y)
Si un valor es mayor que otro se imprime un mensaje indicativo. Si los valores son iguales, el bloque de cdigo
que contiene a la sentencia if(x==y) se procesa. El valor de y se pide de nuevo y los valores se comparan
nuevamente.
Actividad 11.
Objetivo: el alumno determinar la salida impresa de los programas C++.
1. Cul es el valor de x?
#include <iostream.h>
void main() {
int x = 10000;
if(x > 5000)
x = 1000;
}
2. Qu imprime el programa?
#include <iostream.h>
void main() {
int x=2;
int y=3;
if(x<y) {
cout<<x<<" es menor que "<<y;
}
}
3. Qu imprime el programa?
#include <iostream.h>
void main()
{
int x=3;
if(x) {
cout<<"El valor de x es diferente de cero";
}
}
27. Cada unidad de disco de un cargamento est marcada con un cdigo del 1 al 4, el cual indica un fabricante,
como sigue:
Cdigo
1
2
3
4
Escriba un programa que acepte el nmero de cdigo dado como dato de entrada y despliegue el nombre
correcto con base en el valor introducido. Una salida tpica para el programa sera:
Valor del Cdigo ? 2
El fabricante es Maxwell Corporation
Figura 16.
Flujo de la
operacin if/else.
Observe que hay dos series de enunciados que se pueden ejecutar, dependiendo de si la expresin de verificacin
es verdadera o falsa. Si el resultado es verdadero, se ejecutarn los enunciados if. Por el contrario, si el
resultado de la verificacin es falso, se ejecutarn los enunciados else . En otras palabras, si la expresin de
verificacin es verdadera, entonces se ejecutan los enunciados if; de otra manera, se ejecutan los enunciados
else .
enunciado 1;
enunciado 2;
//enunciado compuesto
enunciado n;
}
//fin del if
else {
enunciado 1;
enunciado 2;
enunciado n;
//fin del else
Como puede observar, la opcin else se incluye despus de la opcin if. Si la expresin de verificacin es
verdadera, se ejecutan los enunciados if, y se ignoran los enunciados else . Sin embargo, si la expresin de
verificacin es falsa se ignoran los enunciados if, y se ejecutan los enunciados else .
Los enunciados if y else se encierran entre llaves. Sin embargo, es posible eliminar las llaves en cualquier
seccin cuando slo se requiera de un enunciado.
El programa, dado como dato la calificacin de un alumno en un examen, escribe aprobado si su calificacin
es mayor que 8 y reprobado en caso contrario.
Para producir el resultado, el programa evala la condicin calif>6
Luego de ejecutarse las operaciones indicadas, se continua con la secuencia normal del programa y se imprime
cout<<"\n***Fin del programa";
El programa calcula las races reales o imaginarias de una ecuacin cuadrtica. El signo de la expresin
raiz=b*b-4*a*c;
se utiliza para determinar si las races son reales o complejas. A partir de ese punto hay dos trayectorias
posibles que convergen. Para decidir cul de esas dos direcciones va a seguirse se utiliza la expresin de
verificacin dentro del if
if(raiz>0)
La condicin puede ser verdadera, en este caso, el control del programa se transfiere al siguiente bloque de
sentencias y el programa sigue su curso despus de las instrucciones del else.
/*raices reales*/
raiz=sqrt(raiz);
raiz1=(-b+raiz)/(2*a);
raiz2=(-b-raiz)/(2*a);
/*imprime los resultados*/
cout<<"\nRaces de la ecuacin.";
cout<<"\nRaiz 1 -->"<<raiz1;
cout<<"\nRaiz 2 -->"<<raiz2;
Si la condicin de evaluacin es falsa, entonces el control fluye a la parte else y se ejecutan las siguientes
sentencias
/*raices imaginarias*/
raiz=sqrt(-raiz);
raiz1=-b/(2*a);
raiz2=raiz/(2*a);
/*imprime los resultados*/
cout<<"\nRaces de la ecuacin;
cout<<"\nParte real -->"<<raiz1;
cout<<"\nParte imaginaria -->"<<raiz2;
Luego de ejecutarse las operaciones indicadas, se continua con la secuencia normal del programa y se imprime
cout<<"\n***Fin del programa";
de la ecuacin 1x2+3x+2=0
-->-1
-->-2
del programa
Actividad 12.
Objetivo: el alumno determinar la salida impresa de los programas C++.
1.Cul es la salida del programa para los siguientes valores de la variable entera c a) 83 b) 70 c) 58?
#include <iostream.h>
void main()
{
int c;
cout<<"Calificacion=?";
cin>>c;
if(c>70)
cout<<"Aprobado";
else
cout<<"Reprobado";
}
int x=3;
if(1)
cout<<"Primero";
else
cout<<"Segundo";
}
x=25, y=5 ?
x=25, y=2 ?
x=15, y=2 ?
x=15, y=5 ?
#include <iostream.h>
void main()
{
int x;
int z;
cout<<"x=?";
cin>>x;
cout<<"z=?";
cin>>z;
if((x>18) || (z==2))
cout<<"Condicin verdadera";
else
cout<<"Condicin falsa";
}
9. Cul es la salida del programa para valores de a=20, b=10, c=50?, En que condiciones se ejecuta el bloque
de sentencias if?, y cuando se ejecuta el bloque de sentencias else?
#include <iostream.h>
void main()
{
int a;
int b;
int c;
cout<<"Introduce tres valores\n";
cout<<"a=?";
cin>>a;
cout<<"b=?";
cin>>b;
cout<<"c=?";
cin>>c;
if(c=(a-b)) {
cout<<"\na: "<<a;
cout<<" menos b: "<<b;
cout<<" es igual a c: "<<c;
}
else
cout<<"\na-b no es igual a c";
}
Escriba un programa que proporcione el sueldo para el nmero de horas trabajadas dado como entrada y calcule
e imprima el sueldo del trabajador.
34.Escriba un programa que lea dos enteros y que determine e imprima si el primero es un mltiplo del
segundo. Por ejemplo 40 es el mltiplo de 8 porque 8x5=40, contiene 5 veces exactas al cuarenta. 40 no es
mltiplo de 3 porque no existe nmero natural o entero que multiplicado por 3 su producto sea 40, solo se
aproxima 3x13=39, as como 3x14=42, 40 no tiene un nmero de veces exacto de tres. (Sugerencia: utilice el
operador de mdulo).
35.Un palndromo es un nmero o una frase de texto, que se lee igual hacia delante y hacia atrs. Por ejemplo,
cada uno de los siguientes enteros de cinco dgitos son palndromos: 12321, 55555, 45554 y 11611. Escriba un
programa que lea un entero de cinco dgitos y que determine si es o no palndromo. (Sugerencia: utilice los
operadores de divisin y de mdulo para separar los nmeros en sus dgitos individuales).
Formato b)
if (expresin1) {
if (expresin2) {
//if anidado
bloque de sentencias 1;
}
//fin del if
else {
bloque de sentencias 2;
}
//fin del else
}
//fin del if
else {
bloque de sentencias 3;
}
//fin del else
Si el resultado de la verificacin es falso, la temperatura deber ser menor menor o igual a 0 grados, lo que da
como resultado se ejecute la siguiente sentencia
cout<<"La temperatura nos da HIELO";
Sin embargo, si el resultado, si el resultado de verificacin es verdadero, se hace una segunda verificacin para
ver si la temperatura es mayor o igual que 100 grados.
if(temp>=100)
Sin embargo, si este segundo resultado de verificacin es falso, se sabe que la temperatura debe estar entre 0 y
100 grados, lo que provoca que se ejecute la siguiente sentencia
cout<<"La temperatura nos da AGUA";
Actividad 13.
Objetivo: el alumno determinar la salida impresa de los programas C++.
1. Cul es la salida que imprime el programa?
#include <iostream.h>
void main()
{
int x=3;
int y=0;
if(x>0) {
if(y>0)
cout<<"el valor de y es mayor que cero";
cout<<"\nel valor de x es mayor que cero";
}
else
cout<<"el valor de x es menor que cero";
}
41. Una compaa de alquiler de automviles sin conductor desea un programa para emitir las facturas de sus
clientes, teniendo presente los siguientes puntos:
Cantidad fija de 5,000 pesos si no rebasan los 300 km.
Distancia recorrida mayor de 300 km.
-Si Distancia > 300 km y 1000 km.
5000 pesos + kilometraje. a razn de 30 pesos/km.
-Si Distancia > 1000 km. 5000 pesos + kilometraje.
a razn de 30 pesos/km para las distancias comprendidas entre 300 y
1000 km
y 20 pesos para las distancias mayores de 1000 km.
42. Elabore un programa para calcular el tiempo de vuelo de una sucesin de vuelos. El dato de cada vuelo esta
constituido por: el nmero de vuelo, la hora de llegada, la hora de salida y la hora de llegada. Para introducir
datos de llegadas y salidas, utilizaremos el sistema de las 24 horas, es decir, 8:10 p.m., se indica con 2010.
Ntese que los ltimos dgitos en este sistema nunca excedern el nmero 60. Sabemos, adems, que no hay
vuelo que dure ms de 24 horas; de tal manera que si un avin sale a las 2300 y llega a las 0115, el tiempo de
vuelo fue de dos horas y 15 minutos. Una salida tpica para el programa sera la siguiente:
Nmero de vuelo? 809
Tiempo de salida? 0945
Tiempo de llegada?1348
La Duracin del Vuelo 809 es de 4 hrs 3 min.
Tiempo de salida
0915
0945
2140
1710
Tiempo de llegada
1245
1215
0020
1850
43. Disee un programa que lea un nmero entero positivo de 3 cifras, y forme el mayor nmero posible con las
cifras del nmero ingresado.
44.Realizar un programa que lea un nmero entero positivo de 3 cifras, e imprima todas las posibles
combinaciones que se pueden formar con las cifras del nmero ingresado siempre y cuando :
Los nmeros obtenidos
proporcionado.
Los nmeros obtenidos
cifra.
3.4.
switch.
Enunciado
Esta
categora
de
programa seleccionar una
(cases). La operacin del
la figura 19 por medio del
seleccin
le
permite
al
de muchas opciones o casos
enunciado switch se muestra en
diagrama.
La instruccin switch utiliza cuatro palabras clave: switch, case, break, default .
La palabra clave switch identifica el inicio de la instruccin de switch . La expresin en parntesis en
seguida de esta palabra ser evaluada y el resultado de la expresin ser comparado con varios valores
alternativos contenidos en las instrucciones compuestas. La expresin en la instruccin de switch deber
producir un resultado en nmero entero o de lo contrario aparecer un error de compilacin.
En la instruccin switch , la palabra clave case se utiliza para identificar o etiquetar los valores individuales
que sern comparados con el valor de la expresin en switch . El valor de la expresin en switch ser
comparado con cada uno de los valores de case en el orden en que stos aparecen hasta que se encuentra una
correspondencia. Una vez que los valores coinciden, la ejecucin empieza con la instruccin que est
inmediatamente despus de los valores que se igualaron.
Una instruccin de switch puede contener cualquier cantidad de etiquetas de case en cualquier orden. Sin
embargo, si el valor de la expresin no coincide con cualquier otro valor de case, ninguna instruccin se
ejecutar a menos que encuentre la palabra clave default . Esta palabra es opcional. Si el valor de la expresin
no iguala cualquiera de los valores de case, la ejecucin del programa empieza con la instruccin que est
enseguida de la palabra default .
Una vez que la instruccin de switch localiza un punto de entrada, todas las dems evaluaciones de case sern
ignoradas y la ejecucin continuar hasta el final de la instruccin compuesta, a menos que se encuentre la
instruccin de break . La instruccin de break identifica el fin de un case en particular y ocasiona la salida
inmediata de la instruccin de switch . As como la palabra case identifica los posibles puntos de inicio en una
instruccin compuesta, la instruccin break determina los puntos de terminacin. Si se omiten las instrucciones
break , se ejecutarn todas las instrucciones que estn en seguida del valor igualado de case, incluido el case de
default .
Aqu la variable seleccionador es calificacin. Los valores case son A,B,C,D. El valor de la variable
calificacin se compara con la lista de valores case. Si se encuentra una correspondencia, se ejecutan los
enunciados case correspondientes.
{
/*declaracin de variables*/
char calificacion;
/*variables de entrada*/
cout<<"Introduce una letra (A-F) -->";
cin>>calificacion;
switch(calificacion) {
case 'A':
cout<<"A) Excelente.\n";
case 'B':
cout<<"B) Muy bueno\n";
case 'C':
cout<<"C) Promedio\n";
case 'D':
cout<<"D) Malo\n";
}
//fin-switch
cout<<"\n***Fin del programa";
}
Aqu la variable seleccionador es calificacin. Los valores case son A,B,C,D. El valor de la variable
calificacin se compara con la lista de valores case. Si se encuentra una correspondencia, se ejecutan los
enunciados case correspondientes. En este ejemplo no se ha utilizado la palabra clave break.
Con base en la salida, se observa que se igual case B y se ejecutaron sus enunciados case. Sin embargo, todos
los enunciados case posteriores para case B tambin se ejecutaron.
/*variables de entrada*/
cout<<"Introduce una letra (A-F) -->";
cin>>calificacion;
switch(calificacion) {
case 'a':
case 'A':
cout<<"A) Excelente.";
break;
case 'b':
case 'B':
cout<<"B) Muy bueno";
break;
case 'c':
case 'C':
cout<<"C) Promedio";
break;
case 'd':
case 'D':
cout<<"D) Malo\n";
break;
}
//fin-switch
cout<<"\n***Fin del programa";
}
En este caso, los mltiples valores case necesitan apuntar hacia el mismo enunciado case. As que, si
calificacin tiene el valor b, entonces se hace una correspondencia con case b. Ningn break es parte de este
case, as que se ejecuta el siguiente case de la secuencia, el cual escribir la palabra Muy bueno. Debido a que
case B contiene un break, el enunciado switch se termina despus de que se genera la salida.
/*variables de entrada*/
cout<<"Introduce una letra (A-F) -->";
cin>>calificacion;
switch(calificacion) {
case 'a':
case 'A':
cout<<"A) Excelente.";
break;
case 'b':
case 'B':
cout<<"B) Muy bueno";
break;
case 'c':
case 'C':
cout<<"C) Promedio";
break;
case 'd':
case 'D':
cout<<"D) Malo\n";
break;
default:
cout<<"No corresponde a ninguna entrada;
cout<<calificacion;
break;
}
//fin-switch
cout<<"\n***Fin del programa";
}
Aqu el enunciado default se ejecuta si calificacin es cualquier otro carcter diferente de los listados en case.
Actividad 14 .
Objetivo: el alumno determinar la salida impresa de los programas C++.
1. Qu mostrar el cdigo para cada uno de los siguientes valores de potencia?
a) potencia=0;
b) potencia=1;
c) potencia=2;
d) potencia=5;
#include <iostream.h>
void main() {
int x=2;
int potencia;
cout<<"Potencia=?";
cin>>potencia;
switch(potencia) {
case 0:
cout<<"1";
break;
case 1:
cout<<x;
break;
case 2:
cout<<x*x;
break;
case 3:
cout<<x*x*x;
break;
case 4:
cout<<"x*x*x*x";
break;
default: cout<<"No existe correspondencia para esta potencia";
}
//fin del switch
}
case 2:
case 4:
case 6: x=x*y;
break;
case -1:
case -4:
case -6: x=y*y;
break;
}
//fin-switch
break;
}
//fin del switch
cout<<"x="<<x;
cout<<"\ny="<<y;
}
Cuadrante
I
II
III
IV
Utilizando esta informacin, escriba un programa que acepte el ngulo de la lnea como dato de entrada por el
usuario y que despliegue el cuadrante apropiado conforme los datos. (Nota: Si el ngulo es exactamente
0,90,180 o 270 grados, la lnea correspondiente no se ubica en ningn cuadrante, sino en un eje.)
49. Escribir un programa que acepte un ao escrito en cifras arbigas y visualice el ao escrito en nmeros
romanos, dentro del rango 1000 a 2000.
Nota: Recuerde que V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000
IV = 4 XL = 40 CM = 900
MCM = 1900
MCML = 1950 MCMLX = 1960
MCMXL = 1940 MCMLXXXIX = 1989
enunciado n;
//fin del while
La primera lnea del enunciado contiene la palabra clave while seguida de la expresin de verificacin seguida
de la expresin de verificacin dentro del parntesis. Los enunciados del ciclo se encuentran entre llaves. Esto
forma una enunciacin compuesta, que contiene enunciados individuales de ciclo.
Lo primero que hace la computadora es examinar la condicin, la que puede dar como resultado dos
posibilidades.
a) La condicin se cumple. Es decir si la variable contador tiene un valor menor que 10 cuando se evala la
condicin (contador<10) se incrementa el valor de contador y se efecta una llamada a la instruccin cout .
Entonces la instruccin while regresa automticamente sobre s misma y vuelve a probar la expresin; las
instrucciones se estarn repitiendo hasta que la condicin no se cumpla, entonces se sale del ciclo y se siguen
ejecutando las instrucciones que vienen a continuacin y estn fuera del bucle.
b) La condicin no se cumple. No entrar al ciclo, y se ejecutarn las instrucciones que vienen despus del
ciclo.
Actividad 15.
Objetivo: el alumno determinar la salida impresa de los programas C++.
1.Cules son los valores de las variables numero, suma, y el valor de la expresin (numero>0) durante el ciclo?
#include <iostream.h>
void main()
{
int numero=5;
int suma=0;
while(numero>0) {
suma=suma+numero;
numero=numero-1;
}
//fin-while
cout<<"La suma es ="<<suma;
}
2. Cules son los valores de las variables numero, suma, y el valor de la expresin (numero>0) durante el
ciclo?
#include <iostream.h>
void main()
{
int numero=5;
int suma=0;
while(numero>0) {
if(numero%2)
suma=suma+numero;
numero=numero-1;
}
//fin-while
cout<<"La suma es ="<<suma;
}
4.Determina los valores que asume la variable x durante el ciclo y la salida impresa por el programa.
#include <iostream.h>
void main()
{
int x=1;
while(17%x!=5) {
cout<<x<<" "<<17%x<<"\n";
x=x+1;
}
}
Depreciacin
4000
4000
4000
4000
4000
4000
4000
Valor a fin de ao
24000
20000
16000
12000
8000
4000
0
Depreciacin acumulada
4000
8000
12000
16000
20000
24000
28000
52.Realizar un programa para leer un nmero entero positivo y calcular la siguiente secuencia: Si el nmero es
par divdalo entre dos; si es impar, multiplquelo por 3 y agrguele 1. Repita este proceso hasta que el valor
generado sea un 1, imprimiendo cada valor. Finalmente imprima cuantas operaciones se necesitaron para
terminar la secuencia. A este algoritmo se le conoce como: conjetura de ULAM. Una posible salida es la
siguiente:
Valor inicial: 9
Siguiente valor : 28
Siguiente valor : 14
Siguiente valor : 7
Siguiente valor : 22
Siguiente valor : 11
Siguiente valor : 34
Siguiente valor : 17
Siguiente valor : 52
Siguiente valor : 26
Siguiente valor : 13
Siguiente valor : 40
Siguiente valor : 20
Siguiente valor : 10
Siguiente valor : 5
Siguiente valor : 16
Siguiente valor : 8
Siguiente valor : 4
Siguiente valor : 2
Valor final 1, nmero de pasos 19.
Si el valor de entrada es menor que 1, imprimir un mensaje de error.
53.Un nmero perfecto es un entero positivo, que es igual a la suma de todos los enteros positivos (excluido el
mismo) que son divisores del nmero. El primer nmero perfecto es 6, ya que los divisores de 6 son 1,2,3 y
1+2+3=6. Escribir un programa que encuentre los tres primeros nmeros perfectos.
54.El mtodo para convertir un nmero decimal entero a un nmero binario slo implica una sencilla divisin
entre dos , tener presente los cocientes que resultan y una lista de residuos. Por ejemplo:
Divisin
37/2
18/2
9/2
4/2
2/2
Cociente
8
9
4
2
1
0
Residuo
1
0
1
0
0
1
Cuando la lista del residuo se invierte, se obtiene el equivalente binario. As 37=100101 en binario. Realice un
programa que convierta un nmero decimal dado en binario. Pruebe su programa para: 4, 128, 1024, 12345.
enunciado n;
}
while (expresin de verificacin);
Este formato muestra que la operacin comienza con la palabra clave do, seguida por los enunciados reales del
ciclo, los cuales estn seguidos por la palabra clave while y la expresin de verificacin va entre parntesis.
Siempre deber enmarcar los enunciados mltiples del ciclo entre llaves; sin embargo, no se requiere
enmarcarlos cuando slo hay un enunciado de ciclo. Adems, note que no hay un punto y coma despus de la
palabra clave do en la primera lnea, pero se requiere un punto y coma despus de la expresin de verificacin
en la ultima lnea.
El programa obtiene el inverso de un nmero que es proporcionado por el usuario. Lo hace utilizando el
operador del mdulo (%) para extraer el digito ms a la derecha. El nmero original se divide entre 10, y la
operacin se repite hasta que el nmero no sea igual a cero, que es cuando termina la iteracin.
Actividad 16.
Objetivo: el alumno determinar la salida impresa de los programas C++.
1. Cules son los valores de las variables numero, suma, y el valor de la expresin (numero>0) durante el
ciclo?
#include <iostream.h>
void main()
{
int numero=5;
int suma=0;
do {
suma=suma+numero;
numero=numero-1;
}
while(numero>0);
cout<<"La suma es ="<<suma;
}
2.
#include <iostream.h>
void main()
{
int numero=0;
int suma=0;
do {
suma=suma+numero;
numero=numero+1;
}
while(numero!=5);
cout<<"La suma es ="<<suma;
}
3.
#include <iostream.h>
void main()
{
int maxNumero=5;
int numero=0;
int suma=0;
do {
numero=numero+1;
suma=suma+numero;
}
while(numero!=maxNumero);
cout<<"El prom. de los primeros "<<maxNumero
<<" enteros positivos es : "<<suma/maxNumero;
}
4.
#include <iostream.h>
void main()
{
int b=2;
do {
cout<<b<<" "<<b/5;
b=b*2;
}
while(b!=32);
}
1
...
...
...
10
16.0
...
...
...
...
16.0
...
...
...
...
enunciado n;
}
El enunciado comienza con la palabra clave for. Esta es seguida por tres enunciados separados: un enunciado
inicializacin, una expresin de verificacin y un enunciado incremento o decremento, todos encerrados dentro
de parntesis. El ciclo contador se inicializa asignando un valor inicial a la variable contador. La variable
contador puede ser cualquier clase de datos sencilla, excepto float. La variable contador se puede definir antes
del enunciado for o dentro del enunciado for como parte del paso de inicializacin, como sigue:
for(int contador=1;contador<=10;contador++)
Si se define dentro del enunciado for , slo es vlida para la funcin en la cual se defini. As, en lo que a C++
respecta, la variable contador no existe fuera de la funcin en la cual aparece el ciclo for .
La expresin de verificacin se usa para verificar el valor de contador del ciclo en contra de algn valor
predeterminado. Los enunciados del ciclo se ejecutarn hasta que el resultado de la expresin de verificacin se
convierta a falso (0).
El enunciado incremento o decremento se usa para cambiar el valor del contador del ciclo, as que la expresin
de verificacin se convierte a falso despus de un nmero determinado de iteraciones. Si el valor del contador
del ciclo nunca cambia, habr un ciclo infinito. Es importante que note que el enunciado incremento o
decremento no se ejecuta hasta despus de que se ejecuten los enunciados del ciclo en una iteracin dada.
As, si la expresin de verificacin inicial es verdadera, los enunciados del ciclo se ejecutarn por lo menos
una vez. Sin embargo, si la expresin de verificacin es falsa, los enunciados del ciclo nunca se ejecutarn.
El programa declara una variable entera denominada contador. La primera parte de la sentencia
for(contador=1;
e inicializa el valor de contador a uno. El ciclo for se ejecutar hasta que se cumpla la condicin de evaluacin
contador<=10;
Como la variable contador se ha inicializado con el valor de uno (1<=10) la condicin es evaluada como
verdadera y entonces se ejecutar la sentencia del bloque for:
cout<<contador<<"\n";
donde se imprime en pantalla el valor de contador en pantalla. El proceso siguiente, es ejecutar la sentencia
faltante del for
contador=contador+1)
se imprime de nuevo en la pantalla. El contador se incrementa de nuevo, y la condicin se evala hasta que el
valor de contador toma un valor de 11. Cuando esto ocurre, la condicin
contador<=10;
es evaluada falsa (11<=10), y entonces el ciclo for termina, y el control de programa pasa a la siguiente
sentencia
cout<<"sigue el programa";
Figura 23.
Funcionamiento del
ciclo for.
La figura 23 muestra el orden de procesamiento de cada parte del ciclo for. Primero se asigna el valor a la
variable de control, luego se comprueba la condicin de repeticin del bloque de sentencias, si se cumple se
incrementa el valor de la variable de control, y se vuelve a preguntar la condicin de evaluacin hasta que esta
es falsa y se termina el ciclo.
Actividad 17.
Objetivo: el alumno determinar la salida impresa de los programas C++.
Qu se mostrarn en los siguientes programas?
a)
#include <iostream.h>
void main()
{
for(int contador=1;contador!=11;contador++)
cout<<contador<<"\n";
}
b)
#include <iostream.h>
void main()
{
for(int contador=-5;contador<6;contador++)
cout<<contador<<"\n";
}
c)
#include <iostream.h>
void main()
{
for(int contador=1;contador<11;contador++)
d)
#include <iostream.h>
void main()
{
for(int linea=1;linea<6;linea++) {
for(int col=1;col<11;col++)
cout<<linea<<";"<<col<<"\t";
cout<<"\n";
}
}
cout<<contador<<"\t"<<contador*contador<<"\n";
}
e)
#include <iostream.h>
void main()
{
int contador=0;
int max=6;
f)
#include <iostream.h>
void main()
{
int max=5;
int veces=3;
while(contador<max) {
for(int i=1;i<max+1;i++)
cout<<i;
cout<<"\n";
contador++;
}
//fin-while
do {
int contador=0;
while(contador<max) {
for(int i=1;i<contador+1;i++)
cout<<i;
cout<<"\n";
contador++;
}
//fin-while
cout<<"\n";
veces=veces-1;
} while (veces!=0);
1
4
...
...
100
1
8
...
...
1000
61.Haz un programa que imprima la tabla de multiplicar del cinco empezando del nmero uno y terminando en
el diez en la forma:
5*1=5
5*2=10
5*3=15
5*4=20
...
5*10=50
62.Haz un programa que imprima la tabla de multiplicar de cualquier numero.
63.Escriba un programa que utilice un ciclo para producir la siguiente tabla de valores:
A
3
6
9
12
15
A+2
5
8
11
14
17
A+4
7
10
13
16
19
A+6
9
12
15
18
21
64.Imprimir los enteros desde 1 hasta N con su respectivo cuadrado. La restriccin para este problema es que
suponemos que la computadora no puede multiplicar, por lo tanto debe de utilizar solamente sumas. Por
ejemplo, analice la situacin:
Nmer Cuadrad Obtenido
o
o
como
1
1
1
2
4
1+3
3
9
1+3+5
4
16
1+3+5+7
...y as sucesivamente.
65.Imprima todos los nmeros del 1 al 100 que no sean mltiplos de 5.
66.Escriba un programa para obtener la suma:
1x2 + 2x3 + 3x4 + ... + 49x50.
67.Escribir un programa que desarrolle las siguientes operaciones: 1 2 + 22 + 32 + ... + 252
68.Escriba un programa que convierta de pies a metros. El programa debe mostrar los pies desde 3 hasta 30 en
incrementos de 3 pies y los equivalentes correspondientes en metros. Un metro tiene 3.28 pies
69.Elabore un programa que escriba la lista siguiente de grados Celsius y sus equivalentes en grados Fahrenheit,
con incrementos de diez grados Celsius. Utilice la frmula: Fahrenheit=(9.0/5.0)*Celsius+32.0
0 Celsius son 32 Fahrenheit
10 Celsius son 50 Fahrenheit
20 Celsius son 68 Fahrenheit
...
...
...
100 Celsius son 212 Fahrenheit
70.Escribir un programa para convertir grados Celsius a Fahrenheit. El programa debe solicitar el valor inicial
en grados Celsius, la cantidad de conversiones que se efectuarn y el incremento entre los valores en grados
Celsius. El programa debe imprimir los encabezados e informacin apropiados. Utilice la frmula:
Fahrenheit=(9.0/5.0)*Celsius+32.0
1
2
1
2
1
2
72.Implemente un programa que imprima todas las tablas de multiplicar del 1 al 10.
73.Implemente un programa que genere todas las tablas del 1 al 10 dependiendo de la opcin seleccionada por
el usuario. Si el usuario elige de un men de opciones el nmero 1, se generan todas las tablas de suma, el 2 las
tablas de resta, el tres las de multiplicacin, el 4 las de divisin.
74.Imprimir los nmeros pares desde el 2 hasta el 2000. Al finalizar el programa imprima un mensaje con la
sumatoria de los nmeros impresos.
75.Disea un programa que calcule la suma de los nmeros pares comprendidos entre 10 y 50.
76.Una oficina de turismo calcula que si vende sus boletos a un precio individual de X dlares, vender 84-6X
boletos. Escriba un programa para elaborar la siguiente tabla para precios en cifras redondeadas desde $1 dlar
hasta $14 dlares.
Precio Boleto
1
2
...
...
...
14
Se Venden
78
72
...
...
...
0
Ingresos
78
144
...
...
...
0
77.Escriba un programa que imprima una tabla de todos los equivalentes de nmeros romanos con nmeros
decimales (es decir de base 10) en el rango del 1 al 100.
78.Un nmero es primo si dividido sucesivamente por 2,3,4,Nmero-1, no produce ninguna divisin entera
(resto cero). Es decir, un nmero primo es un entero que no tiene ms divisores que el mismo y la unidad. Por
ejemplo, 5 es primo, ya que slo tiene como divisores 5 y 1; 24 no es primo, ya que tiene divisiones distintas de
24 y 1 (2 y 3). Escribir un programa para determinar si un entero proporcionado por el usuario es primo.
79.Elabore un programa que imprima todos los nmeros primos en el rango del 4 al 100 con el siguiente
formato
Nmer
o
4
5
6
7
...
Leyenda
No
primo
Primo
No
primo
Primo
...
11111
22222
33333
44444
b) 121212
232323
343434
565656
c)
123456
234567
345678
456789
d) 12321
34543
56765
78989
81.La secuencia de nmeros de la serie FIBONACCI esta dada por : 0,1,1,2,3,5,8,13,21,34,55,..., donde los dos
primeros nmeros de la serie son 0 y 1. El resto se calculan como la suma de los don inmediatos nmeros que
le preceden. Realizar un programa que realice lo siguiente:
a) Calcule e imprima el trmino nmero 680 de la secuencia FIBONACCI.
b) Imprima la secuencia de un nmero n dado por el usuario de entrada.
c) Imprima la serie de fibonacci de varias longitudes (por ejemplo de 1 a 12). Su salida
ser como sigue:
Longitud de la serie
1
2
3
...
12
Nmeros de fibonacci
1
11
112
1123
1 1 2 3 5 8 13 21 34 55 89 144
82.Escriba un programa que obtenga e imprima todos los nmeros Primos Gemelos comprendidos entre A y B
(enteros positivos). Los primos gemelos son parejas de nmeros primos con una diferencia entre s de
exactamente dos. Ejemplo: 3 y 5 son nmeros gemelos.
if(expresin de verificacin)
break;
enunciado n;
//final de while
La instruccin break viola los principios de la programacin estructurada porque permite una salida no
estndar de un ciclo. Sin embargo, la instruccin break es sumamente til para salir de un ciclo cuando se
detecta una condicin fuera de lo normal.
El programa declara una variable entera identificada con el nombre de valor . Pregunta por el dato de entrada
dentro de un ciclo while , si el dato introducido es cero el programa termina; si es dato es diferente de cero
entonces se imprime el cuadrado del nmero; de nuevo se vuelve a repetir el ciclo hasta que el usuario introduce
un dato igual a cero.
Observe cuidadosamente el algoritmo que implementa el programa y debe de llegar a la conclusin de que
puede escribirse sin utilizar un ciclo infinito; no es recomendable utilizar ciclos de este tipo.
(Un
4
(Un
16
(Un
36
(Un
void main()
{
/*declaracin de variables*/
int numero=1; //variable para el control del ciclo
/*proceso*/
while(numero<11) {
if(numero==5) {
break;
}
cout<<"Nmero -->"<<numero<<"\n";
numero=numero+1;
}
//fin-while
cout<<"Ultimo valor de nmero -->"<<numero;
cout<<"\n***Fin del programa";
}
Este programa utiliza un ciclo while y su bloque interior utiliza un enunciado break para terminar el ciclo
cuando la variable entera numero alcanza el valor de 5. Una vez que la variable alcanza el valor 5 obliga al
ciclo a terminar y la sentencia de salida
cout<<"Nmero -->"<<numero<<"\n";
ya no se vuelve a ejecutar.
-->1
-->2
-->3
-->4
valor de nmero -->5
del programa
void main()
{
/*declaracion de variables*/
char siNo;
/*proceso*/
cout<<"Imprime los nmeros del 1 al 5\n";
for(int i=1;i<=5;i++) {
cout<<"i -->"<<i;
cout<<"\nDeseas terminar el ciclo (S/N)? ";
cin>>siNo;
if((siNo=='S') || (siNo=='s')) {
break;
//aborta el ciclo
}
}
cout<<"\n***Fin del programa";
}
n
n
n
n
n
Se utiliza principalmente para pasar por alto una iteracin dentro de un ciclo si ocurre cierta condicin. As
como el enunciado break , el enunciado continue normalmente se emplea dentro de un ciclo como parte del
enunciado if. Podemos ilustrar la operacin de continue dentro del ciclo for como sigue:
for(cont=valor_inicial;expresin de verificacin;cont incrementa o decrementa) {
enunciado 1;
enunciado 2;
if(expresin de verificacin)
continue;
enunciado n;
//final de for
-->89
-->65
-->78
-->65
-->67
Promedio -->72.8
***Fin del programa
Actividad 18.
Objetivo: el alumno identificar la salida de los programas C++.
1Cul es la salida impresa por los siguientes programas?
a)
#include <iostream.h>
void main() {
for(int i=1;i<=10;i++) {
cout<<i;
break;
}
}
c)
#include <iostream.h>
void main() {
int contador=-3;
while(contador<3) {
contador=contador+1;
if(contador) {
continue;
}
cout<<contador<<\t;
}
}
b)
#include <iostream.h>
void main() {
int contador=-3;
while(contador<3) {
contador=contador+1;
if(contador) {
break;
}
cout<<contador<<\t;
}
}
d)
#include <iostream.h>
void main() {
while(contador<3) {
contador=contador+1;
if(contador)
continue;
cout<<contador<<\t;
}
}
Bibliografa consultada.