Libro 1: Fundamentos de Programación



Documentos relacionados
UNIDAD I. ALGORITMOS

2. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Expresión, Operador, Operando, Asignación, Prioridad

Algoritmos y Diagramas de flujo

ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS Tipos de datos Expresiones Operadores y operandos Identificadores como localidades de memoria

Análisis de problemas

CAPITULO II. ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS

Etapas para la solución de un problema por medio del computador

descripción del argumento identificador tipo longitud condición restricción

PROGRAMACIÓN ALGORITMOS y DIAGRAMAS

Fundamentos de Programación y Bases de Datos

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

UNIDAD 2: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACiÓN R

SISTEMA DE NUMERACIÓN BINARIO

UNIVERSIDAD INTERAMERICANA DE PUERTO RICO RECINTO METROPOLITANO

Operando1 operador de relación Operando2

Programación Digital I

1. Algoritmo, Pseudocódigo, Diagramas de flujo.

Capítulo 1. Algoritmos, diagramas de flujo y programas.

Definición(2) La base (r) de un sistema de numeración especifica el número de dígitos o cardinal* de dicho conjunto ordenado. Las bases más utilizadas

Unidad de Promoción y Desarrollo Guadiana OBJETIVO GENERAL

Declaración de variables. Sentencias de entrada/salida

TEMA 1. PROGRAMACIÓN DE UN COMPUTADOR

Capacidad : Número de valores diferentes que puede representar un código. Depende del número de dígitos usados.

FUNDAMENTOS DE PROGRAMACIÓN C#

Proposiciones Condicionales

Tema 1: Algoritmos y programas

TEMA 1 FUNDAMENTOS DE PROGRAMACIÓN

LENGUAJES DE PROGRAMACION I. Propósito del curso :

A continuación estudiaremos a qué se refiere el término «programación», qué es un lenguaje de programación y veremos alguna terminología propia de

Conceptos fundamentales de Algoritmos

PRIMITIVAS ALGORITMICAS Y METODOS DE REPRESENTACIÓN DE ALGORITMOS

Módulo 2: Cómo funcionan las computadoras

Este método de diseño de algoritmos en etapas, yendo de los conceptos generales a los de detalle, se conoce como método descendente (top-down).

Introducción. Reglas para dibujar un diagramas de flujo.

Torruco, Rubén Jerónimo Yedra Fecha de elaboración: Mayo de 2010 Fecha de última actualización: Programación. F1101 Algoritmos 1/9

Qué Tipos de Datos se Almacenan en OpenOffice.org Calc?

Unidad Académica de Ingeniería Eléctrica. Programa del curso: Lenguaje de Programación I y Lab.

Manual del Usuario de Microsoft Access Consultas - Página 1. Tema IV: Consultas. IV.1. Creación de Consultas

UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA SUR INGENIERÍA EN TECNOLOGÍA COMPUTACIONAL. ASIGNATURA Programación I. Básica ETAPA DE FORMACIÓN.

Los números naturales

Tema 3 Constantes, Variables y Tipos

Carrera: INM Participantes Representante de las academias de ingeniería industrial de Institutos Tecnológicos.

Capítulo 5 IDENTIFICADORES, VARIABLES Y CONSTANTES. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Introducción a las sentencias de control

PRUEBA DE NIVEL DE ACCES

k k N b Sistemas Númericos Sistemas con Notación Posicional (1) Sistemas con Notación Posicional (2) Sistemas Decimal

GUIA PRACTICA PARA LA APLICACIÓN DE MS EXCEL TECNOLOGIA/ INFORMATICA

Estructuras de control

TEMA 2: Algoritmos y Programas. Fundamentos de Informática (Grados en Ingenierías Industriales)

1. El sistema de los números reales

Informática General 2018 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Modulo 11. Clases y Objetos en Java

ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA DE INFORMÁTICA SÍLABO PLAN DE ESTUDIOS 2008

NORMA INFORMACIÓN Y DOCUMENTACIÓN. FORMATOS PARA EL INTERCAMBIO DE LA INFORMACIÓN. International Standard ISO Campo de aplicación

Lenguajes de Cuarta Generación (4GL)

Prof. María Alejandra Quintero. Informática Año

Tema 1 Sistemas de numeración

Introducción a la programación: Contenido. Introducción

MANUAL DE EXCEL AVANZADO

Estructuras de control. Secuencial, condicional y repetitivas.

EJERCICIOS RESUELTOS DEL TEMA 5

Tema 2: Introducción a los algoritmos

20461 Consultas en Microsoft SQL Server 2014

EJERCICIOS PARTE I: 1. Cómo se llamaba anteriormente a las hojas de cálculo? 2. Qué es una hoja electrónica de cálculo?

CURSOSO. Aritmética: Númerosnaturalesyenteros. Númerosracionalesyfraciones. MATEMÁTICAS. AntonioF.CostaGonzález

3. Tipos primitivos de dato

No hay un acuerdo universal sobre una definición de proceso, pero sí algunas definiciones aceptadas:

MANUAL BÁSICO DEL LENGUAJE SQL

Tipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores

CARTA DESCRIPTIVA (FORMATO MODELO EDUCATIVO UACJ VISIÓN 2020)

Representación de números enteros: el convenio complemento a uno

Universidad Rey Juan Carlos HOJA DE PROBLEMAS TEMA 3: REPRESENTACIÓN DE LA INFORMACIÓN

Matemáticas Financieras

Competencias que se favorecen. Validar procedimientos y resultados. Manejar técnicas eficientemente.

Conceptos básicos de bases de datos

Los números enteros. > significa "mayor que". Ejemplo: 58 > 12 < significa "menor que". Ejemplo: 3 < 12 Cualquier número positivo siempre es mayor

Capítulo 4 Representación interna de los Datos

MATEMÁTICAS 1ero ESO

Represent. Información. Caracteres Alfanuméricos

Y alternativamente se presentarán soluciones de problemas donde se utilicen:

La sintaxis básica para definir una clase es la que a continuación se muestra:

PROBLEMAS TEMA 1: Estructuras de interconexión de un computador

Introducción a la programación

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Evolución del software y su situación actual

REGLAS DE CODD DEL MODELO RELACIONAL

Tema 2. Concepto de Algoritmo

OPERADORES LÓGICOS JAVASCRIPT. EJEMPLOS. RELACIONALES MAYOR, MENOR, IGUAL, DISTINTO. AND, OR, NOT. CORTO- CIRCUITO (CU01117E)

Declaración de variables (integer, single, double, boolean, etc.) en Visual Basic. Dim. Ejemplos. (CU00309A)

COMPUERTAS LÓGICAS SEPA CUALES SON Y COMO SE COMPORTAN LAS DISTINTAS. Principal Documentos Proyectos Productos Links Contacto [[EN CONSTRUCCION ]]

