Está en la página 1de 7

Universidad Nacional de Salta Dra.

Virginia Quintana
Facultad de Ingeniería – Ingeniería Civil Ing. Ezequiel Sánchez
Matemática Aplicada Año 2020

ALGORITMO, SEUDOCODIGO1 Y PROGRAMACION EN C++2

“El objetivo principal del análisis numérico es el desarrollo de métodos computacionales para el
análisis y resolución de problemas matemáticos”
El álgebra y el análisis matemático proveen soluciones analíticas pero muchos problemas de la
ciencia y la ingeniería no se pueden resolver de manera exacta o es muy difícil hacerlo, solo es posible a
través de la aplicación de métodos numéricos que aproximen la solución.

I. ALGORITMO
Definición: Un algoritmo es un conjunto finito de instrucciones que especifican una secuencia de
operaciones a realizar en forma ordenada para resolver un problema específico.
Un algoritmo debe ser simple, claro y preciso para que se pueda traducir en programas que serán
fáciles de seguir y corregir, además debe ser eficiente para hacer un buen uso de los recursos de memoria
y de tiempo de procesamiento.
I.I Métodos Numéricos
Definición: Se denomina método numérico a un algoritmo que permite la resolución de problemas
cuyas soluciones consisten en uno o más valores numéricos. Los valores numéricos obtenidos por este
procedimiento constituyen la solución numérica del problema.

II. SEUDOCÓDIGO
Definición: Un seudocódigo es una herramienta que permite describir con claridad los distintos
pasos que componen un algoritmo. Es decir que es un lenguaje intermedio entre el código de
programación de alto nivel y el lenguaje coloquial que empleamos.
Todo seudocódigo se compone de los siguientes elementos:
1) Datos de entrada: son todos aquellos datos imprescindibles para el desarrollo de los distintos
pasos que componen al seudocódigo.
2) Instrucciones esenciales del algoritmo implementado: estas se utilizan para indicar de una
manera clara y precisa todos los pasos que permiten el objetivo deseado.
3) Salida de resultados: se refiere a los valores numéricos o mensajes que son obtenidos en el
desarrollo del algoritmo.
Cada línea del seudocódigo se expresa mediante la instrucción:
PASO 1 DATOS
:
PASOS k INSTRUCCIONES
:
PASO n SALIDA

1
Ricardo Grossi, Carlos Albarracín (2000) Análisis Numérico, Capitulo 1
2
Carlos Albarracín (2000) Apuntes de Cátedra
III. PROGRAMA
Definición: Se denomina programa a un conjunto de instrucciones secuenciales (comandos o
sentencias), interpretables y ejecutables por la computadora.
Las soluciones a los problemas implican, por parte del programador, una secuencia de etapas a
cumplir en el tiempo, que pueden describirse en términos de los siguientes pasos:
 Descripción y análisis del problema a resolver.
 Diseño del algoritmo con Instrucciones específicas
 Planteo del seudocódigo
 Armado del código fuente en algún lenguaje de computadora (ejemplo: C++, Fortran, Java, etc)
 Ejecución del programa en una computadora.
 Corrección, pruebas y optimización del programa.
 Documentación y mantenimiento del programa.

“C++ es un lenguaje de programación utilizado en ámbitos científicos, de ingeniería y de


desarrollo de software en general”.
La sintaxis de C++ tiene ciertas características particulares que contribuye a minimizar la
introducción de errores y de esta forma a facilitar la programación, especialmente en el caso de programas
grandes.

1) ESQUEMA DE UN PROGRAMA EN C++


1. Directivas de compilación, bibliotecas o librerías del tipo #include< >
2. Declaración o Prototipo de las funciones auxiliares;
3. int main ( ){
Declaración de variables locales del main;
Entrada de datos;
Instrucciones y llamado a funciones;
Salida de resultados;
Return;
}
4. Definición de las funciones auxiliares
Obsérvese que se han incluido punto y coma al final de algunas líneas y de otras no. Esto es un requisito
para indicar el fin de una instrucción.

2) FUNCIONES DE ENTRADA Y SALIDA


La funcionalidad para efectuar entrada y salida de datos se efectúa por medio de una abstracción
denominada stream (flujo). La implementación está provista por medio de clases, cuyos prototipos se
encuentran en el archivo cabecera <iostream>.
El objeto de la clase istream, cin>>, es el que realiza la entrada de datos, mientras que para la
salida se debe utilizar el objeto cout<<, una instancia de la clase ostream. Las clases para entrada y salida
deben ser declaradas en el programa mediante la directiva de compilación “#include <iostream>”.
Ejemplo: cout<<"Ingrese la cantidad de puntos: ";
cin>>n;

3) FUNCIONES DE LA LIBRERÍA MATEMÁTICA


<math.h>: archivo de cabecera con los prototipos de las funciones matemáticas. Los prototipos de
algunas de las funciones matemáticas son las siguientes:
Función Descripción
sin(x) Función seno.
cos(x) Función coseno.
tan(x) Función tangente.
sinh(x) Función seno hiperbólico.
cosh(x) Función coseno hiperbólico.
tanh(x) Función tangente hiperbólica.
acos(x) Función arco coseno.
asin(x) Función arco seno.
atan(x) Función arco tangente.
exp(x) Función exponencial.
log(x) Función logaritmo natural.
log10(x) Función logaritmo decimal.
pow(x,y) Calcula x elevado a la y.
sqrt(x) Función raíz cuadrada.
fabs(x) Función valor absoluto.

Ejemplos: Escribir en C++: √𝑥 + 2 → 𝑠𝑞𝑟𝑡(𝑥 + 2);


ln⁡(5𝑥) → 𝑙𝑜𝑔(5 ∗ 𝑥);
(1 − 𝑥)4 → 𝑝𝑜𝑤(1 − 𝑥, 4);

4) PROGRAMA PRINCIPAL o MAIN


C++ posee un conjunto pequeño de palabras claves, dejando a las bibliotecas, la totalidad de las
rutinas auxiliares que facilitan la programación en este lenguaje. Todos los módulos son funciones, es
decir, lo que en otros lenguajes se conocen como subrutinas. El módulo principal del programa se
denomina main ().
Mayúsculas y Minúsculas: Para C++ no es lo mismo una letra en minúscula que una mayúscula
en la denominación de los diferentes símbolos que constituyen un programa.
Comentarios: La introducción de comentarios para varias líneas se realiza utilizando los caracteres
‘/*’ al inicio del comentario y se cierran con ‘*/’. También es posible insertar un comentario de una sola
línea con ‘//’ al inicio del comentario.
Saltos de líneas y tabulaciones: Es preciso incluir en la salida, caracteres no imprimibles tal como
los que se muestran a continuación:
\t Tabulador horizontal
\n Salto de línea (sólo en consola)
5) TIPOS DE DATOS BÁSICOS
Un aspecto esencial en un programa es la sintaxis para definir variables,
 int: sentencia para declarar una o varias variables que representan números enteros.
Ejemplo: int n, i, j;
 double: sentencias para declarar una o varias variables de punto flotante de doble precisión que
representan números reales. Ejemplo: double y, x[100], a[100] [100];
La definición de un arreglo (array), se efectúa de la siguiente forma: Matrices A[10][10] y Vectores
x[10], es decir que por cada dimensión del array se necesita un par de corchetes, tanto en la declaración
como en la referencia a uno de sus elementos. El primer subíndice válido de un array es el 0 (cero).
 char: sentencia para declarar una o varias variables del tipo caracteres. Ejemplo: char nombre,
edad;

6) OPERADORES
Operadores de asignación Operadores relacionales
Operador Significado Operador Significado
= Asignación == Igual
+= Suma y asignación < Menor
-= Resta y asignación > Mayor
*= Multiplicación y <= Menor o igual
asignación >= Mayor o igual
/= División y asignación != Distinto (no igual)

Operadores aritméticos Operadores lógicos


Operador Significado Operador Significado
+ Suma && Conjunción
- Resta || Disyunción
* Multiplicación ! Negación
/ División
++ Incremento unitario
-- Decremento unitario

