Introduccion A La Programacion
Introduccion A La Programacion
Objetivo General
El curso de introducción a la computación está diseñado para que el estudiante se
identifique con la lógica de computadoras(programación) y aprenda a desarrollar
aplicaciones computacionales a través de técnicas como: algoritmos y diagramas de flujo.
Capítulo I: conceptos preliminares.
Lógica.
Etapas en el desarrollo de programas por computadoras.
Tipos de datos.
Tabla de decisión.
Capitulo II: Diagramas de flujo.
Símbolos convencionales y reglas.
Conceptos fundamentales.
Acumuladores.
Contadores.
Archivos.
Fin de archivos, etc.
Diagramas secuenciales aplicados a la computación. (entrada/proceso/salida).
Condiciones simples y subordinadas.
Interacciones.
Diagramas estructurados.
Capitulo III. Algoritmos
Lenguaje algorítmico.
Sintaxis.
Semántica.
Instrucciones elementales.
Problemas algorítmicos sencillos.
Definición del problema.
Entrada y salida.
Calculo y manejo de variables.
Instrucciones de transferencia(if-case).
Repetición bucles y recursividad (while, dowhile).
Arrays
Concepto
Tipos de array (vectores y matrices)
Bibliografía
Capítulo I: conceptos preliminares
Lógica: ¿Qué es la lógica?
Lógica es la Ciencia que estudia la estructura, fundamentos y uso de las expresiones del
conocimiento humano. La Lógica de Programación define, en forma precisa, los conceptos
generales que permiten diseñar la solución a problemas para ser implementados a través de
los lenguajes de programación. Su aprendizaje no necesita del conocimiento previo de estos
lenguajes. Sólo después de dominar sus conceptos, se está en condiciones óptimas para
iniciar el estudio de cualquier lenguaje de programación y con ello dar solución a
problemas a través de computadoras. Por eso es importante conocer cuáles son los pasos
esenciales para resolver un problema utilizando esta tecnología. Precisamente es lo primero
que se aborda en este capítulo. Si estudias detenidamente este capítulo y desarrollas los
ejercicios aquí planteados, comprenderás que programar no es más que buscar soluciones
lógicas a los problemas, utilizando conceptos sencillos.
Tipos de datos:
Un tipo de dato corresponde a una clasificación que se hace para poder tratar cada dato de
la forma más adecuada, según lo que se requiera. El tipo de dato le indica al dispositivo de
procesamiento cuanto espacio de memoria debe reservar para almacenar el dato, es decir,
para determinar el tamaño del espacio de memoria.
1. Entero, Integer – un número entero que puede tener un valor positivo, negativo o
cero. No puede ser una fracción, ni puede incluir decimales. Se utiliza comúnmente
en la programación, especialmente para aumentar los valores. La suma, la resta y la
multiplicación de dos números enteros da como resultado un número entero. Sin
embargo, la división de dos números enteros puede dar como resultado un número
entero o un decimal. El decimal resultante puede redondearse o truncarse para
producir un número entero.
2. Carácter, Character – cualquier número, letra, espacio o símbolo que pueda ser
introducido en una computadora. Cada carácter ocupa un byte de espacio.
3. Cadena, String – utilizada para representar el texto. Se compone de un conjunto de
caracteres que pueden incluir espacios y números. Las cadenas están encerradas
entre comillas para identificar los datos como cadenas, y no como nombres de
variables, ni como números.
4. Número de punto flotante, Floating Point Number- un número que contiene
decimales. Los números que contienen fracciones también se consideran números
de punto flotante.
5. Matriz, Array – una especie de lista que contiene un grupo de elementos que pueden
ser del mismo tipo de datos que un entero o una cadena. Se utiliza para organizar los
datos para facilitar la clasificación y la búsqueda de conjuntos de valores
relacionados.
6. Varchar – como su nombre indica, un varchar es un carácter variable, debido a que
el almacenamiento de la memoria tiene una longitud variable. Cada carácter ocupa
un byte de espacio, más 2 bytes adicionales para la información de longitud.Debes
utilizar el carácter para las entradas de datos con longitudes fijas, como los números
de teléfono, pero utilice Varchar para las entradas de datos con longitudes variables,
como la dirección.
7. Booleano – usado para crear declaraciones verdaderas o falsas. Para comparar
valores se utilizan los siguientes operadores: AND, OR, XOR, y NOT.
Tabla de decisiones
La tabla de decisión, conocida también como la tabla de verdad, es una representación
gráfica de una matriz de filas y columnas separadas en cuatro cuadrantes que indican
condiciones y acciones. Las reglas de decisiones, incluidas en una tabla de decisión
establecen el procedimiento a seguir cuando existen ciertas condiciones. Se utiliza la
tabla de decisión cuando existen muchas combinaciones.
Las tablas de decisión (TD) son una técnica de aplicación en el análisis y diseño de
sistemas y procedimientos, en su documentación y también como un medio de
comunicación y un instrumento de programación.
Estructura de la tabla de decisión
La tabla de decisión está integrada por cuatro secciones:
Identificación de Condiciones: señala aquellas que son más relevantes. Se detalla una
condición por renglón. Se llaman condiciones a situaciones variables que pueden
ocurrir
Entradas de Condiciones: indican qué valor, si es que lo hay, se debe asociar para una
determinada condición. Se indican valores de las condiciones indicadas en la primera
sección, dependiendo del tipo de tabla de decisión (de entrada, limitada o extendida)
que se construya para representar el proceso.
Identificación de Acciones: enlista el conjunto de todos los pasos que se deben seguir
cuando se presenta cierta condición. Se llaman acciones a los distintos comportamientos
que se asumirán en función de los valores que tomen las condiciones. Se escriben en el
orden en que deben ser ejecutadas.
Entradas de Acciones: muestran las acciones específicas del conjunto que deben
emprender cuando ciertas condiciones o combinaciones de éstas son verdaderas.
Capitulo II: Diagramas de flujo
Un diagrama de flujo es la representación gráfica de un algoritmo. Lo conforma un
conjunto de componentes que permiten representar acciones, decisiones o cálculos con
los cuales se soluciona un problema determinado. Cuando el diagrama de flujo esta
correctamente diseñado, la concepción de un programa en un lenguaje de
programación, en fácilmente codificable.
2. Las líneas que indican la dirección del flujo del diagrama deben ser rectas, verticales y
horizontales. 2.1 Reglas para la construcción de un diagrama de flujo
3. Toda línea que indica la dirección del flujo del diagrama debe estar conectada.
7. Se puede utilizar más de una hoja, utilizando los conectores adecuados y numerando las
páginas.
Dentro del ciclo debe haber una instrucción que modifique el valor del contador, su forma
general es la siguiente:
contador = contador + valor Incremento
contador = contador - valor Decremento
El valor a incrementar o decrementar, hace referencia a cualquier cantidad de tipo
numérico, en la cual aumenta o disminuye su valor en cada iteración del ciclo. Los valores
a incrementar o decrementar son cantidades constantes. En los ejemplos anteriores, la
cantidad de amigos en Facebook se incrementa en el momento que se confirme una
solicitud de amistad o se decrementa cuando se elimina un contacto de la lista de amigos.
2. Acumulador
Un acumulador es una variable que funciona de forma similar a un contador, la diferencia
radica en que aumentan o disminuyen en cantidades variables y no en forma constante como
es el caso de los contadores. Algunos autores le dan también la denominación de totalizador
[Corona and Ancona, 2011]. Un acumulador se puede usar para: Almacenar el puntaje
acumulado en un juego. Calcular el saldo en una cuenta de ahorros. Obtener el valor de una
sumatoria de notas que luego puede ser usada para calcular un promedio. Determinar el
valor a pagar en un supermercado cuando se compran varios artículos. Conocer el
acumulado de puntos que se tienen por compras en un almacén o establecimiento comercial
que ofrezca este beneficio. Esta clase de variables se declaran de tipo numérico, bien sea
Entero o Real. Deben inicializarse antes de entrar al ciclo, es decir, se le debe asignar un
valor inicial que depender ‘a del problema a resolver, generalmente se inicializan en 0.
Dentro del ciclo debe haber una instrucción que modifique el valor del acumulador, su
forma general es la siguiente:
acumulador = acumulador + valorIncremento
acumulador = acumulador - valorDecremento
El valor a incrementar o valor a decrementar se refiere a cualquier cantidad de tipo
numérico, en la cual el acumulador aumenta o disminuye su valor en cada iteración del
ciclo. Los valores a incrementar o decrementar son cantidades variables. En los ejemplos
anteriores, el saldo en una cuenta de ahorros se incrementa con las consignaciones y se
decrementa con los retiros. De igual forma sucede con los puntos por compras, incrementan
por cada compra que se realice y decrementan en el momento en que se haga un canje por
algún artículo o promoción. Existen casos especiales donde la forma general no trabaja con
operaciones de suma o resta, sino que se involucran operaciones de multiplicación o
división:
acumulador = acumulador * valorIncremento
acumulador = acumulador / valorDecremento
3. Bandera o Centinela Una bandera, también denominada interruptor o conmutador es una
variable que puede tomar uno de dos valores (verdadero o falso) a lo largo de la ejecución del
programa y permite comunicar información de que sucedió o no un evento especifico. Son muy
usadas las banderas en ciclos para dar pr teminado el bucle al cumplirse una condición especifica
y dar por terminada el bucle
4. Archivos: un archivo es una secuencia de datos almacenados en un medio persistente que
están disponibles para ser utilizados por un programa. Todos los archivos tienen un nombre y
una ubicación dentro del sistema de archivos del sistema operativo.
Los datos en un archivo siguen estando presentes después de que termina el programa que lo
ha creado. Un programa puede guardar sus datos en archivos para usarlos en una ejecución
futura, e incluso puede leer datos desde archivos creados por otros programas.
Estructuras de control
Diagrama secuencial, es el más simple de todos. Se utiliza cuando se tiene que ejecutar una
instrucción tras otra, sin tener que evaluar una expresión.
acción 1 1. suma 0
Cuando se presenta la elección tenemos la opción de realizar una actividad o no realizar ninguna.
Representación gráfica:
Podemos observar: El rombo representa la condición. Hay dos opciones que se pueden tomar. Si la
condición da verdadera se sigue el camino del verdadero, o sea el de la derecha, si la condición da
falsa se sigue el camino de la izquierda.
Se trata de una estructura CONDICIONAL SIMPLE porque por el camino del verdadero hay
actividades y por el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias operaciones, entradas y salidas, inclusive ya
veremos que puede haber otras estructuras condicionales.
Problema:
Ingresar el sueldo de una persona, si supera los 3000 pesos mostrar un mensaje en pantalla
indicando que debe abonar impuestos.
Diagrama de flujo:
Podemos observar lo siguiente: Siempre se hace la carga del sueldo, pero si el sueldo que
ingresamos supera 3000 pesos se mostrará por pantalla el mensaje "Esta persona debe abonar
impuestos", en caso de que la persona cobre 3000 o menos no aparece nada por pantalla.
En una estructura condicional compuesta tenemos entradas, salidas, operaciones, tanto por la
rama del verdadero como por la rama del falso.
Problema:
Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor
de ellos.
Diagrama de flujo:
Se hace la entrada de num1 y num2 por teclado. Para saber cuál variable tiene un valor mayor
preguntamos si el contenido de num1 es mayor (>) que el contenido de num2, si la respuesta es
verdadera vamos por la rama de la derecha e imprimimos num1, en caso de que la condición sea
falsa vamos por la rama de la izquierda (Falsa) e imprimimos num2.
Como podemos observar nunca se imprimen num1 y num2 simultáneamente.
Sentencias de iteración
Permiten repetir una sentencias o conjunto de ellas. Es lo que se denomina ejecutar un bucle.
Existen tres formas de iteraciones: los bucles while; do…while y for.
En todos los casos el bucle puede estar constituido por una sola sentencia o por varias. En cuyo
caso se trata de un bloque de código delimitado por un par de corchetes { }. Si se trata de una sola
sentencia, los corchetes no son necesarios.
Diagramas estructurados
Los Diagramas Estructurados, son una técnica que permite formular algoritmos mediante una
representación geométrica y de asignación de espacios de un bloque específico.
El diagrama estructurado N-S también conocido como diagrama de chapin es como un diagrama
de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se
pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes
acciones en una caja. Un algoritmo se represente en la siguiente forma:
(While)
Los ciclos controlados por centinela, primero evalúa la condición, si da como resultado verdadero
realiza la acción, luego vuelve a evaluar la condición, si su resultado es falso, se sale del ciclo y
continúa con la ejecución del programa. Hay que tener mucho cuidado, cuando trabajamos con
ciclos, ya que podemos caer en un ciclo infinito, es decir que nunca se sale de él. Lo cual no es un
error de sintaxis sino de lógica. Por lo cual en las acciones debemos siempre colocar algo que haga
que se modifique el resultado de la condición, lo cual puede ser una bandera, un contador o un
acumulador. La sentencia en C es while ( ) { }, acontinuacion la sintaxis. SINTAXIS while while
(expresión) { sentencia; } Donde sentencia puede ser una sentencia vacía, una sentencia única o un
bloque de sentencias que se repetirán. Cuando el flujo del programa llega a esta instrucción,
primero se revisa si la condición es verdad para ejecutar la(s) sentencia(s), y después el ciclo while
se repetirá mientras la condición sea verdadera. Cuando llega a ser falsa, el control del programa
pasa a la línea que sigue al ciclo.
(Do while)
LA SENTENCIA do-while Al contrario de los ciclos for y while que comprueban la condición en lo
alto del bucle, el bucle do { } while ( ); la examina en la parte baja del mismo. Esta característica
provoca que un ciclo do {} while siempre se ejecute al menos una vez. SINTAXIS: do
{sentencia;}while (condición); Aunque no son necesarias las llaves cuando sólo está presente una
sentencia, se usan normalmente por legibilidad y para evitar confusión (respecto al lector, y no del
compilador) con la sentencia while.
Arreglos