Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMACIÓN ESTRUCTURADA
Integrante:
Valbuena portillo Luis Enrique
30.162.946
Junio; de 2020
1
INTRODUCCIÓN
La tecnología que jamás esperamos que llegaría ahora ha dado la
vuelta al mundo y uno de sus inventos más eficientes ha sido la
computadora, gracias a esta ha facilitado inmensamente la vida del hombre
en general, parece magia que la computadora haga exactamente todo lo que
queremos, pero alguna vez nos ha importado o nos hemos preguntado
¿cómo logra la computadora hacer todo lo que ordenamos?, pues esa magia
se puede dar con la programación estructurada la cual es una manera de
realizar programas sencillos y fáciles de entender.
1
INTRODUCCION A LA PROGRAMACIÓN
PROGRAMACIÓN ESTRUCTURADA
Ventajas
Desventajas
2
La necesidad de utilizar bibliotecas de clases obliga a su aprendizaje y
entrenamiento.
ESTRUCTURA DE DATOS
Tipos De Datos
3
Los datos simples tienen en común que cada variable representa un
elemento, en los estructurados un identificador puede representar múltiples
datos individuales, pudiendo cada uno de estos ser referenciados
independientemente.
Variables
#include <iostream>
using namespace std;
int main()
{
char x = 'a'; // Declaramos y asignamos en la misma línea
4
//3.5 + 8 = 11.5
res = res + num; //Al valor actual de res le sumamos el valor de num
//11.5 + 5 = 16.5
cout << res << endl; //Mostramos el valor de res por pantalla
return 0;
}
En el código anterior hemos visto las múltiples formas en que se
puede declarar una variable, cómo asignarle un valor, incluso vimos que es
posible asignarle el valor de una variable a otra, o realizar operaciones entre
los valores de variables y asignar el resultado a una variable nueva, vimos
que es posible usar el valor de una misma variable y cambiar su propio valor
(res = res*2).
Constantes Arreglos
const
Min = 0;
Max = 100;
Sep = 10;
5
var
i : integer;
begin
i := Min;
while i < Max do begin
writeln(i);
i := i + Sep
end
end.
Constantes literales
Constantes declaradas
const
6
Pi = 3.141592; (* valor real *)
Min = 0; (* entero *)
Max = 99; (* entero *)
Saludo = 'Hola'; (* cadena caract. *)
Constantes expresión
const
Min = 0;
Max = 100;
Intervalo = 10;
N = (Max - Min) div Intervalo;
Centro = (Max - Min) div 2;
Matrices
7
conforman una matriz, es por esto que al comienzo dije que una matriz es un
vector conformado por otra serie de vectores.
tipoDato nombreMatriz[filas][columnas];
int myMatriz1[10][5];
float myMatriz2[5][10];
string myMatriz3[15][15];
bool myMatriz4[1000][3];
8
Línea 1
Línea 2
Línea 3
Línea 4
Ejemplo:
9
Esta secuencia de instrucciones permuta los valores de x e y, con
ayuda de una variable auxiliar, intermedia.
Asignaciones
Decisiones lógicas
10
Las estructuras de decisión pueden ser:
11
Dobles: La estructura de decisión simple es muy limitada y normalmente se
necesitara una estructura que permita elegir entre dos opciones o
alternativas posibles, en función del cumplimiento o no de una determinada
condición lógica. Si la condición lógica es verdadera se ejecuta un conjunto
de acciones y si es falsa se ejecutara otro conjunto diferente de acciones.
En pseudocódigo: si-entonces-sino.
En Turbo Pascal: if- thene- else
12
Múltiples: en la práctica es posible que existan más de dos alternativas
posibles para elegir. Cuando se tienen muchas alternativas pueden existir
serios problemas en la escritura y legibilidad de los algoritmos utilizando
estructuras de decisión simples, dobles o anidadas.
En pseudocódigo: según-sea
En turbo Pascal: Case-of
13
Representación en Diagrama de flujo
Iteraciones Anidadas
14
Una estructura de selección de decisiones múltiples puede ser
construida utilizando una estructura si con este formato:
15
SUBPROGRAMAS. PROCEDIMIENTOS Y FUNCIONES.
Subprogramas como abstracción de operaciones.
- Diseño descendente:
Algoritmo: calcular_numero_combinatorio
Inicio
Fin
16
Tercer nivel de refinamiento:
17
Este enfoque proporciona indudables ventajas:
18
No sólo simplifica el diseño de algoritmos sino también su
comprensión.
19
Procedimientos y funciones.
Inicio acciones
Fin
Nombre (par· metros reales) llamada que por sí sola constituye una acción o
sentencia en el cuerpo del algoritmo "llamante" (sea el algoritmo principal u
otro subalgoritmo).
20
En toda función existe una variable predefinida llamada RESULTADO
(del tipo que la función devuelve). El valor que la función desee devolver ser·
el que dicha variable tenga al final de la función.
21
En el algoritmo que la llama se podría poner:
22
Ejemplo: algoritmo para calcular números combinatorios.
COMPONENTES DE UN PROGRAMA
Por otra parte, además de reunir las ideas introducidas hasta ahora, el
estudiante debería en este punto conseguir poner a punto sus primeros
programas en un entorno de programación real.
23
Encabezamiento
24
Declaraciones
25
Cuerpo Del Programa
En el cuerpo del programa es donde se relacionan las sucesivas
sentencias o instrucciones ejecutables que componen el programa. Va
precedido por la palabra reservada BEGIN y termina con la palabra
reservada END y un punto final, y las instrucciones se separan con puntos y
comas
26
LENGUAJE DE PROGRAMACIÓN
Lenguajes de bajo nivel: Son distintos para cada procesador: cada tipo de
ordenador posee el suyo. Controlan directamente los recursos hardware de
la máquina. Como ejemplos tenemos el lenguaje máquina o el lenguaje
ensamblador (Assembly).
27
Lenguajes de medio nivel: Tal y como refleja su nombre este grupo
alberga aquellos lenguajes que tienen algunas características de los de bajo
nivel y otras de los de alto nivel. El ejemplo más representativo es el lenguaje
C.
Según su orientación:
28
REGLAS SEMANTICAS Y SINTACTICAS
Reglas semánticas
Las reglas son las diferentes formas que tiene Síntesis de detectar un
patrón lingüístico, un tema/atributo o el sentimiento. Son una representación
del lenguaje para simplificarlo y quedarnos con lo relevante y que además
permiten procesar millones de comentarios en tiempo real.
Las relaciones entre los valores de los atributos definidos sobre una
gramática atribuida se especifican mediante reglas semánticas o ecuaciones
29
de atributos21 [Louden97]. Dada una gramática libre de contexto
G={S,P,VN,VT}, donde VN es el vocabulario no terminal, VT el vocabulario
terminal (tokens), S el símbolo no terminal inicial y P el conjunto de
producciones de la gramática, donde cada p ∈ P es de la forma:
Reglas Sintácticas
Las Reglas Sintácticas como los métodos en los que se puede validar
y dar forma a una aplicación, siendo solamente un criterio que busca evaluar
la combinación de distintos Símbolos, y su correcta aplicación en forma
30
gramatical, teniendo por otro lado tener que hacer un análisis bajo criterio
Semántico y otro bajo un término Pragmático.
31
PALABRAS RESERVADAS
PALABRAS SENTANCIAS
32
Y estos casos se dan cuando después de la sentencia hay una palabra
reservada de las que delimitan de alguna forma un trozo de código. Por
ejemplo, end, else, until, etc. Algunos de estos casos se contemplan en el
siguiente ejemplo:
(* ... *)
begin
(* ... *)
if (a<>b) then
begin
aux := a ;
a := b ;
b := aux
end ;
writeln('a vale ',a,' y b vale ',b)
end .
33
código máquina según van siendo utilizadas. Para el funcionamiento del
programa siempre es necesario disponer del código original y del intérprete.
34
máquina” hace referencia al modo en que se escriben los diferentes
lenguajes de máquina.
35
CONSTRUCCION DE APLICACIONES PRÁCTICAS
Lenguaje C
36
declaraciones
uno o más bloques
comentarios
Ejemplo:
37
Lenguajes C++
Línea 1:
38
siempre como entera (int) y siempre retornara 0 (luego hablaré de esto). En
ocasiones (dependiendo del compilador), se puede poner como void (vacía)
y por lo tanto no se puede usar un return, aunque no es recomendable,
simplemente por claridad y evitar errores con compiladores más
tradicionales.
Línea 2:
La línea 2 contiene una llave abriendo "{", en C++, se usan las llaves
tanto para indicar el comienzo como el final de cada función, sea cual sea, es
decir sea la función main o cualquiera que tu hayas inventado, debe
comenzar con una llave abriendo y terminar con una cerrando (tiene sentido
¿no?). Es por esto, que esta llave se encuentra ahí, indicando el inicio de
nuestra función main.
Línea 3:
39
líneas de sentencia. Así que cada que realices cualquier operación en una
línea, esta debe termina con punto y coma, de lo contrario tendrás errores en
tu código. Ten en cuenta que la línea 1, no es una sentencia, pues aunque
allí se está aparentemente declarando a la función main, no es así, pues el
int que hay antes del main() nos indica el tipo de valor que debe retornar
nuestra función, mas no exactamente el tipo que es nuestra función, por esto
no se usa el punto y coma en la línea 1 (ojo! no estoy diciendo que cuando
se declare una función no se use punto y coma, no te enredes con esto, en la
línea 1 simplemente se está implementando la función main, más adelante lo
comprenderás, confía en mi).
Línea 4:
Ejemplo:
40
otra o el valor de una operación especifica como por ejemplo 5 + 5, mientras
que el operador de doble igual "==" se usa para comparación, es decir para
comparar si el valor de una variable es igual a otro, por ejemplo: escribir
numero = 5 + 5; es válido, pero escribir numero == 5 + 5; nos genera un error
de sintaxis, las acciones que realiza cada operación son distintas, la primera,
le asigna el valor que tenga el resultado de 5 + 5 a la variable "numero"
mientras que la segunda verifica si el valor de la variable "numero" es igual o
no a 10.
Factorial
El factorial de un número es la multiplicación de los número que van
del 1 a dicho número. Para expresar el factorial se suele utilizar la notación
n!. Así la definición es la siguiente:
41
Esta es una forma muy sencilla de implementar el factorial. Si bien,
tenemos otra forma de implementarlo. En este caso el factorial se define de
una forma recursiva. Esta definición fue realizada por el matemático frances
Christian Kramp.
Secuencia de FIBONACCI
42
expresar cada termino en base a su función: Fib(0)=0, Fib(1)=1, Fib(2)=1,
Fib(3)=2, Fib(4)=3, Fib(5)=5…
43
CONCLUSION
44
significado de todos los elementos que los componen) ni una forma
establecida sobre cómo deben “hablar” el programador y la máquina.
Por otro lado, C++ surge de fusionar dos ideas: la eficiencia del
lenguaje C para poder acceder al hardware al ejecutar tareas que realmente
demandaban recursos de memoria; y las ideas de abstracción que
representan las el nuevo conceptos de clases y objetos.
45
ANEXOS
46
47