TIPOS DE BUCLES O CICLOS DE REPETICIÓN EN PHP: WHILE, DO WHILE Y FOR. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00822B)

Sus socios en ISO Manual de Calidad

UNIDAD III 3.2 USO DE FUNCIONES MATEMÁTICAS LÓGICAS Y DE BUSQUEDA

Manejo de Entrada-Salida. Arquitectura de Computadoras

MICROSOFT EXCEL QUÉ ES MICROSOFT EXCEL?

Representación de Algoritmos Fundamentalmente, dos tipos de notación: Pseudocódigo Diagramas de flujo.

DISEÑO CURRICULAR ALGORITMOS, ESTRUCTURAS Y PROGRAMACIÓN I

Transcripción:

Fundamentos de Programación Código del Curso: CY300 Versión 4.0 Guía del Estudiante Libro 1: Fundamentos de Programación IBM IT Education Services Worldwide Certified Material

Información Sobre la Publicación Esta publicación ha sido producida usando Microsoft Word 2000 y Microsoft PowerPoint 2000 para Windows. Marcas Registradas IBM es una marca registrada por International Business Machines Corporation. Otras compañías, productos, y nombre de servicios pueden ser marcas registradas o marcas de servicios de otros. Trademarks of International Business Machines Corporation DB2 Lotus Script Informix Net.data Marcas Registradas de otras Compañías Windows, Microsoft Visual Studio Sybase Microsoft Corporation Sybase Inc. Edición Agosto 2007 La información contenida en este documento no ha sido sometida a ninguna prueba formal de IBM y es distribuida básicamente como es" sin ninguna garantía ya sea expresa o implícita. El uso de esta información o la implementación de cualquiera de estas técnicas es responsabilidad del comprador y dependerá de la habilidad de éste para su evaluación e integración en el ambiente operacional del comprador. A pesar de que cada tema ha sido revisado por IBM para su exactitud en una situación específica, no hay garantía de que obtener el mismo resultado o uno similar a éste en otra situación. Los compradores que intenten adaptar estas técnicas a sus propios ambientes lo hacen bajo su propio riesgo. Copyright International Business Machines Corporation, 2007. All rights reserved. Este documento no puede ser reproducido en su totalidad o en parte sin el previo permiso escrito de IBM. Instrucciones Especiales para la Impresión de este Curso: No elimine páginas en blanco que puedan aparecer al final de cada unidad ó entre unidades. Estas páginas fueron insertadas intencionalmente..

Guía del Estudiante Contenido Fundamentos de Programación Descripción del Curso...1 Descripción de Unidades...2 Volumen 1: Conceptos de Programación...5 Unidad 1: Programas de Computadora...7 Objetivos del Aprendizaje 7 1. Introducción 8 2. Sistemas de Procesamiento 9 3. Algoritmos 9 4. Metodología para Diseñar Algoritmos 9 5. Programas de Computadora 10 6. Definiciones Básicas 11 7. Crear un Programa de Computadora 12 8. Funcionamiento del Compilador/Enlazador 13 9. Datos, Tipos de Datos y Funciones Incorporadas 14 10. Expresiones: Tipos y Operadores 17 11. Funciones Incorporadas 22 12. Operación de Asignación 23 13. Recomendaciones 24 Resumen 25 Unidad 1: Examen de Autoevaluación 26 Respuestas de la Unidad 1: Examen de Autoevaluación 28 Unidad 2: Conceptos de Diseño Estructurado...29 Objetivos del Aprendizaje 29 1. Introducción 30 2. Conceptos de Diseño Estructurado 30 3. Diseño Top Down 30 4. Diagramas de Estructura 32 5. Diagramas de Flujo o Flujograma 32 6. Recomendaciones para hacer Diagramas de Flujo 36 7. Ejemplo de un Diagrama de Flujo 36 8. Diagramas N-S o de Nassi-Schederman: 37 9. Pseudocódigo 39 Resumen 41 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM. i

Fundamentos de Programación Guía del Estudiante Unidad 2: Examen de Autoevaluación 42 Respuesta de la Unidad 2: Examen de Autoevaluación 44 Unidad 3: Programación Estructurada...45 Objetivos del Aprendizaje 45 1. Introducción 46 2. Estructuras Secuenciales 46 3. Estructuras Selectivas 47 4. Estructuras Repetitivas o de Ciclo 49 5. Estructuras Anidadas 52 6. Control de Datos de Entrada 54 Resumen 57 Unidad 3: Examen de Autoevaluación 58 Respuestas de la Unidad 3: Examen de Autoevaluación 60 Unidad 4: Funciones y Procedimientos...61 Objetivos del Aprendizaje 61 1. Introducción 62 2. Funciones 63 3. Procedimientos 67 4. Ámbitos: Variables Globales y Locales 69 5. Comunicación entre Subprogramas: Paso de Parámetros 71 6. Recursividad 75 Resumen 78 Unidad 4: Examen de Autoevaluación 79 Respuesta de la Unidad 4: Examen de Autoevaluación 82 Unidad 5: Estructura de Datos: Arreglos...83 Objetivos del Aprendizaje 83 1. Introducción 84 2. Arreglos Unidimensionales: Arreglos o Vectores 84 3. Arreglos Bidimensionales: Matrices m x n 89 4. Arreglos Multidimensionales: Matrices m x n x...z 91 5. Almacenamiento de Arreglos en Memoria 91 Resumen 93 Unidad 5: Examen de Autoevaluación 94 Respuesta de la Unidad 5: Examen de Autoevaluación 96 Unidad 6: Entrada y Salida...97 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM. ii

Guía del Estudiante Fundamentos de Programación Objetivos del Aprendizaje 97 1. Introducción 98 2. Entrada y Salida de un Programa 98 3. Buffers de Entrada y Salida 99 4. Imprimir Datos 100 5. Entrada/Salida de Archivo: Formatos de Registros 103 Resumen 107 Unidad 6: Examen de Autoevaluación 108 Respuesta de la Unidad 6: Examen de Autoevaluación 110 Unidad 7: Ejemplos de Programas...111 Objetivos del Aprendizaje 111 1. Verificar la Secuencias 112 2. Rupturas de Control 112 3. Emparejar Transacciones 113 Resumen 117 Volumen 2: Complementos I...119 Unidad 1: Sentencias Simples...121 1. Conceptos 121 Ejercicios Resueltos 123 Ejercicios por Resolver 129 Unidad 2: Estructuras de Decisión...131 1. Conceptos 131 Ejercicios Resueltos 132 Ejercicios por Resolver 139 Unidad 3: Estructuras de Repetición...141 1. Conceptos 141 Ejercicios Resueltos 143 Ejercicios Propuestos 148 Unidad 4: Sentencias Simples (Pseudocódigo)...149 Ejercicios Resueltos 149 Ejercicios por Resolver 152 Unidad 5: Estructuras de Decisión (Pseudocódigo)...153 Ejercicios Resueltos 153 Ejercicios por Resolver 159 Unidad 6: Estructuras de Repetición (Pseudocódigo)...161 Ejercicios Resueltos 161 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM. iii

Fundamentos de Programación Guía del Estudiante Ejercicios Propuestos 166 Volumen 3: Complementos II...169 Unidad 4: Funciones y Procedimientos...171 Ejercicios Resueltos 171 Ejercicios Propuestos 175 Unidad 5: Estructuras de Datos - Arreglos...179 Ejercicios Resueltos 179 Ejercicios Propuestos 183 Volumen 4: Ejercicios Propuestos...189 Unidad 1: Programas de Computadora...191 Respuestas de la Unidad 1: Ejercicios Propuestos 192 Unidad 2: Conceptos de Diseño Estructurado...193 Respuestas de la Unidad 2: Ejercicios Propuestos 194 Unidad 3: Programación Estructurada....197 Respuesta Unidad 3: Ejercicios Propuestos 198 Unidad 4: Procedimientos y Funciones...203 Respuesta Unidad 4: Ejercicios Propuestos 204 Unidad 5: Estructura de Datos: Arreglos...207 Respuesta Unidad 5: Ejercicios Propuestos 208 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM. iv

Guía del Estudiante Fundamentos de Programación Nombre del Curso Fundamentos de Programación. Duración La duración del curso es de 40 horas. Propósito Descripción del Curso El propósito de este curso es introducir los fundamentos de programación, para ello se estudian los elementos del proceso de desarrollo de aplicaciones que se ejecutan en las computadoras. El curso, cubre los conceptos de programa, estructura de datos, tipos de datos, variables y constantes. También, se discuten algunas técnicas para desarrollar algoritmos, que se implementan en la programación estructurada, así como, los elementos estándar de un programa de aplicación de computadora. Audiencia Cualquier persona que desee obtener un conocimiento básico acerca de los fundamentos de la programación. Pre-requisitos Ninguno. Objetivos del Curso Después de completar este curso, usted estará en la capacidad de: Crear la lógica básica de un programa. Conocer los pasos básicos necesarios para ir desde el diseño de un programa hasta su ejecución. Describir los componentes básicos de la configuración de una computadora. Agenda Cada unidad de este curso es de dos horas académicas de duración. Libro 1: Fundamentos de Programación Descripción del Curso 1 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Fundamentos de Programación Guía del Estudiante Descripción de Unidades Volumen 1: Conceptos de Programación Unidad 1: Programas de Computadora En esta unidad se define el propósito y el contenido de un programa de computación y se aprende una metodología para resolver problemas de procesamiento de datos. Se discuten los elementos de un programa, para ello se estudian los conceptos de variables, variables contadoras, variables acumuladoras, constantes, los operadores aritméticos y operadores lógicos. Se estudian las operaciones incorporadas y se discuten algunos de los errores más comunes que se cometen en la programación. Se presentan también, algunas sugerencias para programar con estilo y disciplina. Unidad 2: Conceptos de Diseño Incorporado Aquí se definen los conceptos utilizados para facilitar el entendimiento de un problema. Se utilizan técnicas Top-Down (de abajo hacia arriba) y se aprende cómo dibujar gráficos que muestran la jerarquía de un problema, y así poder, a partir de estos gráficos, analizar el problema, crear los diagramas de flujo y el pseudocódigo necesario para comenzar a escribir un programa de computación. Se discuten los Diagramas de Estructura, los Diagramas de Flujo, los Diagramas N-S o de Nassi-Schederman, así como los conceptos y elementos del pseudocódigo. Unidad 3: Programación Estructurada Se describen los conceptos relacionados con las estructuras de los bloques de código que conforman un programa de computadora bajo el concepto de Programación Estructurada. Se revisan las estructuras secuenciales, las selectivas o de bifurcación para direccionar el flujo de control. También, se estudian las estructuras de bloques de código para ciclos o repeticiones, en conjunto con las capacidades de anidamiento de bloques de código. Por último, se muestran algunos casos del uso de las estructuras de control y repetición en la entrada de datos. Unidad 4: Funciones y Procedimientos En esta unidad, se estudia el concepto de funciones y procedimientos. Se describe la sintaxis y el uso de los procedimientos y funciones como parte de un programa de computadora. Se analiza el ámbito de las variables, la invocación de funciones y procedimientos desde un programa, así como la comunicación entre subprogramas o pase de parámetros o argumentos. Por último, se revisa el concepto de recursividad, además de cómo se definen y usan las funciones y procedimientos recursivos. Descripción de Unidades Libro 1: Fundamentos de Programación 2 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante Fundamentos de Programación Unidad 5: Estructura de Datos: Arreglos Se estudian las estructuras de almacenamiento continuo y su representación en la memoria del computador. Se revisan los conceptos de arreglos unidimensionales o vectores, matrices de dos dimensiones y matrices multidimensionales. Unidad 6: Entrada y Salida Esta unidad presenta la descripción de los conceptos básicos de entrada y salida en un programa de computadora, tomando en cuenta algunas consideraciones específicas para imprimir una salida. Se describen los conceptos de registros de datos fijos, variable y bloqueado. Se finaliza con la creación del diseño de un programa que permite manejar encabezados de página. Unidad 7: Ejemplos de Programas Esta unidad está diseñada para reforzar los conceptos presentados en las unidades anteriores. Se presentan ejemplos que permiten diseñar programas para manejar la verificación de secuencias y rupturas de control, así como para resolver problemas de emparejamiento de transacciones. Volumen 2: Complementos I Unidad 1: Sentencias Simples En esta unidad se aprecia cómo se realiza la Declaración de Variables, Asignación de Variables, Lectura de Variables desde un dispositivo de entrada de datos hacia la memoria, Escritura de Datos desde la memoria hacia un dispositivo de salida, todo esto con su respectiva notación de Diagramas de Flujo o Flujogramas. También se presentan una serie de Ejercicios Resueltos aplicando la técnica de Diagrama de Flujo o Flujograma. Unidad 2: Estructuras de Decisión Aquí se visualiza la aplicación de los tres tipos de Estructuras de Decisión: simple, dobles y múltiples. Denotando el concepto de cada una de ellas y aplicando estas bajo la técnica de Flujograma o Diagrama de Flujo. Unidad 3: Estructuras de Repetición Se describen los conceptos relacionados con las estructuras de Repetición: Ciclo Mientras.. Hacer (while.. do), Ciclo Repetir.. Hasta (Repeat..until), Ciclo Desde (for); aplicando cada uno de ellos bajo la técnica de Flujograma o Diagrama de Flujo. Unidad 4: Sentencias Simples (Pseudocódigo) En esta unidad se aprecia cómo se realiza la Declaración de Variables, Asignación de Variables, Lectura de Variables, así como la estructura básica de un algoritmo Libro 1: Fundamentos de Programación Descripción de Unidades 3 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Fundamentos de Programación Guía del Estudiante representada bajo la técnica de Pseudocódigo. También se presentan una serie de Ejercicios Resueltos aplicando la técnica de Pseudocódigo. Unidad 5: Estructuras de Decisión (Pseudocódigo) Aquí se visualiza la aplicación de los tres tipos de Estructuras de Decisión: simple, dobles y múltiples. Denotando el concepto de cada una de ellas y aplicando estas bajo la técnica de Pseudocódigo. Unidad 6: Estructuras de Repetición (Pseudocódigo) Se describen los conceptos relacionados con las estructuras de Repetición: Ciclo Mientras.. Hacer (while.. do), Ciclo Repetir.. Hasta (Repeat..until), Ciclo Desde (for); aplicando cada uno de ellos bajo la técnica de Pseudocódigo. Volumen 3: Complementos II Unidad 1: Funciones y Procedimientos Aquí se presentan una serie de ejercicios resueltos aplicando la técnica de Pseudocódigo, empleando los conceptos de Funciones y Procedimientos que permite visualizar su aplicación. Unidad 2: Estructuras de Datos - Arreglos En esta unidad se aprecia la representación de Arreglos unidimensionales y bidimensionales por medio de ejercicios resueltos, utilizando la técnica de Pseudocódigo. Volumen 4: Ejercicios Propuestos Desde la Unidad 1 hasta la Unidad 5, se presenta una variedad de ejercicios correspondientes a los conceptos manejados por cada unidad, que han sido resueltos para mayor comprensión. En la mayoría de los casos se aplica la técnica de Pseudocódigo para el diseño de algoritmos, en otro caso una descripción comprensible de la solución del problema como se puede visualizar en la resolución de los ejercicios para la Unidad 1. Descripción de Unidades Libro 1: Fundamentos de Programación 4 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante Fundamentos de Programación Volumen 1: Conceptos de Programación Libro 1: Fundamentos de Programación Descripción de Unidades 5 Los materiales del curso no pueden ser reproducidos total o parcialmente sin el previo permiso escrito de IBM.

