Libro de Programacion

March 6, 2018 | Author: Eliezer Tuz | Category: Peripheral, Algorithms, Computer Program, Programming Language, Computer Memory
Share Embed Donate


Short Description

Descripción: Libro completo de programación para aprender a programar fácil y rapido...

Description

CAPITU LO

ALGORITMOS Y PROGRAMAS

CONTENIDO

1.1. Los sistemas de procesamiento de la información. 1.2. Concepto de algoritmo. 1.3. Los lenguajes de programación. 1.4. Datos, tipos de datos y operaciones primitivas. 1.5. Constantes y variables. 1.6. Expresiones. 1.7. Funciones internas. 1.8. La operación de asignación.

1.9. Entrada y salida de información. ACTIVIDADES DE PROGRAMACIÓN RESUELTAS, EJERCICIOS.

La principal razón para.que.ras personas aprendan renguajes

y técnicas de programación es utirizar la computadora como una herramienta para resolver problemas. La resorución de un probrema exige ar ,n"náa ro,

s¡guientes pasos:

1. Definición o análisis del problema. 2. Diseño del algoritmo. 3. Transformación del algoritmo en un programa. 4. Ejecución y validación del programa. Uno de los objetivos fundamentales de este libro es el aprendizaje y diseño de algoritmos. Este capíturo introduce ar rector ion.uplo o. atgoritm.o v de programa, así como ras herramie;t* "n "r q;; ólri-,iü,i,,c,u logar» al usuario ,v uv¡r con ro ra u¡(rqurrra: máquina: tos /os tenguaJes tenguijes de programación. proqramación. un algoritmo es un método para re-soríer un problema. orobrema. Aunq:: Art

popularización dertérmino ha ilegado con er adven¡.iá"tá

J" rá';r; ^:..

mática. algoritmo proviene de Mohammed ar-Khowárizmi, ma:e- z: _ persa que vivió durante er sigro rx y arcanzó gran reputación por- e :-_--

=

¡ nd ame

ntos de p rog

ra m

ación

ciado de las reglas paso a paso para su-e' '=s:=' ':-ultiplicar y dividir números decimales; la traducciÓn al lair. .. =.= :c en la palabra algo' rismusderivó posteriormente en algori:-:. f -: ::s el gran matemático griego (del siglo lv antes de Cristo , .-e ^'e-:: -- -eiodo para encontrar át nrár¡nro común divisor de dos n j¡':::s s: ::^s lera con Al-Khowárizmi el otro gran padre de la algoritrnia o e-: a :-::'a:a de los algoritmos)'

El résto del capítulo trata de los :a::: . as :peraciones elementales necesarias para el diseño del algoritr.c I D-3'esor Niklaus Wirth -inventor de Pascal, Modula-2 y Oberon-:;:- : --3 ce sus más famosos libros, Algoritmos + Estructuras de daios =,':J'¿^as. significándonos que sólo se-puede llegar a realizar un buen p..Q'.-.;cr el diseño de un algoritmo y una correcta estructura de datos. Es:a e:-:o cr será una de las hipótesis fundamentales consideradas en es:3 l.'a

1.1. LOS SISTEMAS DE PROCESAMIENTO DE LA INFORMACIÓN Una definición antigua de computodora es'. «una máquin¡ o j:.lrrio eiectrónico capaz de ejecutar no describe operaciones repetitivas muy complejas a altas velocidades.'. -\htrr'l bien. esta definición

pttri són más que una máquiit: ¿e eje.-uta¡ operaciones aritméticas. De procesaclorcletlatost,i¡tt",rrr,t(lePi'.)t.(súti'"ietrÍoltratttttúento)delainformahecho, lostérminos ción seutilizan con frecuencia en lugar de computafls¡¿ , ¡r7i1gr:.;,í¿r¡'. en 1a jerga informática usual

lás modemas cbmputadorar.

en España).

