SlideShare uma empresa Scribd logo
1 de 73
FACULTAD DE INGENIERIA
Escuela Académica Profesional: Ingeniería de Sistemas
CURSO FUNDAMENTOS DE PROGRAMACIÓN
Conceptos Fundamentales de Programación
y
Representación de Algoritmos
Ing. Percy Bravo Baldeón
Fundamentos de Programación
¿Qué es un algoritmo?
¿Qué es un programa?
¿Qué es un lenguaje de
programación?
Fundamentos de Programación
¿Qué es un Algoritmo?
Fundamentos de Programación
¿Características de un Algoritmo?
Fundamentos de Programación
Fundamentos de Programación
Algoritmo vs Lenguaje de Programación
Fundamentos de Programación
Pasos para resolver
problemas (Polya).
Ciclo de programación.
Etapas para Solucionar Problemas
Fundamentos de Programación
Fundamentos de Programación
Etapas de la fase de análisis de problemas
• Precisar los resultados
esperados
– El estudiante debe
preguntarse:
• ¿Qué información me
solicitan?
• ¿Qué formato debe tener esta
información?
• Determinar las restricciones
– El estudiante debe preguntarse:
• ¿Qué condiciones me plantea el problema?
• ¿Qué está prohibido hacer y/o utilizar?
• ¿Qué está permitido hacer y/o utilizar?
• ¿Cuáles datos puedo considerar fijos (constantes) para
simplificar el problema?
• ¿Cuáles datos son variables?
• ¿Cuáles datos debo calcular?
• ¿Tengo los conocimientos para solucionar el problema
planteado?
• Establecer procesos
(operaciones)
– El estudiante debe preguntarse:
• ¿Qué procesos necesito?
• ¿Qué fórmulas debo emplear?
• ¿Cómo afectan las
condiciones a los procesos?
• ¿Qué debo hacer?
• ¿Cuál es el orden de lo que
debo hacer?
• Identificar datos disponibles
– El estudiante debe preguntarse:
• ¿Qué información es importante?
• ¿Qué información no es relevante?
• ¿Cuáles son los datos de entrada?
(conocidos)
• ¿Cuál es la incógnita?
• ¿Qué información me falta para
resolver el problema? (datos
desconocidos)
• ¿Puedo agrupar los datos en
categorías?
Fundamentos de Programación
Conceptos básicos para
diseñar algoritmos:
• ¿Qué es un algoritmo?
• Formas comunes de representarlos
(seudocódigo y diagrama de flujo)
• Conceptos básicos de programación
(variable, constante, identificador, pa
labra
reservada, contador, acumulador, tip
os de datos, operadores y
expresiones).
Fundamentos de Programación
Diseñar y traducir algoritmos:
• Fundamentos de programación en el área
de procedimientos.
• Establecer interactividad con el “usuario”
del procedimiento
• Abordar las tres estructuras de control
básicas:
• secuencial,
• iterativa (repetición) y
• condicional (decisión, selección).
Fundamentos de Programación
Depurar procedimientos:
• Dificultad para elaborar
procedimientos perfectos en los
primeros intentos.
• La dificultad aumenta a medida
que los problemas se vuelven más
complejos.
• Los resultados se deben probar y
validar (revisión).
• El proceso promueve valores como
responsabilidad, fortaleza, laborios
idad, paciencia y perseverancia.
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Supongamos que un profesor quiere crear un programa
para gestionar las notas de sus alumnos. Quiere que
dicho programa le permita realizar tareas tales como
asignar notas, cambiar notas, ver las notas según distintas
calificaciones, etc. A continuación tienes un esquema que
representa una de las posibles divisiones del problema en
módulos.
Ejemplo:
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
HERRAMIENTAS PARA EL DISEÑO DE ALGORITMOS
Tanto en la fase de análisis del problema como durante
el diseño del algoritmo, se plantea la necesidad de
representar claramente el flujo de operaciones que se
han de realizar para su resolución y el orden en que
estas operaciones deber ser ejecutadas.
Una vez que el algoritmo esté diseñado se debe
proceder a representarlo mediante algún método de
programación, siendo los más usuales: diagramas de
flujo, pseudocódigo o diagramas N-S.
Fundamentos de Programación
Diagramas de Flujo:
Cada operación se
representa mediante
un símbolo
normalizado el
Instituto
Norteamericano de
Normalización (ANSI -
American National
Standars Institute). Las
líneas de flujo indican
el orden de ejecución.
Los diagramas de flujo suelen ser usados solo para representar
algoritmos pequeños, ya que abarcan mucho espacio.
Fundamentos de Programación
Fundamentos de Programación
Fundamentos de Programación
Describen un algoritmo de forma similar a un lenguaje de
programación pero sin su rigidez, de forma más parecida al
lenguaje natural. Presentan la ventaja de ser más compactos
que los diagramas de flujo, más fáciles de escribir para las
instrucciones complejas y más fáciles de transferir a un
lenguaje de programación. El pseudocódigo no está regido
por ningún estándar.
•Algunas palabras usadas son LEER/IMPRIMIR para
representar las acciones de lectura de datos y salida de datos.
•Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en
centímetros, que se introduce por el teclado.
•Inicio
•1- IMPRIMIR 'Introduce la altura en centímetros: '
•2- LEER: altura
•3- CALCULAR pulgadas=altura* 2:54
•4- CALCULAR pies=pulgadas * 12
•5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas
•6- IMPRIMIR 'La altura en pies es : ', pies
•Fin
Pseudocódigos:
Fundamentos de Programación
DIAGRAMAS Nassi-Shneiderman
Fundamentos de Programación
Tipos de Datos, Variables, Constantes,
Expresiones, operándos y operadores
aritméticos y lógicos.
Fundamentos de Programación
La definición de la clase
• En Java, todo son clases
• Así que cada fichero define una clase
– public class MiClase
• La clase tiene atributos y métodos
• El método main es especial
– public static void main(String[] args) {...}
– Es el punto de arranque de una clase
Fundamentos de Programación
Variables
• Almacenan el estado de los objetos
• Pueden definirse en cualquier parte del
código, antes de su uso
• Deben empezar con letra, guión bajo (_) o
dólar ($)
• Sensible a mayúsculas/minúsculas
Fundamentos de Programación
Variables
• Dí que variables son válidas
int
anInt
i
i1
1
thing1
1thing
ONE-HUNDRED
ONE_HUNDRED
something2do
Fundamentos de Programación
Variables
• Las variables tienen un tipo que define el
rango de valores y las operaciones que
pueden hacerse
– Java es fuertemente tipado
• Tipos primitivos
• Tipos referencia
Fundamentos de Programación
Tipos de datos primitivos
• Enteros (se inicializan a 0)
– Byte: un byte con signo ((byte)12)
– Short: dos bytes con signo ((short)1231)
– Int: cuatros bytes con signo (1238921)
– Long: ocho bytes con signo (728478283L)
• Reales (se inicializan a 0.0)
– Float: punto flotante 32 bits (1.2342F)
– Double: punto flotante 64 bits (123.131)
Fundamentos de Programación
Tipos de datos primitivos
• Booleanos (se inicializa a false)
– true / false
• Carácter (se inicializa al carácter nulo)
– 'S', 'a'
• El tamaño de datos está definido y es
independiente de la plataforma
Fundamentos de Programación
Tipos de datos referencia
• Objetos
– Instancias de clases
• Arrays
– Colección de elementos del mismo tipo,
sean básicos o complejos
• Se inicializan a null
Fundamentos de Programación
Inicialización
• Las variables pueden inicializarse en la
definición
int a = 2;
char b = 'a';
double c = 123.13123;
Bicicleta d = new Bicicleta();
Fundamentos de Programación
Constantes
• Variables que no pueden cambiar de
valor una vez establecido
• Modificador final
final int a;
a = 12;
final double b = 456.4546456;
Fundamentos de Programación
Ámbito
• Ámbito: parte de programa en el que
una variable está definida
• Variable miembro (de una clase)
• Parámetro (de un método)
• Variable local (de un método)
• Excepciones
Fundamentos de Programación
Ámbitos
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Variables
public class Basic {
public static void main(String[] args) {
int sum = 0;
for (int current = 1; current <= 10; current++) {
sum += current;
}
System.out.println("Sum = " + sum);
}
}
¿Cúal es? ¿Qué tipo tienen? Alcance
Fundamentos de Programación
Operadores
• Unarios
op1 operator
operator op1
• Binarios
op1 operator op2
• Ternarios
op1 operator1 op2 operator2 op3
Fundamentos de Programación
Operadores aritméticos
• Binarios
– Suma: op1 + op2
– Resta: op1 – op2
– Multiplicacion: op1 * op2
– División: op1 / op2
– Módulo: op1 % op2
Fundamentos de Programación
Operadores aritméticos
• Operaciones con enteros y reales
• El resultado depende de los operadores
– Algún double -> double
– Algún float -> float
– Algún long -> long
– Si no, int
Fundamentos de Programación
Operadores aritméticos
• Unarios
– Número negativo (-2, -123)
– Convierte byte y short en int (+2, +65)
• Suma / resta unaria
– ++op1
– op1++
– --op1
– op1--
Fundamentos de Programación
Operadores de comparación
• Devuelven booleanos
– Igualdad: op1 == op2
– Desigualdad: op1 != op2
– Mayor que: op1 > op2
– Mayor o igual que: op1 >= op2
– Menor que: op1 < op2
– Menor o igual que: op1 <= op2
Fundamentos de Programación
Operadores de comparación
• Mucho cuidado con la igualdad
• Cuando se comparan variables
referencia, se compara si ambos
objetos son el mismo, no si son iguales
(tienen el mismo estado)
• Error típico
Fundamentos de Programación
Operadores booleanos
• Operan sobre booleanos y devuelven
booleanos
– AND: op1 && op2
– OR: op1 || op2
– NOT: !op1
– XOR: op1 ^ op2
Fundamentos de Programación
Operadores booleanos
• Java sólo evalúa si es necesario
• Si el primer operando de un AND es
false, no evalúa el segundo y devuelve
false
– Lo mismo con OR
• Para obligar a evaluar el segundo
operando, usar & (AND) y | (OR)
Fundamentos de Programación
Operadores de
desplazamiento
• Opera sobre enteros y devuelve enteros
– Desplazar a izquierda: op1 << num
– Desplazar a derecha
op1 >> num (extiende signo)
op1 >>> num (no extiende signo)
Fundamentos de Programación
Operadores lógicos
• Operan sobre bits de los enteros
– AND: op1 & op2
– OR: op1 | op2
– XOR: op1 ^ op2
– Complemento: ~op1
Fundamentos de Programación
Operadores de asignación
• Asigna el valor de una variable a otra
– op1 = op2
• Deben ser compatibles en tipo
– Enteros, reales, carácter
– Misma clase o subclases
• Al asignar variables referencia, no se
hace una copia del objeto
Fundamentos de Programación
Operadores de asignación
• Asignación con operación
op1 = op1 operador op2 (a = a + b)
op1 operador= op2 (a += b)
• +, -, *, /, %, &, |, ^, <<, >>, >>>
Fundamentos de Programación
Otros operadores
• ?: (if-then-else)
if (a == b) then c else d;
a == b ? c : d
• [] - indexación de arrays
• . (punto): acceso a métodos y variables
• (): para especificar los argumentos a
métodos
Fundamentos de Programación
Expresiones
• Una expresión es un conjunto de variables,
operadores e invocaciones a métodos que se
evalúan como un único resultado
– a
– 1 + 2
– 12 + a.getNumHoras() * 2
Fundamentos de Programación
Expresiones
• Las expresiones, además de un valor,
tienen un tipo asociado, que depende
de las subexpresiones dentro de la
expresión
• Una expresión se puede conjuntar con
otras para formar una expresión mayor
mediante el uso de operadores
Fundamentos de Programación
Expresiones
• Las expresiones se pueden emplear en
– Asignaciones
– Invocaciones a métodos
– Operandos
Fundamentos de Programación
Orden de evaluación
• Las expresiones complejas pueden
evaluarse de diferentes formas
a + b – c * 4
¿((a + b) – c) * 4?
¿((a + b) – (c * 4))?
Fundamentos de Programación
Orden de evaluación
• Se pueden emplear paréntesis para
especificar el orden de evaluación
 ((a + b) – c) * 4
• Existen las reglas de precedencia
 * y / más precedencia que + y -
• Pero es mejor despejar la ambigüedad
mediante el uso de paréntesis
 a + b – (c * 4)
Fundamentos de Programación
Asociatividad
• En operadores binarios, ¿cómo se leen
los operadores?
• Asociatividad a la izquierda: suma
 1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4)
• Asociatividad a la derecha
 a = b = c => (a = (b = (c)))
Fundamentos de Programación
Programación en JAVA
Fundamentos de Programación
Objetivos de la tecnología Java
• Proveer un lenguaje estructurado
– Que facilite la programación y evite errores
– Orientado a Objetos
• Provee un ambiente para
– Incrementar la velocidad de desarrollo de
aplicaciones
– Portabilidad del código
Fundamentos de Programación
¿ Que puedo programar con Java ?
• Aplicaciones independientes
(Como cualquier otro lenguaje de propósito general)
• Applets
(Pequeñas aplicaciones que se ejecutan en un documento HTML)
• Aplicaciones para intraredes,
– Cliente/Servidor
– Aplicaciones distribuidas en redes locales
– Internet.
Fundamentos de Programación
Arquitectura
• Java no se compila
– Se convierte a un pseudocódigo
– Un intérprete lo ejecuta en el CPU
66
mi_prog.java
Compilador
mi_prog.class
Intérprete
67
Gramática de Java
Comentarios En Java hay tres tipos de comentarios:
// comentarios para una sola línea
/* comentarios de una o más líneas
*/
/** comentario de documentación, de una o más
líneas
*/
Ejemplo de un programa en java
68
/** Clase para calcular el promedio de dos números enteros
*/
public class Promedio{
/**
*El metodo main es el metodo principal para ejecutar una clase
*/
public static void main(String arg[]){
int i =11, j =20; //definición y asignación variables
double a=(i+j)/2.0;
System.out.println("i es =" + i +"y j es =" + j);
System.out.println("El promedio es " + a);
}//fin método main
}//fin clase
Fundamentos de Programación
Método main
• Es un método especial
• Punto de entrada del programa
• public static void main(String args[])
• args: vector de cadenas de texto que
representa los parámetros pasados al
programa
Fundamentos de Programación
Palabras clave
Las siguientes son las palabras clave que están definidas en Java
y que no se pueden utilizar como indentificadores:
Palabras Reservadas
Además, el lenguaje se reserva unas cuantas palabras más, pero
que hasta ahora no tienen un cometido específico. Son:
Fundamentos de Programación
Por convención:
• Las clases deben comenzar con una letra Mayúscula
• Las variables y métodos deben ir con letra miníscula
• Las constantes en MAYÚSCULA
int contador_principal;
char _lista_de_ficheros;
float $cantidad_en_Ptas;
Ejemplos:
Fundamentos de Programación
Fundamentos de Programación
Gracias.