Guía del Estudiante Fundamentos de Programación Unidad 1: Programas de Computadora Objetivos del Aprendizaje Al finalizar esta unidad, usted será capaz de: Definir el propósito y el contenido de un programa de computadora. Establecer una metodología para resolver problemas de procesamiento de datos. Definir el concepto de dato, los tipos de datos y las funciones incorporadas a los lenguajes de programación. Enumerar las recomendaciones más comunes necesarias para programar con estilo. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 7

Fundamentos de Programación Guía del Estudiante 1. Introducción En la actualidad es común contar con la ayuda de las computadoras para la solución de problemas. Para casi cualquier problema típico en las áreas de negocios, servicios y tecnologías, entre otras, la solución puede ser modelada con programas de computadora, esta solución es generalmente más confiable y de menor costo. Los programas de computadora permiten dar solución a problemas de cualquier nivel, estas soluciones típicamente llamadas aplicaciones, las realiza un equipo multidisciplinario donde se encuentran los programadores, diseñadores y analistas de sistemas, entre otros especialistas. Generalmente, los programadores utilizan algún lenguaje de programación para desarrollar las aplicaciones requeridas por los clientes. Estos lenguajes de programación sirven como puente de enlace entre el análisis realizado por el equipo de desarrollo y la capacidad de cálculo que ofrece la computadora. En otras palabras, por medio del lenguaje de programación, el programador le indicará al computador la secuencia de instrucciones que se deben ejecutar para obtener la solución esperada por los clientes. Todo esto hace pensar que de alguna manera, un programador debe tener cierta lógica que le ayude a tratar con el lenguaje de programación, esto es, debe saber exactamente las capacidades brindadas por el lenguaje de programación y más aún, debe tener nociones claras de los fundamentos generales de la programación. Como cualquier ciencia, la programación requiere de una serie de conocimientos básicos comunes a cualquier lenguaje de programación, que le permitan al programador indicarle inequívocamente al computador las tareas que éste debe realizar. Dichos conocimientos básicos son conocidos como Fundamentos de Programación, los cuales no son más que un conjunto de reglas, técnicas y conceptos que ayudan a definir lo que se puede hacer con un lenguaje de programación y así dar los primeros pasos para desarrollar aplicaciones para la solución de problemas computacionales. Este curso introduce al estudiante a los fundamentos de la programación de manera breve y concisa. Se discuten diversos temas, tales como: qué son los programas de computadora?, el diseño estructurado, la lógica de programación, diagramas de flujos, pseudocódigo, entrada y salida, entre otros. Para desarrollar programas de computadora existe una gran variedad de lenguajes de programación, por esta razón, fue necesario definir una notación genérica que permitiera, en primer lugar, representar y describir el problema de forma clara y sencilla. Esta representación se obtiene con el uso de algoritmos, los cuales permiten definir una secuencia finita de pasos claros y sencillos, para obtener una solución del problema. El proceso para desarrollar programas de computadora requiere entender y conceptuar el problema, para luego definir los aspectos importantes acerca de la entrada, salida y almacenamiento. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 8

Guía del Estudiante Fundamentos de Programación En esta unidad se discuten los conceptos básicos más importantes de la programación y la metodología para desarrollar una solución computacional de un problema. 2. Sistemas de Procesamiento Un ordenador es una máquina de procesamiento de información. Es una máquina, porque tiene cables, circuitos y demás elementos mecánicos. Es además de procesamiento, porque es capaz de transformar o procesar datos y de información porque maneja conjuntos ordenados de datos. Para procesar la información se requiere del hardware como microprocesador, memoria RAM, entre otros y del software que sirve para manejar el hardware tal como programas, sistema operativo, etc. 3. Algoritmos El concepto de algoritmo fue desarrollado por el matemático persa Abu Jafar Mohammed Ibn Musa Al Khwarizmi. Se puede decir que un algoritmo es una fórmula para resolver un problema. Es un conjunto de acciones o secuencia de operaciones que ejecutadas en un determinado orden, resuelven el problema planteado. Un algoritmo debe tener las siguientes características: Estar bien definido. Ser preciso. Ser finito. Básicamente, un algoritmo es un proceso metódico que define una serie finita de pasos sencillos y sin ambigüedades para la solución de un problema. La programación consiste en adaptar el algoritmo al ordenador. El algoritmo es independiente de la implementación en algún lenguaje de programación. 4. Metodología para Diseñar Algoritmos Un algoritmo es una fórmula para obtener la solución de un problema, ésta fórmula puede ser planteada de diferentes formas y cada una de estas formas puede efectivamente resolver el problema planteado. Por esa razón, el diseño de un algoritmo es un proceso creativo, ya que no existe un conjunto de reglas que indiquen expresamente cómo escribir un algoritmo en forma correcta, por el contrario, si existen muchas maneras de resolver un problema, entonces existen muchos algoritmos que implementen la solución. Sin embargo, hay una serie de pasos que permiten resolver un problema de la forma más conveniente, estos son: Análisis del problema. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 9

Fundamentos de Programación Guía del Estudiante Diseño del algoritmo. Verificación del algoritmo. Análisis del Problema Diseño del Algoritmo Verificación del Algoritmo 1.1 Análisis del Problema Figura 1.1: Metodología de Diseño de Algoritmos El primer paso es identificar el problema. Se debe revisar cuidadosamente el problema para determinar qué tipo de información se necesita producir como salida. Luego se identifica toda la información que se necesita para encontrar la solución. En otras palabras, es importante considerar lo que se está pidiendo en el problema, con qué elementos se cuenta y cuáles se deben solicitar para establecer el camino a seguir en la solucionar el problema. Luego de obtener todos estos datos, se inicia la fase de Diseño del Algoritmo. 1.2 Diseño del Algoritmo En esta fase, la solución del problema puede requerir varios pasos, así que es necesario buscar la manera más fácil para simplificar la propuesta. Una forma de hacerlo, es identificar los procesos más importantes y colocarlos en orden ascendente según su importancia y precedencia, esto sirve como un algoritmo inicial. Este algoritmo inicial podrá ser refinado en sucesivas operaciones, hasta obtener una solución más detallada y más fácil de traducir a un lenguaje de programación. 1.3 Verificación del Algoritmo Cuando el algoritmo está listo, es necesario comprobar que cumple con los procesos ideados y produce el resultado esperado. Una manera de hacerlo, es por medio de la ejecución manual, que consiste en realizar una prueba del algoritmo con datos significativos y comprobar que al ejecutar todos los procesos se obtienen los resultados esperados para la salida. 5. Programas de Computadora Un programa es un conjunto de instrucciones que ejecutadas ordenadamente resuelven un problema, en otras palabras es la implementación del algoritmo. Un programa de computadora es una secuencia de instrucciones que le indican al computador que realice operaciones específicas para lograr un resultado deseado. Consiste de uno o más módulos o rutinas, cada uno de los cuales puede estar compuesto a su vez de otros módulos o subprogramas. Un programa de computadora no es: Una caja mágica. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 10

Guía del Estudiante Fundamentos de Programación Intrínsicamente correcto. Un programa de computadora debe ser: Una solución a un problema. Una secuencia de instrucciones hechas para ejecutarse en una computadora. Sólo tan correcto como el programador lo haya hecho. En resumen, un programa de computadora es un conjunto de instrucciones generadas por el programador, que le dicen al computador exactamente lo que debe hacer. 6. Definiciones Básicas A continuación se presentan un conjunto de definiciones básicas que se usan en el entorno de un programa de computadora: Lenguaje de Máquina: es un lenguaje que puede ser interpretado directamente por los circuitos internos de la computadora porque está basado en instrucciones compuestas por secuencias de ceros (0) y unos (1). Ventajas: No necesita ser traducido puesto que la máquina lo entiende. Opera directamente con la máquina. Puede llegar a ser muy eficiente en el manejo de recursos. Desventajas son: Extremadamente difícil de aprender, implementar y mantener. Es único y particular para cada procesador. Lenguaje de Bajo Nivel (Ensamblador): es un lenguaje que usa el programador para codificar sentencias simbólicas que un compilador (programa traductor) puede convertir una a una en instrucciones de lenguaje de máquina. Hace uso de mnemotécnicos o abreviaturas, para representar las instrucciones de máquina. Ventajas: No es tan complicado como el lenguaje de máquina. Eficiente en el manejo de recursos. Desventajas son: Cada procesador tiene su propio juego de instrucciones en ensamblador. Debe ser traducido (ensamblado). Lenguaje de Alto Nivel: es un lenguaje de programación orientado al problema o procedimientos, es cercano al idioma humano. Ejemplos de estos lenguajes son COBOL, PL/I, FORTRAN, Java, etc. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 11

Fundamentos de Programación Guía del Estudiante Algunos lenguajes de alto nivel se denominan Lenguajes de Programación Orientado a Objetos (ó OOPL). Ejemplos de éstos son: Smalltalk, Java, C++, Eiffel, etc. Ventajas: Son independientes del procesador. Son mucho más fáciles de aprender, implementar y mantener. Tienen un carácter genérico. Desventajas son: Menos eficientes en el manejo de los recursos. Requiere de un proceso de traducción (compilación). Compilar: Es traducir un programa escrito en un lenguaje de alto nivel a un programa en lenguaje de máquina, que es la forma en que la computadora puede ejecutar directamente las acciones o instrucciones. Típicamente una instrucción de alto nivel se compila o traduce, en muchas instrucciones de lenguaje de máquina. En algunos casos, el proceso de compilación se descompone en dos pasos: Compilar las instrucciones de alto nivel para producir lo que se denomina el código objeto. Enlazar (link) que es tomar el código objeto generado y cualquier otro código objeto que sea requerido, que haya sido previamente generado y colocarlos juntos, produciendo así el programa ejecutable o código ejecutable. Base de Datos: Es una colección de datos completa e integrada, organizada para evitar duplicados, que permite recuperar información para satisfacer a una amplia variedad de usuarios. Sistema Operativo: Es una colección organizada de software que se usa para ayudar y controlar las operaciones de una computadora. Almacenamiento: Se refiere a un dispositivo en el que los datos se pueden ingresar, guardar y posteriormente recuperar. 7. Crear un Programa de Computadora Para crear un programa de computadora, generalmente el programador debe partir de un algoritmo y escribir las sentencias (instrucciones) del código fuente en un editor. Un editor es un programa utilitario que permite la edición de textos y programas. Existen muchos editores que están diseñados específicamente para ayudar en la creación del programa fuente. Algunos incluso siguen la especificación de un lenguaje particular. El conjunto de sentencias fuente se denomina un programa fuente. El programa fuente es la entrada para el compilador, que lo convierte en un conjunto de comandos entendibles por el computador llamado programa ejecutable. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 12

Guía del Estudiante Fundamentos de Programación Si se encuentra algún error en la sintaxis de los comandos en el programa fuente, el compilador listará cada uno de ellos y no producirá el programa ejecutable. El programador debe repetir los pasos de editar/compilar hasta que no se encuentren errores de compilación. La Figura 1.2 presenta en forma esquemática los pasos para crear un programa de computadora. Figura 1.2: Creación de un Programa de Computadora 8. Funcionamiento del Compilador/Enlazador Previo a la creación del programa ejecutable, el compilador, si no detecta errores de sintaxis, crea un programa objeto y un listado del programa fuente. La Figura 1.3 muestra la creación del programa ejecutable, partiendo del programa fuente, con un paso de enlace (link) involucrado. El programa objeto, producido por el compilador, se usa como la entrada al enlazador para realizar lo que se llama el paso de edición de enlace. El enlazador, combina el programa objeto recién creado con otros programas objeto ya existentes, produciendo Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 13

Fundamentos de Programación Guía del Estudiante el programa ejecutable. Los otros programas objeto generalmente residen en un archivo en disco llamado Librería de Enlace. Compilación Programa Objeto Librerías de enlace Programa fuente Compilación Compilador Enlazador Enlace Programa Ejecutable Figura 1.3: Compilador / Enlazador 9. Datos, Tipos de Datos y Funciones Incorporadas Un programa de computadora, para que pueda ser ejecutado, debe ser cargado en memoria. La unidad de procesamiento del ordenador sólo puede trabajar con los datos e instrucciones que residen en la memoria. 9.1 Dato El dato es cualquier objeto o elemento de información que se usa a lo largo de diversas operaciones dentro de un programa o fragmentos de éste. Los datos son los elementos sobre los que se opera cuando se efectúa una operación en el computador, es decir, cuando se ejecuta una instrucción en un programa. Un dato tiene un nombre que lo identifica y distingue de los demás elementos del programa. Dicho nombre no es más que otra forma de referenciar la dirección de memoria que ocupa el dato, así que cuando se trabaja con el nombre del dato, en realidad se trabajar con el valor que se encuentra en esa dirección de memoria. Cuando se está trabajando con un programa de computadora, siempre se está trabajando con direcciones de memoria, es por ello que es una estrategia común referenciar esas posiciones de memoria por medio de nombres o identificadores significativos para los humanos. En otras palabras, un programa de computadora es una serie de instrucciones organizadas para manipular y trabajar con direcciones de memoria en un computador. Los datos pertenecen a un tipo de dato específico, lo cual le indica al computador el rango de valores que dicho dato puede aceptar y las operaciones que sobre él se pueden realizar. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 14

Guía del Estudiante Fundamentos de Programación Por último, los datos poseen un valor que bien puede cambiar o permanecer constante a lo largo del programa o mientras el dato esté disponible. 9.2 Tipo de Dato El tipo de dato es una definición que agrupa los valores válidos para un conjunto de datos y las operaciones que sobre ellos se pueden realizar. Normalmente, se puede establecer una relación de orden sobre los datos de naturaleza escalar o con valores determinísticos. Cada tipo de dato tiene una representación determinada en el computador. Esto tiene que ver con el tamaño o la cantidad de memoria que el computador reserva para almacenar los datos de un tipo especifico cualquiera. Todo, absolutamente todo, en la memoria de un computador se representa por medio de código binario, un código binario es un número en base 2, cuyos dígitos son ceros o unos. De esta manera, un código cualquiera puede ser tratado como un número entero en un momento dado, como un carácter en otro o en cualquier otra forma diferente de acuerdo a las necesidades del programa. Los tipos de datos pueden ser: Tipo dato primitivo: Tipos básicos o simples predefinidos en el sistema. Tipo de dato definidos por el usuario: Agregados por el programador. Los tipos de datos primitivos más importantes son: numéricos, lógicos y carácter. A continuación se detalla cada uno de ellos: Numéricos: Pueden ser a su vez: - Entero: Subconjunto finito del conjunto matemático de los números enteros. No tiene parte decimal. El rango de los valores depende del tamaño que se les asigne en la memoria para su representación, este tamaño es definido por el lenguaje de programación, usualmente 2 bytes. - Real: Subconjunto finito del conjunto matemático de los números reales. Llevan signo y parte decimal. Se almacenan usualmente en 4 bytes o más (dependiendo del lenguaje de programación que se utilice). Si se utilizan números reales muy grandes, se puede usar notación científica que se divide en mantisa, base y exponente. De tal forma que el valor se obtiene multiplicando la mantisa por la base elevada al exponente. Lógicos o booleanos: Es aquel que sólo puede tomar uno de los dos valores, verdadero o falso (1 ó 0). Este es el tipo de dato que retorna todas las operaciones lógicas. Carácter: Abarca al conjunto finito y ordenado de caracteres que reconoce la computadora: letras, dígitos, caracteres especiales, ASCII, UNICODE. Generalmente, sus valores se representan dentro de un par de comillas simples, aunque también se puede suministrar su código numérico o posición dentro del conjunto de caracteres válidos que se esté usando. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 15

Fundamentos de Programación Guía del Estudiante Tipo cadena o string: Conjunto de caracteres, que usualmente se presentan entre los símbolos de comilla doble ( ). Los diversos lenguajes existentes pueden añadir más tipos de datos u otros modificadores. Por ejemplo, el modificador Long se usa comúnmente con los tipos entero (int) para indicar un entero de gran tamaño (Long int). En algunos lenguajes se definen tipos especiales para la fecha y hora, sobre todo en los lenguajes modernos, tales como Java. 9.3 Variables Las variables son instancias de un tipo de dato determinado, cuyo valor puede cambiar durante la ejecución del programa o corrida del algoritmo. Antes de usar una variable, el programador debe definirla o declararla, indicando su nombre y el tipo de dato al que pertenece. El nombre que se elija para una variable se denomina identificador y debe ser un nombre significativo que esté relacionado con el propósito para el que se vaya a usar la variable en el programa. El identificador de una variable será un conjunto de caracteres que tendrán ciertas restricciones, según lo defina el lenguaje de programación. Por lo general, el identificador de una variable tiene que empezar por una letra, el tamaño y caracteres permitidos como parte del identificador dependen del lenguaje de programación. Algunos lenguajes de programación asignan un valor por omisión o defecto a las variables, al momento de su declaración. En cualquier caso una variable puede tomar un valor inicial e ir cambiándolo a lo largo de la ejecución del programa o corrida del algoritmo. Al momento de asignar un valor inicial a una variable, se le denomina inicialización de la variable. 9.4 Variables Acumuladoras Aquellas variables que el programador use para ir sumando valores a lo largo de la ejecución del programa, se denominan acumuladoras y es recomendable inicializarlas con un valor conveniente al uso que posteriormente se les dé. 9.5 Variables Contadoras Se llaman así a las variables que el programador usa para ir contando a lo largo de la ejecución del programa. 9.6 Constantes Las constantes son instancias de un tipo de dato determinado, que tienen un valor fijo asignado por el programador en el momento en que la define. Este valor no puede ser modificado durante la ejecución del programa o corrida del algoritmo. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 16

Guía del Estudiante Fundamentos de Programación Las constantes pueden llevar asociados un nombre o no, si no lo llevan, se llaman literales. El programador especifica su valor al definir la constante, que ya no puede cambiar a lo largo de la ejecución del programa. En cuanto al tipo de dato, hay que colocarlo o no dependiendo del lenguaje de programación. Si no hace falta colocarlo, es porque la constante tomará el tipo de dato del valor que se le asigne al definirla. Por ejemplo: Const PI=3,1416. La ventaja de usar constantes con nombre, es que en cualquier lugar donde quiera que vaya la constante, basta con colocar su nombre y luego el compilador lo sustituirá por su valor. Las constantes sin nombres o literales son de valor fijo: 5, 6, a, hola. 9.7 Relación entre Variables y Constantes en Memoria Al declarar una variable o constante con nombre, automáticamente se reserva en memoria espacio para guardarla. El espacio reservado depende del tipo de dato de la variable o constante. En esa zona de memoria, es en la que se guardará el valor asociado a la variable o constante. Cuando el programa use esa variable o constante, irá a ese lugar de la memoria a buscar su valor. 10. Expresiones: Tipos y Operadores Una expresión es una combinación de constantes, variables, signos de operación, paréntesis y nombres especiales (nombres de funciones estándar), con un sentido unívoco y definido. De la evaluación de una expresión resulta un único valor o resultado. Una expresión tiene asociado un tipo de dato que corresponde con el tipo del valor que devuelve la expresión cuando se evalúa, por lo que habrá tantos tipos de expresiones como tipos de datos. En tal sentido, se tienen expresiones numéricas y lógicas. 10.1 Expresiones Numéricas: Operadores Aritméticos La expresión numérica es una combinación de variables y constantes numéricas con operadores aritméticos, que al evaluarla devuelve un valor numérico. Algunos de los operadores aritméticos más comunes son: +, -, *, /, los cuales equivalen a las operaciones suma, resta, multiplicación y división respectivamente. Otras operaciones aritméticas soportadas en algunos lenguajes de programación son: Operador Resto o Módulo: Devuelve el resto de una división entera. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 17

Fundamentos de Programación Guía del Estudiante Lenguaje Operador Ejemplo Resultado C % 5 % 2 1 Pascal mod 5 mod 2 1 Tabla 1.1: Operador Resto o Módulo Operador División Entera: Devuelve la parte entera del cociente de una división. Lenguaje Operador Ejemplo Resultado C / 5 / 2 2 Pascal Div 5 div 2 2 Tabla 1.2: Operador División Entera Operador Potencia: Devuelve el valor de una base elevada a una potencia dada. Lenguaje Operador Ejemplo Resultado Basic ^ 5 ^ 2 25 Tabla 1.3: Operador Potencia Los operadores anteriores se denominan operadores binarios porque utilizan dos operando. Existen también otros tipos de operadores que sólo necesitan de un operando y se denominan operadores unarios. Algunos de los operadores unarios más comunes son: El signo negativo: Operador unario que devuelve el valor actual del operando multiplicado por menos uno (-1). Lenguaje Operador Ejemplo Resultado C - X= 5; -X; X= -5; Tabla 1.4: Signo Negativo Operador Decremento: Operador unario que devuelve el valor actual del operador decrementado en una unidad. Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 18

Guía del Estudiante Fundamentos de Programación Lenguaje Operador Ejemplo Resultado C -- X= 5; --X; X= 4; Tabla 1.4: Signo Negativo Operador Incremento: Operador unario que devuelve el valor actual del operador incrementado en una unidad. 10.2 Reglas de Precedencia Lenguaje Operador Ejemplo Resultado C ++ X= 5; ++X; X= 6; Tabla 1.4: Signo Negativo El orden en que se evalúan los operadores aritméticos dentro de una expresión influye directamente en el resultado que retorna dicha expresión. Ejemplo: Sea la siguiente expresión aritmética: 2 + 3 * 2 + 3 Si se evalúa en el orden de aparición se tiene: (((2 + 3) * 2) + 3) = 13 Si se evalúa primero la suma (+) y luego la multiplicación (*) se tendrá la expresión: (2 + 3) * (2 + 3) = 25 Si se evalúa primero la multiplicación y luego la suma se tendrá la expresión: 2 + (3 * 2) + 3 = 11 Entonces, Cómo resolver está situación potencialmente problemática? La solución es aplicar prioridad entre los operadores, de modo que ante la posibilidad de usar varios operadores aritméticos en una misma expresión, siempre se aplicará primero el de mayor prioridad. Cada lenguaje de programación puede establecer sus propias reglas de prioridad o precedencia de operadores. Siempre se pueden utilizar los paréntesis ( ) para definir y cambiar el orden en que se evalúa una expresión aritmética dada. El orden de precedencia definido comúnmente para los operadores aritméticos básicos es: 1. ^ Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 19

Fundamentos de Programación Guía del Estudiante 2. *, /, div y mod 3. + y Entre dos operaciones que tienen la misma precedencia, para resolver la ambigüedad hay que usar la regla de la asociatividad. La más normal, es la asociatividad por la izquierda (primero lo de la izquierda). De esta forma, la expresión 2+3 * 2 / 3 5 ^ 2 será evaluada como (2 + ((3 * 2) / 3)) (5 ^ 2). 10.3 Expresiones Lógicas: Operadores Relacionales y Lógicos. Una expresión lógica es aquella que sólo puede devolver uno de dos valores: verdadero o falso. Los operadores que pueden aparecer en una expresión lógica son de dos tipos: lógicos o relacionales. Los operadores lógicos sólo trabajan sobre expresiones o datos que retornan valores booleanos. Los operadores relacionales trabajan con expresiones numéricas para realizar comparaciones que retornan un valor booleano. Es común tener expresiones que combinan tanto los operadores lógicos como relacionales, en estas expresiones se evalúa más de una condición o relación por medio de operadores lógicos. Los operadores relacionales más usados son: < menor que > mayor que = igualdad (en C: ==) <> diferente (en C:!=) menor o igual que mayor o igual que Para evaluar una expresión relacional: Se evalúa el primer operando y se sustituye por su valor. Se evalúa el segundo operando y se sustituye por su valor. Se aplica el operador relacional y se devuelve el valor booleano correspondiente. Ejemplo: ((5 * 4) + 1 (5 ^ 2)) < (2-1) - 4 < 1 la expresión retorna Verdadero Ejercicio: Evaluar las siguientes expresiones si a la variable x se le asigna el valor 2 y a la variable y se le asigna el valor 4. Cada respuesta debe ser VERDADERO o FALSO, según corresponda: Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 20

Guía del Estudiante Fundamentos de Programación 1. x == y : 2. x <> y : 3. y > x : 4. x >= y : El problema es que en algunos casos se requiere preguntar o evaluar más de una condición al mismo tiempo, para esto, están los operadores lógicos. Los operadores lógicos más utilizados son: Y (and, &&) O (or, ) No (not, ~,!) O exclusivo (xor, ^) Y, O y O exclusivo son operadores binarios. Estos operadores trabajan bajo el esquema: <Operando 1> Operador <Operando 2> El operador No es de tipo unario y se coloca precediendo al operando al que se niega. La tabla de verdad para los operadores lógicos binarios es como sigue: Operando 1 Operando 2 AND OR XOR V V V V F V F F V V F V F V V F F F F F V= Verdadero; F= Falso Tabla 1.5: Tabla de Verdad para los operadores lógicos binarios La tabla de verdad para el operador unario No es como sigue: NOT Operando V F F V Tabla 1.6: Tabla de Verdad para el operador unario No Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 21