En el uso diario, datos e información son esencialme¡r,e s-lónrnos. Sin embargo, los informáticos suelen hacer una diferer-rcia: tlatos se refiere a la repie.:n:.¡i.in de algún hecho, concepto o eniidad real (los datos pueden tomar cliferentes formas: por eiemplo. palabras escritas o habladas, números l' dibuios); inJbrmación implica datos procesado' 1 Lrrgu.lrzildos' yn sí;¡gmg 9n general se define como qgnjunto de compcn.ntes .(rnectados e interactivos, que rienen un propósito y una unidad total. Sisi'éma de procesámiento de información es U! sistema -ii3r;1¡.,;i¡i o¡ I ¡lrl1. que - transibrma datos brutos en infbrmación orgotti-ctdrz. ce prtrceso de la información'. entra' sistem: un La Fi-slira 1 .1 muestra los tres componentes de ccn-rplicado. se representa por una bastanlpuede ser que .j.;. r,¡1¡¿7a r-

¡trocesatlor.Lltqgery4pL

.,nple caja

esta errrtr;J3 se translbrrna entonces para pro¡: puede aceptar datos liamados entrctcla,l'

J.ri.'ri una intormación denominada salida o resultcttlos. este esquema, muchos dispositilos u organi5ill\-rs pueden ser considerados sistelnas B:t¡'los 'n i- ::-u¡.."t-liento de lalnformación. Un temostato qr.le cr-,ntrol¡ 1a temperatura cle un edificio es un :,>=::i J3 :r\-r.e \amiento de la información. La entrada es 1a temperatura media y la salida es una es un :e i -' ;-*e ;¡iti..la 1a caldera del aire acondicionado. E1 cor¡z.in de un anrmal o un ser humano

sr!:iil: ;,:::l1eic de procesamiento

de Ia información.



in-.trucciones que especifican 1a secuencia de operaciones a realizar. en orden' para res\r!.,:.: ,:: )-riima específico o clase de problentas. se denomina aigoritmo. En otras palabras, lln algoritmo 3: ,/,,-i :ti¡tnttla para la resoluciótt cle wt problertto.

E- --¡r--r:t:¡

Entrada=datoS :

Procesador

---)

-----,

Sa

I

i

d

a=inf ormación

Figura 1.1, Sistema de proceso de información.

\