Mais conteúdo relacionado

Mais procurados

Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
Roberth Camana
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
cortezbfajardo
 
Conceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje deConceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje de
'Felipe Lozada
 
Metodología de la programación
Metodología de la programaciónMetodología de la programación
Metodología de la programación
Ansd
 

Mais procurados (20)

Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWAREAlgoritmos TECNICO EN DESARROLLO DE SOFTWARE
Algoritmos TECNICO EN DESARROLLO DE SOFTWARE
 
ALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWAREALGORITMOS EN EL SOFTWARE
ALGORITMOS EN EL SOFTWARE
 
Algoritmo y pseudocodigo
Algoritmo y pseudocodigoAlgoritmo y pseudocodigo
Algoritmo y pseudocodigo
 
Unidad 1 algoritmos y programas
Unidad 1 algoritmos y programasUnidad 1 algoritmos y programas
Unidad 1 algoritmos y programas
 
Fundamentos de algoritmia
Fundamentos de algoritmiaFundamentos de algoritmia
Fundamentos de algoritmia
 
Algorítmos - Conceptos básicos
Algorítmos - Conceptos básicosAlgorítmos - Conceptos básicos
Algorítmos - Conceptos básicos
 
3 programacion estructurada
3 programacion estructurada3 programacion estructurada
3 programacion estructurada
 
Conceptos basicos algoritmos
Conceptos basicos algoritmosConceptos basicos algoritmos
Conceptos basicos algoritmos
 
Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos Métodos de programación, diagramas y pseudocódigos
Métodos de programación, diagramas y pseudocódigos
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Conceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje deConceptos de algoritmo, programa y lenguaje de
Conceptos de algoritmo, programa y lenguaje de
 
Metodología de la programación
Metodología de la programaciónMetodología de la programación
Metodología de la programación
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0
 
Video Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia AbiertaVideo Primer Bimestre Metodologia Abierta
Video Primer Bimestre Metodologia Abierta
 
Algorimo1
Algorimo1Algorimo1
Algorimo1
 
Evaluacion de algoritmo
Evaluacion de algoritmoEvaluacion de algoritmo
Evaluacion de algoritmo
 
Algoritmosconeptosbasicos 1
Algoritmosconeptosbasicos 1Algoritmosconeptosbasicos 1
Algoritmosconeptosbasicos 1
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Algoritmos y pseudocodigo
Algoritmos y pseudocodigoAlgoritmos y pseudocodigo
Algoritmos y pseudocodigo
 

Destaque (11)

1 conceptos algoritmos
1 conceptos algoritmos1 conceptos algoritmos
1 conceptos algoritmos
 
Algoritmo en powerpoint
Algoritmo en powerpointAlgoritmo en powerpoint
Algoritmo en powerpoint
 
CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2CURSO DE PROGRAMACION BASICA - Cap 2
CURSO DE PROGRAMACION BASICA - Cap 2
 
