Download Programa - IHMC Public Cmaps (3)

Document related concepts

Little man computer wikipedia , lookup

C Sharp wikipedia , lookup

Evaluación de cortocircuito wikipedia , lookup

Programación con datos masivos en R wikipedia , lookup

Thunk wikipedia , lookup

Transcript
PRINCIPIOS DE
PROGRAMACION
VLADIMIR RAFAEL ARNEDO POMARES
“LA PROGRAMACION Y LOS LENGUAJES DE PROGRAMCION”
Universidad de Cartagena
Centro Regional de Educación a Distancia
CREAD
Programa Ingeniería de sistemas
DEFINICION DE ALGORITMO

Es una secuencia ordenada de pasos que conducen a la
solución de un problema dado.
Ejemplo de algoritmo:
Algoritmo cada_mañana:







Abrir los ojos.
Levantarme de la cama.
Pasar al baño
Darme una ducha.
Vestirme.
Desayunar.
Salir al trabajo.
CARACTERISCAS Y PARTES DE UN
ALGORITMO
 Características:
PRECISO.
DEFINIDO.
FINITO.
 Partes:
ENTRADA.
PROCESO.
SALIDA.
LENGUAJES DE
PROGRAMACION

Los algoritmos se convierten en un conjunto de sentencias e
instrucciones entendibles por la maquina mediante los
lenguajes de programación.
CLASIFICACION:
Lenguajes Maquina: Codificación Binaria. (1110110001)
Lenguajes Ensamblador o de bajo Nivel: Nemotécnicos.
ADD 5,7
Lenguajes de Alto nivel: Uso de Compiladores e interpretes.
Lenguajes de Cuarta Generación: Lenguaje natural.
Extract all clientes Where Saldo more than $500.000
Lenguajes de quinta Generación: Desarrollo visual.
Interfaces graficas avanzadas. Orientados a IDE.
¿Qué papeles desempeñan
los Lenguajes de Programación?
 Según Joyanes (2003), FORTRAN se empleaba
para cómputo científico, el lenguaje más
utilizado en cuanto a negocios eran escritos en
COBOL, las aplicaciones militares en JOVIAL y
las militares incrustadas en ADA, pero de todos
los lenguajes que habían en los años 1960 ya
no queda ninguno pues con las evoluciones que
han adquirido han ido descartando lenguajes de
difícil manejo.
Traductores de
lenguaje de programación
 Intérpretes:
Es un traductor que toma un programa fuente, lo
traduce y a continuación lo ejecuta
 Compiladores:
Es aquel programa que traduce un programa en
lenguaje de alto nivel.
Fases de compilación; proceso por el cual el programa
fuente es transformado a programa ejecutable
COMPILADOR
Inicio
Modificación
Programa
Fuente
Editar Programa
Fuente
Compilar el
Programa
Existen
errores en
la
compilación
Programa
Enlazador
Programa
Ejecutable
Ejecución
Fases de
compilación
LENGUAJES DE PROGRAMACION
OTROS LENGUAJES DE
PROGRAMACION





















ABAP
ABC
ActionScript
Afnix
ASP
ASP.NET
AWK
B
BCPL
Befunge
Boo
C++
C#
Caml
Clipper
CLIPS
CLU
CORAL
D
Delphi
DIV





















CORAL
D
Delphi
DIV
Dylan
Eiffel
Erlang
Ensamblador
Extended ML
Euphoria
Fénix
Flow -Matic
Gambas
GML
GRAFCET
FP
Haskell
Icon
Inform
INTERCAL
ISWIM





















J
Java
JavaScript
Joy
KWC
LADDER
Letra
Lexico
Lingo
Lua
MAGIC
Mainsail
Mesa
Miranda
ML
Modula
Modula-3
Natural
NetREXX
Oberon
Object REXX





















Objective -C
Ocaml
Occam
Oz
Parlog
Perl
PHP
Plankalkül
PostScript
PowerBuilder
Prolog
Python
Rapid
REXX
RPN
RPG
Ruby
Sail
Sather
Scheme
Seed7




















Self
Sh
Simula
Smalltalk
Snobol
SPARK
Squeak
SR
Standard ML
TI-Basic
TCL
VBA
Visual Basic
Visual C++
Visual
DialogScript
Seed7
Self
Sh
Simula
Smalltalk
CASO ESPECIAL
JAVA
Unix, Linux, Solaris,
Windows, Mac
DATOS
DEFINICION
DATO: Es una representación simbólica
ya sea numérica o alfabética de un
atributo o característica de una
entidad. Los programas los utilizan
para
realizar
las
operaciones
respectivas generando la información
requerida por el usuario.
TIPOS DE DATOS
ESTATICOS
SIMPLES
Enteros
Reales
Carácter
Booleanos
ESTRUCTURADO
S
Array
Cadena
Registro
Archivo
DINAMICOS
Pilas
Colas
Listas
Árboles
DATOS SIMPLES
TIPO
TAMAÑO
CHAR
1 Byte
INT
2 Bytes
FLOAT
4 Bytes
DOUBLE
8 Bytes
DATOS ESTRUCTURADOS
SON AQUELLOS QUE ESTAN
FORMADOS POR UN CONJUNTO
DE DATOS SIMPLES. SU TAMAÑO
ES INMODIFICABLE DURANTE LA
EJECUCION DEL PROGRAMA.
Ej. Dato de tipo Array (Arreglo)
Edades[5]
32
27
41
52
25
DATOS DINAMICOS
SON
QUELLOS
QUE
DURANTE
EL
TRANSCURSO
DE
EJECUCION
DEL
PROGRAMA PUEDEN MODIFICAR SU TAMAÑO
DE ACUERDO A LAS NECESIDADES DEL
USUARIO.
Ej. Dato de tipo LISTA.
edades[3]
35
21
29
edades[4]
35
21
29
42
OPERADORES
ARITMETICOS
CONDICIONALES
• + Suma
•- Resta
•* Multiplicación
• ^ Potenciación
•/ Division real
•DIV Division
entera
•MOD Residuo
p
V
V
F
F
q
V
F
V
F
ALFANUMERICOS
• + ó . Concatenar
cadenas
• < Menor que
•= Igual
•> Mayor que
•<= Menor o igual que
•>= Mayor o igual que
•<> ó != Diferente
p AND
q
V
F
F
F
P
V
V
F
F
q
V
F
V
F
p OR q
V
V
V
F
LOGICOS
• OR o
•AND y
•NOT Negación
P
NOT p
V
F
F
V
PRIORIDAD DE OPERANDOS







Paréntesis (Empezando por los mas internos).
Potencias.
Divisiones y Productos.
Sumas y Restas.
Concatenación.
Condicionales.
Lógicos.
Ej.
Producto mayor prioridad
X= 5+7*3
X= 26
CONSTANTES Y VARIABLES


Los Datos pueden ser Constantes o Variables. Un dato
constante es aquel que permanece sin cambios durante toda
la ejecución del programa. Ej. ‘M’, -5, 23, “mensaje”
Una variable es un elemento que cambia de estado o valor
durante la ejecución de un programa. Cuando se crea una
variable la maquina reserva espacio en la memoria RAM para
almacenar el valor que tomara en un instante dado la variable.
La variables están compuestas de: Un identificador o nombre
de la variable y el tipo de dato que almacena la variable.
Ej. Edad : entero
Edad
En Java: int Edad = 30;
RAM
30
EXPRESIONES

Expresiones aritméticas:
5 * 7 4 ^2 3 + (8 - 6) 7 – 2 / 5

Expresiones lógicas:
(A – 2) > (B – 4) (A=8)AND(B=8)
DFD’s
(Diagramas de Flujo de Datos)
DFD: Es un diagrama
que utiliza símbolos
estándares el cual
representan los pasos
del algoritmo, unidos
por flechas llamadas
líneas de flujo que
indican la secuencia
en que se deben
ejecutar cada una de
las instrucciones.
PSEUDOCODIGO
Es un lenguaje de especificación de algoritmos
que se aproxima al lenguaje natural usado por el
ser humano.
Ej.
//Algoritmo que calcula área triangulo -> esto es un comentario
Var
real: base,altura,area -> las variables a usar
Inicio
//Lectura de los datos de entrada
Leer (base)
Leer (altura)
//calcular area
area <- base * altura / 2
//Presentar resultado en pantalla
Escribir (area)
Fin
TIPOS DE
INSTRUCCIONES

Instrucciones de INICIO / FIN

Instrucciones de seleccion.

Instrucciones condicionales.

Instrucciones repetitivas.
INSTRUCCIONES DE
SELECCION
PSEUDOCODIGO
//Algoritmo que calcula área triangulo -> esto es un comentario
Var
real: base,altura,area -> las variables a usar
Inicio
//Lectura de los datos de entrada
Leer (base)
Leer (altura)
//calcular area
area <- base * altura / 2
//Presentar resultado en pantalla
Escribir (area)
Fin
LECTURA
VISUAL BASIC . NET
Module Ejercicio
Sub main( )
Dim base As Decimal ‘ declaro variables
Dim altura As Decimal
Dim area As Decimal
Console.Write(“Digite la Base:”) ‘capturo datos
base = Console.Readline
Console.Write(“Digite la altura:”)
altura = Console.Readline
area = base * altura
Console.Write(“El area del triagulo es: {0}”,area)
end sub
End Module
JAVA
import java.io.*;
public class Area{
public static void main (String [] args)
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader (isr);
try
{
System.out.print(“Digite Base : ");
float base = Integer.parseInt(br.readLine());
System.out.print(“Digite Altura : ");
float altura = Integer.parseInt(br.readLine());
float area=base * altura;
System.out.println (“El área es: “+ area);
}
catch (Exception e)
{
e.printStackTrace();
}
ASIGNACION
ESCRITURA
}
}
INSTRUCCIONES
CONDICIONALES

Se ejecutan de acuerdo a un criterio de evaluación.
SE CLASIFICAN EN:
1.
2.
3.
CONDICIONAL SIMPLE
CONDICIONAL DOBLE
CONDICIONAL MULTIPLE
CONDICIONAL SIMPLE
PSEUDOCODIGO
Inicio
//CONDICION
si condición = verdadera entonces
ejecutar (P1)
fin si
Fin
NO
VISUAL BASIC .NET
If condicion then
ejecutar (P1)
SI
condición
end if
P1
JAVA
If ( condición ) {
ejecutar (P1);
}
CONDICIONAL DOBLE
PSEUDOCODIGO
Inicio
//CONDICION
si condición = verdadera entonces
ejecutar (P1)
si no
ejecutar (P2)
fin si
NO
Fin
SI
condición
P2
P1
VISUAL BASIC .NET
If condicion then
ejecutar (P1)
else
ejecutar (P2)
end if
}
JAVA
If ( condición ) {
ejecutar (P1);
}
else {
ejecutar (P2):
}
CONDICIONAL MULTIPLE
PSEUDOCODIGO
Inicio
según_sea ( selección ) hacer
1: ejecutar (P1)
2: ejecutar (P2)
3: ejecutar (P3)
n: ejecutar (Pn)
si no
ejecutar (por defecto)
fin según_sea
1
3
VISUAL BASIC .NET
Select Case opcion
Case 1: ejecutar (P1)
Case 2: ejecutar (P2)
Case 3: ejecutar (P3)
Case n: ejecutar (Pn)
Case else
’si no se cumple ninguna de las expresiones
end select
Fin
selección
JAVA
n
2
P1
P2
P3
switch ( selección ) {
case 1: ejecutar (P1);
break;
case 2: ejecutar (P2)
break;
case 3: ejecutar (P3)
break;
case n: ejecutar (Pn)
break;
default:
ejecutar (por defecto);
Pn
}
INSTRUCCION REPETITIVA
MIENTRAS
inicio
PSEUDOCODIGO
Inicio
mientras condición = verdadera haga
ejecutar (P)
fin mientras
Fin
VISUAL BASIC .NET
MQ condición
While condicion = verdadera
ejecutar (P)
end while
P
JAVA
cierre
FIN
While (condicion = verdadera) {
ejecutar (P);
}
INSTRUCCION REPETITIVA
PARA
PSEUDOCODIGO
Inicio
inicio
para A1 hasta 10 de 1 en 1 haga
ejecutar (P)
fin para
Fin
PARA A1, 10, 1
VISUAL BASIC .NET
For A = 1 To 10 Step 1
ejecutar (P)
Next
P
JAVA
cierre
FIN
for (A=1;A<10;A++){
ejecutar (P);
}
Para: A inicia desde 1, hasta que tome el valor de 10
y se incremente de uno en uno.
ANIDAMIENTO DE
ESTRUCTURAS
PSEUDOCODIGO
Inicio
//CONDICION
si condición = verdadera entonces
ejecutar (P1)
si no
si condicion2 = verdadera entonces
ejecutar (P2)
si no
ejecutar (P3)
fin si
fin si
JAVA
If ( condición ) {
ejecutar (P1);
}
else {
if (condición 1) {
ejecutar (P2);
}
else{
ejecutar (P3);
}
Fin
}
ANIDAMIENTO DE
ESTRUCTURAS
PSEUDOCODIGO
Inicio
para A1 hasta 10 de 1 en 1 haga
ejecutar (P)
para B1 hasta 10 de 3 en 3 haga
ejecutar (P)
fin para
fin para
Fin
JAVA
for (A=1;A<10;A++){
ejecutar (P);
for (B=1;B<10;B+=3){
ejecutar (P);
}
}
CONTADORES
ACUMULADORES

Los procesos repetitivos requieren contar los sucesos y acciones
internas, una forma de hacerlo es mediante un contador. Un contador
es una variable cuyo valor se incrementa o decrementa en una
cantidad constante en cada repetición. La forma en que se construye
un contador es la siguiente:
Mientras A < 10 haga
AA+1
fin mientras

Un acumulador o totalizador es una variable cuya función es
almacenar cantidades resultantes de operaciones sucesivas. Realiza la
misma función que un contador con la diferencia de que el incremento
o decremento es variable en lugar de constante.
nuevo_saldo  0 //Este es el acumulador
Mientras A < 10 haga
AA+1
Leer (saldo)
nuevo_saldo  nuevo_saldo + saldo
fin mientras
Recomendaciones:
 Se recomienda el estudio y práctica de los diseños de Lenguajes de
Programación pues a través de ellos podremos ejercitarnos y realizar
eficaces algoritmos.
 Investigar los Lenguajes de Programación de tal manera que tengamos la
habilidad de poder escoger el mejor lenguaje de programación de acuerdo
a lo que queramos realizar.
Conclusiones:
 Los Lenguajes de Programación son muy complicados de definir pero si
sabemos que con ellos podemos desarrollar muchas cosas pues para cada
dominio como las Matemáticas, Aplicaciones Militares e incluso el Juego
como muchas otras ya que existen lenguajes específicamente para cada
uno de ellos.
 Promover la utilización de los lenguajes de programación de tal manera que
obtengamos la habilidad de utilización, elección y diseño de estos
lenguajes.