Este documento presenta conceptos básicos sobre programación de computadoras, incluyendo definiciones de programación, sistemas, datos, información, lenguajes de programación y clasificaciones de lenguajes. También explica conceptos como programa, procesamiento de datos, errores, traductores, intérpretes y representaciones de algoritmos como pseudocódigo y diagramas de flujo. El objetivo es representar algoritmos usando estas herramientas.
2. Objetivo didáctico
Representar un algoritmo, considerando las
instrucciones algorítmicas básicas, en una herramienta
de diagrama de flujo.
28/03/2020
Programación de Computadoras -
Prof. Eliécer Espinosa 2
3. Conceptos Básicos
PROGRAMACION
La programación es el proceso de diseñar, codificar, depurar y
mantener el código fuente de programas computacionales. El código
fuente es escrito en un lenguaje de programación. El propósito de la
programación es crear programas que exhiban un comportamiento deseado.
El proceso de escribir código requiere frecuentemente conocimientos en
varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos
especializados y lógica formal.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 3
4. Conceptos Básicos
PROGRAMACION
La programación tiene como objetivo el tratamiento de la información
correctamente, con lo que se espera que un programa de el resultado
correcto y no uno erróneo.
Datos de Entrada Resultados
PROGRAMA
Leer datos
Procesar datos
Obtener resultados
Escribir resultados
+
Rapidez
Exactitud
Programación de Computadoras I-
Prof. Eliécer Espinosa28/03/2020 4
5. Es un conjunto de partes o elementos organizadas y
relacionadas que interactúan entre sí para lograr un
objetivo. Los sistemas reciben (entrada) datos, energía
o materia del ambiente y proveen (salida) información.
Son los hechos que describen sucesos y entidades.
”Datos” es una palabra en plural que se refiere a más de
un hecho.
Conceptos Básicos
SISTEMAS
DATOS
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 5
6. Es un conjunto de datos significativos y pertinentes
que describan sucesos o entidades.
Sistema de símbolos y reglas que permite la
construcción de programas con los que la
computadora puede operar así como resolver
problemas de manera eficaz.
Conceptos Básicos
INFORMACIÓN
LENGUAJE DE PROGRAMACIÓN
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 6
7. PROGRAMA.
Un programa es una serie de instrucciones que le
dice al equipo de computadora las tareas que
debe realizar. La computadora realiza, o ejecuta,
las instrucciones de un programa colocándolas
primero en la memoria de la computadora.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 7
8. PROGRAMA
PROCESAMIENTO DE DATOS
CARACTERÍSTICAS DEL PROGRAMA:
- Debe ser confiable y funcional
- Advertir errores de entrada obvios y comunes
- Documentado adecuadamente
- Ser comprensible
- Codificado en el lenguaje apropiado
ACTIVIDADES DEL PROCESAMIENTO DE DATOS
I. Captura de datos de entrada
II. Manejo de los datos (incluye clasificación, ordenación,
cálculo y sumarización de éstos)
III. Administración de la salida resultante.
Conceptos Básicos
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 8
9. CLASIFICACIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN:
1
• Lenguaje Máquina: Son aquellos cuyas instrucciones son
directamente entendibles por la computadora y no necesitan
traducción posterior para que la CPU pueda comprender y ejecutar el
programa. Las instrucciones en lenguaje maquina se expresan en
términos de la unidad de memoria más pequeña el bit (dígito binario
0 ó 1).
2
• Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las
instrucciones se escriben en códigos alfabéticos conocidos como
mnemotécnicos para las operaciones y direcciones simbólicas.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 9
10. CLASIFICACIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN:
3
• Lenguaje de Alto Nivel: Los lenguajes de programación de alto
nivel son aquellos en los que las instrucciones o sentencias a la
computadora son escritas con palabras similares a los lenguajes
humanos (en general en inglés), lo que facilita la escritura y
comprensión del programa.
4
• Lenguajes de cuarta generación o bien 4GL: son herramientas
encargadas de optimizar el desarrollo de software automatizando
la creación de este. Se han utilizado principalmente en la
generación de código para GUI y además en la implementación de
programas que facilitan las tareas de los desarrolladores y clientes.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 10
11. CLASIFICACIÓN DE LOS LENGUAJES DE
PROGRAMACIÓN:
Lenguajes Naturales: Es un lenguaje escrito o
hablado usado por una comunidad, que es
precisamente lo contrario a un lenguaje para establecer
comunicación con una computadora, mediante la
entrada de datos, o la programación de su
funcionamiento.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 11
12. TRADUCTORES, INTERPRETES Y
PROGRAMAS
TRADUCTOR
Es un programa que recibe como entrada código
escrito en un cierto lenguaje y produce como salida
código en otro lenguaje. Generalmente el lenguaje
de entrada es de más alto nivel que el de salida.
Ejemplos de traductores son los ensambladores y
los compiladores.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 12
13. Tipos de errores de traducción
Errores de
Compilación:
• Errores de léxico y
sintaxis.
Errores de Ejecución:
• Errores semánticos,
de lógica o de
intérprete
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 13
14. Tipos de errores de traducción
• Errores semánticos: Se da cuando un
programa funciona pero no devuelve el
resultado esperado, por ejemplo si tu
programa divide 2 número pero el resultado
es cualquier otra cosa, sería un error
semántico.
• Errores de lógica o de intérprete: Son
errores que impiden que su programa haga
lo que estaba previsto. Su código puede
compilarse y ejecutarse sin errores, pero el
resultado de una operación puede generar
un resultado no esperado.
ERRORES
DE
EJECUCIÓN:
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 14
15. Tipos de errores de traducción
• Errores de léxico: El análisis léxico
constituye la primera fase, aquí se lee el
programa fuente de izquierda a derecha y se
agrupa en componentes léxicos, que son
secuencias de caracteres que tienen un
significado. Todos los espacios en blanco,
líneas en blanco, comentarios y demás
información innecesaria se elimina del
programa fuente. se comprueba que los
símbolos del lenguaje (palabras
clave, operadores,.) se han escrito
correctamente.
ERRORES DE
COMPILACIÓN
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 15
16. Tipos de errores de traducción
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 16
17. Compilador
Es un programa informático que traduce un
programa escrito en un lenguaje de
programación a otro lenguaje de programación,
o también genera aplicaciones que sean
directamente utilizables en un ordenador o
computadora.
Un compilador lee el código fuente creado en un
determinado lenguaje de programación, lo
interpreta, comprueba su sintaxis y traduce a
lenguaje o código máquina toda la serie de
instrucciones, generando el archivo ejecutable
final (programa compilado).
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 17
18. Ensamblador:
Es un programa que traduce de un lenguaje
ensamblador a lenguaje máquina, mientras que un
compilador es un programa que traduce de un lenguaje
de alto nivel a un lenguaje de bajo nivel o a lenguaje
máquina.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 18
19. Diferencia entre Ensamblador y
Compilador
Un ensamblador traduce
una instrucción de
lenguaje simbólico a
otra instrucción en
lenguaje de máquina, la
traducción es de 1 a 1.
Un compilador traduce
un programa fuente en un
lenguaje de máquina. Una
instrucción de alto nivel
puede ser el equivalente
varias instrucciones a nivel
de máquina, la traducción
es de 1 a muchos.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 19
20. INTÉRPRETES
Es un programa que traduce un lenguaje de
alto nivel al lenguaje de máquina de una
computadora. El programa siempre
permanece en su forma original (programa
fuente) y traduce cuando está en la fase de
ejecución instrucción por instrucción
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 20
21. Un intérprete:
Traduce y ejecuta una
línea del programa a
la vez.
Si hay error, detiene
ejecución del
programa.
Programas más lentos
pero más portables y
flexibles.
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 21
22. Tipos de programas:
• Programa fuente: Programa escrito en un
lenguaje de alto nivel (texto ordinario que
contiene las sentencias del programa en un
lenguaje de programación). Necesita ser
traducido a código máquina para poder ser
ejecutado.
• Programa (o código) objeto: Es el
programa fuente traducido (por el
compilador) a código máquina..
• Programa Ejecutable: Traducción
completa a código máquina, realizada por el
enlazador, del programa fuente y que ya es
directamente ejecutable.
Los
programas
se
clasifican
en:
Programación de Computadoras -
Prof. Eliécer Espinosa28/03/2020 22
23. Algoritmo
es una serie de operaciones detalladas a ejecutar paso a paso, que conducen a la
resolución de problemas. “Es un conjunto de reglas para resolver determinado
problema describiendo de forma lógica su solución.”
Cada una de las acciones de que consta un algoritmo es denominada sentencia y
éstas deben ser escritas en términos de cierto lenguaje comprensible para el
computador, que es el lenguaje de programación.
Para diseñar un algoritmo se debe comenzar por identificar las tareas más
importantes para resolver el problema y disponerlas en el orden en que han de ser
ejecutadas.
PROGRAMACIÓN DE COMPUTADORAS-p2
24. Criterios que debe satisfacer un algoritmo
(características):
Entrada. Son cero o más cantidades las cuales son externamente
sustituidas..
Salida. Al menos una cantidad es producida..
Exactitud/precisión. Cada instrucción debe ser clara y sin ambigüedad..
Finito. Terminará después de un número finito de pasos..
Eficiente. Cada instrucción puede ser verificada por una persona con una
prueba manual que satisfaga los requerimientos planteados por el problema.
PROGRAMACIÓN DE COMPUTADORAS-p2
25. Representación gráfica de algoritmos.
Descripción Narrada
Pseudocódigo
Diagramas de Flujo
Diagramas N- S (Nassi-Schneiderman o de Chapin)
PROGRAMACIÓN DE COMPUTADORAS-p2
26. Pseudocódigo
Pseudo = falso.
Es una técnica para diseño de programas que permite
definir las estructuras de datos, las operaciones que se
aplicarán a los datos y la lógica que tendrá el programa de
computadora para solucionar un determinado problema
Ejemplo 1
Diseñar un algoritmo que lea cuatro variables y calcule e imprima su producto, suma y media
aritmética.
Inicio
A, b, c, d, producto, suma, media: enteras
Leer (a, b, c, d)
producto (a * b * c * d)
suma (a + b + c + d)
media (a + b + c + d) / 4
escribir (producto, suma, media)
Fin
27. Reglas para crear los pseudocódigos:
Cada instrucción debe ir en una
línea
Debe comenzar con la palabra
Inicio y terminar con la
palabra Fin
Utiliza los operadores
aritméticos, lógicos, boléanos
Debe escribirse de manera
indentada (tabulada) para
apreciar las dependencias de
las instrucciones.
Utiliza palabras reservadas
como: INICIO, FIN, LEER,
ESCRIBIR, MIENTRAS, SI,
SINO, ENTONCES, PARA,
REPETIR, etc.
Ejemplo 2
Diseñar un algoritmo que lea dos números
enteros y si son diferentes de cero calcule e
imprima su producto, en caso contrario calcule
y muestre el promedio de los dos.
• Análisis…
• Diseño del Algoritmo
Inicio
a, b, producto, media: entera
Leer (a, b)
Si ((a<>0) y (b<>0)) entonces
producto (a * b)
Sino
media (a + b) / 2
Fin si
escribir (producto, media)
Fin
28. Diagramas de Flujo.
Son la representación gráfica de la solución algorítmica
de un problema.
Simbología básica para diseñar flujogramas.
Inicio/Fin
Proceso
Salida por
impresora
Entrada
/SalidaDecisión
Conector misma
página
Conector páginas
diferentes
29. Diagrama de flujos
Para su elaboración se siguen ciertas reglas:
Se escribe de arriba hacia abajo y de izquierda a derecha
Siempre se usan flechas verticales u horizontales, jamás
curvas
Evitar cruce de flujos
En cada paso expresar una acción concreta
30. Diagrama de flujos. Ejemplo
Inicio
a,b
a<>0 y b<>0
Producto a*b Media (a+b)/2
Fin
Si No
MediaProducto
31. Ejercicio de Programación
Realizar un Algoritmo en pseudo
código y diagrama de flujo que permita
calcular el área de un triángulo, dada su
base y su altura
32. Análisis del problema
Objetivo del problema:
Obtener o calcular el área del triángulo
Datos de entrada:
Las medidas de la base y de la altura del triángulo
Datos de salida:
EL área del triángulo
Procesamiento:
Aplicar fórmula:
• Multiplicar base * altura y dividirlo entre 2 o
• Multiplicar base* altura * 0.5
Documentación de
variables: B = base del triángulo
h = altura del triángulo
A= área del triángulo
33. Diseño del Algoritmo
PseudoCódigo Triángulo
Variables
B, h, A
Inicio
B, h, A: entera;
A0;
Escribir(“Introduzca la base y la altura del triángulo”);
Leer(B,h);
A (B*h)/2;
Escribir (“El área del triángulo es”, A);
Fin
34. PseudoCódigo Triangulo
Variables
B, h, A
Inicio
B, h, A: entera;
A0;
Escribir(“Introduzca la base y la altura del
triángulo”);
Leer(B,h);
A (B*h)/2;
Escribir (“El área del triángulo es”, A);
Fin
Diagrama de flujo
Inicio
A 0
A (B*h)/2
“Introduzca base y altura”
B, h
“El área es: “ A
Fin
35. 2.1 Corrida en frío(Prueba de escritorio)
B h A
0
Pseudocódigo Triángulo
Inicio
B, h, A: entera;
A0;
Escribir(“Introduzca la base y la altura del
triángulo”);
Leer(B,h);
A (B*h)/2;
Escribir (“El área del triángulo es”, A);
Fin
Probar el algoritmo con los siguientes datos de entrada: (8 y 3) es decir
Base = 8 y altura= 3
36. Conceptos Básicos…
EXPRESIONES.
Son representaciones de un cálculo necesario para la obtención de un
resultado. Son un conjunto de operadores y operandos que producen un
valor..
Por ejemplo:
Cos (pi * X) + 12.56 * SQR(100)
ELEMENTOS
BÁSICOS DE
UNA
INSTRUCCIÓN
los operadores
Los datos
38. Un Operador:
Es un símbolo o
palabra que significa
que se ha de realizar
cierta acción entre uno
o dos valores que son
llamados operandos.
Tipo Operador Significado
De asignación Asignación
Matemáticos
+
-
*
/
^
Div
Mod
Suma
Resta
Multiplicación
División
Potencia
División entera
(cociente)
Módulo
Relacionales <
>
<=
>=
=
<>
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Igual a
Distinto a, diferente
de
Lógicos Y
O
No
Y lógico
O lógico
Negación lógica
40. Ejemplo con Operadores
Residuo (mod)
sintaxis
Variable valor mod valor
Ejemplo:
X 15 mod 2
Esto da como resultado 1, ya que es el
residuo de la division
División entera (div)
sintaxis
Variable valor div valor
Ejemplo:
X 15 div 2
Esto da como resultado 7, ya que es la
parte entera del cociente de la
división
41. Prioridad de los Operadores
Jerarquía de Operadores
Paréntesis ( )
^ Potencia
* y / Producto y división
Div Division entera
Mod Residuo
+ y - Suma y resta
+ o & Concatenación
>,<,>=,<=, <>,= Relacionales
Not Negación
Y And
O Or
42. Ejemplo de Prioridad de Operadores
Supongamos:
a) X = (2+3) + 4 * 2 + 4^ 2 - 15 div 2 mod 2
5
16
8
7
1
X = 5 + 8 + 16 - 1
X = 28
+ …
- …… +
+…… +
Mod …… -
… -
1
2
3
4
5
43. 3/26/2020 43Prof. Eliécer Espinosa
UNIHOSANNA
ASIGNATURA: PROGRAMACIÓN DE COMPUTADORAS I
PROFESOR:
MGTER. ELIÈCER ESPINOSA
LECCIÓN 2
MARZO, 2020
44. Estructura secuencial
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.
3/26/2020 44Prof. Eliécer Espinosa
45. Componentes
Asignación
< Variable > <valor o expresión >
Lectura
Leer a, b //Donde “a” y “b” son las variables que
recibirán los valores
3/26/2020 45Prof. Eliécer Espinosa
46. Escritura
Escribe “El resultado es:”, R //Donde “El resultado
es:” es un mensaje que se desea aparezca y R es una
variable que contiene un valor.
3/26/2020 46Prof. Eliécer Espinosa
47. Ejemplos PrácticosEjercicio 1
Hacer el rastreo manual para:
a = 2
a = a + 1
b = a * 2
b = b – 1
c = a + 2 * b
Presentar "c".
1) a = 2
2) a = a + 1
3) b = a * 2
4) b = b – 1
5) c = a + 2 * b
6) Presentar "c".
Línea 1: a=2
Línea 2: a=2+1=3
Línea 3: b=3*2=6
Línea 4: b=6–1=5
Línea 5: c=3+2*5=13
Línea 6: Se presenta 13
El valor de la variable c será 13.
RASTREO: Para el rastreo hay que
asignarle a cada línea un número, de la
siguiente manera, de antemano ya nos
habremos fijado que el valor de salida es el
de la variable c, el problema sería saber el
valor de esta variable c que se mostrará
finalmente.
3/26/2020 47Prof. Eliécer Espinosa
48. Ejercicio 2
Hacer el algoritmo para escribir un programa que evalúe la expresión x+w /
2*w. Solución: observe que los valores de ingreso serán para las variables x, w.
Algoritmo
Inicio
Resultado, x, w: real
Leer x,w
Resultado = (x+w)/(2*w)
Mostrar Resultado
Fin
resultado: Valor de la expresión luego de ser evaluada.
x Guarda un valor numérico ingresado.
w Guarda un valor numérico ingresado.
Declaración de Variables
3/26/2020 48Prof. Eliécer Espinosa
49. PseintAlgoritmo expresionmat
Definir Resultado, x, w como real
Escribir " ingresar el valor x"
Leer x
Escribir " ingresar el valor w"
Leer w
Resultado = (x+w)/(2*w)
Escribir " el resultado es:", Resultado
FinAlgoritmo
3/26/2020 49Prof. Eliécer Espinosa
50. Lenguaje CPrograma
#include<stdio.h>
main(void)
{
float resultado,x,w;
//se escriben dos valores separados por la barra espaciadora
printf("ingrese el valor de x , también de w n");
//se leen o capturan dos valores escritos en las variables x y w.
scanf("%f;%f",&x,&w);
//Se evalúa la expresión y el resultado es asignado a la variable resultado.
resultado=(x+w)/(2*w);
//se imprime el valor de la variable resultado.
printf("%f",resultado);
}
3/26/2020 50Prof. Eliécer Espinosa
51. Ejemplo 3: Escriba un algoritmo que pregunte por dos números y
muestre como resultado la suma de estos. Use Pseudocódigo y
diagrama de flujos
Datos de
entrada
num1, num2
Proceso suma= num1 + num2
Datos de
Salida
suma
3/26/2020 51Prof. Eliécer Espinosa
52. Ejemplo 4: Escriba un algoritmo que permita conocer el área de un triángulo a
partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y
diagrama de flujos.
Datos de entrada Base, altura
Proceso Triangulo= (base*altura)/2
Datos de Salida Triangulo
3/26/2020 52Prof. Eliécer Espinosa
53. 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.
3/26/2020 53Prof. Eliécer Espinosa
54. Componentes
Asignación
< Variable > <valor o expresión >
Lectura
Leer a, b //Donde “a” y “b” son las variables que
recibirán los valores
3/26/2020 54Prof. Eliécer Espinosa
55. Escritura
Escribe “El resultado es:”, R //Donde “El resultado
es:” es un mensaje que se desea aparezca y R es una
variable que contiene un valor.
3/26/2020 55Prof. Eliécer Espinosa
56. Ejemplos PrácticosEjercicio 1
Hacer el rastreo manual para:
a = 2
a = a + 1
b = a * 2
b = b – 1
c = a + 2 * b
Presentar "c".
1) a = 2
2) a = a + 1
3) b = a * 2
4) b = b – 1
5) c = a + 2 * b
6) Presentar "c".
Línea 1: a=2
Línea 2: a=2+1=3
Línea 3: b=3*2=6
Línea 4: b=6–1=5
Línea 5: c=3+2*5=13
Línea 6: Se presenta 13
El valor de la variable c será 13.
RASTREO: Para el rastreo hay que
asignarle a cada línea un número, de la
siguiente manera, de antemano ya nos
habremos fijado que el valor de salida es el
de la variable c, el problema sería saber el
valor de esta variable c que se mostrará
finalmente.
3/26/2020 56Prof. Eliécer Espinosa
57. Ejercicio 2
Hacer el algoritmo para escribir un programa que evalúe la expresión x+w /
2*w. Solución: observe que los valores de ingreso serán para las variables x, w.
Algoritmo
Inicio
Resultado, x, w: real
Leer x,w
Resultado = (x+w)/(2*w)
Mostrar Resultado
Fin
resultado: Valor de la expresión luego de ser evaluada.
x Guarda un valor numérico ingresado.
w Guarda un valor numérico ingresado.
Declaración de Variables
3/26/2020 57Prof. Eliécer Espinosa
58. PseintAlgoritmo expresionmat
Definir Resultado, x, w como real
Escribir " ingresar el valor x"
Leer x
Escribir " ingresar el valor w"
Leer w
Resultado = (x+w)/(2*w)
Escribir " el resultado es:", Resultado
FinAlgoritmo
3/26/2020 58Prof. Eliécer Espinosa
59. Lenguaje CPrograma
#include<stdio.h>
main(void)
{
float resultado,x,w;
//se escriben dos valores separados por la barra espaciadora
printf("ingrese el valor de x , también de w n");
//se leen o capturan dos valores escritos en las variables x y w.
scanf("%f;%f",&x,&w);
//Se evalúa la expresión y el resultado es asignado a la variable resultado.
resultado=(x+w)/(2*w);
//se imprime el valor de la variable resultado.
printf("%f",resultado);
}
3/26/2020 59Prof. Eliécer Espinosa
60. Ejemplo 3: Escriba un algoritmo que pregunte por dos números y
muestre como resultado la suma de estos. Use Pseudocódigo y
diagrama de flujos
Datos de
entrada
num1, num2
Proceso suma= num1 + num2
Datos de
Salida
suma
3/26/2020 60Prof. Eliécer Espinosa
61. Ejemplo 4: Escriba un algoritmo que permita conocer el área de un triángulo a
partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y
diagrama de flujos.
Datos de entrada Base, altura
Proceso Triangulo= (base*altura)/2
Datos de Salida Triangulo
3/26/2020 61Prof. Eliécer Espinosa