Pararealtzar un proceso se le debe suministrar al procesador un algoritmo adecuait¡. F:: --r:.plo, al cocinero debe dársele una receta, al pianista la partitura y así sucesivamente. consi,ie¡.n;- :. cocinero y al pianista como procesadores. Cuando el procesador es una computadora, el algoritmo ha de expresarse de una forma que recibe el nombre de programa. Un programa se escribe en un lenguaje de programación y a ]¡14c1i1_id3d de expresar un algoritmo en forma de programa se le denomina programación. Cada paso en el algoritmo está expresado por medio de una instrucción en el programa. Por consiguiente, un programa consta de una secuencia de instrucciones, cada una de las cuales especifica las operaciones que debe r e alizar la c omputadora. Existen dos conceptos importantes a considerar en los sistemas de procesamiento de la información: hardware y software. Hardware es el conjunto de componentes físicos de una computadora (Figura 7.2,¡ Jísico- y software es el conjunto de programas que controlan el funciona-equipo lógico-. computadora miento de una -equipo E1 hardware de una computadora se compone de:

l.

La Unidatl Central

de Proceso, UCP (Central Processing Unit, CPU). La UCP es el conjunto

de circuitos electrónicos capaces de ejecutar algunos cálculos sencillos como suma o multiplicación de números. La potencia de una computadora depende completamente de la velocidad y fiabilidad de la UCP.

2. Memoria central. La información procesada por la UCP se almacena normalmente en la memoria central hasta que se terminan 1os cálculos. Los programas de computadora se almacenan también en la memoria central. 3. Dispositivos de almacenomienÍo secundario (memoria auxiliar). Diferentes dispositivos, tale-s como discos y cintas magnéticas, se usan para almacenar granáél'Cantidádé§AeÍifóimáción. Para ser procesados por la UCP, los datos se almacenan en dispositivos de almacenamiento auxiliaiy luego tienen que llevarse a la memoria central. 4. Periferico o dispositivos de entrada/salida (E/S)._Estos dispositivos permiten al usuario lu computadora. Algunos dispolitivos típicos de E/S son el teclado, la comunicarse "on etc. Un sistema de computadora puede tener diferentes dispositivos impresora, monitor, periféricos conectados a ella. En la práctica, una instalación grande de computadora puede tener diferentes UCP, cada una con su propia memoria central compaftida, una variedad de dispositivos de almacenamiento secundario

Dispositivos de entrada/sa lida E/S

Almacenamiento secu ndario

(memoria auxiliar:

(periféricosl

Figura 1.2. Diagrama esquemático de una computadora (hardware),

7 Fu

ndamentos de prog

ra

--

mación

y periféricos localizados en diferentes partes de un mismo edificio o diferentes edificios e incluso dilerentes ciudades o países.

1.2. Las

¡

1.2. CONCEPTO DE ALGOR¡TMO

I

es enseñar'a resolver problemas mediante una computadora. Un programador de computadora es antes que nada una persona que resuelve problemas, por lo que para llegar a ser un programador eficaz se necesita aprender a resolr er problemas de un modo riguroso y sistemático. A 1o largo de todo este libro nos ret-eriremos a la metodología necesaria para resolver problemas mediante programas, concepto que se denomina metodología.de.Ia programacién. El eje central de esta'metodología es el eoncepto- r'a tra¡ado- de algoritmo. La resolución de un problema exige el diseño de un algoritmo que resuelva el problema pro-

El objetivo fundamental de este texto

alg«

puesto.

Programa

Diseño Problema

---------->

del

---------->

algoritmo

de

computadora

Figura 1.3. Resolución de un problema.

Eie IJn

clit

ell

Lo Los pasos para la resolución de un problema son: ambigüedades- que '' 1. Diseño del algoritmo que describe la secuencia ordenada de pasos -sin conducen a la solución de un problema dado. (Análisis del probletrta t' desarrollo del algorinno.) .

'2.

Expresar el algoritmo como un pro grama en un lenguaje de pro-uramación adecuado. (Fase de

codificación.')

3. EjecuciónT,validación del programa por la computadora. Para lle-ear a la realización de un programa es necesario e1 diseño previo de un algoritmo, de modo que sin algoritmo no puede existir un programa. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de ia computadora que 1os ejecuta. En cada problema el algoritmo se puede expresar en un lendirerente de pro-eramación y ejecutarse en una computadora distin'ta: sin embargo. el algorit-suaie mo será siempre el mismo. Así, por ejemplo, en una analogía con la r-ida diaria, una receta de un plato de cocina se puede expresar en español, inglés o francés. pero cualquiera que sea el lenguaje. los paso: para 1a eiaboración del plato se realizarán sin imponar el idioma del cocinero. En la ;iencia de 1a computación y en la programación, los al-eoritmos son más imporlantes que lo: lensu¡je. de programación o las computadoras. Un lenguaje de programación es tan sólo un medio pan e\prrsar un algoritmo y una computadora es sólo un procesador para ejecutarlo. Tanto el len-uuaje de prtrtramación como la computadora son los medios para obtener un fin: conseguir que el al-soritmo se e-ie'-ute r se efectúe el proceso correspondiente. Dada la importancia del algoritmo en la ciencia de la computación. un aspecto muy importante será el diseño de atsotittt¡o-s. \ 1a enseñanza y práctica de esta tarea se dedica gran pafte de este libro. El diseño de la mar oía de los alsoritmos requiere creatividad r conocimientos profundos de la técnica de la pro-uramación. En esencia. la soluciótt cle Lm problema se puede expresar mediante wt

algoritnto.

b-

Ei S¿

L

SC

si

Algoritmos

y

programas

s

1.2.1. Características de los algoritmos Las características fundamentales que debe cumplir todo algoritmo son:

a Un algoritmo debe ser preciso e indicar el orden de, realización de cada paso. o Un algoritmo debe arjiniao. Si se sigue un algoritmo dos veces, o

se debe obtener el "sia, mismo resultado cada vez. Un algoritmo debe ser finito. Si se sigue un algoritmo. se debe terminar en algún momento; o sea. debe tener un número

finito de pasos.

La definición de un algoritmo debe describir tres partes: Entrqcla, proceso algoritmo de recetá de cociña citado anteriormente se tendrá:

Entrada: Proceso:

Salida: Ejemplo

y Salida. En el

ingredientes y utensilios empleados. elaboráción de la receta en la cocina. terminación del plato (por ejemplo, cordero).

1.1

(Jn cliente ejecufa un pediclo a unaftibrica. Laflíbrica examina en su banco de ¿atos laficlta ctel cliente, si el cliente es solvente entonces la empresa acepfa el pedido; en caso confrario, rechazará , el pedido. Redactar el algoritmo correspondiente. ,

Los pasos del algoritmo son: . . 3. 4. 5. 1 2

Inicio. Leer el pedido. Examinar la ficha del cliente. Si el cliente es solvent_e, aceptar pedido; Fin.

.l

caso contrarro,

rechazar pedido.

Ejemplo 1.2 se desea diseñar un algoritmo para saber si un número es primo o no.

Un número

es primo si sólo puede dividirse por sí mismo y por la unidad (es deci¡ no tiene más divisores que é1 mismo y la unidad). por ejemplo, 9, g, 6, 4, rz,' 16,20, etc., no son primos, ya que son divisibles por números distintos. a ellos mismos y a la unidad. Arí, 9 divisible por 3, g ío ei por 2, etc. El algoritmo de resolución del problema pasa por dividir sucesivamenteil ",

número pir 2,3, 4...,

etcétera.

1. Inrc io . 2. Poner X

igual a 2

que se busca N)

3

4

6.

(,X

= 2, X, .¡artable que representa a los divisores

.

Divrdir N por X (N/X) Si el resultado de N./X es enLero, enLonces N no es al pur]r-o 7; en caso contrario, continuar eL proceso.un numero primo y Suma I a X (X
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF