Conceptos de Programación

Documentos relacionados
Tema 2 Introducción a la Programación en C.

Técnicas de Programación

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Algoritmos y Lenguajes de Programación

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

1. Computadores y programación

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Guía práctica de estudio 05: Diagramas de flujo

Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas

TEMA 3: El proceso de compilación, del código fuente al código máquina

La resolución de un problema

ESTRUCTURAS ALGORITMICAS

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

FUNCIONAMIENTO DEL ORDENADOR

Pruebas de escritorio

INICIACIÓN A LA PROGRAMACIÓN I

Diseño Estructurado de Algoritmos

Objetos de aprendizaje: Computadora

Unidad I: Organización del Computador. Ing. Marglorie Colina

Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Introducción a la Programación.

Actividad de Evaluación Brandon Emmanuelle Cuevas Rangel GPO: 303 Carrera: Informática 3er Semestre Joel Rocha Barocio Cienega de Flores N.L.

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

TEMA 2. CONCEPTOS BÁSICOS DE ALGORÍTMICA

LÓGICA DE PROGRAMACIÓN

Juego Jarras con Agua Guía del Usuario

Definición: Dispositivo mecánico-electrónico que procesa Información (numérica, alfanumérica )

Tema 2 Conceptos básicos de programación. Fundamentos de Informática

Lenguajes de Programacion

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

: Algorítmica y Estructura de Datos I

Estructuras de Control

Estructuras Secuénciales

Tema: Uso del programa DFD

Tema V Generación de Código

Unidad III: Lenguaje de presentación

Introducción a la programación

C1 INTRODUCCIÓN AL LENGUAJE C. Fundamentos de Informática Departamento de Ingeniería de Sistemas y Automática. EII. Universidad de Valladolid

Introducción a la Informática

Diseño Estructurado de Algoritmos

Taller de Resolución de Problemas Computacionales

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

Algoritmos y programas. Algoritmos y Estructuras de Datos I

16 - Programando robots

3. TÉCNICAS DE DISEÑO

CONTENIDO 1 Diagrama de flujo 2 Pseudocodigo 3 Diagrama estructurado (nassi-schneiderman)

Actividad colaborativa Ejercicios de programación Programación básica C++

la solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.

Un. VI. Generador de código intermedio.

Tema: Entorno a C# y Estructuras Secuenciales.

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

Estructuras de control

Programación en java. Estructuras algorítmicas

Lenguajes de programación Última modificación 2008/10

Lenguaje de Programación

[ GUÍA DIDÁCTICA: DESARROLLO DE ALGORITMOS PSEINT] 11 de julio de 2013

LOS NUMEROS IRRACIONALES Y SU REPRESENTACIÓN EN LA RECTA NUMERICA

Metodología para la solución de problemas programables

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:

Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

Java para no Programadores

Principios de Computadoras II

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

TEMA 2: Estructuras de Control: Condicionales

UNIVERSIDAD DE NARIÑO DEPARTAMENTO DE INGENIERIA DE SISTEMAS SEMILLERO DE PROGRAMACION COMPETITIVA UDENAR

Tabla de Símbolos. Programación II Margarita Álvarez

Construyendo Programas más Complejos

Escuela de Ingeniería en Informática Empresarial SYLLABUS

LABORATORIO 3. PROGRAMACIÓN CON EL LENGUAJE JAVA

ÁREA: MATEMÁTICAS UNIDAD : 1 TEMPORALIZACIÓN: OCTUBRE 1ª QUINCENA OBJETIVOS CONTENIDOS CRITERIOS DE EVALUACIÓN

NIVEL: 6º ÁREA: MATEMÁTICAS 1º TRIMESTRE CONCRECIÓN DE LOS OBJETIVOS AL CURSO

Tema 1: Computadores y Programas

Acerca del proceso de creación de un videojuego

Carrera: Participantes Miembros de la academia de Metal- Mecánica

Métodos que devuelven valor Dado el siguiente triángulo rectángulo:

Algoritmos y Diagramas de flujo

guía para LOS PADRES APOYANDO A SU HIJO EN OCTAVO GRADO MATEMÁTICAS

DISEÑO DE UNA METODOLOGÍA DOCENTE

IO - Introducción a los Ordenadores

MATEMÁTICAS 5. º CURSO UNIDAD 1: SISTEMAS DE NUMERACIÓN

Estructuras Administrativas

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6

Misión Sucre P.N.F. de Informática U.C.: Algoritmia y Programación. Elaborado por: Ing. Víctor Valencia

Capítulo 2 : ALGORITMOS

Transcripción:

Conceptos de Programación Facultad de Ciencias de la Computación Juan Carlos Conde R. Introduction to Programming

Contenido 1 Conceptos de Programación 2 Programación por Computadora 3 Lenguajes de Programación 1 / 38

Contenido 1 Conceptos de Programación 2 Programación por Computadora 3 Lenguajes de Programación 2 / 38

¾Cuál es el propósito es una computadora? ¾Qué signica la palabra programación? ¾Qué es un programa de computadora? ¾De qué manera una computadora entiende un programa? ¾Cómo se escribe un programa? 3 / 38

La computadora "Es un objeto que calcula especícamente. Dispositivo electrónico programable que puede almacenar, recuperar y procesar datos." 4 / 38

Programación parte I Mucho de lo que hace todos los días lo hace de manera automática. Por fortuna no es necesario que piense conscientemente que todo paso requerido en un proceso tan simple como dar vuelta a la página: 1. Levantar la mano. 2. Mover la mano a la derecha del libro. 3. Asir la esquina derecha de la página. 4. Mover la mano de derecha a izquierda hasta que la página esté colocada de modo que pueda leer lo que está sobre la otra página. 5. Soltar la página. 5 / 38

Programación parte II Piense en cuántas neuronas debe encender y cuántos músculos deben responder, todo en cierto orden o secuencia, para mover su brazo y su mano. Sin embargo, lo hace de manera inconsciente. 6 / 38

Programación parte III Mucho de lo que hace de manera inconsciente lo tuvo que aprender una vez. Observe cómo un bebé se concentra en poner un pie antes que el otro mientras aprende a caminar. Luego, observe a un grupo de niños de tres años que juegan a la roña. 7 / 38

Programación parte IV En una escala más amplia, las matemáticas nunca se podrían haber desarrollado sin secuencias lógicas de pasos para resolver problemas y demostrar teoremas. La producción en masa nunca habría funcionado sin operaciones que tienen lugar en cierto orden. "La civilización se basa en el orden de las cosas y acciones... Se crea orden, de manera consciente e inconsciente, en un proceso al que se denomina programación" 8 / 38

Computadora + Programación En base a lo anterior podemos distinguir dos cosas: Programa de computadora. Secuencia de instrucciones que realizará una computadora. Programación por computadora. Proceso de planicar una secuencia de pasos para que los desarrolle una computadora. 9 / 38

Pero una computadora NO es inteligente; no es capaz de analizar un problema y proponer una solución. entonces ¾Cómo se escribe un programa? Un humano (el programador) debe analizar el problema, desarrollar una secuencia de instrucciones para resolver el problema y luego comunicarlo a la computadora. 10 / 38

Contenido 1 Conceptos de Programación 2 Programación por Computadora 3 Lenguajes de Programación 11 / 38

Procedimiento Para escribir una secuencia de instrucciones que efectuará una computadora, se debe ir por un proceso bifásico: Fase de resolución del problema 1. Análisis y especicación. Entender (denir) el problema y lo que debe hacer la solución. 2. Solución general (algoritmo). Desarrollar una secuencia lógica de pasos que resuelve el problema. 3. Vericar. Seguir los pasos exactamente para ver si la solución resuelve en realidad el problema. 12 / 38

Procedimiento Fase de implementación 1. Solución concreta (programa). Traducir el algoritmo en un lenguaje de programación. 2. Pruebas. Ver que la computadora siga las instrucciones. Después, comprobar de manera manual los resultados. Si encuentra errores, analice el programa y el algoritmo para determinar la fuente de errores, y luego hacer correcciones. Una vez que se ha escrito el programa, entra a la tercera fase: mantenimiento. 13 / 38

Procedimiento 14 / 38

Algoritmos El programador comienza el proceso de programación al analizar el problema y desarrollar una solución general llamada algoritmo. Algoritmo 1. Def. Procedimiento paso a paso para resolver un problema en una cantidad de tiempo nita. 2. Def. Secuencia nita de pasos debidamente ordenados para resolver un problema Por lo tanto, un programa es simplemente un algoritmo que ha sido escrito para una computadora, pero, ¾para cualquier computadora?. 15 / 38

Ejemplo: Suponga que un programador necesita un algoritmo para determinar el salario semanal de un empleado. El algoritmo reeja lo que se haría a mano: 1. Buscar la tasa de pago del empleado. 2. Determinar la cantidad de horas trabajadas durante la semana. 3. Si el número de horas trabajadas es menor o igual que 40, multiplique el número de horas por la tasa de pago para calcular salarios regulares. 4. Si el número de horas trabajadas es mayor que 40, multiplique 40 por la tasa de pago para calcular salarios regulares y luego multiplique la diferencia entre el número de horas trabajadas y 40 por 1 1 veces la tasa 2 de pago para calcular salarios de horas extras. 5. Sumar los salarios regulares a los de horas extras (si existen) para determinar salarios totales para la semana. 16 / 38

Lenguaje de Programación Cuando el programador está satisfecho con el algoritmo, lo traduce en un lenguaje de programación. Lenguaje de programación Conjunto de reglas, símbolos y palabras especiales usado para implementar un programa de computadora. En este curso se usará uno de los lenguajes de programación más poderosos: C++. 17 / 38

Lenguaje de Programación 18 / 38

Lenguaje de Programación ¾Por qué implementaciones distintas? Un lenguaje de programación permite al programador cierta exibilidad en cómo se traduce un algoritmo. Dada esta exibilidad, las personas adoptan sus propios estilos al escribir programas, del mismo modo que lo hacen al escribir historias cortas o ensayos. En todo el libro se ofrecen consejos prácticos acerca del buen estilo de programación. 19 / 38

Lenguaje de Programación 20 / 38

¾Existen Atajos en la Programación? 21 / 38

Contenido 1 Conceptos de Programación 2 Programación por Computadora 3 Lenguajes de Programación 22 / 38

Bases Lenguaje de máquina Lenguaje conformado por instrucciones en código binario, usado directamente por la computadora. Lenguaje ensamblador Lenguaje de programación de bajo nivel en el que se emplea una ayuda nemotécnica para representar cada una de las instrucciones del lenguaje de máquina para una computadora particular. 23 / 38

Proceso Creativo 24 / 38

Conceptos Ensamblador. Programa que traduce lenguaje ensamblador en código de máquina. Compilador. Programa que traduce lenguaje de alto nivel en código de máquina. Programa fuente. Programa escrito en lenguaje de programación de alto nivel. Programa objeto. Versión del lenguaje de máquina de un programa fuente. 25 / 38

Compilación en Diferentes S.O. 26 / 38

Compilación y Ejecusión 27 / 38

TAREA 1: Leer el documento Orígenes de C++ ubicado en el directorio Web del curso, en la carpeta de /Recursos, y realizar una lista de las ideas principales referentes a la creación de C++. TAREA 2: Investigar la denición de los siguientes conceptos: API IDE SDK Framework Engine 28 / 38

Información básica Compiladores e Interpretes Algunos lenguajes de programación LISP, Prolog y muchas versiones de BASIC, por ejemplo son traducidos por un intérprete en vez de un compilador. Un intérprete traduce y ejecuta cada instrucción del programa fuente, una a la vez. En contraste, un compilador traduce todo el programa fuente en lenguaje de máquina, después de lo cual tiene lugar la ejecución del programa objeto. 29 / 38

Dato Curioso El lenguaje Java emplea tanto un compilador como un intérprete. Primero, se compila un programa Java, no en un lenguaje de máquina de una determinada computadora, sino en un código intermedio llamado bytecode. A continuación, un programa llamado Máquina Virtual de Java (MVJ; JVM, por sus siglas en inglés) toma al programa bytecode y lo interpreta (traduce una instrucción de bytecode en lenguaje de máquina y la ejecuta, traduce la siguiente y la ejecuta, y así sucesivamente). De esta manera, un programa de Java compilado en bytecode es transportable a muchas computadoras diferentes, siempre y cuando cada computadora tenga su propia MVJ que pueda traducir el bytecode en el lenguaje de máquina de la computadora. 30 / 38

Estructuras de Control Los lenguajes de programación requieren el uso de determinadas estructuras de control para expresar los algoritmos como programas. Hay cuatro formas básicas de estructurar sentencias (instrucciones) en la mayoría de los lenguajes de programación: de modo secuencial, condicional, repetitivo y con subprogramas. Cada una de estas formas de estructurar sentencias controla el orden en el cual la computadora ejecuta las sentencias, razón por la que se llaman estructuras de control. 31 / 38

Estructuras de Control Una secuencia es una serie de sentencias que se ejecutan una después de otra. 32 / 38

Estructuras de Control Imagine que conduce un automóvil. Ir por un tramo recto de carretera es como seguir una secuencia de instrucciones. Cuando llega a una bifurcación, debe decidir por dónde ir y luego tomar una vía u otra. Esto es lo que hace la computadora cuando encuentra una estructura de control de selección (a veces llamada bifurcación o decisión) en un programa. Algunas veces se tiene que ir alrededor de una cuadra varias veces a n de hallar un lugar para estacionarse. La computadora hace lo mismo cuando encuentra un ciclo en un programa. 33 / 38

Estructuras de Control La selección, la estructura de control condicional, ejecuta sentencias diferentes dependiendo de determinadas condiciones. 34 / 38

Estructuras de Control La estructura de control repetitiva, el ciclo, repite sentencias mientras se satisfacen ciertas condiciones. 35 / 38

Estructuras de Control Todos los días, por ejemplo, usted sigue un proceso para ir de casa al trabajo. Tiene sentido entonces que alguien le dé instrucciones para llegar a una reunión diciendo: dirígete a la ocina, luego recorre cuatro cuadras hacia el oeste, sin especicar todos los pasos que tuvo que efectuar para llegar a la ocina. Los subprogramas permiten escribir partes de los programas por separado y luego ensamblarlos en una forma nal. Pueden simplicar en gran medida la tarea de escribir programas grandes. 36 / 38

Estructuras de Control El subprograma permite estructurar un programa al descomponerlo en unidades más pequeñas. 37 / 38

La educación en computación no puede hacer a nadie un experto programador así como el estudio de pinceles y pigmentos no puede hacer a alguien un pintor experto. [Eric S. Raymond] Juan Carlos Conde R. juanc.conde@cs.buap.mx 38 / 38