Presentacion de algoritmos
Presentacion de algoritmosPresentacion de algoritmos
Presentacion de algoritmos
 
CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1CURSO DE PROGRAMACION BASICA - Cap 1
CURSO DE PROGRAMACION BASICA - Cap 1
 
Presentacion algoritmos
Presentacion algoritmosPresentacion algoritmos
Presentacion algoritmos
 
[ADD] Algoritmos Definicion
[ADD] Algoritmos Definicion[ADD] Algoritmos Definicion
[ADD] Algoritmos Definicion
 
diapositivas algoritmos
diapositivas algoritmos diapositivas algoritmos
diapositivas algoritmos
 
algoritmos, pseudocódigos y diagrama de flujo
algoritmos, pseudocódigos y diagrama de flujoalgoritmos, pseudocódigos y diagrama de flujo
algoritmos, pseudocódigos y diagrama de flujo
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Taller División
Taller DivisiónTaller División
Taller División
 

Semelhante a Fp sesion 1 ppt

La prueba del software y los special purpose languages
La prueba del software y los special purpose languagesLa prueba del software y los special purpose languages
La prueba del software y los special purpose languages
Software Guru
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptx
PriceSanchezJose
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
JulianSimonetta
 

Semelhante a Fp sesion 1 ppt (20)

Algoritmos y Programación
Algoritmos y ProgramaciónAlgoritmos y Programación
Algoritmos y Programación
 
Sesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.pptSesión1 Algoritmia Básica.ppt
Sesión1 Algoritmia Básica.ppt
 
La prueba del software y los special purpose languages
La prueba del software y los special purpose languagesLa prueba del software y los special purpose languages
La prueba del software y los special purpose languages
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Clase 01
Clase 01Clase 01
Clase 01
 
AlgoritmoSoluciondeProblema.pdf
AlgoritmoSoluciondeProblema.pdfAlgoritmoSoluciondeProblema.pdf
AlgoritmoSoluciondeProblema.pdf
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Semana 2 Lenguajes de programación.pptx
Semana 2  Lenguajes de programación.pptxSemana 2  Lenguajes de programación.pptx
Semana 2 Lenguajes de programación.pptx
 
Clase 2 Variables Entorno y Pseudocodigo.pptx
Clase 2 Variables Entorno y Pseudocodigo.pptxClase 2 Variables Entorno y Pseudocodigo.pptx
Clase 2 Variables Entorno y Pseudocodigo.pptx
 
clase 1 programacion biomedica.ppt
clase 1 programacion biomedica.pptclase 1 programacion biomedica.ppt
clase 1 programacion biomedica.ppt
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Unidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.pptUnidad 1 Introducción a los Algoritmos.ppt
Unidad 1 Introducción a los Algoritmos.ppt
 
Unidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmosUnidad 2 introducción a los algoritmos
Unidad 2 introducción a los algoritmos
 
Guia examen diagnostico_pseint
Guia examen diagnostico_pseintGuia examen diagnostico_pseint
Guia examen diagnostico_pseint
 
Clase pseint
Clase pseintClase pseint
Clase pseint
 
9 febrero16 3
9 febrero16 39 febrero16 3
9 febrero16 3
 
Introduccion a la Informatica UCP - clases de programacion.pptx
Introduccion a la Informatica UCP - clases de programacion.pptxIntroduccion a la Informatica UCP - clases de programacion.pptx
Introduccion a la Informatica UCP - clases de programacion.pptx
 
Semana 1
Semana 1Semana 1
Semana 1
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
Algoritmos computacionales conceptos básicos
Algoritmos computacionales   conceptos básicosAlgoritmos computacionales   conceptos básicos
Algoritmos computacionales conceptos básicos
 

