Libro de C++
Libro de C++
Introducción.
1
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Capitulo 1
Lógica de Programación.
Lenguajes de Programación.
Programa Objeto: Para conseguir un programa ejecutable hay que seguir algunos
pasos. El primero es compilar o traducir el programa fuente a su código objeto
equivalente. Este es el trabajo que hacen los compiladores de C y C++. Consiste
en obtener un fichero equivalente a nuestro programa fuente comprensible para
el ordenador, éste fichero se conoce como fichero objeto, y su contenido como
código objeto.
3
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
4
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Un programa que ha sido compilado puede correr por si solo, pues en el proceso
de compilación se lo transformó en otro lenguaje (lenguaje máquina).
Pero por otro lado un archivo compilado puede ser distribuido fácilmente
conociendo la plataforma, mientras que un archivo interpretado no funciona si no
se tiene el intérprete.
5
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
1. Cuatro personas desean pasar un río. Disponen de una canoa que soporta 100
kilos. Dos de ellas pesan 100 kilos cada uno y las otras dos 50 kilos cada una.
Escriba el algoritmo que permita que las 4 crucen el río a través de la canoa.
2. Con diez soldados, forme 5 filas cada una con 4 soldados.
3. Se tiene 6 botellas del mismo licor (botellas de iguales características) de las
cuales una está alterada (sustancia menos densa). Disponemos de una balanza
de brazo, con máximo dos pesadas, determinar cuál es la botella alterada.
4. Ana, Bertha, Carlos y Diana están sentados en una fila de 4 sillas numeradas
del 1 al 4. José los mira y dice:
“Bertha está al lado de Carlos”.
“Ana está entre Bertha y Carlos”.
Pero sucede que las dos afirmaciones que hizo José son falsas. En realidad
Bertha está en la silla No. 3. ¿Quién está en la silla No. 2 ?
a) Bertha c) Carlos
b) Diana d) Ana
5. En una carrera participan cuatro personas A, B, C, D. Si se sabe que:
A llegó tres puestos antes que B.
C llegó antes que D.
¿Quién ganó la carrera? ¿Quién llegó en tercer lugar?
a) A – B c) A - C
b) B – C d) B- D
6. Colocar los números del 1 al 9 en las 9 casillas de un tablero de 3 x 3 de tal
forma que la suma de los números de las filas (horizontales, verticales y
diagonales) de el mismo resultado. Da como respuesta la suma de cada fila:
a) 8 c) 12 e) 20
b) 10 d) 15
6
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Capitulo 2
Algoritmos. Pseudocódigos.
En la vida diaria cada uno de nosotros diseña y realiza algoritmos para solucionar
los problemas cotidianos, es así que al levantarnos de la cama ya tenemos en la
mente una serie de pasos que debemos seguir para llegar al sitio de estudio o al
sitio de trabajo. Una vez en el sitio de estudio, tenemos en nuestra mente una
serie de tareas que debemos realizar en unos horarios ya definidos.
7
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Algoritmo Literal.
Enumeración de Pasos: Los pasos que deben seguir para la elaboración del
algoritmo se detallan secuencialmente de forma literal. Cada uno de estos pasos
se enumera en forma ascendente.
Ejemplo:
Para escribir los Pseudocódigos, debemos utilizar ciertas palabras que indican la
acción a tomar por el ordenador.
Español Inglés.
Constantes Constant - Cons
Variables Var
8
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Hacer do
Instrucciones instrucciones
Mientras(condición) While(condición)
Llamaremos a cada una de las palabras antes escritas como palabras reservadas
de los pseudocódigos y ninguna de estas podrán ser utilizada como nombre de
variables o constantes con nombres.
Algoritmo Gráfico.
Las operaciones
La secuencia en que se realizan.
El final del programa.
Símbolos Significado
Subprograma
Ejemplos:
Enumeración de pasos
1. inicio
2. abrir el grifo
3. mojarse las manos
4. aplicarse jabón
5. enjuagarse las manos
6. cerrar el grifo
7. secarse las manos con papel
8. exponer las manos a la corriente de aire caliente
9 Fin.
Flujo-grama
Abrir el grifo
Secarse las manos
con papel
Mojarse las
manos Secarse las manos
con papel
Aplicarse jabón
Exponer las
manos a la
corriente de aire
Enjuagarse las caliente
manos
FIN
A
11
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Colocar la llanta de
emergencia
Bajar el carro
Cerrar la cajuela
FIN
3. Algoritmo para lavarse las manos, se cuenta con un grifo de agua fría y
caliente, jabón, papel y corriente de agua caliente.
Enumeración de pasos
1. INICIO
2. Si (hace frío) Entonces
– Abrir el grifo de agua caliente
Sino
– Abrir el grifo de agua fría
Fin Si
12
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Diagrama de Flujo
Inicio
si ¿Hace no
frio?
Abrir grifo de Abrir grifo de
agua caliente agua fría
Aplicarse jabón
Fin
13
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
1. Elaborar los pasos necesarios para cruzar una avenida, haciendo uso de un
semáforo.
2. Escriba los pasos para llegar al cine haciendo uso del siguiente bosquejo:
14
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Capitulo 3
El lenguaje de programación C está caracterizado por ser de uso general, con una
sintaxis sumamente compacta y de alta portabilidad.
La descripción del lenguaje se realiza siguiendo las normas del ANSI C, por lo
tanto, todo lo expresado será utilizable con cualquier compilador que se adopte;
sin embargo en algunos casos particulares se utilizaron funciones Compilador ó
Sistema Operativo-dependientes, explicitándose en estos casos la singularidad
de las mismas.
Objetivos
Contenidos
Bibliografía
C++ estándar , de Enrique Hern_andez Orallo et al.
The C++ Programming Language, de Bjarne Stroustrup.
15
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
El lenguaje C++
16
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
/* este otro
es mucho
más largo
que el anterior */
Tipos de datos
Tipos fundamentales
float 32 bits
Tamaño dependiendo de la arquitectura, ejemplo: double 64 bits
void. long double 96 bits
se usa en funciones y punteros.
no se pueden declarar variables de ese tipo.
no consume memoria y no hay ningún operador aplicable a él.
17
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Tipo bool
Literales: Se delimita por dos apostrofes ’’. El carácter de escape \ sirve para
codificar algunos caracteres como ’\n’, etc.
Tipos derivados
18
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Expresiones. Operadores.
Variables:
20
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Constante:
Identificador:
Variables:
Correcto -----> cont, cuenta23, balance_total, _direccion,
Incorrecto -----> 1cont, hola!, balance...total, dirección del domicilio.
Constantes:
Correcto ------> sueldo=560.79, Dia=6, mes=’Enero’, anio=2011, pi=3.141
Incorrecto -----> sueldo=$345.90, día=7, año=2011
Los datos que se manejan al interior de la memoria del ordenador son variados,
por ejemplo pueden ser solo números, solo letras, solo un carácter, solo valores
21
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Datos Lógicos: Los valores lógicos están constituidos por verdadero y falso, .T. o
.V. (true=verdadero) , .F. (false=falso), 0 y 1 (falso y verdadero),o, cuando se
evalúe una expresión. X=false, Y=.t. , L=.f. S=true, bandera=5<2 PRO=3<-5
Expresiones Algebraicas.
Una expresión aritmética está formada por dos términos, el término del lado
izquierdo representado por una variable y el término del lado derecho
representado por la expresión a evaluar; los dos términos están unidos por el
carácter de asignación que en un algoritmo es representado por una flecha con la
punta hacia la izquierda (←). Ejemplo:
Los operadores aritméticos DIV y MOD sólo trabajan con números enteros.
Operadores Lógicos:
NOT (NO, ¬, ~, !)
23
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Expresión Resultad
o
Verdade Falso
ro
Falso Verdade
ro
Ejercicios:
1) X=4+3>10 4) X=(“José” = “josé”)
2) A=(’las rosas son rojas’) y B=’el gato ladra’) 5) (5*6=30) v (45 > 60)
3) X= ! [(7>2) && (4 <> 15) 6) !(25 % 5=0)
Ejercicios de Aplicación:
3x2 + 7x – 5
Solución: 3 * x^2 + 7*x – 5
5x2 - ⅜x + 352
Solución: 5 * x^2 – 3/8 * x + 352
Vot + ½ at2
Solución: Vo * t + 1/2 + a * t^2
14 – 4 / 2 + 89
14 – 2 + 89
101
4+3*2+2*3
4+6+6
16
24
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
-8 * 4 + 3 ^ 2 / 4 – 1
-8 * 4 + 9 / 4 – 1
-32 + 2.25 – 1
- 29.75
(5 – 3 ^ 2) * 2 + 8 / 4 + 6 MOD 2
(5 – 9) * 2 + 8 / 4 + 6 MOD 2
- 4 *2 + 8 / 4 + 6 MOD 2
-8 + 2 + 0
-6
8 / 4 * 6 / 12 + 6 / 2 / 3 / 5 ^ 3 / 4 * 3
Capitulo 4
Estructura de Control: Secuencia – Selección – Bucles.
Estructuras de Control.
25
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Teorema de la Estructura.
Este teorema establece que cualquier programa correcto puede ser escrito
usando solamente las estructuras de control de:
- Secuencia
- Selección.
- Control loops o Iteración (bucles).
Secuencia:
En términos de diagramación, la secuencia está por representada por una
función después de otra.
Ejercicios de Aplicación:
Análisis Matemático:
Suma = número1 + número2
Resta = número1 – número2
Producto = número1 x número2
Cociente = número1 número2
Definición de Variables:
PN= Primer número ingresado.
SN = Segundo número ingresado.
S = Suma
R = Resta
P = Producto
C = Cociente.
Diagramación:
26
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Algoritmos:
Literal: (Enumeración de pasos)}
1. Inicio.
2. Ingresar primer número; PN
3. Ingresar segundo número; SN
4. Procesos:
S ← PN + SN
R ← PN - SN
P ← PN * SN
C ← PN / SN
5. Visualizar resultados; S, R, P, C
6. Fin.
Pseudocódigo:
Inicio
Muchos programadores escriben las
Leer primer número; PN
instrucciones de un Pseudocódigo en el
Leer segundo número; SN idioma inglés:
S ← PN + SN Star
R ← PN – SN Read, (PN)
P ← PN * SN Read, (SN)
S ← PN + SN
C ← PN / SN
R ← PN – SN
Escribir; S P ← PN * SN
Escribir: R C ← PN / SN
Escribir; P Write, S,R,P,C
Escribir; C End
Fin
PN, SN
SPN+SN
RPN-SN
PPN*SN
CPN/SN
S, R, P, C
Prueba de Escritorio
FIN
PN SN S=PN+SN R=PN- P=PN*SN C=PN/SN S R P C
SN
10 5 S=10+5 R=10- P=10*5 C=10/5 15 5 50 2
5
27
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Análisis:
Área = base x altura
Definición de Variables:
B = Base
H = Altura
A = Área
Diagramación:
Algoritmo:
Pseudocódigo.
Inicio
Leer Base; B
Leer Altura; H
A←B*H
Escribir; A
Fin
Diagrama de Flujo:
INICIO
B, H
AB * H
Selección:FIN
Es la selección entre dos acciones basadas en una condición, llamada
estructura IF …. THEN …… ELSE …. Donde IF evalúa la expresión; THEN
ejecuta una o varias sentencia si la expresión es verdadera; ELSE ejecuta
una o varias sentencias si la expresión es falsa. En ciertas ocasiones pueden
utilizarse estructuras que ejecuten unas o varias sentencias sólo si la
expresión es verdadera (THEN); en caso contrario el programa sigue su curso
28
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
SI NO SI
Condici Condici
ón ón
Ejercicio de Aplicación:
Análisis:
Sueldo >= 500 mostrar “Crédito Aceptado”
Definición de Variables:
n$ = Nombre del empleado
sueldo = Sueldo del empleado
Diagramación.
Algoritmo:
Pseudocódigo:
Inicio
Leer Nombre el empleado; n$
Leer Sueldo del Empleado; sueldo
Si (sueldo >= 500) entonces
Escribir “Crédito Aceptado”
Fin_Si
Fin
Diagrama de Flujo.
INICIO
n$, sueldo
sueldo SI “Crédito
>= 500 Aceptado”
NO 29
FIN
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Análisis:
8 < 10 => SI (8, 10)
50 < 20 => NO (20, 50)
definición de Variables:
n1 = primer número
n2 = segundo número
Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo
INICIO
Inicio
Leer Primer número; n1
n1, n2
Leer Segundo número; n2
Si (n1 < n2) entonces
Escribir; n1, n2 n2, n1
NO
n1 < n2
SI
n1, n2
Sino
Escribir; n2, n1
Fin-Si
Fin FIN
Análisis:
Se conoce que un número es par cuando su último término es múltiplo de 2
(divisible para 2) o 0; al contrario será un número impar.
26 2 19 2 50 2
06 13 1 9 10 25
0 0
Definición de Variables:
N1 = Número Ingresado por teclado
30
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Diagramación.
Algoritmo: Diagrama de Flujo.
Pseudocódigo:
Inicio INICIO
Leer Número; N1
N1
Si (N1 MOD 2 = 0) Entonces
Escribir “Es Par”
SI
SINO “impar”
NO N1 MOD 2
“Par”
Escribir “Es Impar” =0
Fin-Si
Leer Opción; Op$
Si Op$ = “S” Entonces
Ir al inicio FIN
Fin-Si
Fin.
Iteración:
La estructura de iteración se utiliza para la ejecución repetida de
instrucciones mientras se cumpla una condición. El siguiente diagrama
representa la estructura de iteración.
Sentencias Sentencias
Sentencias
Condici
Condici ón
ón
Contadores:
Un contador es un campo de memoria cuyo valor se incrementa en una cantidad
fija. Un contador toma un valor inicial antes de empezar su función,
posteriormente, y cada vez que se realiza el suceso a contar, incrementa su valor
(1 en la mayoría de los casos). Un contador se utiliza en los siguientes casos:
31
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
a =a+1
Variable Incremento
Valor de Variable
Acumuladores:
Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces
en cantidades variables. Se utiliza en aquellos casos en que se desea obtener un
total acumulado de un conjunto de cantidades, es necesario iniciarlo con valor 0.
Se los representa tomando en cuenta la siguiente sintaxis:
a=a+b
Variable Valor almacenar
Valor de Variable
Ejercicios de Aplicación:
Definición de Variables:
a = Contador
Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo. Inicio
Inicio
Desde a = 1 hasta 10 a = 1 hasta 10
Fin
Análisis:
5 p=p+1
-34 n=n+1
0 nu = nu + 1
Definición de Variables
N1 = Ingreso de número.
C = Contabiliza los 10 número
32
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
Diagramación:
Algoritmo: Diagrama de Flujo
Pseudocódigo:
Inicio
Inicio
C=C+1
C 0: NU 0
Leer Número; N1 P 0: N 0
Si (N1 = 0) entonces
C=C+1
Escribir “Es Nulo”
NU = NU + 1 N1
SINO
SI NO
Si (N1 > 0) Entonces N1 = 0
33
Anlst. Víctor Elizalde P Lógica y Lenguaje de Programación.
34