Fundamentos de Programación Guía del Estudiante Se observa que para que el operador lógico AND sea Verdadero, es necesario que ambos operandos sean Verdaderos. Para que el operador lógico OR sea Verdadero, basta con que al menos uno de sus operandos sea Verdadero. Para que el operador XOR sea Verdadero, ambos operandos deben ser diferentes entre sí. Ejercicio: Si x representa 1 > 2 (FALSO) e y representa 4 < 8 (VERDADERO) Cuál es el resultado de cada una de las siguientes expresiones: 1. NOT x : 2. x AND y : 3. y OR x : 4. (NOT x) AND y : 5. x XOR y : 11. Funciones Incorporadas Las funciones Incorporadas son funciones adicionales a las operaciones básicas, que se incorporan al lenguaje de programación. Se consideran estándar en la mayoría de lenguajes de programación. Son dependientes del lenguaje y normalmente se encuentran en librerías externas que se pueden incluir en un programa. La sintaxis exacta y el nombre de las funciones pueden variar de un lenguaje a otro, pero la funcionalidad suele mantenerse entre las diversas herramientas de programación. Las más comunes son las librerías de soporte matemático y las de entrada / salida. Todos los lenguajes de programación proporcionan mecanismos para incorporar diversos elementos que brinden funcionalidad extra a los programas. La Tabla 1.7, muestra la forma en que algunos lenguajes de programación populares incorporan funcionalidad extra. Lenguaje Sentencia Ejemplo Pascal use use conio; C y C++ #include<> #include<iostream.h> Java import Import java.io.*; Tabla 1.7: Funcionalidad extra de algunos programas Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 22

Guía del Estudiante Fundamentos de Programación 12. Operación de Asignación La operación de asignación consiste en atribuir un valor a una variable. El valor asignado puede ser una expresión, una constante o el valor de otra variable. Las formas más comunes del operador de asignación se resumen en la Tabla 1.8: Lenguaje Operador Ejemplo Pascal := var := 5 + 3; C y C++ = var = var + 5; Java = var = Math.sin(90.0); Tabla 1.8: Operador de Asignación En los ejemplos de la tabla anterior, var representa la variable a la que se le asigna el valor dado en la expresión a la derecha del operador de asignación. El proceso de asignación se realiza en 2 fases: Se evalúa la expresión de la parte derecha de la asignación obteniéndose un único valor. Se asigna ese valor a la variable de la parte izquierda. Debe tenerse en cuenta: En la parte izquierda de la operación de asignación, sólo puede haber una variable. La variable a la que se le asigna el valor pierde su valor anterior. Si la variable a la que se le asigna un valor (parte izquierda) participa en la expresión a evaluar (parte derecha), como por ejemplo la sentencia: x=x+1, entonces como primero se evalúa la expresión antes de realizar la asignación, el valor usado en la expresión es el que tenía la variable antes de la operación. En el ejemplo dado si x tenía un valor igual a 5, entonces la evaluación de la expresión x = x + 1 sería x = 5 + 1, quedando x con un valor final de 6. El tipo de dato del valor resultante al evaluar la parte derecha de una operación de asignación, tiene que ser del mismo tipo de dato o de un tipo compatible, con la variable a la cual se le va a asignar el resultado de la operación. Muchos lenguajes de programación imponen sus propias reglas de conversión de tipos de datos, definiendo cuáles son las operaciones permitidas entre los diversos tipos de datos. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 23

Fundamentos de Programación Guía del Estudiante 13. Recomendaciones Cuando se programa existen una serie de problemas y errores de programación que tienden a presentarse una y otra vez en los programas. Para minimizar la ocurrencia de errores en la programación, es aconsejable que se consideren las siguientes recomendaciones: Reutilizar código probado: Puede existir un código ya desarrollado y probado para resolver totalmente o parte del problema que pueda utilizarse. Esto facilita la solución del problema y minimiza el tiempo de desarrollo. Al reutilizar código no se desperdicia tiempo depurando una parte de la lógica que se sabe que funciona. No asumir los datos de entrada como válidos: Si no se tiene ningún control sobre la fuente de los datos, no se tiene ningún control sobre la calidad de los mismos. No asumir que los datos de entrada están en la secuencia correcta. Verificar siempre la secuencia: Es muy fácil para alguien proporcionar datos erróneos. Diseñar los tamaños de los campos de datos, de modo que tengan capacidad para contener el valor más grande permitido. Usar comentarios libremente. Explicar cualquier cosa que pueda confundir a un futuro lector, además de señalar cualquier área que pueda estar sujeta a cambios. Hacer programas legibles y fáciles de entender. Usar nombres adecuados para las variables, que sean auto descriptivos. Usar sangrías, alineación y espacios donde sea necesario (líneas blancas y columnas). Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 24

Guía del Estudiante Fundamentos de Programación Resumen Ahora que ha completado esta unidad, usted debe ser capaz de: Definir el propósito y el contenido de un programa de computadora. Utilizar una metodología para resolver problemas de procesamiento de datos. Describir el funcionamiento de un compilador/enlazador. Definir el concepto de Dato. Describir los diferentes tipos de datos y las operaciones incorporadas a los lenguajes de programación. Presentar las recomendaciones que ayudan a programar con estilo. Unidad 1: Programas de Computadora Libro 1: Fundamentos de Programación 25

Fundamentos de Programación Guía del Estudiante Unidad 1: Examen de Autoevaluación 1) Cuáles de los siguientes son lenguajes de alto nivel? a) Cobol b) Fortran c) Java d) Ensamblador 2) Se entiende por algoritmo, un conjunto de reglas bien definidas para la solución de un problema en un número de pasos que podría no ser finito. a) Verdadero b) Falso 3) Seleccione las afirmaciones correctas en referencia a un programa de computadora. a) Es una solución a un problema b) Es una caja mágica c) Es un conjunto de instrucciones hechas para ejecutarse en una computadora d) Todas las anteriores 4) Para diseñar un programa de computadora se requiere de un proceso que cumpla con las siguientes características: a) Actualizable b) Fácil de mantener c) No estructurado d) Ninguna de las anteriores 5) Seleccione las afirmaciones correctas: a) El conjunto de sentencias creadas para resolver un problema se denomina "programa fuente" b) Un compilador convierte un programa fuente en un programa ejecutable c) Si se encuentran errores de sintaxis en las instrucciones del programa fuente, el compilador lista cada uno de ellos y produce un archivo ejecutable d) Ninguna de las anteriores Libro 1: Fundamentos de Programación Unidad 1: Programas de Computadora 26