7) INSTRUCCIONES
7.1. La instrucción for sirve para ejecutar instrucciones o bloques de instrucciones iteradamente.
Algunas de las formas más usuales son las siguientes:
 for (inicialización; condición; incremento) instrucción;
 for (inicialización; condición; incremento) {bloque de instrucciones}
En donde:
inicialización: normalmente es una asignación del valor inicial de la variable.
condición: es una expresión lógica que determina hasta cuando se ejecutará la instrucción.
incremento: es una instrucción que establece como cambia la variable del ciclo en cada iteración.
instrucción: es una instrucción.
bloque: un conjunto de instrucciones individuales.
Ejemplo: Cargar datos en un vector:
for (i=1; i<=n; i++){
cout<<"Ingrese el valor de x["<<i<<"]: ";
cin>>x[i];
}
7.2. Las instrucciones if sirven para ejecutar instrucciones o bloques de código en forma condicional.
Algunas de las formas más usuales son las siguientes:
 if (expresión) instrucción;
 if (expresión) { bloque de instrucciones}
 if (expresión) { bloque 1 de instrucciones } else { bloque 2 de instrucciones }
 if (expresión) { bloque 1 de instrucciones } else if (expr2) { bloque 2 de instrucciones }
En donde:
expresión: es una expresión lógica
instrucción: es una instrucción.
bloque: un conjunto de instrucciones individuales.

8) FUNCIONES
8.1. La Declaración o el prototipo de funciones auxiliares antes del main, tienen el siguiente formato:

Tipo_dato nombre_función ( Tipo_dato lista_argumentos );

En donde:
Tipo_dato: es el tipo de dato que devuelve la función.
nombre_función: es el nombre que se le asigna a la función.
lista_argumentos: lista de parámetros separados por una “,” (coma).
Si bien no es necesario incluir el nombre de los argumentos (en este caso x), es recomendable hacerlo, ya
que ello constituye una forma de documentar el programa, dado que su nombre puede orientar en cuanto
al significado y finalidad de dicho parámetro.

8.2. La Sintaxis para la Definición de las funciones auxiliares después del main, es:

Tipo_dato nombre_función ( Tipo_dato lista_argumentos ){


Declaración de variables locales;
Instrucciones locales;
Return ;
}

Ejemplo: la función f (x) = ex se declara: int f (int x);


y se define: int f (int x){ return exp(x); }
9) EJEMPLO
Desarrollar un programa en C++ que evalúe la función f ( x)  seno( x) y sus derivadas en los puntos
x  0, 0.5, 1, 1.5 . Mostrar los resultados en una tabla (empleando 6 cifras decimales)

//PASO 1: DIRECTIVAS DE COMPILACIÓN, BIBLIOTECAS O LIBRERIAS


#include <iostream>
#include <math.h>
using namespace std; // (dejar siempre este comando: espacio estandar de nombres)

//PASO 2: DECLARACION O PROTOTIPO DE FUNCIONES AUXILIARES


double f (double x);
double fp (double x);
double fpp (double x);

//PASO 3: PROGRAMA PRINCIPAL


int main () {
double x[100];
int i, n;
cout << fixed; // (dejar siempre este comando: formato de salida con 6 decimales “por defecto”)
cout << "Tabla para el estudio de funciones\n\n"; // titulo del programa

//ALGORITMO
cout << "Ingrese la cantidad de puntos: ";
cin >> n;
cout << "\n";
for (i=1; i<=n; i++) {
cout << "Ingrese el valor de x["<< i <<"]: ";
cin >> x[i];
}
cout << "\n";
cout << "x[i] \t\tf(x[i]) \tfp(x[i]) \tfpp(x[i])\n"; // encabezado de tabla
cout << "----------------------------------------------------------\n";
for (i=1; i<=n; i++) {
cout << x[i] << "\t" << f(x[i]) << "\t" << fp(x[i]) << "\t" << fpp(x[i]) << "\n";
}
cout << "\n";
system ("pause");
return 0;
}

//PASO 4: DEFINICION DE FUNCIONES AUXILIARES


double f (double x) {
return sin(x);
}
double fp (double x) {
return cos(x);
}
double fpp (double x) {
return -1*sin(x);
}

También podría gustarte