Anda di halaman 1dari 11

MIGUEL .

TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-1
REPASO GENERAL BREVE

FUNDAMENTOS

RESUMEN 1

! !! ! Los programas C++ son modulares y se apoyan en bibliotecas estndares y personalizadas.
! !! ! En el sistema de ayuda hay informacin de referencia, y se puede tener acceso a ella a travs del men
principal; de mens en contexto, que aparecen al oprimir el botn derecho del ratn y de F1 y Ctrl+F1.
! !! ! Las dos formas para cargar el IDE de Borland C++ 5 son seleccionando el icono desde el men inicio de
Windows 95 o haciendo doble clic en el archivo BCW.EXE.
! !! ! El IDE de Borland C++ 5 es un ambiente verstil para el desarrollo, mantenimiento y depuracin de
programas y bibliotecas C y C++ para aplicaciones Windows.
! !! ! El men File maneja la creacin, apertura y el guardado de archivos, as como la impresin y salida del IDE.
! !! ! El men Edit proporciona opciones para realizar operaciones de edicin comunes (como deshacer, cortar, copiar
y pegar)
! !! ! El men Search permite que se busque y reemplace texto, as como examinar smbolos, localizar funciones y
visitar las lneas de cdigo fuente que dan problemas.
! !! ! El men View permite ver una amplia variedad de informacin. Entre la informacin visible se encuentran los
nodos de proyecto, mensajes del compilador y del vinculador, la jerarqua de las clases de proyecto, smbolos
globales, variables vigiladas, la pila de funciones llamadas y los registros de la CPU.
! !! ! El men Project proporciona opciones para crear, abrir, cerrar y manejar un proyecto. Las opciones del proyecto
permiten compilar y vincular archivos de cdigo fuente relacionados.
! !! ! El men Debug proporciona opciones que permiten depurar y avanzar, paso a paso, en el cdigo fuente desde el
interior del IDE y vigilar los valores de variables en la ventana Watch.
! !! ! El men Tool permite un rpido acceso a una diversidad de herramientas de programacin de Windows, como
Turbo Debugger, la utilera WinSight para el seguimiento de mensajes y las herramientas propias.
! !! ! El men Options permite perfeccionar diversos aspectos del proyecto, el ambiente, las herramientas y las hojas
de estilo del proyecto.
! !! ! El men Windows es para manejar, acomodar, cerrar y restaurar las ventanas en el escritorio del IDE.
! !! ! El men Help le proporciona ayuda en lnea.
! !! ! Las aplicaciones EasyWin son aplicaciones de Windows que proporcionan una ventana especial que funciona
como los dispositivos estndares de entrada y salida. Las aplicaciones EasyWin permiten escribir programas
parecidos a los del DOS.
! !! ! Los nuevos proyectos son fciles de crear poniendo determinadas opciones en un cuadro de dilogo sencillo.
! !! ! Los archivos de proyecto de C++ permiten crear varios destinos y hacer que stos contengan diversos
archivos.
! !! ! El primer programa C++ de estas notas es un programa sencillo de saludo que ilustra los componentes bsicos
de un programa C++. Estos incluyen comentarios, la directiva #include y la funcin main.
! !! ! Se sale del IDE mediante la seleccin de Exit en el men File.

PREGUNTAS Y RESPUESTAS

P C++ usa nmeros de lnea en sus programas?
R No.

P Monitorea el editor del IDE lo que se teclea?
R S lo hace. De hecho, cuando se teclea una palabra clave de C++, el IDE colorea rpidamente esa palabra.

P Qu pasa si se olvida teclear la segunda comilla en el primer programa?
R El compilador dice que hay un error en el programa. Necesita aadir la segunda comilla doble y volver a
compilar.

P Cmo se borran todas las apariciones de un texto en la ventana de edicin actual?
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-2
R Se usa la opcin Replace del men Edit y no se especifica nada para la cadena de reemplazo o bien, se usan los
comandos Cut y Clear del men Edit.

CUESTIONARIO

1.- Cul es la salida del siguiente programa?

1: // Programa 1 del cuestionario
2:
3: #include <iostream.h>
4:
5: void main(void)
6: {
7: cout << C++ es fcil de aprender;
8: }

2.- Cul es la salida del siguiente programa?

1: // Programa 2 del cuestionario
2:
3: #include <iostream.h>
4:
5: void main(void)
6: {
7: // cout << C++ es fcil de aprender;
8: }

3.- Qu error tiene el siguiente programa?

1: // Programa 3 del cuestionario
2:
3: #include <iostream.h>
4:
5: void main(void)
6: {
7: cout << C++ es fcil de aprender
8: }

EJERCICIO

Escriba un programa que despliegue el mensaje Soy un programador de C++.


RESUMEN 2

! !! ! Las clases de datos predefinidos en Borland C++ 5 incluyen bool, int, char, float, double y void. C++ aade
ms flexibilidad a las clases de datos al soportar modificadores de la clase de dato. Estos modificadores
alteraran la precisin y el rango de los valores. Los modificadores de clase son signed, unsigned, short y long.
! !! ! Los identificadores de Borland C++ 5 pueden ser hasta de 32 caracteres y deben comenzar con una letra o un
subrayado. Los caracteres subsecuentes de un identificador pueden ser letras, dgitos o subrayados. Los
identificadores de C++ son sensibles a maysculas y minsculas. Sin embargo, esta restriccin puede
cambiarse manejando las opciones del compilador.
! !! ! La directiva #include es una instruccin especial para el compilador. Esta directiva le dice al compilador que
incluya el contenido del archivo especificado como si se hubiera tecleado en el archivo fuente actual.
! !! ! La declaracin de constantes comprende el uso de la directiva #define para declarar constantes basadas en
macros o utilizar la palabra clave const para declarar constantes formales. Las constantes formales necesitan
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-3
que se especifique el tipo de la constante (cuando ste se omite, el predeterminado es int), su nombre y el valor
asociado.
! !! ! La declaracin de variables requiere que se indique la clase de dato y el nombre de la variable. C++ permite
utilizar una variable cuando se le declara. En un solo enunciado declarativo pueden declararse diversas
variables.
! !! ! Los operadores aritmticos incluyen +, -, *, / y % (mdulo)
! !! ! Las expresiones aritmticas varan en complejidad. La expresin ms sencilla contiene un solo elemento de
dato (literal, constante o variable) Las expresiones complejas incluyen varios operadores, funciones,
literales, constantes y variables.
! !! ! Los operadores de incremento y decremento se presentan en formas pre y pos. C++ permite aplicar estos
operadores a las variables que almacenan caracteres, enteros y hasta nmeros de punto flotante.
! !! ! Los operadores aritmticos de asignacin le permiten escribir expresiones aritmticas ms cortas, donde el
operando principal tambin es la variable que recibe el resultado de la expresin.
! !! ! El operador sizeof regresa el tamao en bytes de un tipo de dato o una variable.
! !! ! La caracterstica typecasting (asignacin de tipo) permite que se fuerce la conversin de clases de una
expresin.
! !! ! Los operadores relacionales y lgicos permiten que se construyan expresiones lgicas.
! !! ! Las expresiones booleanas combinan operadores relacionales y lgicos para formular condiciones no triviales.
Estas expresiones permiten que un programa tome decisiones complejas.
! !! ! La expresin condicional proporciona una forma corta para el enunciado if-else sencillo de doble alternativa.
! !! ! Los operadores para el manejo de bits realizan operaciones Y, O, XOR y NOT a nivel bit. Adems, C++
soporta los operadores << y >> de desplazamiento a nivel bit.
! !! ! Los operadores de asignacin para manejo de bits proporcionan formas cortas para los enunciados de manejo
de bits sencillos.

PREGUNTAS Y RESPUESTAS

P Hay un estilo especfico para nombrar a los identificadores?
R Hay unos cuantos estilos que se han vuelto populares en aos recientes. El que se usa aqu hace que el
identificador comience con un carcter en minscula. S el identificador contiene varias palabras, como
numeroDeElementos, se pone en mayscula el primer carcter de cada palabra subsecuente o bien se
utiliza guin bajo ( _ ).

P Cmo reacciona el compilador cuando se declara una variable, pero nunca se le asigna un valor?
R El compilador enva un aviso advirtiendo que la variable no est referenciada.

P Cul es la expresin booleana para verificar si el valor de una variable, i, est en el rango de valores
(por ejemplo, definidos por las variables valInferior y valSuperior)?
R La expresin para determinar si el valor de una variable i se encuentra dentro de un rango es:
(i >= valInferior && i <= valSuperior)

CUESTIONARIO

1.- Cules de las siguientes variables son vlidas y cules no? Por qu?

NumArchivos
n0Distancia_02_lineas
0Peso
Numero Binario
static
Static

2.- Cul es la salida del siguiente programa?

#include <iostream.h>

void main(void)
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-4
{
int i = 3;
int j = 5;
double x = 33.5;
double y = 10.0;
cout << 10 + j % i << endl;
cout << i * i 2 * i + 5 << endl;
cout << (19 + i + j) / (2 *j + 2) << endl;
cout << x / y + y / x << endl;
cout << i * x + j * y << endl;
}

3.- Cul es la salida del siguiente programa?

#include <iostream.h>

void main(void)
{
int i = 3;
int j = 5;

cout << 10 + j % i++ << endl;
cout << -1 * i 2 * i + 5 << endl;
cout (19+ ++i + ++j) / (2*j + 2) << endl;
}

4.- Cul es la salida del siguiente programa?

#include <iostream.h>

void main(void)
{
int i = 3;
int j = 5;

i += j;
j *=2;

cout << 10 + j % i << endl;

i -= 2;
j /=3;
cout << i * i 2 * i + j << endl;
}

5.- Cul es la salida del siguiente programa?

#include <iostream.h>

void main(void)
{
int i = 5;
int j = 10;

cout << ((i < j) ? TRUE : FALSE) << endl;
cout << ((i > 0 && j < 100) ? TRUE : FALSE) <<endl;
cout << ((i > 0 && i < 10) ? TRUE : FALSE) << endl;
cout << ((i == 5 && i == j) ? TRUE : FALSE) << endl;
}
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-5
EJERCICIOS

1. Use el operador condicional para encontrar el mayor de dos enteros.

2. Use el operador condicional para encontrar el menor de dos enteros.

3. Use el operador condicional para encontrar el valor absoluto de un entero.

4. Use el operador condicional para asignar TRUE a la variable esImpar de tipo bool si un nmero es impar, y
FALSE en caso contrario.

RESUMEN 3

! El enunciado if de una sola alternativa, como:

if (condicion)
enunciado; | {<secuencia de enunciados>}

! El enunciado if-else de doble alternativa, como:

if (condicion)
enunciado1; | {<secuencia # 1 de enunciados>}
else
enunciado2; | {<secuencia # 2 de enunciados>}

! El enunciado if-else de alternativa mltiple, como:

if (condicion1)
enunciado1; | {<secuencia # 1 de enunciados>}
else if (condicion2)
enunciado2 | {<secuencia # 2 de enunciados>}
...
else if (condicionN)
enunciadoN; | {<secuencia # N de enunciados>}
[else
enunciadoN+1; | {<secuencia # N+1 de enunciados>}]

! El enunciado switch de alternativa mltiple, como:

switch (varCaso)
{
case constante1_1:
case constante1_2:
<otras etiquetas case>
<uno o ms enunciados>
break;

case constante2_1:
case constante2_2:
<otras etiquetas case>
<uno o ms enunciados>
break;
...
case constanteN_1:
case constanteN-2:
<otras etiquetas case>
<uno o ms enunciados>
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-6
break;

default:
<uno o ms enunciados>
break;
}

! Los enunciados if requieren que observe las siguientes dos reglas:

1. La condicin probada debe estar encerrada entre parntesis.
2. Los bloques de enunciados se encierran entre pares de llaves.

! Las construcciones anidadas para la toma de decisiones le permiten manejar condiciones complejas usando un
enfoque de divide y vencers. Las construcciones de nivel externo ayudan para probar condiciones
preliminares o ms generales. Las construcciones de nivel interno ayudan para el manejo de condiciones ms
especficas.
! Los enunciados try, catch y throw le permiten usar el manejo de excepciones para el control de errores.
! El ciclo for en C++ tiene la siguiente sintaxis general:

for (<inicializacin del ciclo>; <prueba de continuacin del ciclo>; <incremento/decremento de las variables de control del ciclo>)

El ciclo for tiene tres componentes: la iniciacin del ciclo, la condicin de continuacin del ciclo y el
incremento/decremento de las variables del ciclo.

! El ciclo do-while condicional tiene la siguiente sintaxis general:

do
{
secuencia de enunciados
} while (condicin);

el ciclo do-while itera al menos una vez.

! El ciclo while condicional tiene la siguiente sintaxis general:

while (condicin)
enunciado; | { secuencia de enunciados}

El ciclo while puede no iterar si la condicin probada es inicialmente falsa

! El enunciado continue le permite saltar al final del ciclo y continuar con la siguiente iteracin. La ventaja del
enunciado continue es que no usa etiquetas para dirigir el salto.
! Los ciclos abiertos son ciclos for con componentes vacos. El enunciado break le permite saltar del ciclo actual
y continuar la ejecucin del programa en el primer enunciado que se encuentra despus del ciclo. La funcin
exit (declarada en STDLIB.H) le permite crear una salida del ciclo crtica deteniendo tambin el programa
C++.
! Los ciclos anidados le permiten que se tengan tareas repetitivas como partes de otras tareas repetitivas. C++
permite anidar cualquier tipo de ciclo a casi cualquier nivel requerido.

PREGUNTAS Y RESPUESTAS

P C++ impone alguna regla para la sangra de enunciados en las clusulas de un enunciado if?
R No. La sangra es cuestin propia. Las sangras normales van de dos a cuatro espacios. El uso de sangra
hace que el listado sea ms legible. A continuacin se presenta el caso de un anunciado if sin sangra en los
enunciados de la clusula:

if (i > 0)
j= i + 1;
else
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-7
j = 10 i;

Compare la legibilidad de este listado con la de esta versin con sangra:

if (i > 0)
j = i + 1;
else
j = 10 i;

La versin con sangra es ms fcil de leer y muy sencillo decir dnde estn los enunciados if y else. Es
ms si usted comienza a jugar con ciclos anidados, las sangras correctas sern significativas para la
legibilidad del cdigo.

P Cules son las reglas para la escritura de la condicin de un enunciado if-else?
R Hay dos escuelas de pensamiento. La primera recomienda que se escriba la condicin para la que sea
cierta ms frecuentemente. La segunda, que evite expresiones negativas (las que usan el operador de
relacin != y el operador booleano !). Los programadores de esta escuela traducen este enunciado if:

if (i != 0)
j = 100 /i;
else
j = 1;

En el siguiente

if (i == 0)
j = 1;
else
j = 100 / i;

aunque la probabilidad de que la variablei guarde 0 pueda ser muy baja.

Al final viene siendo algo como un argumento religioso, al igual que sucede con muchas cosas en la
programacin. Lo que usted haga para s mismo puede ser una cosa, pero cuando trabaje con un
grupo de personas, tal vez encuentre todas las diferentes formas.

P Cmo puedo manejar una condicin como la siguiente, la cual divide entre una variable que tiene la
posibilidad de ser cero?

if (i != 0 && 1/i > 1)
j = i * i;

R C++ no siempre evala completamente la condicin de prueba. Esta evaluacin parcial sucede cuando
un trmino de la expresin booleana causa que la expresin completa sea falsa o cierta, sin importar los
valores de los dems trminos. En este caso, si la variablei es 0, el sistema al momento de ejecucin no
evala el trmino 1/i > 1. Esto se debe a que el trmino i != 0 es falso y causar que la expresin completa
sea falsa, sin importar lo que produzca el segundo trmino. A esto se le llama una expresin booleana en
corto circuito.

P Es realmente necesario incluir una clusula else o default en los enunciados if else de alternativa
mltiple y switch?
R Los programadores recomiendan la inclusin de estas clusulas para manejar todas las posibilidades.
Aunque tcnicamente no se requieren para que el programa sea bien compilado.

P Cmo puede un ciclo while simular a un ciclo for?
R Este es un ejemplo simple:

int i; int i = 1;
for (i = 1; i <= 10; i +=2) while (i <= 10)
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-8
{ {
cout << i << endl; cout << i << endl;
} i +=2;
}

El ciclo while requiere un enunciado al principio que inicialice la variable de control del ciclo. Tambin
observe que el ciclo while usa un enunciado en su interior para alterar el valor de la variable de control del
ciclo.

P Cmo puede un ciclo while simular a un ciclo do-while?
R Este es un ejemplo simple;

i = 1; i = 1;
do while ( i <= 10)
{ {
cout << i << endl; cout << i << endl;
i += 2; i += 2;
} while (i <= 10); }

Los dos ciclos tienen la misma condicin en sus clusulas while. Sin embargo, observe que si el ciclo se
disea de tal forma que no sabe necesariamente el valor inicial dei, podra tener efectos diferentes, si, por
ejemplo, i comenzara en 11. El ciclo del lado izquierdo se ejecutara una vez y, en cambio, el ciclo del lado
derecho nunca hara una iteracin.

P Cmo puede el ciclo for abierto emular a los ciclos while y do-while?
R El ciclo for abierto emula los otros ciclos de C++ asignando el enunciado if de salida del ciclo cerca
del inicio o del final. As es como el ciclo for abierto emula a un ciclo while de ejemplo:

i = 1; i = 1;
while (i <= 10) for (;;)
{ {
cout << i << endl; if (i > 10) break;
i +=2; cout << i << endl;
} i +=2;
}

Observe que el ciclo for abierto usa un enunciado if de escape del ciclo como primer enunciado dentro del
ciclo. La condicin probada por el enunciado if es el inverso lgico de la condicin del ciclo while. Este es
un ejemplo simple que muestra la emulacin del ciclo do-while.

i = 1; i = 1;
do for (;;)
{ {
cout << i << endl; cout << i << endl;
i +=2; i +=2;
}while (i <= 10); if (i > 10) break;
}

El ciclo for abierto usa un enunciado if de escape del ciclo automticamente antes del final del ciclo. El
enunciado if prueba la condicin inversa al ciclo do-while. Sin embargo, por favor tome nota de que estos
ejemplos son bastante crudos y poco elegantes. El programador nunca usara un ciclo for abierto de esta
forma. En su lugar podra saltarse alguna de las tres clusulas del interior de los parntesis del ciclo for
(como la clusula de inicializacin, si es que la variable de control ya se ha inicializado). Los ciclos for
abiertos se usan ms frecuentemente en casos donde la salida del ciclo sera un suceso raro, como si se
estuvieran aceptados y procesando tecleos del usuario, pero se saliera cuando se encontrara la tecla Esc.

MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-9
P En ciclos for anidados, puedo usar la variable de control de los ciclos externos como parte del rango de
valores para los ciclos internos?
R S. Solamente C++ no prohbe tal uso, sino que, de hecho, es bastante comn. Este es un ejemplo
simple:

for (int i = 1; i <= 100; i += 5)
for (int j = i; j <= 100; j++)
cout << i * j << endl;

P C++ restringe el anidado de los diversos tipos de ciclos?
R No. Puede anidar cualquier combinacin de ciclos en un programa C++

CUESTIONARIO

1. Simplifique los siguientes enunciados if anidados reemplazndolos con un solo enunciado if:

if (i > 0)
if (i < 10)
cout << i = << i << endl;

2. Simplifique los siguientes enunciados if reemplazndolos con un solo enunciado if-else:

if (i > 0)
{
j = i * i;
cout << j = << j << endl;
}

if (i < 0)
{
j = 4 * i;
cout << j = << j << endl;
}

if (i == 0)
{
j = 10 + i;
cout << j = << j << endl;
}

3. Cierto o falso? Los siguientes enunciados if realizan la misma tarea que el enunciado if else subsecuente:

if (i < 0)
{
i = 10 + i;
j = i * i;
cout << i = << i << endl;
cout << j = << j << endl;
}
if ( i >= 0)
{
k = 4 *i + 1;
cout << k = << k << endl;
}

if (i < 0)
{
i = 10 + i;
MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-10
j = i * i;
cout << i = << i << endl;
cout << j = << j << endl;
}
else
{
k = 4 *i + 1;
cout << k = << k << endl;
}

4. Simplifique el siguiente enunciado if-else:

if (i > 0 && i < 100)
j = i * i;
else if (i > 10 && i < 50)
j = 10 + i;
else if (i >= 100)
j = i;
else
j = 1;

5. Qu hay de errneo en el siguiente enunciado if?

if (i > (1 + i * i))
{
j = i * i
cout << i = << i << and j = << j << endl;
}

6. Qu hay de errneo en el siguiente ciclo?

i = 1;
while (i < 10)
{
j = i * i 1;
k = 2 * j i;
cout << i = << i << endl;
cout << j = << j << endl;
cout << k = << k << endl;
}

7. Cul es la salida del siguiente ciclo for?

for (int i = 5; i < 10; i + 2)
cout << i 2 << endl;

8. Cul es la salida del siguiente ciclo for?

for (int i = 5 ; i < 10;)
cout << i 2 << endl;

- Qu hay de errneo en el siguiente cdigo?

for (int i = 1; i <= 10; i++)
for (i = 8; i <= 12; i++)
cout << i << endl;

MIGUEL . TOLEDO MARTNEZ
REPASO GENERAL BREVE - FUNDAMENTOS
REPASO-11
9. Dnde est el error en el siguiente ciclo?

i = 1;
while (i > 0)
{
cout << i << endl;
i++;
}

11. La factorial de un nmero es el producto de la secuencia de los enteros desde 1 hasta ese nmero. La siguiente
ecuacin general define al factorial (que usa el smbolo !):

n! = 1* 2* 3* ... * n

A continuacin se tiene un programa C++ que calcula el factorial de un nmero. El problema es que para
cualquier valor positivo que teclee, el programa despliega un valor de 0 para la factorial. Dnde est el
error en el programa?

int n;
double factorial;

cout << Introduzca un entero positivo: ;
cin >> n;
for (int i = 1; i <= n; i++)
factorial *= i;
cout << n << ! = << factorial << endl;

EJERCICIOS

1. Escriba el programa CALCULA.CPP que implementa una calculadora simple de cuatro funciones. El
programa debe pedir el operando y el operador y desplegar tanto la entrada como el resultado. Incluya revisin
de errores para operadores incorrectos y para el intento de dividir entre cero.

2. Escriba el programa PROMEDIO1.CPP, que usa un ciclo for para calcular el promedio de una lista de
nmeros. El programa primero debe preguntar la cantidad de entradas que har el usuario, luego recolectar los
nmeros, sumarlos y dividir entre la cantidad total de entradas realizadas.

3. Escriba el programa PROMEDIO2.CPP que usa un ciclo while para ejecutar lo mismo que el programa
PROMEDIO1.CPP del ejercicio anterior.

4. Escriba el programa PROMEDIO3.CPP, que usa un ciclo do-while para ejecutar lo mismo que los dos ltimos
programas (PROMEDO1.CPP y PROMEDIO2.CPP)

Anda mungkin juga menyukai