Monografias | Algoritmo y flujogramaAlgoritmo y flujogramaResumen: Algoritmo. Flujograma. Constantes. Variables. Definiciones. Los matemáticos hindúes, árabes y europeos fueron los primeros que desarrollaron técnicas de cálculo escrito. El matemático árabe Al'Khwarizmi , alrededor del año 830 DC, escribe un libro de Aritmética, traducido al latín como Algoritmi de numero Indorum, donde introduce el sistema numérico indio (sólo conocido por los árabes unos 50 años antes) y los métodos para calcular con él. De esta versión latina proviene la palabra Algoritmo.
Indice 1. Introducción
Los matemáticos hindúes,
árabes y europeos fueron los primeros que desarrollaron técnicas de cálculo
escrito. El matemático árabe Al\'Khwarizmi
, alrededor del año 830 DC, escribe un libro de Aritmética, traducido al latín
como Algoritmi de numero Indorum, donde introduce el sistema numérico indio (sólo
conocido por los árabes unos 50 años antes) y los métodos para calcular con
él. De esta versión latina proviene la palabra Algoritmo. 2. Algoritmo: Definición
Es un Método para resolver
un problema mediante una serie de pasos precisos , definidos y finitos. Un
algoritmo es una serie de operaciones detalladas ,en otras palabras un algoritmo
es un conjunto de reglas para resolver una cierta clase de problemas y se puede
formular de muchas formas con el cuidado de que no exista ambigüedad.
Características
3. Constantes: Definición
Una constante es un dato cuyo valor no puede cambiar durante
la ejecución del programa. Recibe un valor en el momento de la compilación y
este permanece inalterado durante todo el programa. Las constantes se declaran
en una sección que comienza con la palabra reservada const . Después de
declarar una constante se puede usar en el cuerpo principal del programa. const
Min = 0;
Max = 100;
Sep = 10;
var
i : integer;
begin
i := Min;
while i < Max do begin
writeln(i);
i := i + Sep
end
end.
En este ejemplo se declaran tres constantes (Min, Max y Sep).
En la primera línea del cuerpo del programa se asigna una constante a una
variable. En la siguiente, se usa una constante en una comparación. Y en la
cuarta, la constante Sep interviene en una expresión que se asigna a una
variable. El resultado de ejecutar este programa sería una impresión en
pantalla de los números: 0, 10, 20, 30, 40, 50, 60, 70, 80 y 90. declaradas (con nombre)
expresión
Son valores de cualquier tipo que se utilizan directamente,
no se declaran ya que no tienen nombre. En el siguiente ejemplo tienes un par de
constantes literales (el 3, el 4, y el 3.1416):
VolumenEsfera := 4/3 * 3.1416 * Radio * Radio * Radio;
Por ejemplo:
const
Pi = 3.141592; (*
valor real *)
Ejemplo:
const
Min = 0;
4. Variables: Definición
Una variable es un nombre asociado a un elemento de datos que
está situado en posiciones contiguas de la memoria principal, y su valor puede
cambiar durante la ejecución de un programa. Toda variable pertenece a un tipo
de dato concreto. En la declaración de una variable se debe indicar el tipo al
que pertenece. Así tendremos variables enteras, reales, booleanas, etc. Por
otro lado, distinguimos tres partes fundamentales en la vida de una variable:
Declaración de variables var
listaVar1:tipo1;...;listaVarn:tipon;
Una variable no representa más que una porción de memoria
en donde guardamos un dato que dependerá del tipo al que pertenezca la
variable. A diferencia de una constante, el valor de una variable puede cambiar
durante la ejecución de un programa. Otra diferencia, es que a una variable no
basta con declararla, sino que también es necesario iniciarla. Esto se refiere
a darle un valor inicial, y es importante ya que si no lo hacemos, igual nos
encontramos con errores cuando ejecutemos el programa.
Ejemplo de declaración de variables:
... I, J, K : Integer;
(* valores enteros *)
Contador : Integer;
Radio : Real; (*
valor real *)
Letra : Char; (* un
caracter *)
...
En este ejemplo se declaran seis variables. Las cuatro
primeras son de tipo entero. La quinta es de tipo real, o sea, un número con
parte decimal. Y la sexta es un carácter, que no es lo mismo que una cadena de
un carácter (String[1]).
Iniciación de variables Veamos un ejemplo que reúne los dos casos:
begin
...
i:=1;
readln(n);
while i < n do begin
(* cuerpo del bucle
*)
i := i + 1
end;
...
end.
Utilización de variables i := i + 1
for i:=1 to 10 do ...
if i<10 then ...
n := (Max - Min) div I
Tipos de datos. Cada lenguaje de programación tiene sus propios tipos de
datos, algunos de estos son comunes a todos, entre los tipos de datos comunes
están :
El tipo integer (entero) bucle .
A continuación se muestra un ejemplo en el que aparecen dos
variables enteras. Como se puede ver, en el ejemplo se muestran las dos maneras
de declarar una variable de tipo entero:
type
tContador = integer;
var
i : tContador;
n : integer;
begin
n := 10; (*
asignamos valor al maximo *)
i := 1; (* asignamos
valor al contador *)
while (i <= n) do begin
writeln(\'El valor
de i es \',i);
i := i + 1
end
end.
El tipo boolean (lógico) Para aclararlo, se muestra el siguiente ejemplo:
type
tLogico = boolean;
var
llueve : tLogico; (*
si llueve o no *)
paraguas : boolean;
(* si encuentro o no el paraguas *)
begin
(* aqui se
determinarian los valores de "llueve" y "paraguas"
*)
if llueve and (not paraguas) then
writeln(\'Me quedo
en casita\')
else
writeln(\'Me voy a
dar un paseo\')
end.
El tipo real const
pi = 3.1416;
type
tArea = real;
var
A : tArea; (* area *)
R : real; (* radio *)
begin
R := 4.50;
A := pi * R * R; (*
calculamos el area *)
writeln(\'El area
para un radio de \',R:4:2,\' es \',A:8:4)
end.
Los tipos char y string (carácter y cadena) Veamos a continuación cómo se usan ambos tipos en el
siguiente ejemplo:
type
tNombre =
string[10]; (* puede almacenar 10 caracteres *)
var
nombre : tNombre; (*
variable para almacenar el nombre *)
letra_NIF : char; (*
caracter para contener la letra del NIF *)
begin
nombre := \'Beni\';
letra_NIF := \'L\';
writeln(\'Mi nombre
es \',nombre,\' y mi letra es \',letra_NIF)
end.
Estructura de Datos :Repetitivas y Secuencial
Las estructuras repetitivas o iterativas son aquellas en las
que las acciones se ejecutan un número determinado de veces y dependen de un
valor predefinido o el cumplimiento de una determinada acción. Entre las estructuras repetitivas se encuentran:
Mientras (while)
Repetir
(repeat)
Estructura Mientras (while)
La estructura repetitiva while, es aquélla en que el cuerpo
del bucle se repite mientras se cumple una determinada condición, su
representación gráfica es:
Pseudocódigo en español
Pseudocódigo en inglés
Mientras condición hacer
while condición do
Acción S1
<Acciones>
Acción S2
:
:
End_while
acción Sn
Fin_mientras
Diagrama N-S
1er. Ejemplo:
Contar los números enteros positivos introducidos por
teclado. Se consideran dos variables enteras NUMERO y CONTADOR (contará el número
de enteros positivos). Se supone que se leen números positivos y se
detiene el bucle cuando se lee un número negativo o cero.
Pseudocódigo
Inicio
contador
Leer (numero)
Mientras numero > 0 hacer
contador
Leer (numero)
Fin_Mientras
Escribir(\'El número de enteros positivos es : \', contador)
Fin
Diagrama de Flujo – 1er. Ejemplo
2do. Ejemplo
Se presenta algoritmo para el cálculo de la sumatoria de los
n primeros términos de la siguiente serie:
1*2*3 + 2*3*4 + 3*4*5 + 4*5*6
//WHILE_
#include <iostream.h>
#include <conio.h>
main(){
int i=0, n;
float termino, suma=0;
clrscr(); cout << "Digite el valor de N: ";
cin >> n; cout << "\\n";
while( i<n ){
i = i + 1;
termino = i * (i+1) * (i+2);
suma = suma + termino;
cout << i <<
" * " << i+1 << " * " << i+2 <<
" = " << termino << endl;
}
cout << "\\nSumatoria = " << suma;
}
Estructura Repetir (repeat) <acciones>
<acciones>
:
:
Hasta que <condición>
Until <condición>
Diagrama de Flujo de Repetir
1 er .Ejemplo : 2do. Ejemplo mostrar ("La suma acumulada es:
", suma_acumulada); Estructura Desde/Para (for) 2.1. Si el resultado es distinto de cero (verdadero),
se ejecuta la sentencia, se evalúa la expresión que da lugar a la progresión
de la condición y se vuelve al punto 2. <acciones>
<acciones>
:
Fin_desde
Donde:
v:
Variable índice
vi, vf: Valores
inicial y final de la variable
Diagrama de Flujo de la estructura Desde/Para
1er.Ejemplo //FOR_
#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
main(){
int i=1;
clrscr();
for( ; i<=50; i++)
cout << setw(5) <<
i;
cout <<
"\\n\\n";
for(i=1; i<=50; i++)
cout << setw(5) <<
i;
cout <<
"\\n\\n";
i = 0;
for( ; i<50; ) {
i++;
cout << setw(5) <<
i;
}
cout <<
"\\n\\n";
for(i=1 ; i<=50; ) {
cout << setw(5) <<
i;
i++;
}
cout <<
"\\n\\n";
i = 0;
for( ; ; ) {
i ++;
if (i > 50)
break;
else
cout << setw(5) <<
i;
}
getch();}
2do. Ejemplo
Expansión binomial:
n n-i i
(a+b)_ = S ( n! / (i!×(n-i)!))×a
×
b
i=0
El siguiente algoritmo muestra en pantalla los coeficientes
de la expansión binomial para un N dado por teclado:
//FOR_5.CPP
#include <iostream.h>
#include <conio.h>
float factorial(int numero){
int i;
float f=1;
for(i=1; i<=numero; i++)
f = f * i;
return f;
}
main(){
int n, i, a, b, coeficiente;
clrscr();
cout<<"Digite exponente(n) para calcular
coeficientes del binomial (a+b)_: ";
cin >> n;
cout <<"\\n";
for(i=0; i<=n; i++) {
coeficiente = factorial(n) /
(factorial(i)*factorial(n-i));
cout << coeficiente
<< " ";
}
getch();
return 0;
}
Características
Estructura Secuencial
....
Pseudocódigo De Una Estructura Secuencial
:
:
acciones
:
fin
1er. Ejemplo :
Calcular el
salario neto de un trabajador en función del número de horas trabajadas,
precio de la hora de trabajo y considerando unos descuentos fijos al sueldo
bruto en concepto de impuestos (20 por 100).
Pseudocódigo escribir nombre, salario_bruto, salario_neto_bruto,
salario_neto
Diagrama de flujo – 1er. Ejemplo
2do. Ejemplo
INICIO Est2Asig1, Est2Asig2,
Est3Asig1, Est3Asig2,
PromedioAsignatura1, PromedioAsignatura2,
PromedioEstudiante1,PromedioEstudiante2, PromedioEstudiante3;
Escribir("Digite Nombre asignatura 1: ")
Leer(Asignatura1)
Escribir("Digite Nombre asignatura 2: ")
Leer(Asignatura2)
Escribir("Digite Nombre estudiante 1: ")
Leer(Estudiante1)
Escribir("Digite Nombre estudiante 2: ")
Leer(Estudiante2)
Escribir("Digite Nombre estudiante 3: ")
Leer(Estudiante3)
//A continuación se pedirá digitar las 3 * 2 = 6
calificaciones
Escribir("Digite Calificaciones de ",
Estudiante1, ":")
Escribir("En la asignatura de ", Asignatura1,
": ")
Leer(Est1Asig1)< | |||||||||||||||||||||||||