Fp sesion 1 ppt

  • 1. FACULTAD DE INGENIERIA Escuela Académica Profesional: Ingeniería de Sistemas CURSO FUNDAMENTOS DE PROGRAMACIÓN Conceptos Fundamentales de Programación y Representación de Algoritmos Ing. Percy Bravo Baldeón
  • 2. Fundamentos de Programación ¿Qué es un algoritmo? ¿Qué es un programa? ¿Qué es un lenguaje de programación?
  • 6. Fundamentos de Programación Algoritmo vs Lenguaje de Programación
  • 7. Fundamentos de Programación Pasos para resolver problemas (Polya). Ciclo de programación. Etapas para Solucionar Problemas
  • 9. Fundamentos de Programación Etapas de la fase de análisis de problemas • Precisar los resultados esperados – El estudiante debe preguntarse: • ¿Qué información me solicitan? • ¿Qué formato debe tener esta información? • Determinar las restricciones – El estudiante debe preguntarse: • ¿Qué condiciones me plantea el problema? • ¿Qué está prohibido hacer y/o utilizar? • ¿Qué está permitido hacer y/o utilizar? • ¿Cuáles datos puedo considerar fijos (constantes) para simplificar el problema? • ¿Cuáles datos son variables? • ¿Cuáles datos debo calcular? • ¿Tengo los conocimientos para solucionar el problema planteado? • Establecer procesos (operaciones) – El estudiante debe preguntarse: • ¿Qué procesos necesito? • ¿Qué fórmulas debo emplear? • ¿Cómo afectan las condiciones a los procesos? • ¿Qué debo hacer? • ¿Cuál es el orden de lo que debo hacer? • Identificar datos disponibles – El estudiante debe preguntarse: • ¿Qué información es importante? • ¿Qué información no es relevante? • ¿Cuáles son los datos de entrada? (conocidos) • ¿Cuál es la incógnita? • ¿Qué información me falta para resolver el problema? (datos desconocidos) • ¿Puedo agrupar los datos en categorías?
  • 10. Fundamentos de Programación Conceptos básicos para diseñar algoritmos: • ¿Qué es un algoritmo? • Formas comunes de representarlos (seudocódigo y diagrama de flujo) • Conceptos básicos de programación (variable, constante, identificador, pa labra reservada, contador, acumulador, tip os de datos, operadores y expresiones).
  • 11. Fundamentos de Programación Diseñar y traducir algoritmos: • Fundamentos de programación en el área de procedimientos. • Establecer interactividad con el “usuario” del procedimiento • Abordar las tres estructuras de control básicas: • secuencial, • iterativa (repetición) y • condicional (decisión, selección).
  • 12. Fundamentos de Programación Depurar procedimientos: • Dificultad para elaborar procedimientos perfectos en los primeros intentos. • La dificultad aumenta a medida que los problemas se vuelven más complejos. • Los resultados se deben probar y validar (revisión). • El proceso promueve valores como responsabilidad, fortaleza, laborios idad, paciencia y perseverancia.
  • 17. Fundamentos de Programación Supongamos que un profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le permita realizar tareas tales como asignar notas, cambiar notas, ver las notas según distintas calificaciones, etc. A continuación tienes un esquema que representa una de las posibles divisiones del problema en módulos. Ejemplo:
  • 23. Fundamentos de Programación HERRAMIENTAS PARA EL DISEÑO DE ALGORITMOS Tanto en la fase de análisis del problema como durante el diseño del algoritmo, se plantea la necesidad de representar claramente el flujo de operaciones que se han de realizar para su resolución y el orden en que estas operaciones deber ser ejecutadas. Una vez que el algoritmo esté diseñado se debe proceder a representarlo mediante algún método de programación, siendo los más usuales: diagramas de flujo, pseudocódigo o diagramas N-S.
  • 24. Fundamentos de Programación Diagramas de Flujo: Cada operación se representa mediante un símbolo normalizado el Instituto Norteamericano de Normalización (ANSI - American National Standars Institute). Las líneas de flujo indican el orden de ejecución. Los diagramas de flujo suelen ser usados solo para representar algoritmos pequeños, ya que abarcan mucho espacio.
  • 27. Fundamentos de Programación Describen un algoritmo de forma similar a un lenguaje de programación pero sin su rigidez, de forma más parecida al lenguaje natural. Presentan la ventaja de ser más compactos que los diagramas de flujo, más fáciles de escribir para las instrucciones complejas y más fáciles de transferir a un lenguaje de programación. El pseudocódigo no está regido por ningún estándar. •Algunas palabras usadas son LEER/IMPRIMIR para representar las acciones de lectura de datos y salida de datos. •Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en centímetros, que se introduce por el teclado. •Inicio •1- IMPRIMIR 'Introduce la altura en centímetros: ' •2- LEER: altura •3- CALCULAR pulgadas=altura* 2:54 •4- CALCULAR pies=pulgadas * 12 •5- IMPRIMIR 'La altura en pulgadas es: ', pulgadas •6- IMPRIMIR 'La altura en pies es : ', pies •Fin Pseudocódigos:
  • 29. Fundamentos de Programación Tipos de Datos, Variables, Constantes, Expresiones, operándos y operadores aritméticos y lógicos.
  • 30. Fundamentos de Programación La definición de la clase • En Java, todo son clases • Así que cada fichero define una clase – public class MiClase • La clase tiene atributos y métodos • El método main es especial – public static void main(String[] args) {...} – Es el punto de arranque de una clase
  • 31. Fundamentos de Programación Variables • Almacenan el estado de los objetos • Pueden definirse en cualquier parte del código, antes de su uso • Deben empezar con letra, guión bajo (_) o dólar ($) • Sensible a mayúsculas/minúsculas
  • 32. Fundamentos de Programación Variables • Dí que variables son válidas int anInt i i1 1 thing1 1thing ONE-HUNDRED ONE_HUNDRED something2do
  • 33. Fundamentos de Programación Variables • Las variables tienen un tipo que define el rango de valores y las operaciones que pueden hacerse – Java es fuertemente tipado • Tipos primitivos • Tipos referencia
  • 34. Fundamentos de Programación Tipos de datos primitivos • Enteros (se inicializan a 0) – Byte: un byte con signo ((byte)12) – Short: dos bytes con signo ((short)1231) – Int: cuatros bytes con signo (1238921) – Long: ocho bytes con signo (728478283L) • Reales (se inicializan a 0.0) – Float: punto flotante 32 bits (1.2342F) – Double: punto flotante 64 bits (123.131)
  • 35. Fundamentos de Programación Tipos de datos primitivos • Booleanos (se inicializa a false) – true / false • Carácter (se inicializa al carácter nulo) – 'S', 'a' • El tamaño de datos está definido y es independiente de la plataforma
  • 36. Fundamentos de Programación Tipos de datos referencia • Objetos – Instancias de clases • Arrays – Colección de elementos del mismo tipo, sean básicos o complejos • Se inicializan a null
  • 37. Fundamentos de Programación Inicialización • Las variables pueden inicializarse en la definición int a = 2; char b = 'a'; double c = 123.13123; Bicicleta d = new Bicicleta();
  • 38. Fundamentos de Programación Constantes • Variables que no pueden cambiar de valor una vez establecido • Modificador final final int a; a = 12; final double b = 456.4546456;
  • 39. Fundamentos de Programación Ámbito • Ámbito: parte de programa en el que una variable está definida • Variable miembro (de una clase) • Parámetro (de un método) • Variable local (de un método) • Excepciones
  • 41. Variables public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 42. Variables public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 43. Variables public class Basic { public static void main(String[] args) { int sum = 0; for (int current = 1; current <= 10; current++) { sum += current; } System.out.println("Sum = " + sum); } } ¿Cúal es? ¿Qué tipo tienen? Alcance
  • 44. Fundamentos de Programación Operadores • Unarios op1 operator operator op1 • Binarios op1 operator op2 • Ternarios op1 operator1 op2 operator2 op3
  • 45. Fundamentos de Programación Operadores aritméticos • Binarios – Suma: op1 + op2 – Resta: op1 – op2 – Multiplicacion: op1 * op2 – División: op1 / op2 – Módulo: op1 % op2
  • 46. Fundamentos de Programación Operadores aritméticos • Operaciones con enteros y reales • El resultado depende de los operadores – Algún double -> double – Algún float -> float – Algún long -> long – Si no, int
  • 47. Fundamentos de Programación Operadores aritméticos • Unarios – Número negativo (-2, -123) – Convierte byte y short en int (+2, +65) • Suma / resta unaria – ++op1 – op1++ – --op1 – op1--
  • 48. Fundamentos de Programación Operadores de comparación • Devuelven booleanos – Igualdad: op1 == op2 – Desigualdad: op1 != op2 – Mayor que: op1 > op2 – Mayor o igual que: op1 >= op2 – Menor que: op1 < op2 – Menor o igual que: op1 <= op2
  • 49. Fundamentos de Programación Operadores de comparación • Mucho cuidado con la igualdad • Cuando se comparan variables referencia, se compara si ambos objetos son el mismo, no si son iguales (tienen el mismo estado) • Error típico
  • 50. Fundamentos de Programación Operadores booleanos • Operan sobre booleanos y devuelven booleanos – AND: op1 && op2 – OR: op1 || op2 – NOT: !op1 – XOR: op1 ^ op2
  • 51. Fundamentos de Programación Operadores booleanos • Java sólo evalúa si es necesario • Si el primer operando de un AND es false, no evalúa el segundo y devuelve false – Lo mismo con OR • Para obligar a evaluar el segundo operando, usar & (AND) y | (OR)
  • 52. Fundamentos de Programación Operadores de desplazamiento • Opera sobre enteros y devuelve enteros – Desplazar a izquierda: op1 << num – Desplazar a derecha op1 >> num (extiende signo) op1 >>> num (no extiende signo)
  • 53. Fundamentos de Programación Operadores lógicos • Operan sobre bits de los enteros – AND: op1 & op2 – OR: op1 | op2 – XOR: op1 ^ op2 – Complemento: ~op1
  • 54. Fundamentos de Programación Operadores de asignación • Asigna el valor de una variable a otra – op1 = op2 • Deben ser compatibles en tipo – Enteros, reales, carácter – Misma clase o subclases • Al asignar variables referencia, no se hace una copia del objeto
  • 55. Fundamentos de Programación Operadores de asignación • Asignación con operación op1 = op1 operador op2 (a = a + b) op1 operador= op2 (a += b) • +, -, *, /, %, &, |, ^, <<, >>, >>>
  • 56. Fundamentos de Programación Otros operadores • ?: (if-then-else) if (a == b) then c else d; a == b ? c : d • [] - indexación de arrays • . (punto): acceso a métodos y variables • (): para especificar los argumentos a métodos
  • 57. Fundamentos de Programación Expresiones • Una expresión es un conjunto de variables, operadores e invocaciones a métodos que se evalúan como un único resultado – a – 1 + 2 – 12 + a.getNumHoras() * 2
  • 58. Fundamentos de Programación Expresiones • Las expresiones, además de un valor, tienen un tipo asociado, que depende de las subexpresiones dentro de la expresión • Una expresión se puede conjuntar con otras para formar una expresión mayor mediante el uso de operadores
  • 59. Fundamentos de Programación Expresiones • Las expresiones se pueden emplear en – Asignaciones – Invocaciones a métodos – Operandos
  • 60. Fundamentos de Programación Orden de evaluación • Las expresiones complejas pueden evaluarse de diferentes formas a + b – c * 4 ¿((a + b) – c) * 4? ¿((a + b) – (c * 4))?
  • 61. Fundamentos de Programación Orden de evaluación • Se pueden emplear paréntesis para especificar el orden de evaluación  ((a + b) – c) * 4 • Existen las reglas de precedencia  * y / más precedencia que + y - • Pero es mejor despejar la ambigüedad mediante el uso de paréntesis  a + b – (c * 4)
  • 62. Fundamentos de Programación Asociatividad • En operadores binarios, ¿cómo se leen los operadores? • Asociatividad a la izquierda: suma  1 + 2 + 3 + 4 => (((1 + 2) + 3) + 4) • Asociatividad a la derecha  a = b = c => (a = (b = (c)))
  • 64. Fundamentos de Programación Objetivos de la tecnología Java • Proveer un lenguaje estructurado – Que facilite la programación y evite errores – Orientado a Objetos • Provee un ambiente para – Incrementar la velocidad de desarrollo de aplicaciones – Portabilidad del código
  • 65. Fundamentos de Programación ¿ Que puedo programar con Java ? • Aplicaciones independientes (Como cualquier otro lenguaje de propósito general) • Applets (Pequeñas aplicaciones que se ejecutan en un documento HTML) • Aplicaciones para intraredes, – Cliente/Servidor – Aplicaciones distribuidas en redes locales – Internet.
  • 66. Fundamentos de Programación Arquitectura • Java no se compila – Se convierte a un pseudocódigo – Un intérprete lo ejecuta en el CPU 66 mi_prog.java Compilador mi_prog.class Intérprete
  • 67. 67 Gramática de Java Comentarios En Java hay tres tipos de comentarios: // comentarios para una sola línea /* comentarios de una o más líneas */ /** comentario de documentación, de una o más líneas */
  • 68. Ejemplo de un programa en java 68 /** Clase para calcular el promedio de dos números enteros */ public class Promedio{ /** *El metodo main es el metodo principal para ejecutar una clase */ public static void main(String arg[]){ int i =11, j =20; //definición y asignación variables double a=(i+j)/2.0; System.out.println("i es =" + i +"y j es =" + j); System.out.println("El promedio es " + a); }//fin método main }//fin clase
  • 69. Fundamentos de Programación Método main • Es un método especial • Punto de entrada del programa • public static void main(String args[]) • args: vector de cadenas de texto que representa los parámetros pasados al programa
  • 70. Fundamentos de Programación Palabras clave Las siguientes son las palabras clave que están definidas en Java y que no se pueden utilizar como indentificadores: Palabras Reservadas Además, el lenguaje se reserva unas cuantas palabras más, pero que hasta ahora no tienen un cometido específico. Son:
  • 71. Fundamentos de Programación Por convención: • Las clases deben comenzar con una letra Mayúscula • Las variables y métodos deben ir con letra miníscula • Las constantes en MAYÚSCULA int contador_principal; char _lista_de_ficheros; float $cantidad_en_Ptas; Ejemplos: