Download - Fundamentos de Programacion Texto Guia
-
7/21/2019 Fundamentos de Programacion Texto Guia
1/111
F
Texto Gua de lascuela Informtic
undamentos d
rogramacin
e
-
7/21/2019 Fundamentos de Programacion Texto Guia
2/111
F
Texto Gua de lascuela Informtic
undamentos d
rogramacin
Autores:
Orlando Erazo Moreta
Andrea Ziga
Washington Chiriboga
e
-
7/21/2019 Fundamentos de Programacion Texto Guia
3/111
PREFACIO
El presente texto gua pretende introducir de una manera clara, sencilla y simplificada, los
conceptos de la lgica para desarrollar programas para computadoras, a todas las personas
que se encuentren interesadas en esta disciplina, pero muy en particular a los estudiantes
que cursan la unidad de aprendizaje de Fundamentos de Programacin en la carrera de
Ingeniera en Sistemas.
Se ha desarrollado esta obra pensando en que los lectores son estudiantes nuevos en la
disciplina de programacin, as como tambin en aquellos que ya han tenido o tienen
alguna experiencia en este campo.
Para un ptimo aprovechamiento se recomienda, en cada captulo hacer una lectura o
revisin rpida a fin de obtener una visin global de la temtica. En una segunda lectura,
hacerlo con mayor detenimiento, comprendiendo y asimilando cada tema expuesto,
llegando al nivel de los detalles expuestos.
Se espera con la ayuda de este texto, el estudiante logre introducirse en el manejo de un
lenguaje de alto nivel, como lo es Visual C#, implemente algoritmos sencillos y adquiera
las bases necesarias para iniciarse en el desarrollosoftware orientado a satisfacer las
necesidades de procesamiento de informacin y soporte a las decisiones estratgicas de las
organizaciones.
-
7/21/2019 Fundamentos de Programacion Texto Guia
4/111
CONTENIDO
Tema Pgs.
PORTADA 1
PORTADILLA 2
PREFACIO 3
CONTENIDO 4
INTRODUCCIN 7
CAPTULO 1. CONCEPTOS BSICOS DE ALMACENAMIENTO DE
INFORMACIN 9
1.1. Unidades bsicas de informacin en un computador 11
1.2. Terminologa bsica. 13
1.3. Tipos bsicos de informacin que maneja el computador 21
1.4. Forma interna de almacenamiento 22
1.5. Tipos de campos 24
Ejercicios propuestos 26
CAPTULO 2. ALGORITMOS 28
2.1. Problemas y modelos 28
2.2. Pasos para la solucin de un problema a travs del computador 29
2.3. Algoritmos 30
2.4. Valor de los smbolos en un modelo algortmico 35
Ejercicios resueltos 41Ejercicios propuestos 42
CAPTULO 3. ESTRUCTURAS E INSTRUCCIONES EN LA
PROGRAMACIN ESTRUCTURADA 45
3.1. Algoritmos bsicos 46
3.2. Ejemplos de algoritmos bsicos sin toma de decisiones 48
3.3. Estructuras de decisin lgica (representacin y funcionamiento) 49
-
7/21/2019 Fundamentos de Programacion Texto Guia
5/111
3.4. Ciclos MIENTRAS (while) 52
3.5. Estructuras adicionales 55Ejercicios resueltos 58
Ejercicios propuestos 62
CAPTULO 4. INTRODUCCIN AL FRAMEWORK DE .NET 64
4.1. La plataforma .NET 64
4.1.1. Componentes del Framework de .NET 65
4.1.2. Compilacin y el MSIL 67
4.1.3. Entorno de desarrollo para aplicaciones de consola 69
4.2. Fundamentos del Lenguaje 70
4.2.1. Tipos 71
4.2.2. Constantes 72
4.2.3. Variables 73
4.2.4. Expresiones 74
4.2.5. Operadores 75
4.3. Sentencias 76Ejercicios resueltos 78
Ejercicios propuestos 81
CAPTULO 5. MODULARIDAD Y REDUCCIN DE COMPLEJIDAD 82
5.1. Procedimientos 85
5.2. Funciones 86
5.3. Paso de parmetros: por valor y por referencia 88Ejercicios resueltos 89
Ejercicios propuestos 90
CAPTULO 6. FUENTES ELEMENTALES DE DATOS 91
6.1 Arreglos de una dimensin o vectores 92
6.2. Cadenas de caracteres 95
6.3. Operaciones bsicas con arreglos 97
-
7/21/2019 Fundamentos de Programacion Texto Guia
6/111
6.4 Arreglos de dos dimensiones o matrices 100
Ejercicios resueltos 102Ejercicios propuestos 105
BIBLIOGRAFA 106
ANEXOS
Anexo 1: Ejercicios Propuestos 107
-
7/21/2019 Fundamentos de Programacion Texto Guia
7/111
INTRODUCCIN
Cuando un msico escucha una meloda que acaba de componer o cuando un escultor
retoca el ltimo detalle de su obra maestra, est ante un logro personal, pero que fue hecho
pensando en los dems. Est ante el fruto de su trabajo, que tuvo que realizar para pasar de
una idea o modelo que estaba slo en su imaginacin, a algo perceptible por los otros. Y
ese logro causa una gran satisfaccin.
El desarrollo de software al igual que la msica, la escultura o la pintura es una
actividad creativa y, hasta si se quiere, artstica. Es una actividad en la que una persona (el
programador) debe plasmar una idea en un programa que alguien usar luego. Y es muy
probable que esa idea sea algo totalmente novedoso, algo que nadie antes ha visto. Y ver
esa idea traducida en software produce una sensacin que slo un programador puede
entender.
Ser programador no es fcil, pero es divertido. Desarrollar software es, definitivamente,
una tarea compleja. Deberemos ser capaces de interpretar al usuario (inicialmente el
docente), de entender qu es lo que necesita (aunque muchas veces l mismo no sabe qu es
lo que necesita). Pasaremos largas horas pensado un algoritmo que resuelva el problema de
nuestro cliente de la mejor manera. Muchas veces nos iremos a casa y seguiremos
pensando en ese dichoso algoritmo. Nos iremos a dormir (probablemente muy tarde,
porque habremos dedicado parte de nuestro tiempo libre a aprender nuevas tecnologas) y
despertaremos pensando en el algoritmo o, incluso, con la solucin en la mente. Pero
cunado escribamos la ltima lnea del cdigo que implementa ese algoritmo y lo veamosfuncionando, obtendremos una gran satisfaccin. Una satisfaccin que slo puede entender
otro programador.
Pero como es de esperar, para iniciarse en este arte de escribir programas para
computadoras, necesitar comprender correctamente una serie de conceptos, desarrollar la
lgica de programacin, aprender un lenguaje de programacin y, sobre todo, mucha
-
7/21/2019 Fundamentos de Programacion Texto Guia
8/111
prctica. Para ayudarle a alcanzar su objetivo, se ha organizado el texto de la siguiente
manera:
En el captulo 1 se exponen varios de los trminos bsicos relacionados con el
almacenamiento de informacin en un computador y se dan a conocer cules son las
herramientas necesarias para la creacin de nuestros propios programas, para operar sobre
dicha informacin.
En el captulo 2 se introduce a los algoritmos, conociendo su significado, necesidad y
formas de representacin, todo esto con miras a utilizarlos como herramientas de apoyo en
el desarrollo de software.
Con el captulo 3 se empezar ya de lleno el desarrollo de la lgica de programacin,
apoyndose en la elaboracin de algoritmos, principalmente en forma de diagramas de
flujo. Aqu se estudian las diferentes estructuras e instrucciones que pueden aplicarse en un
estilo de programacin estructurada, ya que ms adelante, en el captulo 4, se aprender la
forma de codificar dichos algoritmos o diagramas de flujo en el lenguaje de programacinVisual C# y as poder visualizar las diferentes soluciones.
Ya con conocimientos de un lenguaje de programacin, en el captulo 5 estudiar los
procedimientos y las funciones, como mecanismos que permiten la reutilizacin de cdigo.
Para finalizar el texto, en el captulo 6 se dan a conocer algunas de las estructuras de datos
elementales, haciendo nfasis en los arreglos de una y dos dimensiones, y suimplementacin en el lenguaje C#.
-
7/21/2019 Fundamentos de Programacion Texto Guia
9/111
CAPTULO 1
CONCEPTOS BSICOS DE ALMACENAMIENTO DE
INFORMACIN
Mucho se habla de que la computadora est influyendo dentro de nuestra privacidad y
sustituyendo mano de obra, creando desempleo, etc. Estos aspectos no pueden discutirse,
sin conocer a fondo lo que es una computadora, pero a medida que se avanza en suconocimiento, es posible emitir un concepto inteligente. Hay que tener en cuenta que una
computadora no puede hacer algo a menos que el ser humano le diga qu hacer. Debemos
controlar la computadora y no ella a nosotros.
Desde un punto de vista simple, una computadora procesa datos y los convierte en
informacin significativa. Aunque a primera vista puedan parecer sinnimos datos e
informacin, existe diferencia entre ellos. Los datos constan de hechos en bruto y figuras.
La informacin, por otra parte, son datos procesados. La informacin tiene datos
significativos; los datos en su forma original (en bruto) no. La figura 1 muestra el modelo
fundamental de datos: los datos entran a la computadora (por una parte llamada entrada), la
computadora procesa esos datos y la informacin significativa es el resultado (se presentan
en una parte denominada salida).
Figura 1.Datos e informacin.
Los datos, por s mismos, no sirven para nada y no son tiles para las personas que los
manipulan y necesitan tomar decisiones con ellos. Por ejemplo, el presidente de una
Datos Computadora Informacin
Entrada Proceso Salida
-
7/21/2019 Fundamentos de Programacion Texto Guia
10/111
empresa no necesita un informe detallado de las nminas de los 2000 empleados de su
empresa si lo que desea es estudiar las tendencias o proyecciones en el tiempo de las citadasnminas o sueldos. En su lugar, el presidente necesitar ms informacin significativa, tal
como nminas totales por departamento, incrementos de la nmina durante el ao pasado,
nmina media del empleado comparada con otras empresas de la misma lnea de negocios,
etc. Una computadora que tenga almacenado un programa adecuado puede producir
rpidamente la informacin que el presidente necesita a partir de los datos en bruto de la
nmina.
El programa es la fuerza conductora de cualquier tarea que hace una computadora. Un
programa es una lista de instrucciones detalladas que indican a la computadora lo que ha de
hacer. La computadora no puede hacer nada sin un programa. Es el trabajo del
programador de escribir programas lo que influye en la computadora y tomar datos en bruto
y transformarlos en informacin significativa para el usuario final, como puede ser el caso
del presidente de la empresa, el objetivo final.
Los programas modernos producen informacin en muchos formatos. Estos programasreproducen msica, charlan con otras computadoras a travs de lneas telefnicas o
telfonos celulares y otros dispositivos externos. La salida se enva a la pantalla y a la
impresora que constituyen los dispositivos ms usuales para el acceso a la computadora; es
decir, los datos de entrada y los datos de salida pueden ser, realmente, cualquier cosa, texto,
dibujos, sonidos, etc.
Una computadora consta de dos partes bien diferenciadas, hardware y software. Elhardware consta de las partes fsicas, tangibles de la computadora. El software consta de
programas, tambin llamados aplicaciones, que contienen instrucciones que la computadora
ejecuta o corre.
Una computadora necesita tanto del hardware como del software para poder ser usada real
y prcticamente. El hardware de la computadora sin el software que le acompaa es como
si tuviramos un libro con pginas en blanco. La portada, contraportada y las pginas
-
7/21/2019 Fundamentos de Programacion Texto Guia
11/111
interiores constituyen el hardware del libro, pero el libro no es til sin ningn texto, el
software.
Otro trmino que suele utilizar al hablar de software es sistema, aunque la palabra sistema
por s sola no tiene nada que ver son el software. Un sistema es un conjunto de elementos
que interactan de alguna manera, como puede ser el sistema digestivo o el sistema solar.
Otro ejemplo de sistema, son los sistemas de informacin, sin que esto tampoco implique
un software. Por ejemplo, un sistema contable es un conjunto de mtodos y herramientas
que permiten mantener la informacin sobre los movimientos econmicos y los bienes de
una empresa, pero se pueden utilizar libros en papel para alcanzar el objetivo. Finalmente,
un sistema de informacin basado en computadora es la implementacin con herramientas
computacionales (programas y datos) de un sistema de informacin. Por lo tanto, como
sinnimo de software podemos utilizar sistema de informacin basado en computadora.
Por otro lado, los trminos programa y sistema suelen utilizarse indistintamente, pero no
est bien, generalmente, podemos decir que un sistema es un grupo de programas que
interactan para realizar ciertas tareas. Un programa es una unidad mucho ms pequea,independiente y sencilla que un sistema.
Esta unidad de aprendizaje est dedicada exclusivamente al software, por lo que no se
revisar la parte correspondiente al hardware, cuyo estudio se lleva a cabo en Fundamentos
de Computacin. En las secciones siguientes de este captulo se explican algunos
conceptos fundamentales para la creacin de su propio software.
1.1. Unidades bsicas de informacin en un computador
Bit.- Es la abreviatura de binary digit. Es una unidad de informacin que equivale a una
decisin binaria, o la designacin de uno de dos valores o estados posibles igualmente
probables. Se suele expresar como l o 0. Representa una unidad minscula de memoria
-
7/21/2019 Fundamentos de Programacion Texto Guia
12/111
que puede tener dos estados encendido, o apagado, donde el estado encendido se representa
mediante uno y el apagado mediante cero.
Byte.- Es un conjunto de ocho BITS consecutivos que se tratan como una sola entidad.
Tambin se le conoce como el nmero de BITS necesarios para representar un carcter en
la memoria de la computadora.
Campo.- Un campo es un espacio de almacenamiento para un dato en particular; es un
grupo de caracteres que se pueden tratar como una unidad de informacin simple. En las
bases de datos, un campo es la mnima unidad de informacin a la que se puede acceder; un
campo o un conjunto de ellos forman un registro, donde pueden existir campos en blanco,
siendo ste un error del sistema. En las hojas de clculo los campos son llamados celdas. La
mayora de los campos tienen atributos asociados a ellos. Por ejemplo, algunos campos son
numricos mientras otros almacenan texto, tambin vara el tamao de estos.
Adicionalmente, cada campo tiene un nombre.
Registro.-Es un conjunto de campos que se refieren a una misma actividad que se deseaprocesar; por ejemplo, toda la informacin sobre un artculo de inventario, la informacin
que contiene una lista de clase sobre un estudiante (cdigo, nombres, direccin, etc.).
Archivo.- Es una unidad de software utilizada para almacenar informacin en forma
masiva, relacionada con una determinada entidad, persona o cosas. Ejemplo: suponga que
la compaa A tiene 100 clientes y que se mantiene la siguiente informacin acerca de cada
uno de ellos: nombre, direccin, balance de crdito, descuento permitido. La informacinindividual de cada cliente se denomina registro y un conjunto de registros formar un
archivo, es decir, un archivo de datos de los registros de los clientes. Los archivos pueden
tenerse en varias formas y en diferentes medios de almacenamiento.
Base de datos.- Una base de datos o banco de datos es un conjunto de datos pertenecientes
a un mismo contexto y almacenados sistemticamente para su posterior uso. En este
sentido, una biblioteca puede considerarse una base de datos compuesta en su mayora por
-
7/21/2019 Fundamentos de Programacion Texto Guia
13/111
documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y
debido al desarrollo tecnolgico de campos como la informtica y la electrnica, la mayorade las bases de datos estn en formato digital (electrnico), que ofrece un amplio rango de
soluciones al problema de almacenar datos.
Existen programas denominados sistemas de gestin de bases de datos, abreviado SGBD
(DBMS), que permiten almacenar y posteriormente acceder a los datos de forma rpida y
estructurada
1.2. Terminologa bsica.
Como ya se mencionaba antes, una computadora realizar las tareas que nosotros le
indiquemos, pero para ello necesita de programas, por lo que surgen las preguntas: Quin
hace esos programas? De qu estn compuestos los programas? Cmo los hacen? Estas
dudas y otras se intentan responder en los prrafos siguientes.
El programador.
Un programador es, bsicamente, una persona que ejerce la programacin; es decir, que se
dedica a escribir programas para computadoras. Los programadores tambin reciben el
nombre de desarrolladores de software; tcnicamente podemos usar uno u otro trmino.
El programador se encarga de implementar algoritmos mediante un lenguaje de
programacin que pueda entender la computadora. Inicialmente, su funcin era resolver enforma particular los problemas de sistemas que surgan en las empresas, as como un
mecnico cambia o repara partes defectuosas. Con el tiempo se fueron incorporando a su
misin nuevas necesidades y tareas, hasta llegar al da de hoy, en que un programador o
grupo de ellos se ocupa de realizar aplicaciones completas y generar soluciones
empresariales y de otros tipos.
-
7/21/2019 Fundamentos de Programacion Texto Guia
14/111
Programacin y lenguaje de programacin.
La programacin, es la creacin de programas de computadora (cdigo mquina compilado
o interpretado); esto es, generar un conjunto concreto de instrucciones que una
computadora pueda ejecutar. El programa se escribe en un lenguaje de programacin,
aunque tambin se puede escribir directamente en lenguaje mquina, con cierta dificultad.
El lenguaje de programacin es un lenguaje que puede utilizarse para controlar el
comportamiento de una mquina, particularmente, una computadora. Consiste de un
conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus
elementos, respectivamente.
Un lenguaje de programacin permite a un programador especificar de manera precisa
sobre qu datos una computadora debe operar, cmo estos deben ser almacenados y
transmitidos, y qu acciones debe tomar bajo una variada gama de circunstancias. Todo
esto se realiza a travs de un lenguaje que intenta estar relativamente prximo al lenguaje
humano o natural.
Los principales tipos de lenguajes utilizados son tres:
Lenguajes mquina.
Lenguaje de bajo nivel (ensamblador).
Lenguajes de alto nivel.
Antes de continuar con estos tipos de lenguajes es necesario hablar de las instrucciones.
Los diferentes pasos (acciones) de un algoritmo se expresan en los programas como
instrucciones, sentencias o proposiciones (normalmente el trmino instruccin se suele
referir a los lenguajes mquina y de bajo nivel, reservando la sentencia o proposicin para
los lenguajes de alto nivel). Por consiguiente, un programa consta de una secuencia de
-
7/21/2019 Fundamentos de Programacion Texto Guia
15/111
instrucciones, cada una de las cuales especifica ciertas operaciones que debe ejecutar la
computadora.
La elaboracin de un programa requerir conocer el juego o repertorio de instrucciones del
lenguaje. Aunque ms adelante se analizarn con ms detalle las instrucciones,
adelantaremos los tipos fundamentales de instrucciones que una computadora es capaz de
manipular y ejecutar. Las instrucciones bsicas y comunes a casi todos los lenguajes de
programacin se pueden condensar en cuatro grupos:
Instrucciones de entrada/salida. Instrucciones de transferencia de datos e informacin
entre dispositivos perifricos (teclado, impresora, unidad de disco, etc.) y la memoria
central.
Instrucciones aritmtico-lgicas. Instrucciones que ejecutan operaciones aritmticas
(suma, resta, multiplicacin, divisin, potenciacin), lgicas (operaciones and, or ,not,
etc.).
Instrucciones selectivas. Instrucciones que permiten la seleccin de tareas alternativas
en funcin de los resultados de diferentes expresiones condicionales.
Instrucciones repetitivas. Instrucciones que permiten la repeticin de secuencias de
instrucciones un nmero determinado de veces.
Lenguajes mquina.- Los lenguajes mquina son aquellos que estn escritos en lenguajesdirectamente inteligibles por la mquina (computadora), ya que sus instrucciones son
cadenas binarias (cadenas o series de caracteres-dgitos- O y 1) que especifican una
operacin, y las posiciones (direccin) de memoria implicadas en la operacin se
denominan instrucciones de mquina o cdigo mquina. El cdigo mquina es el conocido
cdigo binario.
-
7/21/2019 Fundamentos de Programacion Texto Guia
16/111
Las instrucciones en lenguaje mquina dependen del hardware de la computadora y, por
tanto, diferirn de una computadora a otra. El lenguaje mquina de un PC (computadorapersonal) ser diferente de un sistema HP (Hewlett Packard), Compaq o un sistema de
IBM.
Las ventajas de programar en lenguaje mquina son la posibilidad de cargar (transferir un
programa a la memoria) sin necesidad de traduccin posterior, lo que supone una velocidad
de ejecucin superior a cualquier otro lenguaje de programacin.
Los inconvenientes -en la actualidad- superan a las ventajas, lo que hace prcticamente no
recomendables los lenguajes mquina. Estos inconvenientes son:
Dificultad y lentitud en la codificacin.
Poca fiabilidad.
Dificultad grande de verificar y poner a punto los programas.
Los programas slo son ejecutables en el mismo procesador (CPU, Unidad Central de
Proceso).
Para evitar los lenguajes mquina, desde el punto de vista del usuario, se han creado otros
lenguajes que permiten escribir programas con instrucciones similares al lenguaje humano
(por desgracia casi siempre ingls, aunque existen raras excepciones). Estos lenguajes se
denominan de alto y bajo nivel.
Lenguajes de bajo nivel.- Los lenguajes de bajo nivel son ms fciles de utilizar que loslenguajes mquina, pero, al igual, que ellos, dependen de la mquina en particular. El
lenguaje de bajo nivel por excelencia es el ensamblador (assembly languaje). Las
instrucciones en lenguaje ensamblador son instrucciones conocidas como nernotcnicos.
Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB,
DIV, etc.; en espaol, SUM, RES, DIV, etc.
Una instruccin tpica de suma sera:ADD M, N, P
-
7/21/2019 Fundamentos de Programacion Texto Guia
17/111
Esta instruccin poda significar: sumar el nmero contenido en la posicin de memoria M
al nmero almacenado en la posicin de memoria N y situar el resultado en la posicin dememoria P. Evidentemente,es mucho ms sencillo recordar la instruccin anterior con un
nemotcnico que su equivalente en cdigo mquina:
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la
computadora-en esto se diferencia esencialmente del lenguaje mquina-, sino que requiere
una fase de traduccin al lenguaje mquina.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el
programa traducido en lenguaje mquina se conoce como programa objeto, ya directamente
inteligible por la computadora.
El traductor de programas fuente a objeto es un programa llamado ensamblador
(assembler),existente en casi todas las computadoras (figura 2).
Figura 2.Programa ensamblador
No se debe confundir -aunque en espaol adoptan el mismo nombre- el programa
ensamblador(assembler), encargado de efectuar la traduccin del programa fuente escrito a
lenguaje mquina, con el lenguaje ensamblador (assemblylanguaje), lenguaje de
programacin con una estructura y gramtica definidas.
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes mquina de su
mayor facilidad de codificacin y, en general, su velocidad de clculo.
Programa fuente enLenguaje ensamblador
(assembly)
ProgramaENSAMBLADOR
(assembler)
Programa objeto encdigo mquina
-
7/21/2019 Fundamentos de Programacion Texto Guia
18/111
Los inconvenientes ms notables de los lenguajes ensambladores son:
Dependencia total de la mquina, lo que impide la transportabilidad de los programas
(posibilidad de ejecutar un programa en diferentes mquinas). El lenguaje ensamblador
del PC es distinto del lenguaje ensamblador del Apple Macintosh.
La formacin de los programas es ms compleja que la correspondiente a los
programadores de alto nivel, ya que exige no slo las tcnicas de programacin, sino
tambin el conocimiento del interior de la mquina.
Hoy da los lenguajes ensambladores tiene sus aplicaciones muy reducidas en la
programacin de aplicaciones y se centran en aplicaciones de tiempo real, control de
procesos y de dispositivos electrnicos,etc.
Lenguajes de alto nivel.- Los lenguajes de alto nivel son los ms utilizados por los
programadores. Estn diseados para que las personas escriban y entiendan los programasde un modo mucho ms fcil que los lenguajes mquina y ensambladores. Otra razn es
que un programa escrito en lenguaje de alto nivel es independiente de la mquina; esto es,
las instrucciones del programa de la computadora no dependen del diseo del hardware o
de una computadora en particular. En consecuencia, los programas escritos en lenguaje
de alto nivel son portables o transportables, lo que significa la posibilidad de poder ser
ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras; al
contrario que los programas en lenguaje mquina o ensamblador, que slo se puedenejecutar en un determinado tipo de computadora.
Los lenguajes de alto nivel presentan las siguientes ventajas:
El tiempo de formacin de los programadores es relativamente corto comparado con
otros lenguajes.
-
7/21/2019 Fundamentos de Programacion Texto Guia
19/111
La escritura de programas se basa en reglas sintcticas similares a los lenguajes
humanos. Nombres de las instrucciones, tales como READ, WRITE, CLEAR, etc.
Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del coste de los programas.
Transportabilidad.
Los inconvenientes se concretan en:
Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del
programa fuente para conseguir el programa definitivo.
No se aprovechan los recursos internos de la mquina, que se explotan mucho mejor en
lenguajes mquina y ensambladores.
Aumento de la ocupacin de memoria.
El tiempo de ejecucin de los programas es mucho mayor.
Al igual que sucede con los lenguajes ensambladores, los programas fuente tienen que ser
traducidos por los programas traductores, llamados en este caso compiladores e intrpretes.
Los lenguajes de programacin de alto nivel existentes hoy son muy numerosos. Algunos
ejemplos son: C/C++, Java, Visual BASIC, C#, PHP, JavaScript.
Traductores de lenguaje
Los traductores de lenguaje son programas que traducen a su vez los programas fuente
escritos en lenguajes de alto nivel a cdigo mquina.
-
7/21/2019 Fundamentos de Programacion Texto Guia
20/111
Los traductores se dividen en:
Compiladores.
Intrpretes.
Compilador.- Un compilador es un programa informtico que traduce un programa escrito
en un lenguaje de programacin a otro lenguaje de programacin, generando un programa
equivalente que la mquina ser capaz de interpretar. Usualmente el segundo lenguaje es
lenguaje de mquina, pero tambin puede ser simplemente texto. Este proceso de
traduccin se conoce como compilacin.
Un compilador es un programa que permite traducir el cdigo fuente de un programa en
lenguaje de alto nivel, a otro lenguaje de nivel inferior (tpicamente lenguaje de mquina).
De esta manera un programador puede disear un programa en un lenguaje mucho ms
cercano a cmo piensa un ser humano, para luego compilarlo a un programa ms manejable
por una computadora.
Intrprete o interpretador.- Intrprete o interpretador es un programa informtico capaz
de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intrpretes
se diferencian de los compiladores en que mientras estos traducen un programa desde su
descripcin en un lenguaje de programacin al cdigo de mquina del sistema, los primeros
(los intrpretes) slo realizan la traduccin a medida que sea necesaria, tpicamente,
instruccin por instruccin, y normalmente no guardan el resultado de dicha traduccin.
Usando un intrprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un
solo archivo fuente puede producir resultados iguales solo si es compilado a distintos
ejecutables especficos a cada sistema.
-
7/21/2019 Fundamentos de Programacion Texto Guia
21/111
Los programas interpretados suelen ser ms lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms flexiblescomo entornos de programacin y depuracin (lo que se traduce, por ejemplo, en una
mayor facilidad para reemplazar partes enteras del programa o aadir mdulos
completamente nuevos), y permiten ofrecer al programa interpretado un entorno no
dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que
se conoce comnmente como mquina virtual).
Comparando su actuacin con la de un ser humano, un compilador equivale a un traductor
profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua,
mientras que un intrprete corresponde al intrprete humano, que traduce de viva voz las
palabras que oye, sin dejar constancia por escrito.
A manera de resumen, y en trminos generales, podemos decir que el programa escrito en
un lenguaje de alto nivel se introduce en la mquina con un editor y se llama cdigo fuente;
el compilador lo traduce en lenguaje mquina y almacena el resultado en otro archivo
llamado cdigo objeto. El cdigo objeto se carga en la memoria principal de lacomputadora y lo ejecuta el CPU.
1.3. Tipos bsicos de informacin que maneja el computador
Los principales tipos de informacin, entre otros, que se manejan en una computadora son:
Numrica:es toda aquella informacin con o sin decimales (entera o real) con la cual sepueden hacer clculos aritmticos o matemticos.
Caracteres (alfanumrica):muchos procesos o programas no slo requieren de la
manipulacin de valores numricos, sino tambin de letras y smbolos especiales con
los cuales, lgicamente, no se pueden efectuar operaciones de clculo matemtico. Por
ejemplo: los nombres de personas.
-
7/21/2019 Fundamentos de Programacion Texto Guia
22/111
Lgica (booleana):Este tipo de informacin slo tiene dos posibles valores: falso o
verdadero. Al igual que el tipo de informacin anterior, ste tampoco puede serutilizado para efectuar clculos matemticos.
1.4. Forma interna de almacenamiento
Con el propsito de almacenar datos, una computadora consta de pequeos circuitos
electrnicos capaces de almacenar un bit. Estos circuitos son como pequeos interruptores
de luz que pueden estar en dos estados; uno para encendido y otro para apagado.
La memoria central o simplemente memoria (interna o principal) se utiliza para almacenar
informacin. Se divide a su vez en memoria RAM y memoria ROM. La memoria RAM
(Random Access Memory) es normalmente voltil, lo que significa que todo cuanto se
almacena o guarda en ella se pierde cuando se apaga la computadora. En general, la
informacin almacenada en memoria puede ser de dos tipos: las instrucciones de un
programa y los datos con los que operan las instrucciones. Por ejemplo, para que un
programa se pueda ejecutar, debe ser situado en la memoria central, en una operacin
denominada carga del programa. Despus, cuando se ejecuta el programa, cualquier dato a
procesar por el programa se debe llevar a la memoria mediante las instrucciones del
programa. En la memoria central hay tambin datos diversos y espacio de almacenamiento
temporal que necesita el programa cuando se ejecuta con el fin de poder funcionar. Los
programas y datos se almacenan en RAM mientras se est utilizando la computadora.
Con el objetivo de que el procesador pueda obtener los datos de la memoria central msrpidamente, la mayora de los procesadores actuales utilizan con frecuencia una memoria
denominada cach, que sirve para almacenamiento intermedio de datos entre el procesador
y la memoria principal. La memoria cach se incorpora casi siempre al procesador.
La memoria central de una computadora es una zona de almacenamiento organizada en
centenares de millones de unidades de almacenamiento individual o celdas. La memoria
central consta de un conjunto de celdas de memoria (estas celdas o posiciones de memoria
-
7/21/2019 Fundamentos de Programacion Texto Guia
23/111
se denominan tambin palabras, aunque no guardan analoga con las palabras del lenguaje).
El nmero de celdas de memoria de la memoria central, dependiendo del tipo y modelo decomputadora, hoy en da, suele ser millones o miles de millones. Cada celda de memoria
consta de un cierto nmero de bits (normalmente 8, un byte).
La unidad elemental de memoria se llama byte (octeto), y como se ya se explicaba en un
apartado anterior, tiene la capacidad de almacenar un carcter de informacin, y est
formado por un conjunto de unidades ms pequeas de almacenamiento denominadas bits,
que son dgitos binarios (0 o 1).
Direcciones de memoria.
Existen dos conceptos importantes asociados a cada celda o posicin de memoria: su
direccin y su contenido. Cada celda o byte tiene asociada una nica direccin que indica
su posicin relativa en memoria y mediante la cual se puede acceder a la posicin para
almacenar o recuperar informacin. La informacin almacenada en una posicin de
memoria es su contenido. La figura 3 muestra una memoria de computadora que consta de1000 posiciones con direcciones de 0 a 999. El contenido de estas direcciones o posiciones
de memoria se llaman palabras, de modo que existen palabras de 8, 16, 32 y 64 bits. Por
consiguiente, si trabaja con una mquina de 32 bits, significa que en cada posicin de
memoria de su computadora puede alojar 32 bits, es decir 32 dgitos, bien ceros o unos.
Siempre que una nueva informacin se almacena en una posicin, se destruye (desaparece)
cualquier informacin que en ella hubiera y no se puede recuperar. La direccin espermanente y nica, el contenido puede cambiar mientras se ejecuta un programa.
La memoria central de una computadora puede tener desde unos centenares de millares de
butes hasta millones de bytes. Como el byte es una unidad elemental de almacenamiento,
se utilizan mltiplos para definir el tamao de la memoria central (Kilobyte, Megabyte,
Gigabyte, Terabyte)
-
7/21/2019 Fundamentos de Programacion Texto Guia
24/111
Direcciones Contenido
999998
997 01000001 A
.
.
.
3
2 00000101 5
1 00000011 3
0 00000010 2
Figura 3.Memoria central de una computadora
1.5. Tipos de campos
Para que una computadora pueda hacer clculos debe tener almacenados en la memoria
principal los valores con los cuales ha de trabajar; por lo tanto, se necesita un espacio
interno para guardar esos valores en forma temporal.
Esos espacios internos de la memoria son grupos de bits denominados campos; a stos se
les asigna una nica direccin de memoria y su capacidad o valor mximo que se puede
almacenar en ellos depender del tamao del grupo.
Los campos pueden ser de dos clases: variables y constantes.
Campos variables.
Son todos aquellos campos que permiten que el contenido almacenado en el espacio de
memoria asignado, pueda ser alterado en el transcurso de la ejecucin del programa; o sea,
en un momento tiene un valor y ms adelante puede tener otro distinto, pero nunca ms de
-
7/21/2019 Fundamentos de Programacion Texto Guia
25/111
un valor al mismo tiempo. Esta clase de campos, que en lo sucesivo se denominarn
simplemente variables, se identifican por un nombre con el cual actan durante todo eltranscurso del proceso, por lo tanto, deben ser nicos. El nombre dado a la variable
constituye un IDENTIFICADOR, y debe iniciar con una letra seguida, si se quiere, de
letras o dgitos. Es el programador quien da nombre a sus variables teniendo en cuenta la
regla anterior.
Ejemplos de nombres de variables:
A B1 C1AZ NOMBRE SALARIOHORA
Es buena prctica de programacin utilizar nombres de variables significativas
(nemotcnicas), es decir, que sugieran lo que ellas representan, ya que esto hace que el
algoritmo, y por ende el programa, sea ms legible y fcil de comprender.
Si se quiere dar nombre a una variable que va a almacenar un pago, por ejemplo,
perfectamente lo podemos llamar K, pero sera ms evidente si la denominamos PAG oms directamente PAGO. Tampoco estos nombres deben ser tan excesivamente largos
debido a que dificultan la escritura del algoritmo.
Al momento de dar el nombre a las variables tampoco se pueden emplear las palabras
reservadas (propias de cada lenguaje de programacin) pues tienen un sentido definido,
como por ejemplo if, while, else, switch, etc.
Para que una variable est perfectamente definida, habr que especificar: su nombre, el tipo
de dato (numricos, alfanumrico, booleano) y el valor que va tomar en un principio
(inicializacin).
-
7/21/2019 Fundamentos de Programacion Texto Guia
26/111
Campos constantes.
Es otra forma de manejar el grupo de elementos asignados en memoria, pero que a
diferencia de las variables su contenido no puede cambiar durante el proceso. Esta clase de
campos se identifica directamente por la informacin que tiene almacenada y es asignada
desde el momento en que se hace la compilacin. Pueden existir campos constantes, o
simplemente constantes, de tipo numrico, carcter o lgico. Por ejemplo:
40,6 ANAISABEL -10 .V.
Ejercicios propuestos
1. Con sus propias palabras, explique cada uno de los siguientes trminos. Si es
necesario consulte otras fuentes.
Informtica
Computacin
Ingeniera de Sistemas
Dato
Informacin
Sistema
Sistema de informacin
Programa
Lenguaje de programacin Instruccin
Cdigo fuente
Cdigo (programa) objeto
Lenguaje mquina
Lenguaje ensamblador
Traductor
Compilador
-
7/21/2019 Fundamentos de Programacion Texto Guia
27/111
Intrprete
Ensamblador Editor
Campo
Registro
Archivo
Base de datos
Variable
Constante
Direccin de memoria
Bit
Byte
2. Qu tipos de datos se conoce? Escribir una breve descripcin y cinco ejemplos de
cada uno de ellos.
3. Cul es la diferencia existente entre variables y constantes?
4.
Hablar sobre los componentes de una variable5.
Indicar cules de los siguientes identificadores son vlidos o no, explicando el porque
de su afirmacin:
a)YROJO
b) X-ROJO
c) 2blanco
d) N/4
e) Promedio
f) Suma *10
g) Total suma
h) Nmero_alumnos
i) X$
j) _alumnos
k) x1_y3
-
7/21/2019 Fundamentos de Programacion Texto Guia
28/111
l) Promedio_Notas
6. Determinar cules de las siguientes constantes son vlidas o no, indicando
el porqu de su afirmacin;
a) 123
b) 12.4
c) 0.1234
d)Verdaderoe) Falso
f) a
g) Ab
h) Buenos das!&%$.
i) *
j) @
k) 3.141592l) 0.00001
-
7/21/2019 Fundamentos de Programacion Texto Guia
29/111
CAPTULO 2
ALGORITMOS
2.1. Problemas y modelos
Una gran parte del trabajo del programador es precisamente saber qu problema se va a
resolver. Al abordar los problemas, por lo general, stos no tienen una especificacinsimple y precisa de ellos. De hecho, problemas como crear una receta digna de un
gastrnomo o preservar la paz mundial pueden ser imposibles de formular de manera que
admitan una solucin por computador; aunque se crea que el problema puede resolverse en
un computador, es usual que la distancia entre varios de sus parmetros sea considerable.
A menudos slo mediante experimentacin es posible encontrar valores razonables para
estos parmetros.
Si es posible expresar ciertos aspectos de un problema con un modelo formal, por lo
general resulta beneficioso hacerlo, pues una vez que el problema se formaliza, pueden
buscarse soluciones en funcin de un modelo preciso y determinar si ya existe un programa
que resuelve tal problema; aun cuando no sea tal el caso, ser posible averiguar lo que se
sabe acerca del modelo y usar sus propiedades como ayuda para elaborar una buena
solucin.
Se puede recurrir a casi cualquier rama de las matemticas y de las ciencias para obtener un
modelo de cierto tipo de problemas. En el caso de problemas de naturaleza esencialmente
numrica, esto puede lograrse a travs de conceptos matemticos tan familiares como las
ecuaciones lineales. Tratndose de problemas de procesamiento de smbolos y textos, se
pueden construir modelos con cadenas de caracteres.
-
7/21/2019 Fundamentos de Programacion Texto Guia
30/111
Cuando ya se cuenta con un modelo matemtico adecuado del problema, puede buscarse
una solucin en funcin de ese modelo. El objetivo inicial consiste en hallar una solucinen forma de algoritmo. Posteriormente, este algoritmo puede ser implementado en algn
lenguaje de programacin obtenindose un programa que resuelve nuestro problema
planteado.
2.2. Pasos para la solucin de un problema a travs del computador
Resumiendo lo sealado en el apartado anterior, el proceso de resolucin de un problema
con una computadora conduce a la escritura de un programa y a su ejecucin en la misma.
Aunque el proceso de disear programas es esencialmente- un proceso creativo, se puede
considerar una seria de fases o pasos comunes, que generalmente deben seguir los
programadores.
Las fases de resolucin de un problema con computadora son:
Anlisis: el problema se analiza teniendo presente la especificacin de los requisitos
dados por el cliente o por la persona que encarga el problema. Esta fase requiere una
clara definicin, donde se contemple exactamente lo que debe hacer el programa y el
resultado o solucin deseada.
Diseo: una vez analizado el problema, se disea una solucin que conducir a un
algoritmo que resuelva el problema (diseo del algoritmo); es decir, cmo el programa
resolver la tarea solicitada. Tenga presente que el diseo del algoritmo esindependiente del lenguaje de programacin.
Codificacin (implementacin): la solucin se escribe en la sintaxis del lenguaje de
alto nivel y se obtiene un programa. Es altamente recomendable acompaar la
codificacin de una documentacin interna; es decir, incluir dentro del cdigo
comentarios que ayuden a la comprensin del mismo. El programa no los necesita y
-
7/21/2019 Fundamentos de Programacion Texto Guia
31/111
sern ignorados, pero sirven para hacer los programas ms fciles de comprender.
Recuerde que como programador debe escribir cdigos sencillos.
Compilacin, ejecucin, verificacin y depuracin: el programa se ejecuta, se
comprueba rigurosamente y se eliminan todos los errores (bugs) que puedan aparecer.
Cuando ejecuta el programa se pueden producir tres tipos de errores: de compilacin
(uso incorrecto de las reglas del lenguaje), de ejecucin (instrucciones que la
computadora puede comprender pero no ejecutar) y lgicos (se producen en la lgica
del programa y la fuente del error suele ser el algoritmo).
Mantenimiento: el programa se actualiza y modifica cada vez que sea necesario, de
modo que se cumplan todas las necesidades de cambio de sus usuarios.
Documentacin: escritura de las diferentes fases del ciclo de vida del software,
esencialmente el anlisis, diseo y codificacin, unidos a manuales de usuario y de
referencia, as como normas para el mantenimiento.
2.3. Algoritmos
Si se analizan los pasos para la solucin de un problema a travs de la computadora se nota
que el algoritmo es bastante importante, y a l se debe llegar cuando se ha entendido el
problema y se ha hecho un anlisis correcto de las caractersticas de ste.
Es comn ver estudiantes que por ligereza omiten uno o varios pasos y luego se dan cuentade que han invertido su tiempo en lo equivocado, porque no han verificado si lo que estn
haciendo es correcto o no.
Si no se est seguro de la implementacin de uno o algunos de los pasos, es preferible pedir
ayuda especializada para aclarar las dudas que surjan.
-
7/21/2019 Fundamentos de Programacion Texto Guia
32/111
La palabra algoritmo es muy antigua; toma su nombre del famoso matemtico y astrnomo
rabe Alkhwarzmi (siglo IX), quien escribi un tratado sobre manipulacin de nmeros yecuaciones
Segn el diccionario, un algoritmo es un conjunto ordenado de operaciones matemticas
que permiten hallar la solucin de un problema.
Un algoritmo es un conjunto concreto de pasos o acciones que se deben realizar
ordenadamente para llegar a un fin determinado (solucin de un problema, obtencin de
una respuesta intermedia o realizacin de una tarea) de cualquier problema.
Ahora que se conoce la definicin de algoritmo, se puede redefinir el trmino programa
como la implementacin de un algoritmo determinado en un lenguaje de programacin. El
conocimiento del concepto de algoritmo es fundamental para todo programador ya que, en
la tarea diaria de escribir programas para resolver problemas, antes debemos discutir y
entender cul es el algoritmo que los resuelve. Muchas veces, como programadores, nos
encontraremos siguiendo los pasos de un algoritmo con lpiz y papel para entender sufuncionamiento o probar su eficacia.
Caractersticas de los algoritmos.
Las caractersticas fundamentales que de un algoritmo son:
Entrada. La entrada hace referencia a la informacin proporcionada al algoritmo, la
cual debe sufrir un proceso para obtener los resultados. Un algoritmo tiene cero o ms
datos de entrada. Estos valores le son dados por medio de una instruccin o mandato
que se debe cumplir al ejecutarse el algoritmo. Si no existen datos de entrada es porque
una o ms instrucciones generan los valores de partida, de los que har uso el algoritmo
para producir los datos o valores de salida.
-
7/21/2019 Fundamentos de Programacion Texto Guia
33/111
Salida. Todo algoritmo debe proporcionar uno o ms valores como resultado, una vez
se ha ejecutado la secuencia de pasos que lo conforman.La salida es la respuesta dadapor el algoritmo o el conjunto de valores que el programador espera se le
proporcionen.Estos resultados pueden ser de cualquier tipo: uno o ms valores
numricos, valores lgicos o caracteres, etc. La facilidad o complejidad de un algoritmo
no la determinan la cantidad de datos que se desean obtener. Un algoritmo puede tener
un alto grado de complejidad y, sin embargo, producir un solo valor como resultado.
Limitado o finito.Todo algoritmo debe tener un nmero de instrucciones que limitan el
proceso en algn momento; es decir, la ejecucin debe detenerse. No puede existir un
algoritmo, por muy grande que sea o por muchos resultados que produzca, que se quede
en forma indefinida ejecutando sus instrucciones o repitiendo la ejecucin de un
subconjunto de ellas.
Claridad (preciso).Todo el conjunto de pasos debe ser entendible y factible de realizar,
de tal manera, que al hacer un seguimiento del algoritmo ste produzca siempre los
resultados requeridos. No puede entonces existir incertidumbre en las acciones a tomarcuando se sigue la lgica (flujo del programa) del algoritmo.
Eficacia. Los pasos del algoritmo deben ser suficientes para lograr el cometido del
algoritmo, es decir, el algoritmo debe ser eficaz.
Formas de representacin.
Como los algoritmos no estn relacionados nicamente con la programacin de
computadoras, es necesario contar con mtodos independientes para expresarlos y, por lo
tanto, transmitirlos a otras personas. En la actualidad existen varias formas de expresar un
algoritmo, como son, el lenguaje natural, el pseudocdigo, los diagramas de flujo, algunos
diagramas del lenguaje de modelado UML, etc.
-
7/21/2019 Fundamentos de Programacion Texto Guia
34/111
Descripcin narrada. Es la descripcin normal de un algoritmo, utilizando el lenguaje
natural de las personas, sin utilizar ninguna tcnica previamente definida.
Ejemplo:Enumerar los pasos para calcular suma de dos nmeros.
1. Inicio.
2. Obtener (leer) el primer y el segundo nmero.
3. Sumar los dos nmeros.
4. Almacenar (asignar) el resultado anterior en la variable suma.
5. Presentar (mostrar) el valor de la suma.
6. Fin
Diagrama de flujo. Es la representacin de un algoritmo utilizando un conjunto de
figuras geomtricas (rombos, cuadrados, rectngulos, crculos, etc.) unidas y
relacionadas por medio de segmentos de recta, con flechas que determinan el orden
lgico de un algoritmo, en donde la forma de una figura geomtrica indica la accin a
seguir.
Figura 4. Smbolos de un diagrama de flujo.
Inicio / fin
Entrada de datos
Proceso
Pantalla
Impresora
Decisin
Conector
-
7/21/2019 Fundamentos de Programacion Texto Guia
35/111
Los smbolos o bloques para diagramar existen en gran cantidad y de diversas formas.
En la figura 4, se exponen algunos de ellos.
Ejemplo: Elaborar un diagrama de flujo para calcular la suma de dos nmeros.
Pseudocdigo. Consiste en una serie de normas sintcticas y gramaticales, parecidas a
las de un lenguaje de programacin, pero sin tanta rigidez, y con cierta libertad en el
uso y en la combinacin de las palabras.
Ejemplo: Disear un algoritmo utilizando pseudocdigos para calcular suma de dos
nmeros.
Inicio
Entero N1, N2, SUMA;
Leer N1;
Leer N2;
SUMA = N1 + N2;
Escribir SUMA;
Fin
Inicio
N1, N2
SUMA = N1 + N2
SUMA
Fin
-
7/21/2019 Fundamentos de Programacion Texto Guia
36/111
2.4. Valor de los smbolos en un modelo algortmico
Hasta debe estar clara la importancia de los algoritmos en la resolucin de problemas a
travs de una computadora, pero como habr podido observar en los ejemplos anteriores, en
un algoritmo aparecen diferentes smbolos (las variables, por ejemplo), por lo que en esta
seccin nos ocuparemos de ellos, de su significado y cmo utilizarlos.
Datos y tipos de datos.
El primer objetivo de toda computadora es el manejo de datos e informacin. Estos datos
pueden ser las cifras de ventas de un supermercado o sus calificaciones de clase. La
mayora de las computadoras pueden trabajar con varios tipos (modos) de datos. Los
algoritmos y programas correspondientes operan sobre estos tipos de datos.
La accin de las instrucciones ejecutables de las computadoras se reflejan en cambios en
los valores de las partidas de datos. Los datos de entrada se transforman por el programa,
despus de las etapas intermedias, en datos de salida.
En el proceso de resolucin de problemas el diseo de la estructura de datos es tan
importante como el diseo del algoritmo y del programa que se basa en el mismo.
Existen dos tipos de datos. Simples (sin estructura) y compuestos (estructurados). Los
datos estructurados se estudian en el captulo 6 y son conjuntos de partidas de datos simples
con relaciones definidas entre ellos.
Los distintos tipos de datos se representan en diferentes formas en la computadora. A nivel
de mquina, un dato es un conjunto o secuencia de bits. Los lenguajes de alto nivel
permiten basarse en abstracciones e ignorar los detalles de la representacin interna.
Aparece el concepto de tipo de datos, as como su representacin. Los tipos de datos
simples son los siguientes:
-
7/21/2019 Fundamentos de Programacion Texto Guia
37/111
Datos numricos. Es el conjunto de valores numricos. Estos pueden representarse en
dos formas distintas:
Numrico entero (int, integer). Es un subconjunto finito de los nmeros
enteros (negativos, cero, positivos). Ejemplos: 5, 0, -10, 1234, -9876.
El entero mximo y mnimo que se puede representar depende de la cantidad de
bits (o de bytes) que se utilicen (tamao), as (tabla 1):
Tamao
(bits)
Rango de valores
Sin signo Con signo
8 0 a 255 -128 a +127
16 0 a 65535 -32768 a +32767
32 0 a 4294967295 -2147483648 a +2147483647
Tabla 1. Tipo de datos enteros.
Por ejemplo, si necesita una variable para guardar la edad de una persona
bastar con utilizar un tipo de dato entero de 8 bits, pero si necesita ingresar su
sueldo debera cambiar a una de 16 bits.
Numrico real (punto flotante). El tipo real consiste en un subconjunto de los
nmeros reales. Los nmeros reales siempre tienen un punto decimal y pueden
ser positivos o negativos. Un nmero real consta de un entero y una partedecimal. Los siguientes ejemplos son nmeros reales: 0.05; 3.1416; -12.0;
3456.0; -2.71828.
Otra forma de representar los nmeros reales es la notacin exponencial o
cientfica y se utiliza para nmeros muy grandes o muy pequeos. Ejemplos:
0.00045 = 0.45 x 10-3 = 0.45E-3
-
7/21/2019 Fundamentos de Programacion Texto Guia
38/111
-2345678 = -0.2345678 x 107= - 0.2345678E+7
Los tipos de datos reales a su vez pueden clasificarse en dos, como se puede
apreciar en la tabla 2:
TipoTamao
(bits)Intervalo aproximado
Simple 32 -3.4 10 a +3.4 10
Doble 64 5,0 10 a 1,7 10
Tabla 2.Tipos de datos reales.
Datos tipo carcter y texto (cadena). Los datos de tipo carcter contienen un solo
carcter, que puede ser:
Las letras del alfabeto de la A-a a la Z-z.
Los dgitos del 0 al 9.
Caracteres especiales como: +, -, *, /, %, etc.
Los datos de tipo carcter se representan en muchos lenguajes de programacin
comenzando y terminando con el apstrofe ( ) de la siguiente manera: A, 7, $,
etc.
Una cadena de caracteres es una sucesin de caracteres que se encuentran delimitadospor un apstrofe o por comillas dobles, segn el tipo de lenguaje de programacin. La
longitud de una cadena de caracteres es el nmero de ellos comprendidos entre los
separadores o limitadores. Ejemplos: DIOS; SER COMO EL AGUIL.; ; .
Lgicos. El tipo lgico tambin denominado booleano- es aquel que slo puede tomar
uno de dos valores: verdadero (true) o falso (false). Este tipo de datos se utiliza para
representar alternativas (si/no) a determinadas condiciones.
-
7/21/2019 Fundamentos de Programacion Texto Guia
39/111
Operadores y expresiones.
Todos los smbolos que representan enlaces entre cada uno de los argumentos (operandos)
que intervienen en una operacin se llaman operadores, y se utilizan para construir
expresiones.
Las expresiones son combinaciones de constantes, variables, operadores, parntesis y
nombres de funciones especiales. Las mismas ideas son utilizadas en notacin matemtica
tradicional; por ejemplo: * r2.
Cada expresin toma un valor que se determina tomando los valores de las variables y
constantes implicadas y la ejecucin de las operaciones indicadas.
Los operadores pueden ser:
Aritmticos. Para tratar los nmeros se utilizan operadores aritmticos, que, junto conlas variables numricas forman expresiones aritmticas. La tabla 3 resume los
operadores aritmticos:
Smbolo Significado
+ Suma
- Resta
* Multiplicacin/ Divisin (real)
^ Potenciacin
DIV ( \ ) Divisin (entera)
MOD ( % ) Resto de la divisin
Tabla 3.Operadores aritmticos.
-
7/21/2019 Fundamentos de Programacion Texto Guia
40/111
Ejemplos:
Expresin Resultado423 + 5 428
423 - 5 418
12 * 11 132
23 / 5 4.6
2 ^ 4 16
23 \ 5 4
23 % 5 3
Relacionales.Se utilizan para formar expresiones booleanas; es decir, expresiones que
al ser evaluadas producen un valor booleano. En la tabla 4 se renen los distintos
operadores relacionales.
Smbolo Significado
< Menor que
> Mayor que
= = Igual que
= Mayor o igual que
! = () Diferente
Tabla 4.Operadores relacionales.
Ejemplos:
Expresin Resultado
4 < 5 True
4 > 5 False
2 * 3 = = 5 +1 True
-2
-
7/21/2019 Fundamentos de Programacion Texto Guia
41/111
-1 >= 0 False
2 ! = -2 True
Lgicos.Combinan sus operandos de acuerdo con las reglas del clculo proposicional
(revisar U. A. Lgica Matemtica) con el fin de producir un nuevo valor que se
convierta en el valor de la expresin. La tabla 5 define los operadores lgicos.
Smbolo Significado
AND Conjuncin
OR Disyuncin
NOT Negacin
Tabla 5.Operadores lgicos.
Ejemplos:
Expresin Resultado
True AND True True
False OR False False
NOT False True
Prioridad de operadores.
Antes de evaluar una expresin se debe tener presente que estas se deben sujetar a una
jerarqua de operadores, esto evita que se produzcan ambigedades en la ejecucin de los
clculos. Con cada operador se asocia una prioridad; los operadores que tienen mayor
prioridad se procesan primero y si existen varios operadores con la misma prioridad se
contina procesando de izquierda a derecha.
La prioridad de los operadores a la hora de evaluar cualquier expresin es:
-
7/21/2019 Fundamentos de Programacion Texto Guia
42/111
Parntesis. Potencias.
Productos y divisiones.
Sumas y restas.
Relacionales.
Lgicos.
Funciones internas, incorporadas o estndar
Conforme aumenta la complejidad de los problemas que se trata de resolver por medio de
algoritmos y posteriormente a travs de programas, es necesario contar con operadores que
permitan realizar una serie de operaciones que van ms all de las operaciones bsicas de
potenciacin, multiplicacin, divisin, suma y resta.
Los operadores que se utilizan para efectuar operaciones de tipo complejo tales como: raz
cuadrada, valor absoluto, redondeo, etc., se denominan funciones internas, estndar o
incorporadas y pueden recibir como argumentos1 expresiones, variables o constantes de
tipo real o entero.
A continuacin se presenta un resumen de las principales funciones internas:
FUNCION DESCRIPCIN TIPO DE DATODEL
ARGUMENTO (X)
TIPO DE DATODEL
RESULTADOabs (x) Valor absoluto de x Entero o real Entero o realarctan (x) Arco tangente de x Entero o real Realcos (x) Coseno de x Entero o real Realexp (x) Exponencial de x Entero o real Realln (x) Logaritmo natural de x Entero o real Reallog (x) Logaritmo en base 10 de x Entero o real Realround (x) Redondeo de x Real Entero
1Se denomina argumento al valor que se le pasa a una funcin con el fin de que dicha funcin pueda cumplir
con su objetivo.
-
7/21/2019 Fundamentos de Programacion Texto Guia
43/111
sen (x) Seno de x Entero o real Realsqr (x) Cuadrado de x Entero o real Realsqrt (x) Raz cuadrada de x Entero o real Realtan (x) Tangente de x Entero o real Real
Algunos ejemplos de utilizacin de funciones internas son:
EJEMPLO RESULTADOabs (-3) 3arctan (12.34) 1.899357cos (0.7854) 0.7061055
exp (3.1) 22.197913in (20) 2.9957323log (15) 1.176091259round (3.75) 4sen (0.5236) 0.5000011sqr (6.2) 38.44sqrt (15.4) 3.9242834tan (15) -0.8559934
Evaluacin de expresiones.
Una vez que se conocen las reglas de prioridad asociadas con los operadores, la evaluacin
de las expresiones es muy fcil, simplemente se evala la expresin de izquierda a derecha
para cada clase de operadores que estn presentes.
Adems se debe considerar la necesidad del uso de parntesis para agrupar trminos de una
expresin, ejecutando primero los parntesis ms internos y luego los parntesis ms
externos.
-
7/21/2019 Fundamentos de Programacion Texto Guia
44/111
Ejercicios resueltos
Escribir un algoritmo que muestre los pasos necesarios para cambiar una llanta
pinchada de un carro. Una posible solucin sera:
1. Iniciar.
2. Sacar la llanta y herramientas de la maleta del carro.
3. Sacar la llanta pinchada.
4. Colocar la llanta buena.
5. Guardar la llanta pinchada y la herramienta.
6. Subirse al carro.
7. Reanudar el viaje.
8. Terminar.
Si se tiene la expresin: A * * 2 / 5 * B - 5 y los valores almacenados en A y B son 5 y
20, respectivamente, evaluar dicha expresin.
5 * * 2 = 25
25 / 5*20 = 100
100 - 5 = 95
Escriba la siguiente expresin algebraica como expresin algortmica:
Solucin:
(A + B)/(C - A) + 20
Si las variables X, Z y L tienen almacenados los valores 23, 47 y V (true),
respectivamente, escriba el resultado de cada una las expresiones:
-
7/21/2019 Fundamentos de Programacion Texto Guia
45/111
Expresin Resultado
(X > Z) OR (Z> 20) V(X < Z) AND ( ! (Z > 20)) F
( Z > 50 ) AND L F
! L F
(Z > 100) AND (X< 3) AND ( ! L ) F
Ejercicios propuestos
1) Haga un procedimiento que describa los pasos para cruzar una calle por un puente
peatonal.
2) Describa los pasos necesarios para llevar una amiga(o) al cine.
3) Describa los pasos para cambiar una bombilla quemada.
4) Escribir un algoritmo para la bsqueda de una palabra en un diccionario.
5) Escribir un algoritmo para realizar un depsito bancario
Considere dos casos:
Sobre una Cuenta de Ahorro
Sobre una Cuenta Corriente
6) Escribir un algoritmo para encender un computador
7) Elabore un procedimiento que muestre los pasos necesarios para hacer una llamada
telefnica, donde no se sabe el nmero del telfono, pero s el nombre de la persona.
8) Haga un procedimiento que muestre los pasos para cambiar la llanta pinchada de una
bicicleta.
9) Muestre los pasos necesarios para hacer un desayuno de huevos duros, hasta servirlos.10)Obtener el resultado de las siguientes expresiones:
a) 4.5/2 (2+4)
b) 8 / 3 div 4 2
c) 6 * -(2 9)/3
d) round (5 + 4 * mod 5 + abs (2 *3 + (6 div 2)))
e) 6/3*2/ -A/sqr(3)/3n B/2*4+(7div C)+(7 Mod C) Si A=4,B=7 y C = 2
f) (1.56)
-
7/21/2019 Fundamentos de Programacion Texto Guia
46/111
g) (4 es impar) y (`A >`B) o (5>2) y no ((2>3) y (4=z+(sqrt(49)mod4)) Si x vale 7 y z= round (ln(20))
11)Escriba las siguientes expresiones algebraicas como expresiones algortmicas:
12)Escriba las siguientes expresiones algortmicas como expresiones algebraicas:
13)Si el valor interno de la variable A = 4, el de B = 5, de C = 1. Muestre cules son los
valores impresos en el siguiente algoritmo.
INICIO
X = B * A - B **2/4 * C;
Y = A * B/3 ** 2;
Z = (((B + C) /2 * A + 10) * 3 * B) 6;
Escribir X, Y, Z;
FIN_INICIO
14)Haga un seguimiento del siguiente algoritmo y diga qu valores se muestran en las
variables P, R y S. (Use los valores definidos en 9)
INICIO
P = A ** (1/2) ** B;
R = A * B + A ** (1/2);
S = B * A - B ** 2 / 4 * C;
Escribir P, R, S;
FIN_INICIO
a X YZ b X YZ
X Y c X Xc d
d b b ac
a e f A BC D
g A BCDE
. . .
. ( )
. . ( )
. ( )
2 2
23
3 2
4 35
4 4 2 8
4
243
+ +
+ + +
+
a B X Y b X X
c A B C A d X Y Y
. * *2 * . * * *2 * *3 *
. ( ) / ( ) . * * *( / )
+ +
5 5
1 2
-
7/21/2019 Fundamentos de Programacion Texto Guia
47/111
CAPTULO 3ESTRUCTURAS E INSTRUCCIONES EN LA PROGRAMACIN
ESTRUCTURADA
En la actualidad, dado el tamao considerable de las memorias centrales y las altas
velocidades de los procesadores, el estilo de escritura de los programas se vuelve una de las
caractersticas ms sobresalientes en las tcnicas de programacin. La legibilidad de los
algoritmos y posteriormente de los programas exige que su diseo sea fcil de comprendery su flujo lgico fcil de seguir. La programacin modular ensea la descomposicin de un
programa en mdulos ms simples de programar, y la programacin estructurada permite la
escritura de programas fciles de leer y modificar. En un programa estructurado el flujo
lgico se gobierna por las estructuras de control bsicas:
1. Secuenciales.
2. Seleccin (condicin).
3. Repetitivas (iterativas).
En este captulo se introducen los tres tipos estructuras, representando losa algoritmos
mediantepseudocdigo y diagramas de flujo, aunque se presta ms atencin a los segundos.
El trmino flujo de control se refiere al orden en que se ejecutan las sentencias del
programa. Otros trminos utilizados son secuenciacin y control de flujo. A menos que se
especifique expresamente, el flujo normal de control de todos los programas es el
secuencial. Este trmino significa que las sentencias se ejecutan en secuencia, una despus
de otra, en el orden en que se sitan dentro del programa. Las estructuras de seleccin,
repeticin e invocacin permiten que el flujo secuencial del programa sea modificado en un
modo preciso y definido con anterioridad. Como se puede deducir fcilmente, las
estructuras de seleccin se utilizan para seleccionar cules sentencias se han de ejecutar a
-
7/21/2019 Fundamentos de Programacion Texto Guia
48/111
continuacin y las estructuras de repeticin (repetitivas o iterativas) se utilizan para repetir
un conjunto de sentencias.
3.1. Algoritmos bsicos
Como ya se indicaba antes, la forma ms elemental de escribir un programa es
secuencialmente. Una estructura secuencial es aquella en la que la accin (instruccin)
sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la
entrada de la siguiente y as sucesivamente hasta el final del proceso. Su representacin se
muestra en la figura 5.
Figura 5. Estructura secuencial.
Como parte del algoritmo encontraremos algunos bloques constructivos. A continuacin se
presentan algunos de ellos para el caso de disear un diagrama de flujo:
Asignacin. Se utiliza para indicar una accin o proceso, generalmente la asignacin de
un valor o un resultado de una operacin a una variable. Ejemplo (figura 6):
Tenga presente que puede asignar a una variable un valor, una constante, otra variable o
una expresin. El lado izquierdo de un enunciado de asignacin siempre ser una
variable y el lado derecho corresponde al nuevo valor que tendr dicha variable.
Accin1
Accin2
AccinN
-
7/21/2019 Fundamentos de Programacion Texto Guia
49/111
Figura 6. Asignacin.
Por otro lado, en una asignacin solamente la parte izquierda cambia de valor, las
variables de la parte derecha conservan sus valores, despus de ejecutarse el enunciado
y se pueden utilizar ms tarde.
Cuando la variable de la izquierda se encuentra tambin en la derecha formando parte
de una expresin, esta variable cambia de valor tanto en la izquierda como en la derecha
despus de ejecutarse la asignacin. Por ejemplo, en la asignacin SUELDO =
SUELDO + BONIFICACION; el nuevo valor de la variable SUELDO ser el resultado
de sumar el valor actual de SUELDO ms el valor de la BONIFICACION.
Entrada de datos (Leer). Para introducir datos al computador se utiliza el siguientebloque, que representa el teclado (figura 7). La variable que se va a leer se coloca
dentro del smbolo y en caso de ser ms de una variables, se separan con comas.
Figura 7. Entrada de datos.
Salida de datos (Escribir). Para la salida de informacin procesada del computador,
se puede utilizar el bloque de impresin o el de pantalla (figura 8). Si desea imprimir o
mostrar en la pantalla un mensaje, debe escribir ste dentro del bloque y entre comillas,
mientras que si la salida corresponde al contenido de una variable, debe escribirla
normalmente, y en caso de ser varias, separarlas con comas.
Variable = valor Variable valor
Pseudocdigo:
Variable = valor;
Variable
Pseudocdigo:
Tipo_dato variable; //Primero declarar la variable
Leer Variable;
-
7/21/2019 Fundamentos de Programacion Texto Guia
50/111
Figura 8. Salida de datos.
3.2. Ejemplos de algoritmos bsicos sin toma de decisiones
Elabore un algoritmo para calcular el rea de un tringulo (figura 9).
Figura 9. Ejemplo: rea de un tringulo.
Elabore un algoritmo que permita al usuario introducir a travs del teclado dos nmeros
en las variables A y B, e imprimirlas. Luego, intercambiar los valores de las variables e
imprimir el contenido final de las variables (figura 10).
Mensaje Mensaje
Var1, Var2 Var1, Var2
Pseudocdigo:
Escribir Mensaje;Escribir Var1, Var2;
INICIO
Entero B, H, A;
Escribir rea de un tringulo;
Escribir Ingrese base y altura;
A = ( B * H ) / 2;Escribir rea del tringulo: , A;
FIN_INICIO
Inicio
rea de un tringulo
B, H
Ingrese base y altura
A = ( B * H ) / 2
Fin
-
7/21/2019 Fundamentos de Programacion Texto Guia
51/111
Figura 10. Ejemplo: Intercambio de variables.
3.3. Estructuras de decisin lgica (representacin y funcionamiento)
La especificacin de algoritmos tiene realmente utilidad cuando el algoritmo requiere una
descripcin ms complicada que una lista sencilla de instrucciones. Este es el caso cuando
existen un nmero de posibles alternativas resultantes de la evaluacin de una determinada
condicin. Las estructuras selectivas se utilizan para tomar decisiones lgicas; de ah quese suelan denominar tambin estructuras de decisin o alternativas.
En las estructuras selectivas se evala una condicin y en funcin del resultado de la misma
se realiza una opcin u otra. Las condiciones se especifican usando expresiones lgicas.
La representacin de una estructura selectiva se hace con una figura geomtrica en forma
de rombo (su significado es si, entonces, sino). Las estructuras selectivas o alternativas
pueden presentarse de varias formas:
INICIO
Entero B, A, aux;
Escribir Intercambio de variables;
Escribir Ingrese A y B;
Leer A, B;
Escribir Contenido original: , A, B;
Aux = A;
A = B;
B = Aux;
Escribir Luego de intercambio: , A, B;
FIN_INICIO
Inicio
Intercambio de variables
A, B
Ingrese A y B
Aux = AA = B
B = Aux
Fin
-
7/21/2019 Fundamentos de Programacion Texto Guia
52/111
La estructura alternativa simple (si-entonces, if-then) ejecuta una determinada accin o
acciones cuando se cumple una determinada condicin (true). Su representacin grficase muestra en la figura 11.
Figura 11.Condicional simple
La estructura anterior es muy limitada y normalmente necesitar una estructura que
permita elegir entre dos opciones o alternativas posibles, en funcin del cumplimiento o
no de una determinada condicin (si entonces, caso contrario; ifthen, else). Si la
condicin es verdadera se ejecutarn ciertas acciones y, si es falsa, se ejecutarn otrasacciones (figura 12).
Figura 12.Condicional doble.
No
Si
Condicin
Acciones
Pseudocdigo:
SI ( Condicin ) ENTONCES
Acciones;
FIN_SI
NoSiCondicin
Acciones 1 Acciones 2
Pseudocdigo:
SI ( Condicin ) ENTONCES
Acciones 1;
SINO
Acciones 2;
FIN_SI
-
7/21/2019 Fundamentos de Programacion Texto Guia
53/111
Si dentro de una de las alternativas del bloque de decisin, existen otros bloques de
decisin, se tiene un bloque de decisin anidado (figura 13). La introduccin dentro deuna alternativa de otros bloques de decisin nos permite probar mltiples condiciones
para escoger una determinada alternativa.
Figura 13.Bloque de decisin anidada.
Tambin podemos utilizar bloques de decisin cuyas condiciones estn constituidas por
condiciones simples, relacionadas mediante los operadores lgicos And, Or y Not.
Estos bloques se denominan condiciones compuestas (figura 14).
Figura 14.Condiciones compuestas.
No
Si
Condi1
NoSiCondi2
Acciones 1 Acciones 2
Acciones 3Acciones 4
NoSi Condicin1AND/OR
Condicin2
Acciones 1 Acciones 2
-
7/21/2019 Fundamentos de Programacion Texto Guia
54/111
3.4. Ciclos MIENTRAS (while)
Las computadoras estn especialmente diseadas para todas aquellas aplicaciones en las
cuales una operacin o conjunto de ellas deben repetirse muchas veces. Un tipo muy
importante de estructura es el algoritmo necesario para repetir una o varias acciones un
nmero determinado de veces. Un programa que lee una lista de nmeros puede repetir la
misma secuencia de mensajes al usuario e instrucciones de lectura hasta que todos los
nmeros se hayan ledo.
Las estructuras que repiten una secuencia de instrucciones un nmero determinado de veces
se denominan bucles, lazos o ciclos de repeticin, y se denomina iteracin al hecho de
repetir la ejecucin de una secuencia de acciones.
La estructura repetitiva mientras (while) es aquella en que el cuerpo del bucle se repite
mientras se cumple una determinada condicin. Cuando se ejecuta la instruccin mientras,
la primera cosa que sucede es que se evala la condicin (una expresin booleana). Si se
evala false, no se toma ninguna accin y el programa prosigue en la siguiente instruccin
del bucle. Si la expresin booleana es verdadera, entonces se ejecuta el cuerpo del bucle,
despus de lo cual se evala de nuevo la expresin booleana. Este proceso se repite una y
otra vez mientras la expresin booleana (condicin) sea verdadera. La figura 15 ilustra un
ciclo mientras como diagrama de flujo y pseudocdigo.
Figura 15.Ciclo mientras.
No
Si
Condicin
Acciones (repetir)
Pseudocdigo:
Mientras ( Condicin )
Acciones
FIN_MIENTRAS
-
7/21/2019 Fundamentos de Programacion Texto Guia
55/111
Adems de entender el funcionamiento de los ciclos, son necesarios algunos conceptos:
Variables tipo contador. Muchas veces en los procesos repetitivos es necesario hacer
el conteo de sucesos o acciones internas del ciclo; este proceso de conteo se hace con
una variable que se va incrementando cada vez que el ciclo se repite.
El contador es una variable que se incrementa o disminuye en un valor constante cada
que ocurre una accin o suceso. La forma general de los contadores es la siguiente:
CONTADOR = CONTADOR +
Como el contador aparece al lado derecho en la expresin, antes de usarse se le debe
dar un valor que borre lo que haba en la direccin de memoria asignada a la variable
utilizada. Esa orden de borrado debe indicarse una vez; por lo tanto, debe estar antes de
activar el ciclo donde se necesite el contador, de lo contrario se repetir la orden de
borrado cada vez que se repite el ciclo.
Una orden de borrado puede ser: CONTADOR = 0.
Variables tipo acumulador. Un acumulador o totalizador es una variable cuya misin
es almacenar cantidades variables resultantes de procesos sucesivos. La diferencia con
el contador radica en que el incremento o disminucin de cada suma es variable en
lugar de constante, como en el caso del contador.
La forma general del acumulador es:
ACUMULADOR = ACUMULADOR +
Como tambin aparece al lado derecho, antes de utilizarlo se hace necesario asignarle
un valor inicial, por ejemplo: ACUMULADOR = 0.
-
7/21/2019 Fundamentos de Programacion Texto Guia
56/111
Variables tipo bandera. La bandera es una variable que generalmente usa dos valores
excluyentes o diferentes, su contenido es uno cualquiera de dos valores definidos por elprogramador, el cual ordena cuando cambia su contenido.
La bandera es utilizada dentro de la programacin como un seleccionador de una de dos
alternativas a seguir dentro del algoritmo. Antes de llegar a la expresin que se utilice
para bifurcar la ejecucin, la bandera debe tener asignado uno de los dos valores.
Los valores escogidos para la bandera pueden ser de cualquier tipo de dato, por
ejemplo:numrico (0 y 1, 1 y 2, etc.), lgico True y False, carcter o texto (S y N,
SI y NO, 0 y 1, ENCONTRADO y NO ENCONTRADO).
Esquema cuantitativo. Es utilizado cuando se conoce el nmero de veces que debe
repetirse un ciclo determinado, antes de activarse la estructura repetitiva. El nmero de
iteraciones puede ser un valor constante o, generalmente, una variable de entrada cuyo
valor es proporcionado al algoritmo antes de activarse el ciclo.
Esquema cualitativo. Este esquema es utilizado cuando no se conoce el nmero de
veces que debe repetirse la secuencia de un determinado ciclo. En esta clase de ciclo el
usuario decide cundo terminar con el proceso repetitivo sin importar cuantas
iteraciones se hayan efectuado; a diferencia de los ciclos anteriores, en donde el nmero
de iteraciones est determinado desde el principio.
Ruptura de ciclos. Dentro de la programacin, algunas veces, es necesario hacer que
un ciclo se detenga abruptamente (aborte), porque ya se cumpli algo que se necesitaba
o se estaba buscando, por lo que, posiblemente, no se alcance a satisfacer
completamente en una forma normal la culminacin de la cantidad de veces que debe
ejecutarse o repetirse un ciclo. La ruptura se hace cambiando el sentido de la expresin
lgica que controla el ciclo, para que sta sea falsa y no se contine ejecutando la
secuencia de instrucciones.
-
7/21/2019 Fundamentos de Programacion Texto Guia
57/111
3.5. Estructuras adicionales
Aunque cualquier programa apropiado se puede elaborar utilizando solamente las tres
estructuras bsicas de control descritas antes, el uso de stas se convierte en soluciones
particulares de la implementacin de la estructura decisin lgica o mientras. Es necesario
analizar en cules de estos casos particulares se puede utilizar la estructura adicional,
teniendo en cuenta que lo que ellas hagan tambin se puede solucionar con una de las
estructuras bsicas.
Estructura caso o seleccin mltiple (case, switch).
Esta estructura permite seleccionar una, dentro de un conjunto de alternativas, con base en
el valor almacenado en un campo variable denominado selector o campo controlador de la
estructura. Es una estructura selectiva mltiple donde, de acuerdo con el valor que tenga el
controlador, se realiza una determinada tarea una sola vez, es decir, no repite la ejecucin
de la tarea o secuencia. De acuerdo al valor que tenga el controlador el control de ejecucin
del programa pasa a uno de varios puntos de ste, evitando as una serie de preguntas
(estructura decisin lgica o un anidamiento de las mismas).
Al llegar a la estructura se evala el valor almacenado en la variable utilizada como
controlador, para determinar cul de las secuencias se efecta. Una secuencia se ejecutar
s, y slo s, uno de los rtulos (casos) correspondientes coincide con el valor actual del
controlador. Por tanto, el valor actual del controlador determina cul de las secuencias se vaa ejecutar. Si el valor del controlador no coincide con ninguno de los rtulos descritos y la
secuencia por defecto est presente, entonces sta ser ejecutada. Si esta secuencia no est
presente (es opcional usarla) y el valor del controlador no coincide con ninguno de los
rtulos, no ser ejecutada ninguna de las secuencias; por lo tanto, continuar con la
estructura siguiente.
-
7/21/2019 Fundamentos de Programacion Texto Guia
58/111
En forma general se puede decir, que si el valor del controlador es i, se ejecutar una sola
vez la secuencia correspondiente al caso i y que la secuencia por defecto se ejecutar si estpresente, para cualquier valor del controlador que no coincida con ningn caso.
La figura 16 muestra la forma de representar una estructura de seleccin mltiple a travs
de un diagrama de flujo.
Figura 16.Estructura caso o seleccin mltiple.
Ciclo PARA (for).
La estructura PARA permite que una o ms instrucciones (secuencia) se repitan cero o ms
veces, mientras los valores de una progresin aritmtica de razn creciente o decreciente se
vayan asignando a una variable denominada variable de control del ciclo PARA. El control
del ciclo se hace en forma automtica con base en parmetros que establece el
programador.
La diferencia como se implementa esta clase de ciclos con la estructura mientras, es que el
PARA maneja la inicializacin del contador y su incremento en forma automtica, es decir,
lo hace la estructura.
En la figura 17 se puede observar la representacin de la estructura PARA.
ValNVal_2
Val_1
Variable
Acciones1
[Default]
Acciones2 AccionesN AccionesD
-
7/21/2019 Fundamentos de Programacion Texto Guia
59/111
Figura 17.Ciclo PARA (for).
Ciclo Hacer mientras que (do-while).
Esta es otra estructura repetitiva de control que es implementada para efectuar un ciclo. Es
parecida a la estructura mientras y en algunos aspectos se complementan. Se utiliza en
situaciones en las que se desea que una secuencia se repita, al menos una vez, antes de
comprobar la condicin de repeticin y est formada por dos partes: una expresin de tipolgico y la secuencia de instrucciones, donde una de ellas debe estar modificando la
expresin.
La diferencia especial entre la estructura hacer mientras que y la estructura mientras es que
en la primera la secuencia de instrucciones se ejecuta por lo menos una vez, antes de
evaluar la condicin de repeticin y, en la estructura mientras la condicin de terminacin
es evaluada primero y, por lo tanto, el grupo de instrucciones o campo de la sentenciapuede ser o no ejecutado.
Al entrar a la estructura se ejecuta la secuencia de instrucciones una vez y se evala la
condicin; si sta es falsa, se sale de la estructura y contina con la instruccin siguiente; y
si es verdadera, se repite la ejecucin de la secuencia y vuelve a evaluar la condicin; el
proceso se repite mientras que la condicin sea verdadera.
Var = VI ;condi ; inc
Acciones (repetir)
-
7/21/2019 Fundamentos de Programacion Texto Guia
60/111
La secuencia, entonces, se ejecutar repetidamente mientras que la expresin lgica sea
cierta, asegurndose que la secuencia se ejecuta por lo menos una vez. Las instrucciones nose repiten cuando la condicin es falsa.
En la siguiente figura (18) se muestra la representacin del ciclo hacer-mientras.
Figura 18.Ciclo hacer-mientras que (do-while).
Ejercicios resueltos
Elaborar un algoritmo que, dados los dos lados diferentes de un rectngulo, encuentre el
permetro y el rea del mismo.
INICIO
Entero L1, L2, P, A;Leer L1, L2;
P = 2 * L1 + 2 * L2;
A = L1 * L2;
EscribirEL PERIMETRO ES:, P;
EscribirEL AREA ES:, A;
FIN_INICIO
No
SiCondicin
Acciones (repetir)
-
7/21/2019 Fundamentos de Programacion Texto Guia
61/111
A la mam de Juan le preguntan su edad, y contesta: tengo 3 hijos, pregntele a Juan su
edad. Alberto tiene 2/3 de la edad de Juan, Ana tiene 4/3 de la edad de Juan y mi edades la suma de las tres. Hacer un algoritmo que muestre la edad de los cuatro.
INICIO
LeerEDJUAN;
EDALBER = 2 * EDJUAN / 3;
EDANA = 4 * EDJUAN / 3;
EDMAMA = EDJUAN + EDALBER + EDANA;
EscribirLAS EDADES SON: ALBERTO =, EDALBER,
JUAN =, EDJUAN, ANA =, EDANA, MAMA =, EDMAMA;
FIN_INICIO
Hacer un algoritmo que, dados dos valores numricos A y B, escriba un mensaje
diciendo si A es mayor, menor o igual a B.
INICIOLeerA, B;
SI ( A> B ) ENTONCES
Escribir A ES MAYOR QUE B;
SINO
SI ( A = = B ) ENTONCES
Escribir A ES IGUAL A B;
SINOEscribir A ES MENOR QUE B;
FIN_SI
FIN_SI
FIN_INICIO
-
7/21/2019 Fundamentos de Programacion Texto Guia
62/111
Escribir las estructuras que calculen y muestren el valor de X, de acuerdo con lo
siguiente:
X = 0 si Y < A y (A< B < C)
X = 1 si A
-
7/21/2019 Fundamentos de Programacion Texto Guia
63/111
Disear un algoritmo que encuentre la suma de los primeros cinco nmeros naturales.INICIO
NUM=0; (1) Inicializa el contador
SUMA=0; (2) Inicializa el acumulador
Mientras ( NUM< 5 )
NUM=NUM+1; (3) Modifica la expresin
SUMA=SUMA+NUM; (4) Actualiza el acumulador
FIN_MIENTRAS
Escribir "LA SUMA ES:", SUMA; (5) Termina el ciclo cuando NUM = 5
FIN_INICIO
Elaborar un algoritmo que genere los primeros N trminos de la sucesin:
17 15 18 16 19 17 20 18 21...
INICIO
Leer NT;TER = 17;
CONT =1; BAN = 1;
Mientras ( CONT
-
7/21/2019 Fundamentos de Programacion Texto Guia
64/111
Ejercicios propuestos
1) Hacer un seguimiento (prueba de escritorio) del siguiente grupo de instrucciones.
INICIO
SUMA = 0;
X = 20;
SUMA = SUMA + X;
Y = 40;
X = X + Y ** 2;
SUMA = SUMA + X / Y;
EscribirEL VALOR DE LA