Cap II ALGORITMOS Y PROGRAMACIÓN C++
ALGORITMO PROGRAMA C++
Un programa es un
ALGORITMO: Es un
conjunto de sentencias
conjunto finito,
(instrucciones) escritas
ordenado y lógico de
en un lenguaje de
pasos que conducen a la
programación que nos
solución de un problema.
permite resolver un
determinado problema
Expresión de un algoritmo a través de un
ordenador.
Generalmente un
Diagrama de flujo Pseudocódigo (PSeInt) programa se escribe
luego de realizar el
Un diagrama de flujo es El pseudocódigo es una forma de algoritmo expresado
un diagrama que utiliza expresar los distintos pasos de un en diagrama de flujo o
diversos bloques con un algoritmo, de una manera textual y con las en pseudocódigo y por
significado particular con instrucciones muy concretas y precisas que tal razón existe una
la finalidad de describir conducen a la solución de un determinado correspondencia
los pasos de un problema y su lenguaje natural es muy directa entre un
algoritmo. cercano a un lenguaje de programación. algoritmo y un
programa.
ESTRUCTURAS DE PROGRAMACIÓN
SECUENCIAL SELECTIVA REPETITIVA
F V F
Condición Condición
A V
C A
B
B
C
La estructura selectiva, es una
estructura de programación que
permite elegir una de dos o más
alternativas el recorrido de un
La estructura repetitiva o ciclo
algoritmo o la ejecución de un
repetitivo, es una estructura
programa luego de evaluar una cierta
que permite repetir varias
condición. veces un conjunto de pasos o
acciones en un algoritmo o
La estructura secuencial es la más sencilla de programa.
todas, indica la ejecución consecutiva paso a paso
de forma secuencial el conjunto de acciones (que
podrían ser, a su vez otras estructuras de control);
pero para esta parte inicial no se incluirán las otras
estructuras.
Estructura de un algoritmo y un programa en C++
ALGORITMO
Pseudocódigo
Diagrama de flujo (PSeInt) PROGRAMA C++
#include <Biblioteca de funciones>
Proceso Nombre_del_algoritmo using namespace std;
Paso 1 o Acción 1 int main( )
Paso 2 o Acción 2 {
declaración de variables
Paso 3 o Acción 3 sentencia1;
Estructura ●●●●● sentencia2;
secuencial sentencia3;
●●●●● ●●●●●
●●●●●
●●●●● ●●●●●
sentenciaN;
Paso N o Acción N
return 0;
FinProceso }
PARA ESTRUCTURAS SECUENCIALES SIN ESTRUCTURAS SELECTIVAS NI REPETITIVAS
INICIO FIN
Entrada y Salidas
Inicio / Fin
del algoritmo específicas
Entrada de a,b
Entrada / Salida Leer Escribir datos por
de datos a, b p teclado
Proceso o Salida de datos
cálculo p=2(a+b) por pantalla p
a realizar
Indica la secuencia de
pasos Salida de datos p
impresos
Indica la continuación
de un diagrama o la α
finalización de una
estructura
Leer los lados de un rectángulo para calcular y mostrar el valor del perímetro de dicha figura
Diagrama de flujo Pseudocódigo
INICIO
a
Leer
a, b
b p= 2*( a+b)
Perímetro:
p abab Escribir
p 2a 2b p
p 2(a b) FIN
DIAGRAMA DE FLUJO PROGRAMA C++
Inicio
Leer
a, b
p= 2*( a+b)
Escribir
p
Fin
PSeInt es un pseudolenguaje de Clickcharts es una aplicación que
especificación de algoritmos, cuyo permite crear fácilmente
objetivo principal es facilitar la tarea representaciones visuales de procesos,
de diseñar y estructurar los algoritmos organización, modelado, mapas
expresados en pseudocódigo y/o conceptuales, diagramas de flujo y
diagrama de flujo. otros diagramas y secuencias.
El lenguaje C++ se desarrolló en 1983 a través de su creador Bjarne Stroustrup y que en 1985
con algunas mejoras adicionales e innovadoras herramientas se logró colocar a disposición del
mundo de la informática, mejorando sustancialmente a su antecesor el lenguaje C y cuya
característica adicional fue la programación orientada a objetos.
En la actualidad existe una diversidad de entornos de desarrollo integrados, el que utilizaremos
para este curso será el lenguaje C++ de Code::Blocks.
En C++ existen varios tipos de datos fundamentales, que acompañados de sus
modificadores de tipos permiten el almacenamiento de datos en las variables y con los
siguientes rangos:
Enteros
Reales
+ Suma Ej: a+b
- Resta Ej: a-b
* Multiplicación Ej: a*b
/ División Ej: a/b
% Módulo o resto de
Ej: a%b
la división entera
Adicionalmente en PSeInt
^ Potencia Ej: a^b
Adicionalmente en C++ Ej: a --
-- decremento en la unidad Ej: a ++
++ incremento en la unidad
rc(x) o raiz(x) Raíz Cuadrada de x
abs(x) Valor Absoluto de x
ln(x) Logaritmo Natural de x
exp(x) Función Exponencial de x
sen(x) Seno de x
cos(x) Coseno de x
tan(x) Tangente de x
asen(x) Arcoseno de x
acos(x) Arcocoseno de x
atan(x) Arcotangente de x
trunc(x) Parte entera de x
redon(x) Entero más cercano a x
azar(x) Entero aleatorio entre 0 y x-1
Para utilizar las funciones matemáticas, declarar al inicio del programa su Biblioteca de
funciones en las directivas del preprocesador a través de #include <math.h>
acos(x) Devuelve el arco coseno de x
asin(x) Devuelve el arco seno de x
atan(x) Devuelve el arco tangente de x
ceil(x) Devuelve el entero mayor a x.
cos(x) Devuelve el coseno de x
exp(x) Devuelve el valor de e elevado a x
fabs(x) Devuelve el valor absoluto real x
floor(x) Devuelve el entero menor a x.
log(x) Devuelve el logaritmo natural de x
log10(x) Devuelve el logaritmo en base 10 de x
pow(x,y) Devuelve el valor de x elevado a la potencia y
round(x) Devuelve el redondeo al entero mas cercano a x
sin(x) Devuelve el seno de x
sqrt(x) Devuelve la raíz cuadrada de x
tan(x) Devuelve la tangente de x
BIBLIOTECAS DE FUNCIONES
En C++ existen ciertos archivos que se denominan: Bibliotecas o Librerías de funciones
que contienen el código de programas que permiten realizar diversas tareas o cálculos a
realizar, como por ejemplo: leer datos del teclado, escribir en la pantalla, manejar números,
usar funciones matemáticas, etc.
Una Biblioteca de funciones se declara al principio de todo el código escrito en C++a través
de:
#include <nombre de la Biblioteca>.
Ejemplos de algunos nombres de Bibliotecas de funciones:
iostream: Permite principalmente la entrada y salida de datos.
math: Las funciones contenidas en esta Biblioteca permiten la manipulación de funciones
matemáticas como por ejemplo raíz cuadrada, funciones trigonométricas, logarítmicas,
etc.
stdlib: Las funciones contenidas en esta Biblioteca permiten la manipulación de funciones
de uso general como por ejemplo funciones para generar números aleatorios.
string: Las funciones contenidas en esta Biblioteca permiten la manipulación de cadenas
alfanuméricas.
Por ejemplo para flujos de entrada/salida: #include <iostream>
Si se utilizan funciones matemáticas : #include <math.h>
DECLARACIÓN DE CONSTANTES
Para declarar constantes en C++ debe utilizarse la palabra reservada const seguido de
un tipo de dato y un identificador de la constante, el signo de igualdad y el valor que
no cambiará a lo largo del programa.
Ejemplos:
const int mayor_de_edad = 18;
const double pi = 3.1416;
IDENTIFICADORES DE LAS VARIABLES
EN PSeInt y en C++
La longitud de un identificador utilizado para referirse a las variables utilizadas en un
algoritmo o programa puede variar entre 1 y 32 caracteres o inclusive hasta 255 caracteres
dependiendo del compilador.
El primer carácter debe ser una letra o un símbolo de subrayado, los caracteres siguientes
pueden ser letras, números o símbolos de subrayado.
Ejemplos:
cont, cuenta23, balance_total, temperatura_final
DECLARACIÓN DE VARIABLES EN C++
Todas las variables deben ser declaradas antes de ser utilizadas, la forma general de
declararlas es:
tipo variable1, variable2, variable3,…;
Ejemplos:
int n, i, habitantes;
double salario, importe, descuento;
CAMBIAR EL TIPO DE DATO EN C++
En un programa en C++ es posible cambiar el tipo de dato del contenido de una variable o
el tipo de dato del resultado de una expresión.
CAMBIAR EL TIPO DE DATO DEL CAMBIAR EL TIPO DE DATOS DEL
CONTENIDO DE UNA VARIABLE: RESULTADO DE UNA EXPRESIÓN:
(tipo) variable tipo (expresión)
Ejemplos: Ejemplos:
p = 2 * pi * (int) r; p = int (2 * pi * r );
p = 2 * (int) pi * (int) r; p = 2 * int (pi * r );
ENTRADA Y SALIDA EN C++
La entrada y salida de datos hacen uso de los flujos estándares (streams) de su directiva:
#include <iostream>
FLUJO DE ENTRADA
Sintaxis: cin >> variable1 >> variable2 …;
Ejemplo: cin >>a >>b >>c;
FLUJO DE SALIDA
Sintaxis: cout <<expresión1 << expresión2 …;
Puede incluirse si fuese necesario el manipulador de salto de línea endl.
Ejemplos: cout <<”El resultado es = ”<<res;
cout <<”El resultado es = ” <<res <<endl;