Computing">
Nothing Special   »   [go: up one dir, main page]

Unidad1a Fundamentos de Programación

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

15/03/2023

Fundamento de Programación
Unidad 1a
Conceptos básicos
Programación

Prof. César D’Alencon


Cdalencon.aiep@gmail.com

Introducción
Desde un punto de vista simple, una computadora
procesa datos y los convierte en información
significativa.

Datos  son hechos en bruto (No sirven de nada por si


solos).
Información  son datos procesados.

Datos Computadora Información

Entrada Salida

Proceso

Modelo fundamental de datos

1
15/03/2023

Programas
Un programa es un conjunto de instrucciones que controlan a una
computadora.

El proceso de escritura de un programa, se denomina


programación y el conjunto de instrucciones que se pueden
utilizar para construir un programa se denomina lenguaje de
programación.

Cuando un programa se ejecuta normalmente hay dos tipos de


entrada a una computador: el programa y los datos para el
programa.
Programa

Datos Computadora Salida

Programas
Lenguajes de Programación
Los lenguajes de programación sirven para escribir
programas que permitan la comunicación
usuario/maquina.

Unos programas especiales llamados traductores


convierten las instrucciones escritas en lenguajes de
programación en instrucciones escritas en lenguaje de
maquina ( 0 y 1, bits) que ésta pueda entender.

Programas de Aplicación
Se debe diferenciar entre el
Programas del Sistema
acto de crear un programa y
la acción de la computadora
cuando ejecuta las
instrucciones del programa.

2
15/03/2023

Programas
Lenguajes de Programación
Los lenguajes de computadoras permiten a las personas
escribir en un lenguaje que sea más apropiado a las
características humanas y se puedan traducir al
lenguaje de máquina de diferentes tipos de máquinas.

Los tipos de lenguajes son tres:

 Lenguaje de Máquina.
 Lenguaje de bajo nivel (ensamblador).
 Lenguajes de alto nivel.

Programas
Lenguajes de Programación
LENGUAJE DE MAQUINA
Son aquellos que están escritos en lenguajes directamente
inteligibles por la máquina (computadora), ya que sus
instrucciones son cadenas binarias que especifican una
operación y las posiciones de memoria implicadas.

Las instrucciones en lenguaje de maquina dependen del


hardware de la computadora y, por tanto, diferirán de una
computadora a otra.
Ventaja Desventajas
- No hay proceso de traducción -Dificultad y Lentitud en la codificación.
-Poca fiabilidad.
-Dificultad grande de verificar y poner a
punto los programas.
-Dependen de la maquina en particular

3
15/03/2023

Programas
Lenguajes de Programación
LENGUAJE DE BAJO NIVEL
 Son más fáciles de utilizar que los lenguajes de máquina.

El lenguaje de bajo nivel por excelencia es el ensamblador


(assembly). Las instrucciones en lenguaje ensamblador son
conocidas como nemotécnicos. Los nemotécnicos típicos de
operaciones aritméticas son: ADD, SUB, DIV, etc.
Ejemplo: ADD, M, N, P(equivalente Máquina) 0110 1001 1010
1011

 Un programa escrito en este lenguaje no puede ser ejecutado


directamente por la computadora.
Desventajas
-Dependencia total de la máquina.
Ventaja
Lenguajes distintos para diversas
- Mayor velocidad de calculo maquinas.
-Formación de los programadores
más compleja (Conocimientos del
interior de la maquina).

Programas
Lenguajes de Programación
LENGUAJE DE ALTO NIVEL
Este tipo de lenguajes son los mas utilizados por los
programadores. Están diseñados para que las programadores
escriban y entiendan los programas de un modo mucho mas
fácil.
Los programas que se realizan con estos lenguajes son
independientes de la maquina (Los hace muy portables).

Ventajas Desventajas
-Tiempo de formación de los -Incremento del tiempo de traducción,
programadores es relativamente corto. al necesitarse diferentes traducciones
del programa.
-La escritura de programas se basa en
reglas lingüísticas. -No se aprovechan los recursos
internos de la maquina.
-Modificaciones y Puestas apunto mas
simples. -Aumento de la ocupación de memoria.
-Reducción del coste de los programas. -Tiempo de Ejecución mucho mayor.
-Portabilidad.

4
15/03/2023

Programas
Traductores
Al igual que los lenguajes ensambladores, los programas
fuentes tienen que ser traducidos por los programas
traductores, llamados en este caso compiladores e intérpretes.

Programa fuente Programa fuente

Interprete Compilador

Traducción y ejecución Programa Objeto


línea a línea

Resolución de problemas
con computadores
Los computadores se utilizan hoy día en innumerables áreas
científicas para resolver problemas, aunque, son incapaces de
resolver el problema por sí mismos.

Es necesario que una persona (el programador) sea capaz de


analizar el problema a resolver y diseñe un programa. Dicho
programa será ejecutado por el computador y producirá la
solución al problema buscado.

Existen distintas técnicas y herramientas de las que dispone un


programador para analizar un problema y generar un método
para solucionarlo susceptible de ser utilizado por un
computador. A dicho método es lo que llamaremos algoritmo.

5
15/03/2023

Algoritmo
La principal razón por la que las personas aprenden a
programar es para utilizar el computador como una
herramienta para la resolución de problemas.

Ayudado por un computador, la obtención de la solución a un


problema se puede dividir en dos fases:

 Fase de resolución del problema.


 Fase de implementación del problema

Algoritmo
Es muy importante tener claro que los algoritmos son
completamente INDEPENDIENTES tanto del lenguaje de
programación en que se implementaran y el computador
donde se ejecutarán.

6
15/03/2023

Algoritmo
Características de un Algoritmo
Todo algoritmo ha de cumplir necesariamente, las
siguientes características:

 Precisión: el algoritmo debe indicar el orden de


realización de cada acción de forma clara y sin
ambigüedades. Además, el algoritmo debe ser
concreto en el sentido de contener sólo el número
de pasos precisos para llegar a la solución (no
deben haber pasos de más).
 Repetitividad: el algoritmo debe poder repetirse
tantas veces como se quiera, alcanzándose
siempre los mismos resultados para una misma
entrada, independientemente del momento de
ejecución.
 Finito: el algoritmo debe terminar en algún
momento.

Algoritmo
Características de un Algoritmo
Considerando lo anterior, no toda secuencia ordenada de
pasos a seguir puede considerarse como un algoritmo.

Ejemplo: Una receta para preparar un determinado plato,


no es un algoritmo, ya que:

• NO es repetible, pues para las mismas entradas


(ingredientes) no se garantizan los mismos
resultados.
• NO es preciso, ya que en una receta concreta no
se suelen especificar los grados de temperaturas
exactos, tipos de recipientes, calidad o tipo de
ingredientes, …

7
15/03/2023

Algoritmo
 Fases detalladas de resolución de problemas

1) Análisis del problema


2) Diseño del algoritmo
3) Verificación del algoritmo
4) Codificación
5) Compilación y Ejecución

Algoritmo
Fase de resolución de un problema
Está fase incluye, el análisis del problema así como el diseño
y la verificación del algoritmo.

Análisis del Problema

Se debe examinar cuidadosamente el problema a fin de


obtener una idea clara sobre lo que se solicita y determinar los
datos necesarios para conseguirlos.

Diseño del algoritmo

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.

8
15/03/2023

Algoritmo
Fase de resolución de un problema
Diseño del Programa

En un algoritmo se deben considerar tres partes:

 Entrada: datos dados al algoritmo.


 Proceso: Operaciones o cálculos necesarios para
encontrar la solución del problema.
 Salida: resultados finales de los cálculos.

Algoritmo
Fase de resolución de un problema
Diseño del Programa

Ejemplo: Se desea desarrollar un algoritmo que calcule el


promedio final de un alumno de algoritmos y programación.
Lo primero que debería hacer es plantearse las siguientes
preguntas:

Especificaciones de Entrada Especificaciones de Salida


-¿Qué datos son de entrada? -¿Cuáles son los datos de salida?
-¿Cuántos datos se introducirán? -¿Cuántos datos de salida se
producirán?
-¿Cuántos son datos de entrada
válido? -¿Se debe imprimir una cabecera?

Se definen procesos para Transformar


datos de entrada en datos de salida.

9
15/03/2023

Algoritmo
Fase de resolución de un problema
Diseño del Programa

Ejemplo: Resultado Calculo Promedio.

Especificaciones de Entrada Especificaciones de Salida


- nota 1 -valor de promedio
- nota 2
- nota 3
- Nota 4

Proceso:
promedio = (nota1+nota2+nota3+nota4)/4

Algoritmo
Fase de resolución de un problema
Verificación de Algoritmos

Una vez que se ha terminado de escribir un algoritmo es


necesario comprobar que realiza las tareas para las que se ha
diseñado y produce el resultado correcto y esperado.

El modo más normal de comprobar un algoritmo es mediante


su ejecución manual, usando datos significativos que abarquen
todo el posible rango de valores y anotando en una hoja de
papel las modificaciones que se realizan en cada fase (ruteo de
algoritmos).

Una vez que el algoritmo está diseñado, representado


mediante un método (Diagrama de Flujo de Datos o
Pseudocódigo) y verificado se debe pasar a la fase de
codificación.

10
15/03/2023

Ejercicio
Ejercicio 1: Realice un algoritmo que calcule el sueldo
neto de un trabajador.

Análisis del Problema

Datos de Entrada: horas trabajadas, valor por hora, tasa


de impuesto
Datos de Salida: sueldo bruto, descuentos y pago
liquido.
Proceso: Se debe multiplicar las horas trabajadas por el
valor de la hora y aplicar impuesto.

Ejercicio
Ejercicio 1:
Inicio
1. Obtener valores de horas trabajadas, valor hora y
tasa.
2. Calcular salario bruto multiplicando las horas
trabajadas por el valor hora.
3. Calcular el total de impuesto multiplicando salario
bruto por tasas.
4. Calcular salario liquido restando el total de impuestos
del salario bruto.
5. visualizar salario bruto, total impuesto y salario neto.
6. Fin.

11
15/03/2023

Ejercicio
Ejercicio 2: Realice un algoritmo para que ejemplifique
como usted IRIA AL CINE.

Análisis del Problema

Datos de Entrada: Nombre de la película, dirección de la


sala, hora de proyección de la película, valor entrada,
duracion.
Datos de Salida: Ver la película (aceptacion o rechazo)
Datos Auxiliares: Entrada, número de asiento
Proceso: Se debe seleccionar una película de la cartelera
del periódico, ir a la sala y comprar la entrada para
finalmente ver la película.

Ejercicio
Ejercicio 2: Realice un algoritmo para que ejemplifique como
usted IRIA AL CINE.
inicio si hay cola
//seleccionar la película ponerse al último
tomar el periódico mientras no lleguemos a la taquilla
mientras no lleguemos a la cartelera avanzar
pasar la hoja si no hay entradas, ir a fin
mientras no se acabe la cartelera comprar la entrada
leer película
si nos gusta, recordarla //ver la película
elegir una de las películas seleccionadas leer número de asiento de la entrada
buscar al asiento
leer la dirección de la sala y la hora de sentarse
proyección ver película
fin
//comprar la entrada
trasladarse a la sala
si no hay entradas, ir al fin

12
15/03/2023

Ejercicio
3.- Algoritmo para calcular la compra de un cliente en un
supermercado
Inicio
asignar 0 a total
mientras haya productos
leer precios y unidades
asignar el total la expresión precio * unidades
escribir total Datos de Salida: Total
fin Datos de Entrada: Precio, Unidades
Datos Auxiliares: Importe
Proceso:
Por cada producto de la compra, se leerá el precio del
producto y se calculará el importe mediante la expresión
precio * unidades. Una vez calculado el importe se acumulará
al total que, previamente, se habrá inicializado a 0. El proceso
continuará mientras el cliente todavía tenga productos.

Programa
Un programa de computadora es un conjunto de instrucciones,
que producirán la ejecución de una determinada tarea.
Tras las decisión de desarrollar programas, el programador
debe establecer el conjunto de especificaciones que debe contener
el programa: entrada, salida y algoritmo(s) de resolución.

Entrada Algoritmo Salida

13
15/03/2023

Instrucciones
El proceso de diseño del algoritmo o posteriormente la
codificación del programa consiste en definir las acciones o
instrucciones que resolverán el problema.

Un programa puede ser lineal o no lineal.

Acción 1 Acción 1
Acción 2 Acción 2
Acción 3 Acción 3
. .
. .
. .
Acción n Acción n

Tipos de instrucciones
Las instrucciones básicas que se pueden implementar en un
algoritmo son:

1. instrucciones inicio/fin
2. instrucciones de asignación
3. instrucciones de lectura
4. instrucciones de escritura
5. instrucciones de bifurcación.

14
15/03/2023

Tipos de instrucciones
Instrucciones de asignación
Representación: A 5
la variable a toma el valor de 5

Instrucciones de lectura
Representación: leer (valor)

Instrucciones de escritura
Representación: escribir (valor)

Instrucciones de bifurcación
se refiere al punto donde va a seguir ejecutando un
instrucción el programa

Datos
Dato es la expresión general que describe los objetos con los
cuales opera el algoritmo. El tipo de un dato determina su forma de
almacenamiento en memoria y las operaciones que van a poder ser
efectuadas con él.

En cualquier lenguaje de programación se van definir siempre los


siguientes tipos:
 entero: Subconjunto finito de los números enteros, cuyo
rango o tamaño dependerá del lenguaje de programación.
 real: Subconjunto de los números reales limitado no sólo
en cuanto al tamaño, sino también en cuanto a la
precisión.
 lógico: Conjunto finito por los valores verdad y falso.
 carácter: Conjunto finito y ordenado de los caracteres
que la computadora reconoce.
 cadena: Los datos (objetos) de este tipo contendrá una
serie finita de caracteres.

15
15/03/2023

Constantes
Son datos cuyo valor no cambia durante todo el desarrollo del
algoritmo.

Las constantes se identifica por su nombre y el valor asignado.


Una constante tiene un valor de cualquier tipo que se utiliza como
tal.

Existirán constantes numéricas enteras, reales, lógicas,


carácter y cadena.

Variables
Una variable es un objeto cuyo valor puede cambiar durante
el desarrollo del algoritmo. Se identifica por su nombre y por su
tipo, que podrá ser cualquiera, y es el que determina el conjunto
de valores que podrá tomar la variable.

Ejemplo: Si uno define que una variable será entera, está variable
solo podrá tomar valores enteros.

En los algoritmos se deben declarar las variables que se van


a usar, especificando su tipo. Se declararan en un algoritmo
colocando lo siguiente:

var
tipo de dato : <lista de identificadores de variables>

16
15/03/2023

Expresiones
Una expresión es una combinación de operadores y
operandos. Los operandos podrán ser constantes, variables u
otras expresiones y los operadores de cadena, aritméticos,
relacionales o lógicos.

Las expresiones se clasifican, según el resultado que


producen:

 Numéricas: los operadores que intervienen en ellas


son numéricos, el resultado también de tipo numérico y
se construyen mediante los operadores aritméticos.
Operadores aritméticos +, - , * , / (división real), div
(división entera), mod (modulo) y ** (exponenciación).
Ejemplo:
suma  7 + 2
total  10
total  suma + 50
total  suma + total

Expresiones
 Alfanuméricas: los operadores son de tipo
alfanumérico y producen resultados también de dicho
tipo. Se construyen mediante el operador de
concatenación (&).

Ejemplo:
var
cadena: dato1, dato2
inicio En la pantalla aparecerá:
dato1  “Hola”
dato2  “ Mundo” Hola Mundo
Escribir (dato1 & dato2)
fin

17
15/03/2023

Expresiones
 Booleanas: Su resultado podrá se verdadero o falso.
Se construyen mediante los operadores relacionales y
lógicos. Operadores de relación =, <, >, >=, <=, <>.
Operadores lógicos negación lógica (no),
multiplicación lógica (y), suma lógica (o).

a b ayb aob no a

verdad verdad verdad verdad falso

verdad falso falso verdad falso

falso verdad falso verdad verdad

falso falso falso falso verdad

Expresiones
El orden de prioridad general adoptado (no común a
todos los lenguajes), es el siguiente:

** exponenciación.
no, - Operadores unarios
*,/,div,mod,y Operadores multiplicativos
+,-,o Operadores aditivos
=,<>,>,<,>=,<= Operadores de relación

La evaluación de operadores con la misma prioridad se


realizará siempre de izquierda a derecha. Además los
paréntesis siempre se evalúan primero.

18
15/03/2023

Expresiones
Ejemplo de Expresiones:

Si a=20, b=5 y c=10, encontrar los valores de las siguientes


expresiones.
Resultados
1. a-b+c
1.- 25
2. a*b div c
2.- 10
3. a div b + c
4. (a*b) mod c 3.- 14

5. a+b mod c 4.- 0


6. a div b div c 5.- 5
6.- 0

Representación de Algoritmos
Un algoritmo puede ser escrito en castellano narrativo,
pero esta descripción suele ser demasiado prolija y,
además, ambigua.

Para representar un algoritmo se debe utilizar algún


método que permita independizar dicho algoritmo de los
lenguajes de programación y, al mismo tiempo conseguir
que sea fácilmente codificable.

Los medios más usuales para la representación de


algoritmos son:

 Diagramas de Flujo
 Diagramas N-S (Nassi-Schneiderman)
 Pseudocódigo

19
15/03/2023

Representación de Algoritmos
Diagramas de Flujo
Estos diagramas se utilizan para la representación
gráfica de los pasos necesarios para describir un
procedimiento particular.

Los diagramas de flujo utilizan unos símbolos


normalizados, con los pasos del algoritmo escrito en el
símbolo adecuado y los símbolos unidos por flechas,
denominadas líneas de flujo, que indican el orden en que se
realizan los pasos. Los símbolos principales son:

Representación de Algoritmos
Diagramas de Flujo
Ejemplo 1: Considere el ejemplo del calculo de la superficie
Incio

Datos Entrada: base, altura


Datos Salida: Superficie
Proceso: Superficie = base * altura Leer
(base,altura)

inicio
leer base y altura
superficie  base*altura Superficie 
altura * base
escribir superficie
fin
Escribir
(superficie)

fin

20
15/03/2023

Representación de Algoritmos
Diagramas de Flujo
Ejercicio 1 : expresar en diagrama de flujo el algoritmo de calcular el
sueldo neto de un trabajador.

Ejercicio 2: Crear diagrama de flujo para algoritmo de cargar una


tarjeta de 3500 en celular de prepago.

Ejercicio 3: Crear diagrama de flujo para algoritmo de calcular el


total de compra de una persona.

21

También podría gustarte