Fundamentos de
 Programación

 Alex Belleza Porras

 a_leo2005@hotmail.com.pe
 abellezap@ucvlima.edu.pe
OBJETIVOS
 Conocer conceptos previos
 Aprender   las    diferentes técnicas para
  solucionar      los problemas mediante
  algoritmos, para luego tener la capacidad de
  plasmarlos mediante el uso de algún
  lenguaje de programación.
 Conocer el entorno de Eclipse.
¿Qué es la computadora?
Es una maquina electrónica digital capaz de
procesar datos a partir de un grupo de
instrucciones denominado programa, la finalidad es
entregar una información resultante.
¿Cuáles son las partes de una
computadora?
Partes del hardware
1. Unidad de entrada. Que es la sección de
  recepción de la computadora: obtiene
  información    (datos   y programas        de
  computadora) y lo coloca a disposición de las
  demás unidades para que sea procesada. La
  información se introduce por medio del
  teclado o del Mouse (ratón). Otros
  dispositivos pueden ser los escáneres, los
  lápices ópticos, las pantallas touch screen,
  cámaras, etc.


Partes del hardware
2. Unidad de salida. La computadora muestra las
  respuestas a través de esta unidad, estas
  respuestas son el resultado del procesamiento
  que realiza la computadora con los datos que
  hemos introducido. Por ejemplo mediante un
  dispositivo de entrada como el teclado,
  podemos escribir palabras la cuales las
  podremos observar por un dispositivo de salida
  como el monitor o la pantalla.
 Otros dispositivos de salida son también la
  impresora, los parlantes, tarjetas de video.
Partes del Hardware
3. Unidad de memoria. También se la conoce
  como memoria RAM, es el almacén primario
  de la computadora por lo que es
  relativamente de baja capacidad. Esta
  memoria es la más importante de la
  computadora, porque guarda información
  necesaria para que la computadora pueda
  arrancar y funcionar, en otras palabras
  guarda información de todos los programas
  que se ejecutan en una computadora
  incluyendo al Sistema Operativo.
Partes del Hardware
4. Unidad aritmética y lógica (ALU). Esta es
  la parte de la computadora en donde se
  realizan los cálculos. sumas o restas. Aquí
  están también los mecanismos de decisión
  que permiten a la computadora, por ejemplo,
  comparar dos elementos de la unidad de
  memoria para determinar si son iguales o no.
Partes del Hardware
5. Unidad central de procesamiento (CPU). Es
  el cerebro de la computadora, pues es el
  coordinador de la máquina y la parte encargada
  de supervisar el funcionamiento de las otras
  secciones. La CPU le dice a la unidad de
  entrada cuándo debe leerse información para
  introducirla en la unidad de memoria, le dice a la
  ALU cuando la información de la unidad de
  memoria debe utilizarse en los cálculos y le dice
  la unidad de salida cuando debe enviar la
  información que está es la unidad de memoria a
  ciertos dispositivos de salida.
Partes del Hardware
6. Unidad de almacenamiento secundario.
  Esta es el almacén de largo plazo y de alta
  capacidad    de    la   computadora.   Los
  programas y datos que nos están siendo
  utilizados   por    las   otras   unidades
  normalmente se colocan en dispositivos de
  almacenamiento secundario hasta que
  necesiten, posiblemente horas, días, meses
  o incluso años después. El acceso es más
  lento comparado con el de la memoria
  primaria o memoria RAM.
Partes del Software
Programa
 Un programa es un conjunto de instrucciones
  lógicas que le dicen a la computadora que
  debe hacer, además un programa debe
  satisfacer las necesidades de los usuarios
  utilizando   eficientemente los    recursos
  disponibles.
Partes del Software
 Los programas que escribiremos más adelante
  serán utilizando un lenguaje de programación
  muy popular como lo es JAVA
Código Fuente
 Le daremos el nombre de código fuente a los
  programas que escribamos en un determinado
  lenguaje de programación, que simplemente
  estará compuesto por instrucciones escritas por
  un programador. El código fuente no constituye
  software propiamente dicho pero es una
  instancia mediante la cual se llega al Software.
Partes del Software
Sistema Operativo
 Es el programa más importante que se
  ejecuta en una computadora. Cualquier
  computadora de propósito general debe
  operar con un sistema operativo para
  lograr ejecutar otros programas. El
  sistema operativo ejecuta las tareas
  básicas, como de reconocer entradas
  desde el teclado, enviar mensajes a
  pantalla, manteniendo rastro de los
  archivos y directorios en el disco, y
  controlar los dispositivos periféricos como
  las impresoras.
Entradas                           Salidas
                    Computadora

Datos de entradas                 Datos de salida,
e instrucciones                   información
Tipos de Lenguajes



     LENGUAJES DE MAQUINA

     LENGUAJE DE ALTO NIVEL.
LENGUAJE DE MAQUINA:

Son aquellos que están
                                        0000110
escritos en lenguajes            HOLA   0100100
                                        1000101
directamente inteligibles por           0011001
la maquina (computadora).
Sus instrucciones son
cadenas binarias (cadenas o
series de caracteres dígitos 0
y 1) que especifican una
operación.
LENGUAJE DE ALTO NIVEL:

Son los mas utilizados por los
programadores. Es independiente
de la maquina, es decir, no
dependen del diseño del Hw o de la
computadora.
Son portables o transportables. Lo
que significa que pueden ser
ejecutados con poca o ninguna
modificación en diferentes tipos de
computadora.
Instrucciones tales como: READ, WRITE, PRINT,
OPEN,ETC.
¿Qué es un Dato?
Es un conjunto de símbolos utilizados para
expresar: un valor numérico, un hecho, un
objeto o una idea, para ser objeto de
tratamiento.
¿Qué es información?
•Es la transformación de los elementos
procesados.
•Los datos de entrada se convierten en
información significativa.
Organización Lógica de la
Computadora - SOFTWARE
CLASIFICACIONES DEL SW

1.   Sistemas Operativos
2.   Lenguajes de Programación
3.   SW de uso general
4.   SW de aplicaciones
Lenguaje de Programación
Es una técnica estándar de comunicación que
permite expresar las instrucciones que han de ser
ejecutadas en una computadora.

Consiste en un conjunto de reglas sintácticas y
semánticas que definen un programa informático
Programa
Es un conjunto de instrucciones sencillas escritas
en un lenguaje de programación, que al recogidas
por un interprete son traducidas para poder ser
ejecutadas.

Conjunto de instrucciones que el computador debe
ejecutar para solucionar un problema determinado
Compilador
•Un compilador es un programa que lee el
programa escrito en un lenguaje fuente y lo traduce
a otro programa equivalente llamado lenguaje
objeto.
•Es un traductor que convierte un texto escrito en
un lenguaje fuente de alto nivel en un programa
objeto en código maquina
    Lenguaje de                         Programa en
     Programa      Compilador            Lenguaje
      Fuente                               Objeto


                  Error y diagnostico
Algoritmo
•Método para resolver un problema, mediante una
serie de pasos precisos.
•Existe diferentes formas de dar solucion a un
mismo problema.
Características de un algoritmo
•Preciso: Indica un orden de realización de cada
paso a realizar.
•Definido: Si se sigue un algoritmo mas de una vez
se obtiene el mismo resultado.
•Finito: Todo algoritmo tiene un inicio y un fin, es
decir debe tener un numero finito de pasos.
Pasos a seguir en la construcción de
un algoritmo
La definición de un algoritmo debe describir tres
partes:
   •Entrada
   •Proceso
   •Salida
Fases para la Resolución de
Problemas
 Análisis
 Diseño
 Implementación
                                Al ejecutar un programa
     Codificación              se pueden producir tres
                                tipos de errores:
     Compilación y ejecución   • Errores de Compilación
     Verificación              • Errores de Ejecución
                                • Errores Lógicos
     Depuración
     Documentación
Herramientas de programación
 Diagramas de flujo
 Pseudocódigos
 Diagrama NASSI-SCHNEIDERMAN(N-S).
Diagramas de Flujo
Pseudocódigo




Es un lenguaje de especificación de algoritmos. El uso de tal lenguaje hace el
       paso de codificación final (esto es, la traducción a un lenguaje de
                      programación) relativamente fácil.
   El pseudocódigo nació como un lenguaje similar al inglés y era un medio
     representar básicamente las estructuras de control de programación
  estructurada. Se considera un primer borrador, dado que el pseudocódigo
  tiene que traducirse posteriormente a un lenguaje de programación. Cabe
 señalar que el pseudocódigo no puede ser ejecutado por una computadora.
El diagrama N-S de Nassi-
                                                                   Las palabras
     Schneiderman                                                reservadas más
                                                                  utilizadas son:

                                                                      Inicio
                                                                        Fin
                                                                       Leer
                                                                     Escribir
                                                                    Mientras
                                                                     Repita
El diagrama N-S o también conocido como diagrama de Chapín
es una técnica de especificación de algoritmos que combina la
                                                                     Hasta
descripción textual, propia del pseudocódigo, con la                  Para
representación gráfica del diagrama de flujo.                     Incrementar
El diagrama N-S cuenta con un conjunto limitado de símbolos       Decrementar
para representar los pasos del algoritmo, por ello se apoya en       Hacer
expresiones del lenguaje natural; sin embargo, dado que el          Función
lenguaje natural es muy extenso y se presta para la                  Entero
ambigüedad, solo se utiliza un conjunto de palabras, a las que         Real
se denomina palabras reservadas.
                                                                    Caracter
                                                                    Cadena
                                                                     Lógico
                                                                    Retornar
Simbología utilizada en los
diagramas de flujo
                   Representa el inicio y el final



                   Entrada y Salida



                     Procesos de Cualquier Tipo




                    Decisión




         El diagrama de flujo de datos
Simbología utilizada en los diagramas de flujo

                                            Línea de Flujo




             Decisión Múltiple
                                              Línea




                                             Conector entre dos puntos
                                             del organigrama



                                             Llamada a una subrutina o un
                                             Proceso



             Conector

                                             Pantalla



                                              Impresora



                                              Teclado



            El diagrama de flujo de datos
A


        E
R
    A
Calculando el área de un triangulo
•Lo que voy a obtener es el área del triangulo, a
ello le llamamos salida.
•Lo que necesito conocer para calcular el área del
triangulo es mínimo la base y la altura, a ello le
llamamos entrada.
•Para obtener la salida buscamos(el area) gracias a
los datos de entrada(base y altura)lo podemos
calcular con la formula: A=(b*h)/2,a ello le
llamamos proceso.
Entradas                      Salidas
             PROCESO


 Base(b)      A= (b*h)
     Y           ----------     Área
 Altura(h)          2
Pseudocódigo
•Utiliza un lenguaje de comunicación propio como
el ingles, español entre otros.
•La ventaja del pseudocódigo es que en la
planificación del programa, el programador se
concentra en la lógica sin preocuparse en las
reglas de un lenguaje de programación especifico.
Inicio
         Leer (Base, Altura)
         Área= Base*Altura
               ------------------
                       2
         Escribir Área
Fin
Pseudocódigo Mejorado
Inicio
         var: base,altura : entero
         var: area : real
         Escribir(“Ingresar Base y Altura)
         Leer(base,altura)
         area(base*altura)/2
         Escribir(“La base es ”,area)
Fin
Inicio


  Leer
  B, H


       B*H
 A
        2


Escribir
A


Fin
EJERCICIOS:

     Desarrolle los algoritmos utilizando las 3
     herramientas de diseño.



1.   Un algoritmo que sume dos números.

2.   Un algoritmo que calcule la edad promedio
     de 3 alumnos.
DESARROLLANDO PSEUDOCODIGOS
Para dar solución lógica a las
siguientes situaciones
Intercambia la posición de las ranas verdes con las ranas
café.
Ayuda al granjero a cruzar al lobo, la oveja y los repollos al otro lado. Recuerda:
Los lobos comen ovejas y las ovejas comen repollos.
Bibliografía
DISEÑO DE PROGRAMACION
(Julio Vásquez Paragulla)

Algoritmos

  • 1.
    Fundamentos de Programación Alex Belleza Porras a_leo2005@hotmail.com.pe abellezap@ucvlima.edu.pe
  • 2.
    OBJETIVOS  Conocer conceptosprevios  Aprender las diferentes técnicas para solucionar los problemas mediante algoritmos, para luego tener la capacidad de plasmarlos mediante el uso de algún lenguaje de programación.  Conocer el entorno de Eclipse.
  • 3.
    ¿Qué es lacomputadora? Es una maquina electrónica digital capaz de procesar datos a partir de un grupo de instrucciones denominado programa, la finalidad es entregar una información resultante.
  • 4.
    ¿Cuáles son laspartes de una computadora?
  • 5.
    Partes del hardware 1.Unidad de entrada. Que es la sección de recepción de la computadora: obtiene información (datos y programas de computadora) y lo coloca a disposición de las demás unidades para que sea procesada. La información se introduce por medio del teclado o del Mouse (ratón). Otros dispositivos pueden ser los escáneres, los lápices ópticos, las pantallas touch screen, cámaras, etc. 
  • 6.
    Partes del hardware 2.Unidad de salida. La computadora muestra las respuestas a través de esta unidad, estas respuestas son el resultado del procesamiento que realiza la computadora con los datos que hemos introducido. Por ejemplo mediante un dispositivo de entrada como el teclado, podemos escribir palabras la cuales las podremos observar por un dispositivo de salida como el monitor o la pantalla.  Otros dispositivos de salida son también la impresora, los parlantes, tarjetas de video.
  • 7.
    Partes del Hardware 3.Unidad de memoria. También se la conoce como memoria RAM, es el almacén primario de la computadora por lo que es relativamente de baja capacidad. Esta memoria es la más importante de la computadora, porque guarda información necesaria para que la computadora pueda arrancar y funcionar, en otras palabras guarda información de todos los programas que se ejecutan en una computadora incluyendo al Sistema Operativo.
  • 8.
    Partes del Hardware 4.Unidad aritmética y lógica (ALU). Esta es la parte de la computadora en donde se realizan los cálculos. sumas o restas. Aquí están también los mecanismos de decisión que permiten a la computadora, por ejemplo, comparar dos elementos de la unidad de memoria para determinar si son iguales o no.
  • 9.
    Partes del Hardware 5.Unidad central de procesamiento (CPU). Es el cerebro de la computadora, pues es el coordinador de la máquina y la parte encargada de supervisar el funcionamiento de las otras secciones. La CPU le dice a la unidad de entrada cuándo debe leerse información para introducirla en la unidad de memoria, le dice a la ALU cuando la información de la unidad de memoria debe utilizarse en los cálculos y le dice la unidad de salida cuando debe enviar la información que está es la unidad de memoria a ciertos dispositivos de salida.
  • 10.
    Partes del Hardware 6.Unidad de almacenamiento secundario. Esta es el almacén de largo plazo y de alta capacidad de la computadora. Los programas y datos que nos están siendo utilizados por las otras unidades normalmente se colocan en dispositivos de almacenamiento secundario hasta que necesiten, posiblemente horas, días, meses o incluso años después. El acceso es más lento comparado con el de la memoria primaria o memoria RAM.
  • 11.
    Partes del Software Programa Un programa es un conjunto de instrucciones lógicas que le dicen a la computadora que debe hacer, además un programa debe satisfacer las necesidades de los usuarios utilizando eficientemente los recursos disponibles.
  • 12.
    Partes del Software Los programas que escribiremos más adelante serán utilizando un lenguaje de programación muy popular como lo es JAVA Código Fuente  Le daremos el nombre de código fuente a los programas que escribamos en un determinado lenguaje de programación, que simplemente estará compuesto por instrucciones escritas por un programador. El código fuente no constituye software propiamente dicho pero es una instancia mediante la cual se llega al Software.
  • 13.
    Partes del Software SistemaOperativo  Es el programa más importante que se ejecuta en una computadora. Cualquier computadora de propósito general debe operar con un sistema operativo para lograr ejecutar otros programas. El sistema operativo ejecuta las tareas básicas, como de reconocer entradas desde el teclado, enviar mensajes a pantalla, manteniendo rastro de los archivos y directorios en el disco, y controlar los dispositivos periféricos como las impresoras.
  • 14.
    Entradas Salidas Computadora Datos de entradas Datos de salida, e instrucciones información
  • 15.
    Tipos de Lenguajes LENGUAJES DE MAQUINA LENGUAJE DE ALTO NIVEL.
  • 16.
    LENGUAJE DE MAQUINA: Sonaquellos que están 0000110 escritos en lenguajes HOLA 0100100 1000101 directamente inteligibles por 0011001 la maquina (computadora). Sus instrucciones son cadenas binarias (cadenas o series de caracteres dígitos 0 y 1) que especifican una operación.
  • 17.
    LENGUAJE DE ALTONIVEL: Son los mas utilizados por los programadores. Es independiente de la maquina, es decir, no dependen del diseño del Hw o de la computadora. Son portables o transportables. Lo que significa que pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadora. Instrucciones tales como: READ, WRITE, PRINT, OPEN,ETC.
  • 18.
    ¿Qué es unDato? Es un conjunto de símbolos utilizados para expresar: un valor numérico, un hecho, un objeto o una idea, para ser objeto de tratamiento.
  • 19.
    ¿Qué es información? •Esla transformación de los elementos procesados. •Los datos de entrada se convierten en información significativa.
  • 20.
    Organización Lógica dela Computadora - SOFTWARE CLASIFICACIONES DEL SW 1. Sistemas Operativos 2. Lenguajes de Programación 3. SW de uso general 4. SW de aplicaciones
  • 21.
    Lenguaje de Programación Esuna técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen un programa informático
  • 22.
    Programa Es un conjuntode instrucciones sencillas escritas en un lenguaje de programación, que al recogidas por un interprete son traducidas para poder ser ejecutadas. Conjunto de instrucciones que el computador debe ejecutar para solucionar un problema determinado
  • 23.
    Compilador •Un compilador esun programa que lee el programa escrito en un lenguaje fuente y lo traduce a otro programa equivalente llamado lenguaje objeto. •Es un traductor que convierte un texto escrito en un lenguaje fuente de alto nivel en un programa objeto en código maquina Lenguaje de Programa en Programa Compilador Lenguaje Fuente Objeto Error y diagnostico
  • 24.
    Algoritmo •Método para resolverun problema, mediante una serie de pasos precisos. •Existe diferentes formas de dar solucion a un mismo problema.
  • 25.
    Características de unalgoritmo •Preciso: Indica un orden de realización de cada paso a realizar. •Definido: Si se sigue un algoritmo mas de una vez se obtiene el mismo resultado. •Finito: Todo algoritmo tiene un inicio y un fin, es decir debe tener un numero finito de pasos.
  • 26.
    Pasos a seguiren la construcción de un algoritmo La definición de un algoritmo debe describir tres partes: •Entrada •Proceso •Salida
  • 27.
    Fases para laResolución de Problemas  Análisis  Diseño  Implementación Al ejecutar un programa  Codificación se pueden producir tres tipos de errores:  Compilación y ejecución • Errores de Compilación  Verificación • Errores de Ejecución • Errores Lógicos  Depuración  Documentación
  • 28.
    Herramientas de programación Diagramas de flujo  Pseudocódigos  Diagrama NASSI-SCHNEIDERMAN(N-S).
  • 29.
  • 30.
    Pseudocódigo Es un lenguajede especificación de algoritmos. El uso de tal lenguaje hace el paso de codificación final (esto es, la traducción a un lenguaje de programación) relativamente fácil. El pseudocódigo nació como un lenguaje similar al inglés y era un medio representar básicamente las estructuras de control de programación estructurada. Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse posteriormente a un lenguaje de programación. Cabe señalar que el pseudocódigo no puede ser ejecutado por una computadora.
  • 31.
    El diagrama N-Sde Nassi- Las palabras Schneiderman reservadas más utilizadas son: Inicio Fin Leer Escribir Mientras Repita El diagrama N-S o también conocido como diagrama de Chapín es una técnica de especificación de algoritmos que combina la Hasta descripción textual, propia del pseudocódigo, con la Para representación gráfica del diagrama de flujo. Incrementar El diagrama N-S cuenta con un conjunto limitado de símbolos Decrementar para representar los pasos del algoritmo, por ello se apoya en Hacer expresiones del lenguaje natural; sin embargo, dado que el Función lenguaje natural es muy extenso y se presta para la Entero ambigüedad, solo se utiliza un conjunto de palabras, a las que Real se denomina palabras reservadas. Caracter Cadena Lógico Retornar
  • 32.
    Simbología utilizada enlos diagramas de flujo Representa el inicio y el final Entrada y Salida Procesos de Cualquier Tipo Decisión El diagrama de flujo de datos
  • 33.
    Simbología utilizada enlos diagramas de flujo Línea de Flujo Decisión Múltiple Línea Conector entre dos puntos del organigrama Llamada a una subrutina o un Proceso Conector Pantalla Impresora Teclado El diagrama de flujo de datos
  • 34.
    A E R A
  • 35.
    Calculando el áreade un triangulo •Lo que voy a obtener es el área del triangulo, a ello le llamamos salida. •Lo que necesito conocer para calcular el área del triangulo es mínimo la base y la altura, a ello le llamamos entrada. •Para obtener la salida buscamos(el area) gracias a los datos de entrada(base y altura)lo podemos calcular con la formula: A=(b*h)/2,a ello le llamamos proceso.
  • 36.
    Entradas Salidas PROCESO Base(b) A= (b*h) Y ---------- Área Altura(h) 2
  • 37.
    Pseudocódigo •Utiliza un lenguajede comunicación propio como el ingles, español entre otros. •La ventaja del pseudocódigo es que en la planificación del programa, el programador se concentra en la lógica sin preocuparse en las reglas de un lenguaje de programación especifico.
  • 38.
    Inicio Leer (Base, Altura) Área= Base*Altura ------------------ 2 Escribir Área Fin
  • 39.
    Pseudocódigo Mejorado Inicio var: base,altura : entero var: area : real Escribir(“Ingresar Base y Altura) Leer(base,altura) area(base*altura)/2 Escribir(“La base es ”,area) Fin
  • 40.
    Inicio Leer B, H B*H A 2 Escribir A Fin
  • 41.
    EJERCICIOS: Desarrolle los algoritmos utilizando las 3 herramientas de diseño. 1. Un algoritmo que sume dos números. 2. Un algoritmo que calcule la edad promedio de 3 alumnos.
  • 42.
    DESARROLLANDO PSEUDOCODIGOS Para darsolución lógica a las siguientes situaciones
  • 43.
    Intercambia la posiciónde las ranas verdes con las ranas café.
  • 44.
    Ayuda al granjeroa cruzar al lobo, la oveja y los repollos al otro lado. Recuerda: Los lobos comen ovejas y las ovejas comen repollos.
  • 45.