introduccion a la programacion

45
1 1 Fundamentos de programación CONCEPTOS BÁSICOS: Instrucción: Es un conjunto de símbolos que representa una orden de operación o tratamiento para el ordenador. Programa: Conjunto ordenado de instrucciones que indican las tareas u operaciones que el ordenador debe realizar. Es la representación de un algoritmo, escrito en algún lenguaje de programación.

Upload: javimangas

Post on 09-Dec-2015

27 views

Category:

Documents


2 download

DESCRIPTION

Programacion

TRANSCRIPT

1

1 Fundamentos de programación

� CONCEPTOS BÁSICOS:� Instrucción : Es un conjunto de símbolos

que representa una orden de operación o tratamiento para el ordenador.

� Programa : Conjunto ordenado de instrucciones que indican las tareas u operaciones que el ordenador debe realizar.

�Es la representación de un algoritmo, escrito en algún lenguaje de programación.

2

1 Fundamentos de programación

� CONCEPTOS BÁSICOS:� Lenguaje de programación (DEF1) :

�Es una notación para escribir programas. �Permite comunicarnos con el hardware y

dar así las órdenes adecuadas para la realización de un determinado proceso. Viene definido por una gramática o conjunto de reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados.

3

1 Fundamentos de programación

� CONCEPTOS BÁSICOS:� Lenguaje de programación (DEF2) : Es

el conjunto de símbolos y el conjunto de reglas para combinar dichos símbolos que se utilizan para realizar programas.

�Léxico (cjto. de símbolos permitidos). �Sintaxis (reglas para realizar las

construcciones del lenguaje).�Semántica (reglas para determinar el

significado de dichas construcciones).

4

1 Fundamentos de programación

� CONCEPTOS BÁSICOS:� INSTRUCCIONES BÁSICAS:

�Instrucciones de asignación .�Instrucciones selectivas (o bifurcaciones

o condicionales)�Instrucciones repetitivas (o iterativas o

bucles)�Instrucciones de entrada y salida (o de

transferencia de datos entre periféricos y memoria central).

5

1 Fundamentos de programación

� CONCEPTOS BÁSICOS:

� ALGORITMO :Un algoritmo es un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema (Diccionario RAE).

� Un algoritmo puede ser utilizado para codificar programas en distintos lenguajes

2 Algoritmo

� Los algoritmos son independientes de loslenguajes de programación. Un lenguaje deprogramación permite expresar un algoritmopara que sea ejecutado por un ordenador.

� Un algoritmo debe ser claro y preciso, debe especificar las acciones a realizar y el orden de realización

� Un algoritmo debe tener un número finito de pasos y, cada vez que se realice con los mismos datos de entrada, debe dar el mismo resultado

2 Algoritmo� Un algoritmo describe los datos de entrada, el

proceso y los datos de salida: �1. Entrada: Datos que utiliza el algoritmo para su

ejecución�2. Proceso: Reglas y operaciones del algoritmo

para resolver un problema�3. Salida: Resultados del proceso.

8

2 Algoritmo

� CONCEPTOS BÁSICOS:� Ejemplo de ALGORITMO : Determinar si

un número es par:1. Leer N2. Si N=2 � Escribe: “es par”3. Si N=1 � Escribe: “es impar”4. Si N=1 o N=2 ir a 75. N=N-26. Ir a 27. Fin del procedimiento

9

2 Algoritmo

� ALGORITMOS :Conjunto ordenado de pasos a seguir para resolver un problema concreto, en un tiempo finito y sin ambigüedad.�Acciones bien definidas�Secuencia finita y ordenada�Tiempo finito

10

2 Organización de los programas

� ALGORITMOS :

Para resolver un mismo problema se pueden definir varios algoritmos.Factores para decidir que algoritmo usar:�Tiempo que tarda en hallar la solución�Recursos utilizados para implantar el

algoritmo.

Las fases de desarrollo de un programa

� 1. Análisis . Consiste en entender el problema que se quiere resolver ¿Qué debemos hacer?

� 2. Diseño . Plan para resolver el problema ¿Cómo hacer?

� 3. Programación . Traducción de un algoritmo en un programa Java o de cualquier otro lenguaje

� 4. Validación del programa . Evaluación de los resultados del programa

12

Algoritmos

� DISEÑO DE ALGORITMOS :� Herramientas para el diseño de algoritmos:

�Pseudocódigo o lenguaje de descripción de algoritmos

�Organigramas o diagramas de flujoSon una herramienta útil en las fases de análisis

y diseño de software

13

Algoritmos. Pseudocódigo

� REPRESENTACIÓN DE ALGORITMOS :� Pseudocódigo o lenguaje de descripción de

algoritmos:�El pseudocódigo es un lenguaje que describe

algoritmos con una sintaxis similar a un lenguaje de programación. Normalmente se escribe en inglés o en español. La traducción de pseudocódigo a un lenguaje de programación es muy sencilla.

� Reglas:�Cada identificador (variable, constante...) debe tener un

nombre significativo�Cada sentencia debe ir en una línea

�Los nombres de las sentencias son únicos.

14

Algoritmos. Pseudocódigo

� REPRESENTACIÓN DE ALGORITMOS :�Pseudocódigo

�Ejemplo: Suma de dos números introducidos por el usuario.

algoritmo Sumarinicioleer( a )leer( b )c ← a + bescribir( “La suma es“ , c )

fin

15

Algoritmos. Pseudocódigo

� REPRESENTACIÓN DE ALGORITMOS :�Pseudocódigo�Ventajas sobre las representaciones gráficas

�Es más compacto

�Más fácil de escribir

�Más fácil de traducir a un lenguaje de programación concreto.

16

Algoritmos

� REPRESENTACIÓN DE ALGORITMOS :�Organigramas o diagramas de flujo

Herramienta gráfica de descripción de algoritmos fácil y extendida.

�Los símbolos representan acciones�Las flechas representan el orden de

ejecución.

17

Algoritmos.Diagramas de flujo

� REPRESENTACIÓN DE ALGORITMOS :�Organigramas o diagramas de flujo

Símbolos:Procesos: Por ejemplo la asignación:

Terminal:

M = 3

Inicio Fin

18

� REPRESENTACIÓN DE ALGORITMOS :�Organigramas o diagramas de flujo

Símbolos:Selección:

Entrada/Salida:

Algoritmos.Diagramas de flujo

SiN<>0

No

Leer Dato

19

Ejemplo: Suma de un numero variable de datos:

Algoritmos.Diagramas de flujo

Inicio

Leer b

Escribir “La suma es” c

Fin

Leer a

C� a+b

3. Pseudocódigo.Datos y Tipos de Datos

Los algoritmos operan sobre datos.Tipos de datos simples: Un dato simple es indivisible (atómico), es decir,

no se puede descomponer.� Entero . Valores { ..., -3, -2, -1, 0, 1, 2, 3, ... }� Real. Números racionales-irracionales. Ej (17,8)� Carácter (también llamados alfanuméricos) ‘c’� Lógico , dos valores: verdadero o falso.Datos compuestos: Cadena o String “Castelar”

Compuesto por varios caracteres

Tipos de Datos simples

Tipo carácter o alfanuméricos

Los datos de tipo carácter o alfanuméricos estáncompuestos por el conjunto finito y ordenado decaracteres que la computadora reconoce:caracteres alfabéticos : A,B,C,.......Z; a,b,c,.......zcaracteres numéricos : 0,1,2,...9 (que no son

números)caracteres especiales : +, /, *, ?,%,$, #, !,

,ä,¦,{},~,etc.

Cadena o string

� Es una sucesión de caracteres que se encuentran delimitados por comillas ( " " ).

� La longitud de la cadena es la cantidad de caracteres que la forma, incluyendo los espacios que son un carácter más.

"Asunción, Paraguay" es una cadena de longitud 18.

"123456" es una cadena de longitud 6, no es el número 123.456 no se puede realizar ninguna operación aritmética como sumar,

restar, etc,

Variables y constantes� Una variable y constante representa una zona o

posición de memoria donde se almacena información.� Las variables almacenan los datos utilizados por los

programas. El valor de una variable puede cambiar durante la ejecución de un programa

� El valor de una constante no cambia durante la ejecución de un programa. Por ejemplo pi = 3,1416

� El nombre que se utiliza para hacer referencia a una constante o una variable se denomina identificador.

A = 50; Variable tipo numérica A cuyo valor es 50.Ciudad = "Asunción"; Variable alfanumérica o de tipo carácter Ciudad, cuyo valor es "Asunción“.

Operaciones

� Las variables se pueden procesar utilizando operaciones apropiadas para su tipo.

Los operadores son de 4 clases:Relacionales.Aritméticos.Alfanumérico.Lógicos.

Operadores relacionalesOperadores relacionales:Los operadores relacionales evalúan una expresión

y devuelven un valor falso o verdadero� < menor que� > mayor que� <= menor o igual que� >= mayor o igual que� <> diferente de, distinto de (en java !=)� == igual que

Ejemplos. Operadores relacionales

Ejemplo Resultado

25 <= 25 Verdadero

25 <> 25 Falso

25 <> 4 Verdadero

50 <= 100 Verdadero

500 >= 1 Verdadero

1 = 6 Falso

Operadores aritméticos.

Signo Significado

+ Suma

- Resta

* Multiplicación

/ División

^ Potenciación

MOD %

Resto de la división enteraResto de la división (en java)

Operadores Alfanuméricos

El único operador alfanumérico (tipo carácter) se utiliza para unir o concatenar datos de este tipo:

Ejemplos:

Signo Significado

+ Concatenación

Expresión Resultado

"Pseudo" + "código" "Pseudocódigo"

"3" + "4567" "34567"

"Hola " + "que tal ?" "Hola que tal ?"

Operadores lógicos.

Los operadores lógicos evalúan una expresión lógica devuelven un valor falso o verdadero.

Signo Significado

OR(en java || ) Suma lógica (O). A OR B es verdadero si A o B son

verdaderosAND(en java && ) Producto lógico (Y) A AND B es

verdadero si A y B son verdaderos

NOT(en java ! ) Negación (NO). negación del operando A, es decir, verdadero si A es falso, falso si A es verdadero

Ejemplos. Operadores lógicos

Expresión Resultado

Verdad AND Falso Falso

NOT Falso Verdad

Verdad OR Falso Verdad

Expresión Resultado

Verdad AND Falso Falso

NOT Falso Verdad

Por ejemplo, la expresión: (12 + 5) OR (7 + 3) = 10 es verdadera (se cumple una y Verdad OR Falso es Verdad).La expresión (12 * 5) AND (3 + 2) = 60 es falsa (verdad AND falso = Falso).

Pseudocódigo. Asignaciones

La operación de dar valor a una variable se llama asignación. La asignación vamos a representarla con el símbolo ����nombre de la variable ���� expresión

La flecha se sustituye en los lenguajes de programación por = (basic); : = (pascal). Pero para evitar ambigüedades en el pseudocódigo utilizaremos la flecha para la asignación y el símbolo = para indicar igualdad.

A ���� 100 ; significa que a la variable A se le ha asignado el valor 100, ahora A vale 100.

Pseudocódigo. Entrada y Salida de Información

Los datos que vamos a obtener del usuario para procesarlos también deben ser asignados a variables, la operación de lectura, lee un dato y lo asigna a una variable. La instrucción para la lectura de un dato es leer leer numeroEsta instrucción pide al usuario un valor que será asignado a la variable numero, es decir, en numero se almacena el valor ingresado por el usuario.

leer Edad, Peso, Sexo

Pseudocódigo. Entrada y Salida de Información

Cuando queramos mostrar el resultado del algoritmo, un mensaje, un valor, etc, vamos a utilizar el comando escribir o imprimir .

escribir "Hola" ; muestra en la pantalla el mensaje Hola, Hola va entre comillas porque es una cadena.

escribir A; muestra en la pantalla el valor que está almacenado en la variable A.

Pseudocódigo. Resumen

Ya conocemos dos comandos que vamos a utilizar en nuestros pseudocódigos: leer e imprimir.En resumen: Las instrucciones disponibles para escribir un programa dependen del lenguaje de programación utilizado. Existen instrucciones -o acciones- básicas que se pueden implementar de modo general en cualquier algoritmo y que soportan todos los lenguajes de programación.1- Instrucciones de inicio/fin2- Instrucciones de asignación3- Instrucciones de lectura4- Instrucciones de escritura

Pseudocódigo. ResumenTipo de Instrucción PseudocódigoComienzo de proceso inicioFin de proceso finEntrada (Lectura) leerSalida (Escritura) escribirAsignación ����

Instrucciones de control. Instrucciones alternativa simple-doble

Se ejecuta condicionalmente , es decir, si una cierta condición es verdadera se ejecuta un bloque de instrucciones, si es falsa se ejecuta un bloque diferente de instrucciones

si (condición) entoncesinstrucción 1...................instrucción n

si noinstrucción ainstrucción b...................instrucción z

fin si

Instrucción de control. Alternativa múltiple

Cuando necesitemos hacer numerosas comparaciones.

Segun sea <expresión><lista_valores1>: instrucción o instrucciones1<lista_valores2>: instrucción o instrucciones2<lista_valores2>: instrucción o instrucciones3si no:

instrucción o instruccionesfin-segun

Instrucción de control. Alternativa múltiplealgoritmo Dia_de_la_semana

inicioescribir( "Introduzca día de la semana: " )leer( dia )segun_sea ( dia )

1 : escribir( "Lunes" )2 : escribir( "Martes" )3 : escribir( "Miércoles" )4 : escribir( "Jueves" )5 : escribir( "Viernes" )6 : escribir( "Sábado" )7 : escribir( "Domingo" )

sino : escribir( "ERROR: Día incorrecto." )fin_segun_sea

fin

Instrucciones de control repetitivasUna instrucción repetitiva mientras permite ejecutar, repetidamente, (cero o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera.

mientras (condición)instrucción 1instrucción 2.....instrucción n

fin_mientras

Instrucciones de control repetitivas

Estructura RepetirLa diferencia es que la estructura mientras comprueba la condición al inicio y repetir lo hace al final. Permite ejecutar repetidamente (una o más veces) un bloque de instrucciones, mientras que, una determinada condición sea verdadera

hacerintrucción 1instrucción 2instrucción 3......

mientras (condición)instrución X

Diferencias Mientras y hacer mientras

Instrucciones de control repetitivasEstructura repetitiva Para o Desde , se tiene establecido el número

de veces que un conjunto de instrucciones se va a ejecutar (20, 5, 2 veces…)Para contador� Vi hasta Vf [incremento] hacer

Instrucción 1Instrucción 2……Instrucción n

Fin_para

Vi: valor inicial de la variable contadorVf: valor final de la variable contador[incremento]: el número que se incrementa (o decrementa) a la variable

contador en cada iteración del bucle, si se omite es 1.

¿Cuándo usar un bucle u otro?A la hora de elegir un bucle u otro, debemos hacernos la siguiente pregunta:¿Se conoce, de antemano, el número de veces (iteraciones) que tiene que ejecutarse un determina do bloque de instrucciones?Si la respuesta es afirmativa , habitualmente se usa un bucle para. En caso contrario, nos plantearemos la siguiente pregunta:¿El bloque de instrucciones debe ejecutarse al meno s una vez?En este caso, si la respuesta es afirmativa , generalmente haremos uso de un bucle hacer...mientras, y si la respuesta es negativa, usaremos un bucle mientras.

Estructura de un AlgoritmoTres secciones: cabecera, declaraciones y cuerpoalgoritmo Sumar (Cabecera)

variables (Declaraciones)

entero a, b, c

inicio (Cuerpo)

escribir( "Introduzca el primer número (entero): " )leer( a )escribir( "Introduzca el segundo número (entero): " )leer( b )c ← a + bescribir( "La suma es: ", c )

fin