Está en la página 1de 48

FUNDAMENTOS DE ALGORITMOS

INGENIERÍA DE SISTEMAS COMPUTACIONALES


PROTOCOLOS DE CONVIVENCIA

• Se tomará muy en cuenta la • Se levanta la mano para • Se solicitará permiso para


puntualidad. participar o preguntar. salir del salón en momentos
• La tolerancia es de 10 min. • Celulares, tablets, etc en que la clase no sea
• Pasados los 10min el alumno modo silencio. Su uso no está interrumpida.
esperará afuera del salón permitido a menos que se le • Se pasará lista 2 veces
hasta que se le indique. indique lo contrario. como máximo
• El tiempo del break es de 10
min.
FUNDAMENTOS
DE
ALGORITMOS
FUNDAMENTOS DE ALGORITMOS
LOGRO DEL CURSO

Al terminar el curso, el estudiante desarrolla un proyecto, a


partir del análisis de un caso y haciendo uso de las diversas
estructuras de control en un lenguaje de programación de alto
nivel, demostrando lógica, legibilidad y buenas prácticas en la
solución de problemas.
Logro de la sesión

Al final de la sesión el alumno dominará las definiciones


algoritmos y su representación, Además conocerá los
tipos de datos que son utilizados en la programación.
ALGORITMOS

https://www.youtube.com/watch?v=H3z3HDbl5QU
ALGORITMO
¿QUÉ ES UN ALGORITMO?

Un algoritmo es una serie de pasos


organizados que describe el proceso que se
debe seguir, para dar solución a un problema
específico.

Un algoritmo es una secuencia finita de


instrucciones cada una de las cuales tiene un
significado claro y puede ser efectuada con
una cantidad finita de esfuerzo en una longitud
de tiempo también finito.

CARACTERÍSTICAS
• Preciso
• Definido
• Finito

TIPOS
• Cualitativos
• Cuantitativos
REPRESENTACIÓN GRÁFICA
FUNDAMENTOS DE ALGORITMOS

Diagrama de Flujo Diagrama N-S Pseudocódigo


Es la representación gráfica de flujo de El diagrama N-S de Nassi Schneiderman Pseudocódigo es la descripción de un
un algoritmo o de secuencia rutinaria. —también conocido como diagrama de algoritmo que asemeja a un lenguaje de
Se basan en la utilización de diversos Chapin— es como un diagrama de flujo programación pero con algunas
símbolos para representar operaciones en el que se omiten las flechas de unión convenciones del lenguaje natural.
específicas. Se les llama diagramas de y las cajas son contiguas. Las acciones Tiene varias ventajas con respecto a los
flujo porque los símbolos utilizados se sucesivas se escriben en cajas sucesivas diagramas de flujo, entre las que se
conectan por medio de flechas para y, como en los diagramas de flujo, se destaca el poco espacio que se requiere
indicar la secuencia de la operación pueden escribir diferentes acciones en para representar instrucciones
una caja. complejas.
DIFERENCIAS DE LAS REPRESENTACIONES GRÁFICAS
COMPONENTES DE UN
ALGORITMO

Un algoritmo consta de 3 componentes:

• Cabecera
• Sección de Identificadores, variables y constantes
• Cuerpo del Algoritmo
COMPONENTES DE UN
ALGORITMOS
CABECERA
Comienza con la palabra ALGORITMO y es seguida por el nombre del programa sin
espacios. Ejemplo:
Algoritmo suma
Algoritmo Area_Triangulo

SECCIÓN DE
IDENTIFICACIÓN DE
VARIABLES Y
CONSTANTES
Es en la memoria donde un programa almacena sus datos e instrucciones. Los datos se
almacenan en localizaciones en la memoria denominadas variables.

Identificadores
Un identificador es un
Edad nombre
Edad quepersona
de una puede darse a una variable, a una constante y en
general a cualquier elemento de un programa que necesite nombrarse. Por ejemplo:
precioTotal Precio Total de un ítem.
numero_anios Número de años del empleado
MES Nombre del Mes del año
COMPONENTES DE UN
ALGORITMO

Reglas para formar un Identificador

• Debe comenzar con una letra mayúscula o minúscula


• No deben contener espacios en blanco
• La subraya (_) está permitido para separar palabras.
• La longitud de los identificadores puede ser hasta 8 dígitos.
COMPONENTES DE UN
ALGORITMO

VARIABLES
Una variable es una localización en la memoria principal que almacena un dato que
puede cambiar a lo largo de la ejecución del programa.

• Tiene asociada a un identificador: Un nombre que identifica de manera única


• Tiene asociado un tipo de dato: Especifica la naturaleza del dato que puede
almacenar la variable
• Contenido: Es el dato que se le asigna a la variable y que puede cambiar en el
transcurso del programa.

Identificador Tipo de dato Contenido


Edad Tipo entero 27
Descuento Tipo real 23.57
COMPONENTES DE UN
ALGORITMO

VARIABLES
Según el tipo de dato podemos tener variables:

Por su • Numéricas
Contenido
Lógico • Alfanuméricas

• De Trabajo
Por su Uso • Contadores
• Acumuladores
COMPONENTES DE UN
ALGORITMO

VARIABLES POR SU CONTENIDO

VARIABLES NUMÉRICAS:
Almacenan valores numéricos enteros y decimales, positivos y negativos. Por ejemplo:

igv=0.18
pi=3.1416
precio=65
3

VARIABL
ES
LÓGICA
S
Solo
pueden
tener dos
valores
(verdader
o o falso),
COMPONENTES DE UN
ALGORITMO

VARIABLES POR SU USO

VARIABLES DE TRABAJO
Reciben el resultado de una operación matemática completa. Ejemplo:

Suma=a+b/c

CONTADORES
Se utilizan para llevar el control del numero de ocasiones en que se realiza una
operación o se cumple una condición. Con los incrementos generalmente de uno en uno.

ACUMULADORES
Forma que toma una variable y que sirve para llevar la suma acumulativa de una serie
de valores que se van leyendo o calculando progresivamente.
TIPOS DE DATOS DE UN ALGORITMO

El tipo de dato determina la naturaleza de los valores que puede tomar una variable.

• Numéricos (Integer,
Real)
Simples • Lógicos(Booleano)
• Caracter (Char)
• Cadena (String)

• Arreglos (Vectores,
Definido matrices)
por el • Registros
usuario • Archivos
• Apuntadores
TIPOS DE DATOS DE UN ALGORITMO

DATOS NUMÉRICOS
Incluye a los números enteros y los reales. Este tipo de datos permiten realizar
operaciones aritméticas comunes.

Enteros
Números enteros que pueden ser negativos o positivos. Ejemplo:
5 1340 -5 20 -25 4

Reales
Tienen un punto decimal y pueden ser positivos o negativos. Ejemplo:
0.08 3739.41 3.0 3.7452 -52.321 -8.12
TIPOS DE DATOS DE UN ALGORITMO

DATOS LÓGICOS
También denominado booleano y son aquellos que solo pueden tener dos valores
(verdadero o falso; Si o No) ya que representan el resultado de una comparación entre
otros datos (numéricos o alfanuméricos). Por ejemplo:

Cuando se pide si un valor entero es par , la respuesta será verdadera o falsa, según
sea par o impar.

DATOS DE CARACTER
Es el conjunto finito y ordenado de caracteres que la computadora entiende. Un dato tipo
caracter contiene un solo caracter delimitado por apóstrofes. Dentro de los caracteres se
reconocen:

Caracteres Alfabéticos ( 'A', B',….. 'Z').


Caracteres numéricos ( '1', 2', '3',..., '9').
Caracteres especiales('+‘, '-' , '/', '<‘…)
TIPOS DE DATOS DE UN ALGORITMO

DATOS DE CADENA (STRING)


Es una secuencia de caracteres alfanuméricos que permiten representar valores
identificables de forma descriptiva, esto incluye nombres de personas, direcciones, etc.
Es posible representar números como alfanuméricos, pero estos pierden su propiedad
matemática, es decir no es posible hacer operaciones con ellos. Este tipo de datos se
representan encerrados entre comillas. Ejemplo:

" Universidad Privada del Norte"

OPERACIONES DE ASIGNACIÓN
Es el modo de darle valores o tipo de dato a una variable. La asignación de un valor a
una Variable se representa con el símbolo 

NOMBRE DE LA VARIABLE  EXPRESIÓN

A 5
B  2+6
C  5*2
TIPOS DE DATOS DE UN ALGORITMO

EXPRESIONES
Las expresiones son combinaciones de constantes, variables, símbolos de operación,
paréntesis y nombres de funciones especiales. Ejemplo.

a+(b+3)+ c

Cada expresión toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores, operandos y funciones. Según sea el tipo de
datos
que manipulan, se clasifican las expresiones en:
• Aritméticas
• Relacionales
• Lógicas
OPERADORES

OPERADORES
Son elementos que relacionan de forma diferente, los valores de una o más variables y/o
constantes. Es decir, los operadores nos permiten manipular valores.

Los Tipos de Operadores que existen son tres: los relacionales, los Aritméticos y por
último los lógicos.

Operadores Aritméticos
Los operadores aritméticos permiten la realización de operaciones matemáticas con los
valores (variables y constantes).

Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si
ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

+ Suma ^,**
- Resta Exponenciación
* Multiplicación Div División
/ División Entera (Cociente) Mod
Modulo (Residuo)
OPERADORES

Operadores Relacionales:
Se utilizan para establecer una relación entre dos valores. Compara estos valores entre
si y esta comparación produce un resultado de certeza o falsedad (verdadero o falso).
Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas).
Tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tienen
menor prioridad que los aritméticos
Es decir es un operador que sólo puede tomar dos valores lógicos que son: Verdadero ó
Falso. También se denomina expresiones booleanas.

Operador Significado
< Menor que
> Mayor que
= Igual que
<= Menor o igual a
>= Mayor o igual
<> a Distinto de
OPERADORES

Operadores Lógicos:
Son:

Operador Significado
No (not) Negación de
Y (and) Intersección de
O (Or) Unión de

Tabla de Verdad:

P Q PyQ PoQ no P
V V V V F

V F F V F

F V F V V

F F F F V
OPERADORES

Prioridad o Precedencia de los Operadores


Las Expresiones que tiene dos o más operandos requieren unas reglas matemáticas que
permitan determinar el orden de las operaciones y estas son:
• Las operaciones que están encerradas entre paréntesis se evalúan primero. Si
existen diferentes paréntesis anidados ( Interiores unos a otros ) las expresiones más
internas se evalúan primero
• Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden
de prioridad:
• ()
• ^
• *, /, Mod, not
• +, -, and
• >, <, >=, <=, <>, =, or

En caso de coincidir varios operadores de igual prioridad en una expresión o


subexpresión encerrados entre paréntesis, el
orden de prioridad en este caso es de izquierda a derecha
EJERCICIOS
1. Obtener el valor de las siguientes expresiones:
• -4*7+2^3 /4-5
• 6/2 * (7 +5 )
• 6.0* (5 mod3 )+( 15 div 4)/( 5+(6*(2^3/ 2)div 3)-1)
• 9 div 2/5
• (5<(4+10)) y ( 6 = 6)
• (10 div 2) <>O ó (no (4<-10))
• (2*3*5)<=(10/5+8)
• (6=8) ó (6>=8)

2. Identifique a que tipo de dato corresponde los siguientes ejercicios


• 0.5
• " xyz"
• 27,822
• 0515
• '9'
3. Determinar cuáles de los siguientes son identificadores válidos. Si son válidos,
explicar por qué.
• Area Altura Valor 1 Ventas95 1valor Costo neto
SENTENCIAS DE CONTROL
SENTENCIAS DE CONTROL

Asignación

Secuenciales Entrada

Salida

Simples
Tipos de
Condicionales
Sentencias
Múltiples

Hacer para

Hacer
Cíclicas
mientras

Repetir hasta
SENTENCIAS SECUENCIALES

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en


secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la
siguiente y así sucesivamente hasta el fin del proceso. Una estructura secuencial se
representa de la siguiente forma:

Inicio
Accion1 Acción1
Accion2
.
. Acción2
Accion
N
Fin
Acción3
SENTENCIAS SECUENCIALES

ASIGNACIÓN
La asignación consiste, en el paso de valores o resultados a una zona de la memoria.
Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma:

Simples
Consiste en pasar un valor constate a una variable (a=15)
Contador. Consiste en usarla como un verificador del numero de veces que se realiza
un proceso (a=a+1)

Acumulador. Consiste en usarla como un sumador en un proceso (a=a+b)

De trabajo Donde puede recibir el resultado de una operación matemática que involucre
muchas variables (a=c+b*2/4).
SENTENCIAS SECUENCIALES

Entrada y Salida de Información


Todo cálculo que se realiza en la computadora requieren la entrada de datos necesarios
para ejecutar las operaciones que posteriormente se convertirán en resultados es decir,
salida.
Las operaciones de entrada permiten leer determinados valores y asignarlos a
determinas variables. Esta entrada se conoce como operación de lectura ( read ). La
operación de salida se denomina escritura ( write)

Lectura
La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un
valor.
Esta operación se representa en un pseudocodigo como sigue:
Las acciones de lectura de algoritmos se representan por el formato:

Leer ( lista de variables de entrada )


Leer ( a, b )

Donde "a" y "b" son las variables


que recibirán los valores
SENTENCIAS SECUENCIALES

Escritura
Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado
o mensaje. Este proceso se representa en un pseudocodigo como sigue:
Las acciones de escritura de algoritmos se representan por el formato:

Imprimir ó Escribir (< " Mensaje" >, lista de variables de salida )


Imprimir ( "El resultado es:", 12)

Donde "El resultado es:" es un mensaje que se desea aparezca y R es una variable que
contiene un valor.

Ejemplos
LEER (edad)
LEER (num1,num2,num3)
IMPRIMIR sueldoNeto
IMPRIMIR montoPag, montoDes
EJERCICIO

Realizar un algoritmo y diagrama de Flujo para calcular el área de un rectángulo

Inicio
Algoritmo Rectángulo
Variables
Area, base, altura  Ingrese la base
y la altura
enteros
Inicio
Base, altura
Escribir ( “Ingrese la base y altura”)
Leer ( base )
Leer ( altura ) Area  base*altura
área  (base*altura)
Imprimir( area )
Area
Fin Algoritmo

Fin
FUNDAMENTO
SDE
PROGRAMACIÓN
PROGRA
MA
FUNDAMENTOS DE LA PROGRAMACIÓN
PROGRAMACIÓN DE COMPUTADORAS
LENGUAJES DE PROGRAMACIÓN

Todos en este país deberían aprender


a programar computadoras…
Porque eso te enseña a cómo pensar
- Steve Jobs

El algoritmo se ha de expresar en un formato que En la realidad la computadora no entiende


se denomina programa, ya que el pseudocódigo o directamente los lenguajes de programación sino
el diagrama de flujo no son comprensibles por la que se requiere un programa que traduzca el
computadora. código fuente a otro lenguaje que sí entiende la
máquina directamente, pero muy complejo para
Los lenguajes utilizados para escribir programas las personas; este lenguaje se conoce como
de computadoras son los lenguajes de lenguaje máquina y el código correspondiente
programación. código máquina
PROCESO DE PSEUCÓDIGO A
PROGRAMA
DE UN ALGORITMO EN PSEUDOCÓDIGO EN UN PROGRAMA EJECUTABLE

C++
Problema Algoritmo Algoritmo en C++ Código Fuente Código Máquina
Se presenta un Se resuelve el Empieza la Algoritmo escrito en Empieza los
problema de índole problema mediante codificación del lenguaje de traductores que
cualquiera. un algoritmo algoritmo en C++ programación traducen el código
Que puede ser representado en Fuente a Código
resuelto con un pseudocódigo o Traduce el algoritmo máquina
programa de diagrama de flujo en pseudocódigo a
computadora un lenguaje de
programación

Definición de Lenguaje: El lenguaje es el sistema a través del cual el


hombre o los animales comunican sus ideas y sentimientos, ya sea a
través del habla, la escritura u otros signos convencionales.
- Siginificados.com/lenguaje
PROGRAMA
¿Qué es un programa de Computadora?

¿Qué es un programa?
Un programa es una secuencia de
instrucciones, escritas para realizar
una tarea específica en una
computadora.
- Wikipedia

¿Qué es programar?
Es tomar una idea compleja, dividirla
en instrucciones individuales
secuenciadas y luego escribirlas
usando un lenguaje de
programación
Lenguaje máquina
LENGUAJES DE BAJO NIVEL

Los procesadores trabajan con ceros y unos


(bits).Como unidad de memoria básica el Byte
(8 bits)

01011011 -> 0101 1011 -> 5B

Las instrucciones son representadas por


códigos hexadecimales ( registros de CPU,
direcciones de memoria, datos)

A0 2F Acceder a la celda de memoria 2F


3E 01 Copiarlo el registro 1 de la ALU
A0 30 Acceder a la celda de memoria 30
3E 02 Copiarlo en el registro 2 de la
ALU 1D Sumar
B3 31 Guardar el resultado en la celda de
memoria 31
Lenguaje ensamblador
LENGUAJES DE BAJO NIVEL

Nemotécnicos para los CÓDIGO FUENTE


hexadecimales: códigos Lenguaje
A0 -> READ 3E -> 1D -> ADD …
ensamblador
REG

Mayor legibilidad:
READ 2F
REG 01 PROGRAMA
READ 30 ENSAMBLADOR
REG 02
ADD
WRITE 31

CÓDIGO OBJETO
Lenguaje máquina
Lenguajes de programación
LENGUAJES DE ALTO NIVEL

Más cercanos a los


lenguajes natural y
matemático Resultado =
dato1 + dato2;

Mayor legibilidad, mayor


facilidad de codificación

Estructuración de
datos /
abstracción
procedimental
PROGRAMAS TRADUCTORES
TRADUCTORES DE ENGUAJE

COMPILADORES
COMPILAN Y ENLAZAN
PROGRAMAS
COMPLETOS

INTÉRPRETES
EJECUTAN INSTRUCCIÓN
A INSTRUCCIÓN
LA COMPILACIÓN Y SUS FASES
TRADUCCIÓN DE PROGRAMAS FUENTE A LENGUAJE MÁQUINA

1 • Programa Fuente

2
• Compilador

3
• Programa Objeto

4
• Enlazador O Montador (Linker)

5
• Lenguaje Maquina (ejecutable)
ETAPAS DEL PROCESO DE
DESARROLLO
MODELO DE DESARROLLO “EN CASCADA”

1 • PLANIFICACIÓN (recursos,…)

2
• ANÁLISIS (¿Qué)

3
• DISEÑO (¿Cómo?)

4
• PROGRAMACIÓN

5
• PRUEBA Y DEPURACIÓN

6
• MANTENIMIENTO
LENGUAJE
DE
PROGRAMACIÓN
C++
FUNDAMENTOS DE LA PROGRAMACIÓN DEL LENGUAJE C+
+
Bienvenidos a C++
LENGUAJE DERIVADO DE C

C++ es un lenguaje de programación multipropósito, es usado para crear programas de


computadoras. Cualquier aplicación para empresas, reproductores de música, inclusive
videojuegos.

Hola Mundo!
#include <iostream>
using namespace std;

int main()
{
cout << “Hola Mundo!”;
return 0;
}
TU PRIMER PROGRAMA EN C++
LENGUAJE DE PROGRAMACIÓN C++

C++ es una combinación de instrucciones y declaraciones

HEADER (CABECERA)
C++ ofrece diversas cabeceras para que el
programa funcione correctamente.
#include <iostream> # include apunta al pre-procesador del
using namespace std; compilador
using namespace std; le indica al compilador
int main() que use características de la librería estándar
{ de C++
cout << “Hola Mundo!”; BODY (CUERPO)
return 0; Int main() Los programas a ejecutar empieza
} con la función principal que es declarada como
entera. Las llaves { } indican el inicio y el final de
la función.
Cout << Es usado para mostrar una salida a la
Importante pantalla
return 0; Termina la función main() y regresa al
El compilador C++ ignora los espacios en
valor 0 para evitar errores.
Blanco, tabs, nuevas líneas, etc

También podría gustarte