185569333 Trabajo de Investigaciona Lgoritmo

download 185569333 Trabajo de Investigaciona Lgoritmo

of 59

Transcript of 185569333 Trabajo de Investigaciona Lgoritmo

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    1/59

    Materia:Algoritmo y lenguaje de

    Programación

    Trabajo:Investigación

    Catedrático:Mtra. Alejandra Guadalupe

    Presenta:Mara Alejandra !elesma "vila

    #emestre$ grupo:%t& 'A(

    InstiutoTecnológ

    co#upe

    rior!e)a

    *egón

    #ier

     

    Teapa Tabasco A

     Teapa Tabasco A Mayo De Teapa Tabasco A Mayo De

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    2/59

    2

    Algoritmo Y Lenguajes DeProgramación

    ndice

    T/MAPA

    G.Introducción0000000.00000000000000000000000000.

    &-

    1nidad -. Introducción A )a Programación !e 1n )enguaje/structurado-., Introducción a la programación. 0000000.00000000.............................................

    &2

    -.+ /structura básica de un programa. 0000000.0000000.............................................

    &2

    -.- Tipos de datos. 0000000.

    00000000000000.............................................

    &3

    -.2 Identi4cadores. 0000000.00000000000000000000000..

    ,+

    -.% Almacenamiento5 direccionamiento y representación enmemoria. 0000.............................................

    ,2

    -.6 Proposición de asignación. 0000000.0000000000000000000...

    ,6

    -.3 7peradores5 operandos y e8presiones. 0000000.0000000000000000.

    ,9

    -.9 Prioridad de operadores5 evaluación de e8presiones.

    0000000.00000000000.

    +&

    -. /laboración de programas0000000.00000000000000000000.

    ++

    1nidad 2 ./structuras #electivas y de *epetición.2., #electiva simple. 0000000.00000000000000000000000.

    +2

    2.+ #electiva doble. 0000000.00000000000000000000000...

    +%

    2.- #electiva anidada. 0000000.0000000000000000000000...

    +6

    2.2 #electiva m;ltiple. 0000000.

    0000000000000000000000...

    +3

    2.% *epetir mientras. 0000000.0000000000000..............................................

    -&

    2.6 *epetir

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    3/59

    3

    Algoritmo Y Lenguajes DeProgramación

    1nidad % Arreglos y Arcormación0000000.0000000000000000000000..

    6&

    Introducción

    Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho

    lenguaje nace del BASIC (Beginner´s Allpurpose Sym!olic Instruction Code" que #ue creado en su

    $ersión original en el Dartmouth College% con el propósito de ser$ir a aquellas personas que esta!an

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    4/59

    4

    Algoritmo Y Lenguajes DeProgramación

    interesadas en iniciarse en alg&n lenguaje de programación.

    'http))es.*i+ipedia.org)*)inde,.php-title/rogramaci0C10B1n2estructurada3oldid14546789:.

    Cola!oradores de ;i+ipedia. Vector (informática) a enciclopedia li!re% 544?

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    5/59

    Algoritmo Y Lenguajes DeProgramación

    1?I!A! -: Introducción A )a Programación !e 1n )enguaje/structurado

    -., Introducción a la programació

    Después que se ha diseñado y pensado como resolver el problema en papel, se debe comenzar proceso de introducir el programa en un archivo en el disco de la computadora. La introducción

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    6/59

    !

    Algoritmo Y Lenguajes DeProgramación

    modificación del programa en un archivo se hace utilizando un simple editor de texto o un editespecializado que hace la tarea de escribir un programa una tarea muy fcil.

    !l programa que se introduzca en el editor estar escrito en "ava o #$$ o cualquier otro, pero ni #$$

    "ava son lengua"es mquina, muy al contrario, son lengua"es de alto nivel diseñado para hacer ms fcla programación que utilizando el lengua"e mquina. Los lengua"es, como todo hay que a prendérselopero tienen una venta"a y es que hay varios puntos en com%n.

    • &dentifica las caracter'sticas de los lengua"es de programación• !val%a cada uno de los tipos de programación.

    -.+ /structura básica de un program

    Las partes principales de un programa estn relacionadas con dos bloques( declaraciones instrucciones.

    !n las instrucciones podemos diferenciar tres partes fundamentales

      Entrada de Datos: La constituyen todas las instrucciones que toman los datos de entrada des

    un dispositivo externo y los almacena en la memoria principal para que puedan ser procesados.  Proceso o algoritmo: !st formado por las instrucciones que modifican los ob"etos a partir de

    estado inicial )datos de entrada* hasta el estado final )resultados* de"ando los ob"etos que contiene disponibles en la memoria principal.

      Salida de resultados: #on"unto de instrucciones que toman los datos finales )resultado* de

    memoria principal y los env'an a los dispositivos externos.

    !l teorema de +hm y -acopini )/00* dice que un programa propio puede ser escrito utilizando sólo trtipos de estructuras de control(

    1. Estructura secuencial: 1na estructura de programa es secuencial si las instrucciones se e"ecutuna tras otra, a modo de secuencia lineal, es decir que una instrucción no se e"ecuta hasta qfinaliza la anterior, ni se bifurca el flu"o del programa.

    2. Estructura selectiva o de selección: La estructura selectiva permite que la e"ecución dprograma se bifurque a una instrucción )o con"unto* u otra2s, seg%n un criterio o condición lógiestablecida, sólo uno de los caminos en la bifurcación ser el tomado para e"ecutarse.

    o !structura de control selectiva simple

    o !structura de control selectiva doble

    o !structura de control selectiva m%ltiple

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    7/59

    "

    Algoritmo Y Lenguajes DeProgramación

      3. Estructura de control cíclica o repetitiva

    o !structura de control desde 

    o !structura de control mientras

      3ara estas estructuras son necesarios los operadores lógicos y de relación.

    4peradores de relación

    5ayor a 6

    5enor a 7

    5ayor o igual a 68

    5enor o igual a 78

    Diferente a 98

    4peradores lógicos

    : )and* ;

    4 )or* <

    =o )not* 9

    !xclusivo o )or* >or  

    #on el uso de los operadores de relación se construyen las condiciones simples y con el uso de looperadores de relación y lógico se construyen las condiciones compuestas.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    8/59

    #

    Algoritmo Y Lenguajes DeProgramación

    Anadamiento: el cuerpo se cualquier estructura puede ser instrucciones simples u otras estructuras, qa su vez pueden contener a otras.

    Estructura básica de un programa en

    La me"or forma de aprender un lengua"e es programando con él. !l programa ms sencillo que se pueescribir en # es el siguiente(

    5ain ) * ?@

    #omo nos podemos imaginar, este programa no hace nada, pero contiene la parte ms importante dcualquier programa # y adems, es el ms pequeño que se puede escribir y que se compcorrectamente. !n él se define la función main, que es la que e"ecuta el sistema operativo al llamar a programa #. !l nombre de una función # siempre va seguida de paréntesis, tanto si tiene argumentcomo si no. La definición de la función est formada por un bloque de sentencias, que est encerrad

    entre llaves [email protected] programa algo ms complicado es el siguiente(

    !include "stdio.#$

    %ain & '

    (

    Print) &*+ola amigos,-n*'

    /

    #on el visualizamos el mensa"e Aola amigosB en el terminal. !n la primera l'nea indica que se tengan ecuenta las funciones y tipos definidos en la librer'a stdio )standard input2output*. !stas definiciones sencuentran en el fichero header stdio.h. Chora, en la función main se incluye una %nica sentencia qullama a la función printf. !sta toma como argumento una cadena de caracteres, que se imprimen vencerradas entre dobles comillas . !l s'mbolo En indica un cambio de l'nea.

    Aay un grupo de s'mbolos, que son tratados como caracteres individuales, que especifican alguncaracteres especiales del código CF#&&. Los ms importantes son(

    -a Alerta Er 0etorno de carro

    Eb !spacio atrs  -t Gabulación horizontal

    Ef Falto de pgina  -v Gabulación verticalEn Falto de l'nea  -- +arra invertidaEH #omilla simple  - Iisualiza un carcter   cuyo  código CF#&&  es 444 en

    octalE #omillas dobles  -+++ Iisualiza un carcter cuyo código  CF#&&  es AAA en

    hexadecimal

    1n programa # puede estar formado por diferentes módulos o fuentes. !s conveniente mantener l

    http://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos10/carso/carso.shtmlhttp://www.monografias.com/trabajos3/bcd/bcd.shtmlhttp://www.monografias.com/trabajos3/bcd/bcd.shtmlhttp://www.monografias.com/trabajos12/comptcn/comptcn.shtmlhttp://www.monografias.com/trabajos7/mafu/mafu.shtmlhttp://www.monografias.com/trabajos10/carso/carso.shtmlhttp://www.monografias.com/trabajos3/bcd/bcd.shtmlhttp://www.monografias.com/trabajos12/comptcn/comptcn.shtml

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    9/59

    $

    Algoritmo Y Lenguajes DeProgramación

    fuentes de un tamaño no muy grande, para que la compilación sea rpida. Gambién, al dividirse uprograma en partes, puede facilitar la legibilidad del programa y su estructuración. Los diferentes fuentson compilados de forma separada, %nicamente los fuentes que han sido modificados desde la %ltimcompilación, y después combinados con las librer'as necesarias para formar el programa en su versi

    e"ecutable.

    -.- Tipos de dato

    !xisten dos tipos de datos Fimples )sin estructura* y los compuestos )estructurados*.Los tipos dedatos Fimples son los siguientes(

    a*   Numéricos( 3ermite representar valores escalares de forma numérica, esto incluye a los n%merenteros y los reales. !stos tipos de datos permiten hacer operaciones matemticas comunes. 3a

    usarlos se escribe de manera normal como los usamos cotidianamente. por e"em. JK, J.MN,/

    • entero( Fon n%meros completos no tienen componentes fraccionarios o decimales y pueden s

    positivos o negativos. se denominan en ocasiones de punto o coma fi"o.

    • real( Fon n%meros que siempre tienen un punto decimal y pueden ser positivos o

    negativos, se denominan en ocasiones de punto o coma flotante.

    b*   Alfanuméricos( 3ermite representar valores identificables de forma descriptiva, esto inclunombres de personas, direcciones, caracter'sticas, etc. !s decir, permite identificar mediannombres algunos atributos de una entidad. !s posible representar n%meros como alfanuméricoes decir no es posible hacer operaciones con ellos. !ste tipo de datos se representa encerradentre comillas, para diferenciarlos de las variables ) que veremos mas adelante * y los valornuméricos.

    Los caracteres que la mayor'a de las computadoras reconocen son los siguientes(

    #aracteres alfabéticos )a..z y C...O* #aracteres numéricos )P,,K,,J,Q,0,N,R,/* #aracteres especiales ) $ M S T U V ; W ) * 2 7 6 ( X H *

    c*   Lógicos Gambién denominado boleano, es aquel dato que solo puede tomar uno de dvalores cierto o falso.

    3ermite representar respuestas simples, producto de la comparación entre dos datos de tiponumérico o alfanumérico. !sto nos permite realizar cierta tarea en función del valor dealgunos datos.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    10/59

    10

    Algoritmo Y Lenguajes DeProgramación

    #uando usamos un programa es muy importante mane"ar datos. !n  podemos almacenar los datos variables. !l contenido de las variables se puede ver o cambiar en cualquier momento. !stas variablpueden ser de distintos tipos dependiendo del tipo de dato que queramos meter. =o es lo mismo guardun nombre que un n%mero. Aay que recordar también que la memoria del ordenador es limitada, as' q

    cuando guardamos un dato, debemos usar sólo la memoria necesaria. 3or e"emplo si queremalmacenar el n%mero JPP usaremos una variable tipo int  )la estudiamos ms aba"o* que ocupa sólo bits, y no una de tipo long  que ocupa K bits. Fi tenemos un ordenador con K5b de Yam parece untonter'a ponernos a ahorrar bits )5b8PKJZb, Zb8PKJbytes, byte8Rbits*, pero si tenemos programa que mane"a muchos datos puede no ser una cantidad despreciable. Cdems ahorrar memoes una buena costumbre.

    C las variables no se les puede dar cualquier nombre. =o se pueden poner ms que letras de la HaH a la )la ñ no vale*, n%meros y el s'mbolo H[H. =o se pueden poner signos de admiración, ni de interrogación. nombre de una variable puede contener n%meros, pero su primer carcter no puede serlo.

    !"emplos de nombres vlidos(

    #amiones +uffer "PholaK/=umero a num[alumnos

    !"emplos de nombres no vlidos(abc nombre\ num2alumnos

    El tipo int.

    !n una variable de este tipo se almacenan n%meros enteros )sin decimales*. !l rango de valores qadmite es MKN0N a KN0N. #uando definimos una variable lo que estamos haciendo es decirle compilador que nos reserve una zona de la memoria para almacenar datos de tipo int. 3ara guarda

    necesitaremos 0 bits de la memoria del ordenador )K08KN0N*. 3ara poder usar una variable primehay que declararla )definirla*. Aay que decirle al compilador que queremos crear una variable y hay qindicarle de qué tipo. 3or e"emplo(

    int numeroX

    %ostrar variables por pantallaIamos a ir u poco ms all con la función printf. Fupongamos que queremos mostrar el contenido devariable x por pantalla(

    3rintf )]Ui, x*X

    Fuponiendo que x valga P )x8P* en la pantalla tendr'amos( P

    !mpieza a complicarse un poco ^no\ Iamos poco a poco. ^Yecuerdas el s'mbolo E que usbampara sacar ciertos caracteres\ +ueno, pues el uso del U es parecido. Ui no se muestra por pantal

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    11/59

    11

    Algoritmo Y Lenguajes DeProgramación

    se sustituye por el valor de la variable que va detrs de las comillas. ) Ui, de integer8entero en inglés*.

    3ara ver el contenido de dos variables, por e"emplo x e y, podemos hacer(

      printf ) Ui , x *X

      3rintf ) Ui, y *X

    Yesultado )suponiendo x8P, y8KP*(

      P KP

    3ero hay otra forma me"or(

      printf) Ui Ui, x, y *X

    Asignar valores a variables de tipo int

    La asignación de valores es tan sencilla como x 8 PX

    Gambién se puede dar un valor inicial a la variable cuando se define( int x 8 QX

    Gambién se pueden inicializar varias variables en una sola l'nea( int x 8 Q, y 8 KPX

    Aay que tener cuidado con lo siguiente( int x, y 8 KPX

    3odr'amos pensar que x e y son igual a KP, pero no es as'. La variable x est sin valor inicial y la variabHyH tiene el valor KP.

    Ieamos un e"emplo para resumir todo(

    Sinclude 7stdio.h6

    void main)*  ?  int x 8 PX

      prinft) !l valor inicial de x es UiEn, x *X  x 8 QPX  printf) Chora el valor es UiEn, x *X  @

    El tipo #ar 

    Las variables de tipo char sirven para almacenar caracteres. Los caracteres se almacenan en realidcomo n%meros del P al KQQ. Los KR primeros )P a KN* son el CF#&& estndar. !l resto es el CF#extendido y depende del idioma y del ordenador. #onsulta la tabla CF#&& en el anexo.

    3ara declarar una variable de tipo char hacemos( char letraX

    http://www.publispain.com/supertutoriales/programacion/c_y_cplus/cursos/1/cursoc40.html#asciihttp://www.publispain.com/supertutoriales/programacion/c_y_cplus/cursos/1/cursoc40.html#ascii

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    12/59

    12

    Algoritmo Y Lenguajes DeProgramación

    !n una variable char sólo podemos almacenar solo una letra, no podemos almacenar ni frasespalabras. !so lo veremos ms adelante )strings, cadenas*. 3ara almacenar un dato en una variable chtenemos dos posibilidades(

      letra 8 HCHX o letra 8 0QX!n ambos casos se almacena la letra HCH en la variable. !sto es as' porque el código CF#&& de la letra es el 0Q.

    3ara imprimir un char usamos el s'mbolo Uc )c de character8caracter en inglés*(

      letra 8 HCHX  printf) La letra es( Uc., letra *X

    Yesultado(

    La letra es C.

    Gambién podemos imprimir el valor CF#&& de la variable usando Ui en vez de Uc(

    letra 8 HCHX  printf) !l n%mero CF#&& de la letra Uc es( Ui., letra, letra *X

    Yesultado(

    !l código CF#&& de la letra C es 0Q.

    #omo vemos la %nica diferencia para obtener uno u otro es el modificador )Uc ó Ui* que usemos.

    1na curiosidad(

      letra 8 HCHX  printf) La letra es( Uc y su valor CF#&& es( UiEn, letra, letra *X  letra 8 letra $ X  printf) Chora es( Uc y su valor CF#&& es( UiEn, letra, letra *X

    !L G&34 _L4CG

    !n este tipo de variable podemos almacenar n%meros decimales, no sólo enteros como en los anteriore!l rango de posibles valores es del ,J!MR al ,J!R.

    Declaración de una variable de tipo float(

    float numeroX

    3ara imprimir valores tipo float 1samos Uf.

    float num8JP0P.RPX  printf) !l valor de num es ( Uf, num *X

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    13/59

    13

    Algoritmo Y Lenguajes DeProgramación

    Yesultado(

      !l valor de num es( JP0P.RP

    Fi queremos escribirlo en notación exponencial usamos Ue(

    float num 8 JP0P.RPX  printf) !l valor de num es( Ue, num *X`ue da como resultado(

      !l valor de num es( J.P0PRPePP

    0esumen de los tipos de datos en

    !sto es algo orientativo, depende del sistema.

    ipo  Datos almacenados 45 de

    6its 7alores posibles

    &0ango' 0ango usando

    unsigned 

    char #aracteres R MKR a KR P a KQQ

    int enteros 0 MK.N0N a K.N0N P a 0Q.QQ

    long enteros largos KMK.JN.JR.0JN aK.JN.JR.0JN

    P a J.K/J./0N.K/Q

    float =ums. reales )comaflotante*

    K ,J!MR a ,J!R

    double=ums. reales )comaflotante doble*

    0J ,N!MPN a ,N!PR

    -.2 Identi4cador

    Fon los nombres elegidos para las variables, constantes, funciones, clases y similares. !l primer carctdebe ser una letra o un subrayado. !l resto del nombre puede contener d'gitos. Los identificadores qucomienzan con dos subrayados estn reservados para uso interno del compilador #$$.

    8DE4898AD0( !s un nombre dado a un elemento tal como una constante o variable unprocedimiento o un programa, estn formados por letras o d'gitos en cualquier orden excepto que el

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    14/59

    14

    Algoritmo Y Lenguajes DeProgramación

    primer caracter debe ser una letra

    ICY&C+L!F : #4=FGC=G!F

    7A08A6E( !spacio en la memoria de la computadora que permite almacenar temporalmente undato durante la e"ecución de un proceso, su contenido puede cambiar seg%n necesite el programa.3ara poder reconocer una variable en la memoria de la computadora, es necesario darle un nombrecon el cual podemos identificarla dentro de un algoritmo. !ste nombre debe comenzar con una letrao guión ba"o ) [ *, puede contener en el resto del nombre n%meros o letra o guiones ba"os y no debetener ms de ocho caracteres

    3artida de datos cuyo valor puede cambiar durante el desarrollo del algoritmo o durante lae"ecución del programa.

    Clgunos nombres validos de variables son(

     #ost[unit, ivaP , [dominio, a[bJ

    o variable numérica ( Cquella que solo permite almacenar valores numéricos

    o variable alfanumérica ( Cquella que puede almacenar uno o ms caracteres ) d'gitos, n%meross'mbolos*

    Gipos de variables.M Los tipo ms comunes son( enteras, reales, carcter, cadena y lógicas.

    4SA4E: Dato numérico o alfanumérico que permanece invariable durante la e"ecución de unalgoritmo. !stos datos pueden pasarse a variables para poder hacer uso de ellos en el algoritmo. !lproceso de pasar valores constantes a variables se le conoce como asignación

    Gipos de constantes.M

    ipo E;emplo

    a' Entera:  M, P, KQ

    b' 0eales:  P.PPK, .JQ/, MK.JQ0N, QJK.

    c' arácter:  HaH, HCH, H$H, H,H, H/H

    d' adena decaracteres:

     HCH, HAolaH, H3Y&5!Y CL4Y&G54H

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    15/59

    1

    Algoritmo Y Lenguajes DeProgramación

    e' ógicas:  falso, verdaderoX P, X Fi, =o

    1so de las variables(

    #omo se puede observar en la definición dada en el punto anterior, las variables son zonas de lamemoria que nos permite almacenar valores temporalmente. 3or ello, en estas zonas podemosponer el resultado de operaciones matemticas, para posteriormente ser usadas o modificadas.!sta cualidad da como resultado, que existan ciertas formas de uso estndar en las variables. !steuso de las variables las hace muy %tiles en el desarrollo de programas y son los siguientes(

    o Graba"o( !s aquella que recibe el resultado de una operación matemtica completa y que ese unormalmente dentro de un programa.

    o #ontador( _orma que toma una variable y que sirve para llevar la cuenta de las operacionesprocesos realizados, con incrementos constantes, generalmente de en .

    o  Ccumulador ( _orma que toma una variable y que sirve para llevar la suma acumulativa de userie de valores que se van leyendo o calculando progresivamente

    o &ndicadores( Iariables que reciben un determinado valor cuando se cumple cierta condiciónsucede cierto evento dentro de u programa. Fe les conoce también como banderas.

    -.% Almacenamiento5 direccionamiento y representación en memori

    La configuración de los platos de discos, cabezales y brazos de acceso hace posible posicionar cabezal sobre cualquier parte de cualquier superficie de cualquier plato en el dispositivo almacenamiento. Fin embargo, esto no es suficienteX para utilizar esta capacidad de almacenamientdebemos tener alg%n método de dar direcciones a partes uniformes del almacenamiento disponible.

    Aay un aspecto final requerido de este proceso. #onsidere todas las pistas en los muchos cilindr

    presentes en un dispositivo t'pico de almacenamiento masivo. 3uesto que las pistas tienen dimetrvariados, sus circunferencias también var'an. 3or lo tanto, si el almacenamiento fue resuelto solamentenivel de pistas, cada pista tendr diferentes cantidades de datos M pista SP )estando cerca del centro dplato* puede almacenar P,RKN bytes, mientras que la pista S,KQR )cerca del borde externo del platpuede almacenar Q,RK bytes.

    La solución es dividir cada pista en m%ltiples sectores o bloques segmentos de un tamaño consistentemenudo QK bytes* de almacenamiento. !l resultado es que cada pista contiene un n%mero fi"o sectores.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    16/59

    1!

    Algoritmo Y Lenguajes DeProgramación

    1n efecto secundario es que cada sector contiene espacio inutilizado M el espacio entre sectores. C pesdel n%mero constante de sectores en cada pista, la cantidad de espacio inutilizado var'a M relativamenpoco espacio inutilizado en las pistas internas y una cantidad mucho mayor de espacio en las pistas mexternas. !n cualquier caso, este espacio inutilizado se desperdicia, pues all' no se puede almacen

    datos.

    Fin embargo, la venta"a que supera este espacio desperdiciado es que ahora es posible direccionefectivamente el almacenamiento en un dispositivo de almacenamiento masivo. De hecho, hay dmétodos de direccionamiento M el direccionamiento basado en la geometr'a y el direccionamiento basaen bloques.

    lasi)icación de los Dispositivos de Almacenamiento.

     Ccceso secuencial( !n el acceso secuencial, el elemento de lectura del dispositivo debe pasar p

    el espacio ocupado por la totalidad de los datos almacenados previamente al espacio ocupadf'sicamente por los datos almacenados que componen el con"unto de información a la que

    desea acceder.  Ccceso aleatorio( !n el modo de acceso aleatorio, el elemento de lectura accede directamente

    la dirección donde se encuentra almacenada f'sicamente la información que se desea localizar s

    tener que pasar previamente por la almacenada entre el principio de la superficie de grabación y

    punto donde se almacena la información buscada.

     5edidas de Clmacenamiento de la &nformación

    o +yte( unidad de información que consta de R bitsX en procesamiento informtico y almacenamien

    el equivalente a un %nico carcter , como puede ser una letra, un n%mero o un signo

    puntuación.o Zilobyte )Zb*( !quivale a .PKJ bytes.

    o 5egabyte )5b*( 1n millón de bytes o .PJR.QN0 bytes.

    o igabyte )b*( !quivale a mil millones de bytes.

    Direccionamiento:

    Gras almacenar la dirección de memoria de un dato en la posición PPPPPPKPP, ^es posible obtener nuevo el n%mero PPQ_KC+\ La respuesta es afirmativa, pero no de forma inmediata, se debe obten

    de memoria primero los cuatro bytes almacenados en la posición PPPPPPKPP y utilizarlos como u

    dirección de memoria de donde obtener los cuatro bytes contenidos en la posición PPPPPPPP.

    acceso a este %ltimo dato se ha realizado de forma indirecta, es decir, mediante un acceso previo

    memoria para obtener la dirección del dato final. 1tilizando la notación funcional de operaciones sob

    memoria, el acceso al dato se logra e"ecutando Lectura )Lectura )PPPPPPKPP**.

    http://www.monografias.com/trabajos14/textos-escrit/textos-escrit.shtmlhttp://www.monografias.com/trabajos15/direccion/direccion.shtmlhttp://www.monografias.com/trabajos34/el-caracter/el-caracter.shtmlhttp://www.monografias.com/trabajos14/textos-escrit/textos-escrit.shtmlhttp://www.monografias.com/trabajos15/direccion/direccion.shtmlhttp://www.monografias.com/trabajos34/el-caracter/el-caracter.shtml

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    17/59

    1"

    Algoritmo Y Lenguajes DeProgramación

     0epresentación en memoria

    Fecure Digital )FD*

      !stn basadas en el formato 5ultimedia #ard )55#*. Las tar"etas marcadacomo A# )Aigh #apacity* funcionan a alta velocidad y tienen tasas de

    transferencia de datos muy altasX algunas cmaras fotogrficas digitales requiere

    este tipo de tar"etas para poder grabar video con fluidez o para capturar m%ltiples fotograf'as en sucesi

    rpida.

    Ftarmedia

    Gambién conocidas como )Gar"eta de Disco _loppy en !stado Fólido*. Fon duraderas

    su apariencia f'sica es similar a la de un disquete, pero con el tamaño aproximade una estampilla de correo. Fu forma impide introducirlas en su ranura en sentido

    contrario.

    5emory Ftic

    Gar"etas digitales con memoria flash diseñadas con la compañ'a Fony. Cdems de s

    aptas para cmaras digitales de esta marca, las 5emory Ftic se pueden utilizar en un

    gran variedad de aparatos digitales. !stas tar"etas sirven para almacenar  imgenes, m%sica, datos, textos y grficos 4frecen una alta velocidad de acceso y

    necesitan ning%n dispositivo para la reproducción, pues disponen de un adaptad

    para disquetes.

    5inini FD _LCFA 5!54Y:

    3or su tamaño tan reducido, este formato de tar"eta se utiliza especialment

    en teléfonos celulares. #ombina gran capacidad de almacenamiento, alta tasa de transferencia de dato

    confiabilidad, seguridad y ba"o consumo de energ'a. Gambién se utiliza reproductores de audio, cmaras digitales )por medio de un adaptador*

    asistentes digitales personales )3DC*.

    5icro FD #CYD

    !ste formato de tar"eta solo mide P./mm x J./mm x mm y puede almacenar vrios + de informació

    Cl igual que el 5&=& FD, es my utilizado en teléfonos celular 

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    18/59

    1#

    Algoritmo Y Lenguajes DeProgramación

    -.6 Proposición de asignació

    Lo mismo que en otros lengua"es de programación, en # se tienen los operadores aritméticos ms usuales suma, M resta, W multiplicación, 2 división y U módulo*.

    !l operador de asignación es 8, por e"emplo( i8JX ch8HyHX

    &ncremento $$ y decremento MM unario. Los cuales son ms eficientes que las respectivas asignaciones. 3e"emplo( x$$ es ms rpido que x8x$.

    Los operadores $$ y MM pueden ser prefi"os o postfi"os. #uando son prefi"os, el valor es calculado antes de queexpresión sea evaluada, y cuando es postfi"o el valor es calculado después que la expresión es evaluada.

    !n el siguiente e"emplo, $$z es prefi"o y MM es postfi"o( int x,y,zXmain)*?  x8 ))$$z* M )yMM** U PPX@`ue es equivalente a( int x, y,zX

    main)*?  O$$X

      x 8 ) zMy * U PPX  yMMX@!l operador U )módulo o residuo* solamente traba"a con enteros, aunque existe una función para flotantes )fmod )** de la biblioteca matemtica.

    !l operador división 2 es para división entera y flotantes. 3or lo tanto hay que tener cuidado. !l resultado de x 8 KX es uno, a%n si x es declarado como float. La regla es( si ambos argumentos en una división son enterentonces el resultado es entero. Fi se desea obtener la división con la fracción, entonces escribirlo como( x 8 .KX o x 8 2 K.P y a%n me"or x 8 .P 2 K.P.

    3or otra parte, existe una forma ms corta para expresar clculos en #. 3or e"emplo, si se tienen expresion

    como( i 8 i $ X o x 8 x W )y $ K*X3or lo que podemos reescribir las expresiones anteriores como( i $8 X y x W8 y $ KX respectivamente.

    Gperadores de Comparación

    !l operador para probar la igualdad es 88, por lo que se deber tener cuidado de no escribir accidentalmente só8, ya que(

    if ) i 8 " * ...

    !s una sentencia legal de # )sintcticamente hablando aunque el compilador avisa cuando se emplea*, la cu

    http://garota.fismat.umich.mx/mn1/manual/node16.html#item:fmodhttp://garota.fismat.umich.mx/mn1/manual/node16.html#item:fmod

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    19/59

    1$

    Algoritmo Y Lenguajes DeProgramación

    copia el valor de "HH en iHH, lo cual ser interpretado como I!YDCD!Y4, si " es diferente de cero.

    Diferente esB8, otros operadores son( 7 menor que, 6 mayor que, 78 menor que o igual a y 68 )mayor que o iga*.

    7peradores lógicosLos operadores lógicos son usualmente usados con sentencias condicionales o relacionales, los operadorbsicos lógicos son(

    ;; : lógico,

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    20/59

    20

    Algoritmo Y Lenguajes DeProgramación

    peradores 0elacionales

    Los operadores relacionales permiten comparar dos valores entre si y obtener una respuesta deesta comparación. !sta respuesta es de tipo lógico, es decir, puede ser solamente cierto cuandose cumpla la comparación y falso cuando no se cumple.

    #abe mencionar que el resultado de una operación de relación no puede ser asignado a unavariable. !sto es el resultado es directamente usado por una estructura de control de programa.#omo se ver ms delante.

    Los operadores relacionales son(6 5ayor que7 5enor que

    68 mayor o igual que78 menor o igual que8 o 88 igual7 6 Diferente

    peradores ógicos

    Los operadores lógicos permiten comparar dos valores lógicos, los cuales como se deducen,pueden provenir de una comparación relacional )usando operadores relacionales*. Dicho de otramanera permiten efectuar dos comparaciones hechas cada una con un operador relacional, en una

    sola l'nea. #omo ya mencionamos, una comparación relacional arro"a resultados ciento o falso. !lproducto de una comparación lógica da también cierto o falso. Los operadores lógicos san(

    Cnd y4r o=ot no )negación*

    !stos operadores se rigen por las siguientes tablas

    !stos operadores son utilizados en las expresiones lógicas donde el resultado da siempreverdadero o falso.

    Epresiones &peradores'

    Epresiones.M Fon con"untos de constantes, variables, operadores y paréntesis. =ormalmente seutilizan para definir operaciones matemticas. #onsta de operandos y operadores.

    Epresiones Aritm

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    21/59

    21

    Algoritmo Y Lenguajes DeProgramación

    o n) * 3aréntesis 2 División

    V!xponenciación

    $ Fuma

    D&I División entera M Yesta54D 5ódulo 8 Csignación

    !s una colección de operandos )n%meros, constantes, variables, etc.* enlazados por ciertosoperadores, para construir una formula algebraica qué representa un valor.

    Epresiones 0elacionales.M 3ermiten realizar comparaciones de valores de tipo numérico ocarcter. Firven para expresar las condiciones en algoritmos o programas. _ormato( 4peradorrelacional. Ier 4peradores relacionales.

    Epresiones lógicas.M _ormato( 4perador lógico. Ier 4peradores lógicos

    Goda expresión debe satisfacer las siguientes condiciones generales(

    .M =o estn permitidos dos operadores sucesivos. )Fe pueden usar paréntesis paraseparar dos operadores consecutivos.

    K.M 1na expresión puede consistir en un solo identificador usado como constante o comovariable.

    .M 1n nombre de una función puede ser utilizado un lugar de un identificador de constante

    o variable dentro de una expresión.

    -.9 Prioridad de operadores5 evaluación de e8presione

    Determina el orden en que habrn de realizarse las operaciones en una expresión determinada.3ara obtener la prioridad se deben conocer las siguientes reglas(

    Las operaciones que estn encerradas entre paréntesis se eval%an primero. Fi existen diferentes

    paréntesis anidados )interiores unos a otros*, las expresiones ms internas se eval%an primero.!n caso de coincidir varios operadores de igual prioridad en una expresión o subexpresiónencerrada entre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.

    #uando se desea realizar una operación con ba"a prioridad por adelantado, debe agruparse a losoperandos involucrados.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    22/59

    22

    Algoritmo Y Lenguajes DeProgramación

    Los paréntesis tienen prioridad sobre el resto de las operaciones.Determina el orden en que habrn de realizarse las operaciones en una expresión determinada.

    3ara obtener la prioridad se deben conocer las siguientes reglas(

    Las operaciones que estn encerradas entre paréntesis se eval%an primero. Fi existen diferentesparéntesis anidados )interiores unos a otros*, las expresiones ms internas se eval%an primero. !ncaso de coincidir varios operadores de igual prioridad en una expresión o subexpresión encerradaentre paréntesis, el orden de prioridad en este caso es de izquierda a derecha.

    #uando se desea realizar una operación con ba"a prioridad por adelantado, debe agruparse a losoperandos involucrados.

    1na expresión es una combinación de operandos y operadores.La evaluación de una expresión consiste en reducirla, esto es, realizar todas las operaciones

    contenidas en ella para obtener un valor final.3ara evaluar una expresión es necesario conocer la prioridad de los operadores, con lo cual sepuede determinar cul operación se va a realizar antes que las dems.1na expresión entre paréntesis se eval%a primero que las dems. Fi hay paréntesis anidados, seeval%a primero la expresión contenida en los paréntesis ms internos.La siguiente tabla muestra los operadores y su asociatividad )empezando con los de mayor prioridad*.

    4peradoresCsociatividad) * . ne typeof 

    &zquierda a derechaM 9 B $$ MM )tipo* expresiónderecha a izquierdaW 2 Uizquierda a derecha$ Mizquierda a derecha77 66izquierda a derecha7 78 6 68 is as

    izquierda a derecha88 B8izquierda a derecha; Vizquierda a derecha;;izquierda a derecha\(derecha a izquierda8 W8 28 U8 $8 M8 778 668 6668 ;8 8 V8

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    23/59

    23

    Algoritmo Y Lenguajes DeProgramación

    derecha a izquierda

    3.9 /laboración de programa

    Fe puede crear un archivo que contenga el programa completo, como en los e"emplos que se tienen ms adelanFe puede usar cualquier editor de textos ordinario con el que se esté familiarizado. 1n editor disponible enmayor'a de los sistemas 1=&> es vi, y en Linux se puede usar pico.

    3or convención el nombre del archivo debe terminar con .cHH  por ejemplo: miprograma.c progprueba.c . contenido del archivo deber obedecer la sintaxis de #.

    E;ecución de programa.

    !l siguiente estado es correr el programa e"ecutable. 3ara correr un e"ecutable en 1=&>, simplemente se escribenombre del archivo que lo contiene, en este caso programa )o a.out *.

    #on lo anterior, se e"ecuta el programa, mostrando alg%n resultado en la pantalla. !n éste estado, podr'a haberrores en tiempo de e"ecución )run-time errors*, tales como división por cero, o bien, podr'an hacerse evidentesver que el programa no produce la salida correcta.

    Fi lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y e"ecutanuevamente.

    Fin embargo, se da alguna información bsica para algunos programas de #. !l preprocesador acepta el cód

    fuente como entrada y es responsable de(

    • quitar los comentarios

    • interpretar las directivas del preprocesador  las cuales inician con S.

    3or e"emplo(

    • Sinclude MM incluye el contenido del archivo nombrado. !stos son usualmente llamados archivos

    cabecera (header). 3or e"emplo(

    • Sinclude 7math.h6 MM Crchivo de la biblioteca estndar de matemticas.

    • Sinclude 7stdio.h6 MM Crchivo de la biblioteca estndar de !ntrada2Falida.

    Sdefine MM define un nombre simbólico o constante. Fustitución de macros.• Sdefine GC5[5C>[CYY!L4 PP

    ompilador de

    !l compilador de # traduce el código fuente en código de ensamblador. !l código fuente es recibido dpreprocesador.

    Ensamblador.

    !l ensamblador crea el código fuentei o los archivos ob"eto. !n los sistemas con 1=&> se podrn ver los archivcon el sufi"o .o.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    24/59

    24

    Algoritmo Y Lenguajes DeProgramación

    igador 

    Fi alg%n archivo fuente hace referencia a funciones de una biblioteca o de funciones que estn definiden otros archivos fuentes, el ligador   combina estas funciones )con main)** para crear un arche"ecutable.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    25/59

    Algoritmo Y Lenguajes DeProgramación

    > 8 C 2 + M # $ D W ! M C W #

    !>3Y!F&=

    4perandos 4peradores Delimitadores

    Q operandos C,+,#,D,!

    3ueden ser cualquier variable o constante vlida del lengua"e

    Los valores de las variables deben ser coherentes con las operaciones que se realicen con ellas

    0 operadores 2,M,$,W,M,W

    Describen las operaciones que se realizan entre las variables

    3ueden ser aritméticos, lógicos, relacionales

    > 8 C 2 + M # $ D W ! M C W #

    4rden en el que se deben realizar las operaciones

    #ada lengua"e debe definir exactamente dicho orden

    Fi C 8 J, + 8 # 8 K, D 8 ! 8 86

    > 8 ) ) J 2 K * M K * $ ) W * M ) J W K *

    8 P $ / M R

      8

    > 8 ) J 2 )K M K $ * * W ) M J * W K8 ) J 2 * W ) M * W K

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    26/59

    Algoritmo Y Lenguajes DeProgramación

    1nidad 2: /structura #electiva @ !e *epetición

      2., #electivsimple.

    Selectivas  )Fimples*( Fe utilizan para tomar decisiones lógicas. Fe suelen denominar tambiénestructuras de decisiones o alternativas. !s estas estructuras se eval%a una condición y en funcióndel resultado de la misma se realiza una opción u otra. Las condiciones se especifican usandoexpresiones lógicas. Fu representación en seudocódigo es( Si  condición entonces acción sino otra acción

    o Donde Fi indica el comando de comparacióno #ondición indica la condición a evaluar o !ntonces precede a las acciones a realizar cuando se cumple la condicióno  Ccción Ccción o con"unto de acciones que se realiza cuando se cumple la condicióno Fino precede a las acciones a realizar cuando no se cumple la condicióno 4tra acción Ccción o con"unto de acciones que se realizan cuando no se cumple la condición

    Dependiendo si la comparación es cierta o falsa, se puede realizar una o ms acciones. 3ararealizar ms de una, se puede usar el concepto de bloque )&=&4 _&=CL*

    Yepresentación en diagrama de

      =o condición  si

    !"ecuta una determinada condición y si el resultado es verdadero se e"ecuta solo una determinadaacción. Fi la condición es falsa el programa sigue con su secuencia normal.

    Diagrama de )lu;o

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    27/59

    Algoritmo Y Lenguajes DeProgramación

    Pseudocódigo:

    Si 7condición6 entonces

    7Ccción6

    )in=si

    8)  7condición6 t#e

    7Ccción6

    +endir 

    Fimple( e"ecuta una determinada condición y si el resultado es verdadero se e"ecuta solo u

    determinada acción. Fi la condición es falsa el programa sigue con su secuencia normal.

    2.+ #electiva doble

    Se utilizan cuando se tienen dos opciones de acción, se debe ejecutar una o la otra, pero n

    ambas a la vez, es decir, son mutuamente excluyentes. Si la condición es verdadera,

    ejecuta la acción 1, si es falsa, se ejecuta la acción 2.

    Diagrama de flujo

    Pseudocódigo:

    Espa>ol 8ngl

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    28/59

    Algoritmo Y Lenguajes DeProgramación

     

    !ntonces, si una condición # es verdadera, se e"ecuta la acción F y si es falsa, se e"ecuta la acción FK

    2.- #electiva anidad

    La estructura selectiva anidada es una cadena de estructuras selectivas que se conectan de la parte elde la actual con la parte if de la siguiente, es decir cuando después de una decisión se debe tomar otrdespués otra y as' sucesivamente.

    Diagrama de )lu;o

    Pseudocódigo:

    &f 7condicion6 Ghen

      +loque de instrucciones

    !lse

     &f 7condicionK6 Ghen

      +loque de instrucciones K

    I# 'n4: Hhen

      CEJGK

    Else

     I# 'n:4: Hhen

      ELHEJGK

     Else

      DECIMA>K

    %n& '( 

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    29/59

    Algoritmo Y Lenguajes DeProgramación

     !lse

      +loque de instrucciones

    !nd &f 

    2.2 #electiva M;ltipl

    5%ltiple

    !structuras repetitivas( #onsiste en repetir una o varias acciones un n%mero determinado de veces.C esta acción se le llama bucle o ciclo.

    Las dos principales preguntas que se realizan en el diseño de un ciclo son

    o `ue contiene el ciclo\

    o #uantas veces se debe repetir\

    !structura repetitiva 5ientras )hile... do*( !s aquella en que el cuerpo del ciclo se repite mientrasse cumple una determinada condición.

    >a representación gr#ica es en seudocódigo

     

    mientras condición hacer 

      acción 7

      acción 5

    acción n

      #in mientras

      ejemplo Escri!ir un algoritmo que

     permita acción nescri!ir en la pantalla la

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    30/59

    Algoritmo Y Lenguajes DeProgramación

    #rase N desea continuar sí o noO

     

    !structura repetitiva repetir )Yepeat....until*( !s aquel en que el cuerpo del se e"ecuta hasta que secumpla una condición determinada que se verifica al final del ciclo.

    >a representación

    gr#ica es

    en seudocódigo

     

    repetir 

      acción 7

      acción 5

      acción n

    hasta que condición

    Ejemplo Algoritmo que

    calcule la suma de 744

    n&meros  introducidos por

    el teclado

    La diferencia de estas estructuras consiste en(

    o La estructura mientras termina cuando la condición es falsa y en la estructura repetir termicuando la condición es verdadera

    o

    !s la estructura repetir el cuerpo del ciclo se e"ecuta siempre al menos una vez por lo contrario estructura mientras es ms general y permite la posibilidad de que el ciclo pueda no se"ecutado.

    !structura repetitiva Desde hasta )for to*( !"ecuta las acciones del cuerpo del ciclo un n%merodeterminado de veces y de modo automtica controla el n%mero de veces que se repetirn lasinstrucciones del cuerpo del ciclo.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    31/59

    Algoritmo Y Lenguajes DeProgramación

    Se representa gr#icamente de la siguiente #ormaen seudocódigo

    desde $aria!le ($" $i hasta

    $# hacer 

      acción 7

      acción 5

      acción n

    #in desde

    donde $ $aria!le índice

    $i $alor inicial de la $aria!le

    $# $alor #inal de la $aria!le

    La estructura desde comienza con una valor inicial de la variable 'ndice y las acciones espec'ficasse e"ecutan a menos que el valor inicial sea mayor que el valor final. !l incremento de la variable'ndice siempre es uno si no se indica lo contrario. Dependiendo del lengua"e es posible que elincremento sea distinto de uno positivo o negativo

    Felect #ase expres #ase value

    +loc of one or more I+ statements#ase valueK

    +loc of one or more I+ Ftatements#ase value#ase !lse

    +loc of one or more I+ Ftatements!nd Felect

    Felect #ase expression#ase value

    +loc of one or more I+ statements#ase valueK

    +loc of one or more I+ Ftatements#ase value#ase !lse

    +loc of one or more I+ Ftatements!nd Felect

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    32/59

    Algoritmo Y Lenguajes DeProgramación

    2.% *epetir mientras.

    !ste ciclo consiste en un con"unto de instrucciones que se repiten mientras se cumpla una condición. Digual manera que en los condicionales, la condición es evaluada y retorna un valor lógico, que puede sverdadero o falso. !n el caso del ciclo mientras las instrucciones contenidas en la estructura de repeticióse e"ecutarn solamente si al evaluar la condición se genera un valor verdaderoX es decir, si la condicise cumpleX en caso contrario, se e"ecutar la instrucción que aparece después de _in mientras.

    C diferencia de otros ciclos, el ciclo mientras comienza evaluando la expresión condicional, si el resultaes verdadero se e"ecutarn las instrucciones que estén entre el mientras y el fin mientras, al encontrarsla l'nea fin mientras se volver a evaluar la condición, si se cumple se e"ecutarn nuevamente linstrucciones y as' sucesivamente hasta que la condición de"e de cumplirse, en cuyo caso, el control dprograma pasa a la l'nea que aparece después de fin mientras.

    Fi en la primera pasada por el ciclo mientras la condición no se cumple las instrucciones que estn dentdel ciclo no se e"ecutarn ni una sola vez.

    !n diagrama de #hapin )=MF*, esta estructura tiene la presentación(

    !"emplos(

    . 1n algoritmo para mostrar los n%meros del al P.

    Definición del problema

    5ostrar listado de n%meros de a P.

     Cnlisis del problema

    Datos de entrada( ninguno

    Datos de salida( n%mero

    3roceso( ninguno

    Diseño de la solución

    !ste es un algoritmo muy trivial pero permite revisar la aplicación de la estructura de repetición 5ientraLo primero a tener en cuenta es la declaración e inicialización de la variable( num 8 . !n este caso n

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    33/59

    Algoritmo Y Lenguajes DeProgramación

    solo se est declarando una variable de tipo entero, sino también se est asignando un valor inicial, quser el primer n%mero mostrado.

    La condición o expresión relacional con la cual se implementa el ciclo es num 78 P, dado que num inicen , la primera vez que se encuentra la instrucción mientras, la expresión es verdadera, por tanto e"ecutan las instrucciones que aparecen al interior del ciclo.

    Después de haber mostrado el contenido de la variable num, éste cambia, se incrementa en .

    . Leer n n%meros y encontrar el valor promedio, el mayor y el menor 

    o Definición del problema

    o !ncontrar el promedio, el mayor y el menor de varios n%meros

    o  Cnlisis del problema

    3ara solucionar este problema, lo primero que hay que plantear es cómo se sabr cuando terminar lectura de datos, ya que no se especifica la cantidad de n%meros que sern ingresados y en planteamiento del problema no se da ninguna condición que permita saber cundo terminar el ciclo. !stipo de problemas es muy com%n.

    Aay dos formas de abordar este e"ercicio, la primera consiste en preguntar al usuario con cuantn%meros desea traba"ar y guardar dicho valor en una variable que se utilizar para establecer el ciclo. segunda consiste en preguntar después de leer cada dato, si se desea ingresar otro. !n este e"ercicio utilizar la primera estrategia.

    Datos de entrada( cantidad de n%meros, n%mero

    Datos de salida( promedio, mayor y menor 

    3rocesos(

    Fuma 8 suma $ n%mero

    3romedio 8 suma 2 cantidad de n%meros

    Diseño de la solución

    . La serie _ibonacci comienza con los n%meros( P, , , K, , Q, R, , K, j Fe requiere un algoritmpara generar los primeros P n%meros.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    34/59

    Algoritmo Y Lenguajes DeProgramación

    Definición del problema

    enerar los P primeros n%meros de la serie fibonacci

    Cnlisis del problema

    La serie fibonacci se genera a partir de dos valores iniciales que son el P y el , que al sumarse dan comresultado . !l siguiente n%mero se obtiene sumando el %ltimo n%mero obtenido con el anterior, en escaso $ 8 K, luego ser K $ 8 y as' sucesivamente.

    2.6 *epetir

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    35/59

    Algoritmo Y Lenguajes DeProgramación

    2.3 *epetir desd

    Yealiza la acción o con"unto de acciones, luego eval%a una condición, de resultar cierta vuelve a realizla)s* acción)es*. #uando sea falsa se sale del ciclo. Fu sintaxis es(

    Do ?

      Fentencia,

    @ hile )*X

    La diferencia fundamental, entre el ciclo hile y doj hile es que en este %ltimo, las sentencias realizarn por lo menos una vez, en cambio, con hile, solo se cumplirn mientras se cumpla condición, lo cual puede ser nunca.

    !"emplo( 3rograma que imprima luna lista de n%meros del al PP)3CYC -#Y!CG4Y*

    class fibo ?

    K public static void main)Ftring args*?

    int n8PX

    J do? n$$X

    Q Fystem.out.println)n$kk*X

    0 @hile)n7PP*X

    N@

    R@

    2.9 /laboración de programa

    !structuras repetitivas del softare 3Feint

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    36/59

    Algoritmo Y Lenguajes DeProgramación

    Dentro del programa 3Feint se tienen disponibles a de las estructuras repetitivas, las cuales so5ientras,YepetirMAasta y la estructura 3ara, ver figura J.N. La estructura y sintaxis de uso de cada una se explicacontinuación.

    W 5ientras

    W Yepetir Aasta

    W 3ara

    _igura J.N( ]#omandosk de 3Feint para estructuras repetitivas

    Fintaxis y uso de la instrucción ]5ientraskYepite un bloque de instrucciones )Fecuencia[de[acciones* limitada entre el paso 5ientras y pa_in5ientras.

    La repetición del bloque de pasos se controla al inicio de la estructura, gracias a evaluar a una condiciólógica #L]!xpresion[logicak, cuyo resultado Ierdadero o _also es aprovechado para determinar si repite o nobloqueBB

    Cl utilizar un lazo 5ientras hay que tener cuidado de lo siguiente(

    a* 3ara permitir que el lazo 5ientras e"ecute al menos una vez su ciclo de instrucciones, ustdebe de asegurarse que su #ondición Lógica se cumpla )inicialmente*, sino 3Feint ignoratoda el bloque a repetir dentro de la estructura y continuara con el paso "ustamente despudel cierre del 5ientras.

    b* 3ara que el lazo 5ientras pueda repetir el +ucle una o ms veces, aseg%rese que eninterior de los pasos del ciclo se modifique2altere el valor de )por lo menos* una de lvariables utilizada en la #L, de manera que al finalizar el ciclo actual, 3Feint evalué nuevo la #L, y decida si repetir el +ucle.

    c* Feg%n la aclaración anterior, si necesita que el lazo finalice )que ya no se repita de nuevociclo*, aseg%rese que al volver a evaluar la #L, est ya no se cumpla.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    37/59

    Algoritmo Y Lenguajes DeProgramación

    1?I!A! %. Arreglos y Arc

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    38/59

    Algoritmo Y Lenguajes DeProgramación

    3ara acceder los elementos se procede de forma similar al e"emplo del arreglo unidimensional, estoes,

    bK 8 QX 2W Csigna Q al elemento de la fila y la J columnaW2

    num 8 bKQ0X C continuación se muestra un e"emplo que asigna al primer elemento de un arreglobidimensional cero, al siguiente , y as' sucesivamente.

    main)* ? int t,i,numJX

    for)t8PX t7X $$t* for)i8PX i7JX $$i* numti8)tWJ*$iWX

    for)t8PX t7X $$t*? for)i8PX i7JX $$i* printf)numUdUd8Ud , t,i,numti*Xprintf)En*X @

    @ !n # se permite la inicialización de arreglos, debiendo seguir el siguiente formato(

    tipo nombre[arr tam tamK ... tam= 8 ?listaMvalores@X 3or e"emplo(

    int cP 8 ?,K,,J,Q,0,N,R,/,P@X

    int numJ8?P,,K,,J,Q,0,N,R,/,P,@X

    A00E?S:

    Las estructuras de datos que hemos visto hasta ahora )listas, tuplas, diccionarios, con"untos*permiten manipular datos de manera muy flexible. #ombinndolas y anidndolas, es posibleorganizar información de manera estructurada para representar sistemas del mundo real.

    !n muchas aplicaciones de &ngenier'a, por otra parte, ms importante que la organización de losdatos es la capacidad de hacer muchas operaciones a la vez sobre grandes con"untos de datosnuméricos de manera eficiente. Clgunos e"emplos de problemas que requieren manipular grandessecuencias de n%meros son( la predicción del clima, la construcción de edificios, y el anlisis deindicadores financieros entre muchos otros.

    La estructura de datos que sirve para almacenar estas grandes secuencias de n%meros)generalmente de tipo float* es el arreglo.

    Los arreglos tienen algunas similitudes con las listas(los elementos tienen un orden y se puedenacceder mediante su posición, los elementos se pueden recorrer usando un ciclo for .

    Fin embargo, también tienen algunas restricciones( todos los elementos del arreglo deben tener elmismo tipo, en general, el tamaño del arreglo es fi"o )no van creciendo dinmicamente como laslistas*, se ocupan principalmente para almacenar datos numéricos.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    39/59

    Algoritmo Y Lenguajes DeProgramación

    C la vez, los arreglos tienen muchas venta"as por sobre las listas, que iremos descubriendo amedida que avancemos en la materia.

    Los arreglos son los equivalentes en programación de las matrices y vectores de las matemticas.

    3recisamente, una gran motivación para usar arreglos es que hay mucha teor'a detrs de ellos quepuede ser usada en el diseño de algoritmos para resolver problemas verdaderamente interesantes.

    #rear arreglos!l módulo que provee las estructuras de datos y las funciones para traba"ar con arreglos sellama =um3y, y no viene inclu'do con 3ython, por lo que hay que instalarlo por separado.Descargue el instalador apropiado para su versión de 3ython desde la pgina de descargas de=um3y. 3ara ver qué versión de 3ython tiene instalada, vea la primera l'nea que aparece al abrir una consola.3ara usar las funciones provistas por =um3y, debemos importarlas al principio del programa(

    from numpy import array

    #omo estaremos usando frecuentemente muchas funciones de este módulo, conviene importarlastodas de una vez usando la siguiente sentencia(

    from numpy import W)Fi no recuerda cómo usar el import, puede repasar la materia sobre módulos*.!l tipo de datos de los arreglos se llama array. 3ara crear un arreglo nuevo, se puede usar lafunción array pasndole como parmetro la lista de valores que deseamos agregar al arreglo(

    666 a 8 array)0, , , /, R*666 aarray)0, , , /, R*

    Godos los elementos del arreglo tienen exactamente el mismo tipo. 3ara crear un arreglo den%meros reales, basta con que uno de los valores lo sea(

    666 b 8 array)0.P, , , /, R*666 barray) 0., ., ., /., R.*

    4tra opción es convertir el arreglo a otro tipo usando el método astype(666 aarray)0, , , /, R*666 a.astype)float*array) 0., ., ., /., R.*666 a.astype)complex*array) 0.$P.", .$P.", .$P.", /.$P.", R.$P."*

    _unciones sobre arreglos=um3y provee muchas funciones matemticas que también operan elemento a elemento. 3or e"emplo, podemos obtener el seno de / valores equiespaciados entre P y π 2K con una solallamada a la función sin(666 from numpy import linspace, pi, sin

    666 x 8 linspace)P, pi2K, /*666 xarray) P. , P./0J/QJ, P./K0//PR,

    http://tinyurl.com/bajar-numpyhttp://tinyurl.com/bajar-numpyhttp://progra.usm.cl/apunte/materia/modulos.htmlhttp://tinyurl.com/bajar-numpyhttp://tinyurl.com/bajar-numpyhttp://progra.usm.cl/apunte/materia/modulos.html

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    40/59

    Algoritmo Y Lenguajes DeProgramación

      P.QR/PJR0K, P.NRQ/R0, P./RNJNN ,  .NRP/NKQ, .NJJJ0N/, .QNPN/0*

    666 sin)x*

    array) P. , P./QP/PK, P.RK0RJ,  P.QQQQNPK, P.NPNP0NR, P.RJ0/0,  P./KRN/Q, P./RPNRQKR, . *

    #omo puede ver, los valores obtenidos crecen desde P hasta , que es "ustamente como secomporta la función seno en el intervalo P, π 2K.Cqu' también se hace evidente otra de las venta"as de los arreglos( al mostrarlos en la consola o alimprimirlos, los valores aparecen perfectamente alineados. #on las listas, esto no ocurre(

    666 list)sin)x**P.P, P./QP/PKKP0KRKQ, P.RK0RJK0QPR/NR, P.QQQQNPKP/0PKR, P.NPNP0NRR0QJNJ0, P.RJ0/0KPKQJQKJ, P./KRN/QKQKR0NJ, P./RPNRQKRPJPKPJ, .P

    %.+ Arreglo bidimensionales.

    Los arreglos bidimensionales son tablas de valores. #ada elemento de un arreglo bidimensionalest simultneamente en una fila y en una columna.!n matemticas, a los arreglos bidimensionales se les llama matrices, y son muy utilizados en

    problemas de &ngenier'a.!n un arreglo bidimensional, cada elemento tiene una posición que se identifica mediante dos'ndices( el de su fila y el de su columna.

    rear arreglos bidimensionalesLos arreglos bidimensionales también son provistos por =um3y, por lo que debemos comenzar importando las funciones de este módulo(

    )rom nump@ import WCl igual que los arreglos de una dimensión, los arreglos bidimensionales también pueden ser creados usando la función array, pero pasando como argumentos una lista con las filas de la matriz(

    a 8 array)Q., N.J, .K, /./,

      ./, 0.R, J., K.,  K./, 0.J, J., .J*Godas las filas deben ser del mismo largo, o si no ocurre un error de valor(

    $$$ array), K, *Gracebac )most recent call last*(  _ile 7stdin6, line , in 7module6Ialue!rror ( setting an array element ith a sequence.

    Los arreglos tienen un atributo llamado shape, que es una tupla con los tamaños de cadadimensión. !n el e"emplo, a es un arreglo de dos dimensiones que tiene tres filas y cuatro

    http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1tica)http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1tica)http://es.wikipedia.org/wiki/Matriz_(matem%C3%A1tica)

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    41/59

    Algoritmo Y Lenguajes DeProgramación

    columnas($$$ a.shape), J*

    Los arreglos también tienen otro atributo llamado size que indica cuntos elementos tiene el arreglo(

    $$$ a.sizeK

    3or supuesto, el valor de a.size siempre es el producto de los elementos de a.shape.Aay que tener cuidado con la función len, ya que no retorna el tamaño del arreglo, sino su cantidadde filas(

    $$$ len)a*

    Las funciones zeros y ones también sirven para crear arreglos bidimensionales. !n vez de pasarlescomo argumento un entero, hay que entregarles una tupla con las cantidades de filas y columnasque tendr la matriz(

    $$$ zeros)), K**

    array) P., P.,  P., P.,  P., P.*

    $$$ ones))K, Q**array) ., ., ., ., .,  ., ., ., ., .*

    Lo mismo se cumple para muchas otras funciones que crean arreglosX por e"emplo lafunción random(

    $$$ )rom [email protected] import random$$$ random))Q, K**

    array) P.RPNN/, P.J0/QJR,  P.NNKRRJK, P.NKNPJ0KN,  P.Q0KNN, P.J/K ,  P.QNPJR, P.JJPNQR,  P.PJPNPN, P.JNJPR0*

    peraciones con arreglos bidimensionalesCl igual que los arreglos de una dimensión, las operaciones sobre las matrices se aplican término atérmino(

    $$$ a 8 array)Q, , J,... P, , K*

    $$$ b 8 array)K, , M,... , P, *

    $$$ a $ Karray)N, , 0,  K, Q, J*

    $$$ a WW barray)KQ, , P,

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    42/59

    Algoritmo Y Lenguajes DeProgramación

      P, , K*#uando dos matrices aparecen en una operación, ambas deben tener exactamente la misma forma(

    $$$ a 8 array)Q, , J,... P, , K*

    $$$ b 8 array) K, ,... M, ,... P, *$$$ a $ bGracebac )most recent call last*(  _ile 7stdin6, line , in 7module6Ialue!rror ( shape mismatch( ob"ects cannot be broadcast to a single shape

    btener elementos de un arreglo bidimensional3ara obtener un elemento de un arreglo, debe indicarse los 'ndices de su fila i y sucolumna " mediante la sintaxis ai, "(

    $$$ a 8 array) .K, Q., J.0N, 0.J,  /.QJ, P.P, K.J, 0.QN,  Q.0K, P.QJ, P.N, K.Q0,  R./, K.K, 0.KR, R.N0,  R.NK, .JN, P.NN, R.NR*$$$ a, KK.J

    $$$ aJ, R.NR

    $$$ aM, MR.NR

    $$$ aP, M0.J

    Gambién se puede obtener secciones rectangulares del arreglo usando el operador de rebanado conlos 'ndices(

    $$$ aK(, (Jarray) P.QJ, P.N, K.Q0*

    $$$ a(J, P(J

    array) /.QJ, P. , K.J, 0.QN,  Q.0K, P.QJ, P.N, K.Q0,  R./, K.K, 0.KR, R.N0*

    $$$ a(, Karray) K.J, P.N*

    $$$ aP(J(K, (P(Marray) 0.J, J.0N, Q.,

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    43/59

    Algoritmo Y Lenguajes DeProgramación

      K.Q0, P.N, P.QJ*

    $$$ a((J, ((array) .K, 0.J,

      R.NK, R.NR*3ara obtener una fila completa, hay que indicar el 'ndice de la fila, y poner ( en el de las columnas)significa desde el principio hasta el final*. Lo mismo para las columnas(

    $$$ aK, (array) Q.0K, P.QJ, P.N, K.Q0*

    $$$ a(, array) 0.J, 0.QN, K.Q0, R.N0, R.NR*

    =ote que el n%mero de dimensiones esigual a la cantidad de rebanados que hay en los'ndices(

    $$$ aK, # valor escalar (arreglo decero dimensiones)K.Q0

    $$$ aK(, # arreglo de una dimensión de 1 elementoarray) K.Q0*

    $$$ aK(, (J # arreglo de dos dimensiones de 1 x 1array) K.Q0*

    .3 Arc#ivo

    Los archivos son un mecanismo de abstracción( proporcionan una forma de almacenar informaciónen el disco y leerla después.

    #uando un proceso crea un archivo, le asigna un nombre. #uando el proceso termina, el archivo

    sigue existiendo y otros procesos pueden acceder a él utilizando su nombre.Las reglas exactas para nombrar archivos var'an tanto de un sistema a otro, pero todos los sistemasoperativos permiten cadenas de a R caracteres como nombres de archivos vlidos. !n muchoscasos se permite también d'gitos y caracteres especiales.

    Estructura de Arc#ivos

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    44/59

    Algoritmo Y Lenguajes DeProgramación

    Los archivos pueden estructurarse de varias maneras. Gres posibles comunes son(

    Fecuencia de bytes Fecuencia de registros

     rbol

     

    ipos de Arc#ivos

    o  Crchivos Yegulares( Fon los que contienen información del usuario.

    o Directorios( Fon archivos de sistema que sirven para mantener la estructura del sistema archivos.

    o  Crchivos !speciales por #aracteres( !stn relacionados con !2F y sirven para modedispositivos de!2F en serie.

    o  Crchivos !speciales por +loques( Firven para modelar discos.

     Acceso a Arc#ivos

    Los primeros sistemas operativos solo ofrec'an un tipo de acceso a los archivos( Ccceso

    Fecuencial. !n estos sistemas, un proceso pod'a leer todos los bytes o registros de un archivo enorden, comenzado por el principio, pero no pod'a saltar de un lado a otro y leerlos en desorden.

    Los archivos cuyos bytes o registros se pueden leer en cualquier orden se denominan Crchivos deCcceso Cleatorio. Los Crchivos de Ccceso Directo son esenciales para muchas aplicaciones.

    Atributos de Arc#ivos

    Godo archivo tiene un nombre y ciertos datos. Cdems, todos los sistemas operativos asocianinformación adicional a cada archivo. Llamamos a estos datos adicionales Ctributos del Crchivo. Lalista de atributos varia considerablemente de un sistema a otro.

    peraciones con Arc#ivos

    Los diferentes archivos ofrecen distintas operaciones de almacenamiento y recuperación.

    #reateDelete4pen#lose

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    45/59

    Algoritmo Y Lenguajes DeProgramación

    Yeadrite

     CppendFee

    et attributesFet attributesYename

    %.2 /laboración de programas. 

    !"m(char c,cK,cXc 8 aX cK 8 *X c 8 /X

    #aracter'sticas de caracteres(o Fecuencialidad de los caractereso comparar caractersj c6cKo may%sculas 7 min%sculas..

    !"emplo(int iXfor )i80QX i7/X i$$*!"emplo(char cXfor )c8HaHX c78HzHX c$$*ver car.c y carK.c

    3roblemas(

    o car, car,o tabla asciio #onversión may%sculas a min%sculasj

    Crreglo de caractereschar a=8?HrH,HuH,HtH,HhH@X3roblema(detectar un pal'ndrome

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    46/59

    Algoritmo Y Lenguajes DeProgramación

    Ftring(#adena de caracteres.char linea 8 buenos diasb u e n o s d i a s EP

    P K J Q 0 N R / P

    !"emplos(

    o como asignar datos a un string string.co ingresa nombre y saluda stringK.co despliega las letras del nombre separadas con un

    blanco string.c

    1?I!A! 6: =unciones

    6., Introducció

    Fubalgoritmo.

    Fe le llama as' a cada una de las partes de un algoritmo ms general que resuelve cada una de la

    tareas particulares necesarias para que dicho algoritmo general alcance el ob"etivo para el que fdiseñado, es decir resolver un problema.

    Las variables locales( se declaran dentro de un módulo o Fubalgoritmo y sólo tienen utilidad dentro ese módulo, no se podr acceder a ellas desde otros módulos. 3ueden existir variables locales con mismo nombre siempre que estén en módulos diferentes.

    Las variables globales( son declaradas de forma que puedan ser utilizadas )consultada y2o modificaddesde cualquiera de los módulos que forman el programa. !n este caso, no puede haber dos variablglobales con el mismo nombre, ya que esto producir'a una ambigedad que el compilador no podrresolver.

    _unción.

    Gambién conocido como una subrutina o subprograma, como idea general, se presenta como Fubalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea espec'ficClgunos lengua"es de programación, como Iisual +asic .=!G o _ortran, utilizan el nombre función pareferirse a subrutinas que devuelven un valor.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    47/59

    Algoritmo Y Lenguajes DeProgramación

    1na subrutina al ser llamada dentro de un programa hace quecódigo principal se detenga y se diri"a a e"ecutar el código de subrutina, en cambio cuando se llama a una macro, el compiladtoma el código de la macro y lo implanta donde fue llamadaumentando as' el código fuente y por consiguiente ob"eto.

    !lementos de la declaración de una subrutina.Las declaraciones de subrutinas generalmente son especificadpor(1n nombre %nico en el mbito( nombre de la función con el que se identifica y se distingue de otras.1n tipo de dato de retorno( tipo de dato del valor que la subrutina devolver al terminar su e"ecución.

    1na lista de parmetros( especificación del con"unto de argumentos )pueden ser cero, uno o ms* quefunción debe recibir para realizar su tarea.

    !l código u órdenes de procesamiento( con"unto de órdenes y sentencias que debe e"ecutar la subrutina

    3or e"emplo un seudocódigo puede ser3rivate Fub cmdregre[#lic)* )programa principal*1nload 5e!nd FubFub Fumar)+yYef Ialor Cs Long*Ialor 8 Ialor $ PP!nd Fub3rivate Fub cmd+yYef[#lic)*Dim 1n[Ialor Cs Long1n[Ialor 8 PP#all Fumar)1n[Ialor*5sg+ox 1n[Ialor, vb&nformation, 5odifica la variable!nd Fub ) fin del programa*Donde se puede ver claramente donde inicia la función del programa y donde termina.

    6.+ =unciones estánda

    M#adenas de caracteres.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    48/59

    Algoritmo Y Lenguajes DeProgramación

    Len( &ndica la cantidad de caracteres que tiene una determinada cadena.

    Lcase y 1case( #onvierte cadenas de texto a min%scula y may%scula.

    KM#on n%meros.

    Yound( se utiliza para redondear un n%mero decimal, devolviendo n%mero entero.

    Dim 5imumero Cs Long

    5inumero 8 Yound )KJQ.R* H)La función devuelve KJ0*

    M_echas

    _ormat#urrency( _ormato en dinero.

    !"emplo(

    _ormat#urrency)txt* esto quiere decir que los datos numéricos puestos en el text box se dar en formde dinero

    _ormat3ercent( 3orcenta"es.

    !"emplo( _ormat3ercent)txtK* los datos introducidos en text box K se dara en formato de porcenta"e

    .

    JM3resentar mensa"es en pantalla

    _unción &nput+ox( 3resenta un mensa"e al usuario, permitiéndole ingresar un valor en una ca"a de texto

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    49/59

    Algoritmo Y Lenguajes DeProgramación

    6.- /ntrada y salida de dato

    La entrada de datos consiste en colocar en la memoria principal datos provenientes desde alg%dispositivo de entrada )teclado, disco, etc.* para que la computadora, de acuerdo a un programa, realicuna tareLa salida de datos consiste en enviar datos )que, generalmente, son el resultado de un procesamientdesde la memoria principal hacia un dispositivo de salida )pantalla, impresora, disco, etcLa siguiente figura muestra un esquema conceptual del equipo de cómputo.

    o !squema conceptual del equipo de cómputo La consola

    o !n los albores de la computación, el teclado y la pantalla formaban la consola.

    o !n la actualidad, a la combinación de teclado y pantalla se les sigue considerando como a laantigua consola.

    o !n #S, la entrada y la salida de datos se pueden mane"ar a través de los métodos de la clase

    #onsole.

    o !ntrada de datos desde el teclado3ara la entrada de datos por medio del teclado se pueden utilizar los métodos Yead) * y YeadLin* de la clase #onsole.

    !"emplos(

    o Fystem.#onsole.Yead) * X 22 Lee el siguiente carcter desde el flu"o de la entrada estndar.

    o Fystem.#onsole.YeadLine) * X 22 Lee la siguiente l'nea de caracteres desde el flu"o de la entrada

    estndar.Falida de datos hacia la pantalla

    o La salida de datos hacia la pantalla se puede realizar utilizando los métodos rite y riteLine) * la clase #onsole.

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    50/59

    Algoritmo Y Lenguajes DeProgramación

    !"emplos(

    o Fystem.#onsole.rite) * X 22 !scribe el siguiente carcter en el flu"o de la salida estndar )lapantalla*.

    o Fystem.#onsole.riteLine) * X 22 !scribe la siguiente l'nea de caracteres en el flu"o de la salidaestndar.

    #uadro de 5ensa"e

    5uestra un mensa"e en un cuadro de dilogo, espera a que el usuario haga clic en un botón. Fi emplea como función, devuelve un tipo &nteger correspondiente al botón elegido por el usuario.

     La sintaxis es(

    5sg+ox )mensa"e , botones , t'tulo , archivo Cyuda, contexto*

    #uando 5sg+ox se emplea como función, devuelve un tipo &nteger  correspondiente al botón elegido por el usuario.

    IisualM+asic tiene una serie de constantes memoMtécnicas que permiten fcilmenrecordar las opciones posibles.

    _unción &nput+ox

    !l &nput+ox o cuadro de entrada es otro de los cuadros de dilogos utilizados para la interacción dusuario con la aplicación. !l &nput+ox permite mostrar un cuadro de dilogo donde el usuario pasar parmetro, valor o dato para que el programa lo trate y lo e"ecute. !l mensa"e que quiere que aparezse realiza de forma casi idéntica al 5sg+ox.

    La sintaxis es(

    &nput+ox )mensa"e ,t'tulo, estndar , posx,posy, archivo Cyu, contexto*

    Falida de datos

    Feg%n hemos visto, el método 3rint visualiza datos en un formula)ob"eto _orm*. Cs' mismo, permite visualizar datos en la ventana inmediato )a través del ob"eto Debuen una ca"a de imagen )#ontrol 3icture+ox* o en una impresora )utilizando el ob"eto 3rinter*.

    6.2 =unciones de4nidas por el usuari

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    51/59

    Algoritmo Y Lenguajes DeProgramación

    Fon funciones que el usuario crea para cubrir necesidades que estn fuera del alcance de las funcionestndar. #ada función tiene una misión muy concreta, de modo que nunca tiene un n%mero de l'neexcesivo y siempre se mantiene dentro de un tamaño mane"able. !s muy frecuente que al hacer umodificación para añadir una funcionalidad o corregir un error, se introduzcan nuevos errores en partdel programa que antes funcionaban correctamente.

    Cdems, una misma puede ser llamada muchas veces en un mismo programa, e incluso puede sreutilizada por otros programas. 1na función es capaz de mantener una gran independencia con el resdel programa.

    Las funciones siempre devuelven un valor al programa que las invocó.

    3ara llamar a un procedimiento se escribe su nombre en el cuerpo del programa, y si los necesita, incluyen los parmetros entre paréntesis. 3ara invocar una función es necesario hacerlo en u

    expresión. !xisten cuatro formas de pasar un argumento a una función )subrutina* o procedimiento( por valor, preferencia, por valorMresultado y por nombre.

    Ienta"as de las funciones definidas por el usuario

    Las venta"as de utilizar las funciones definidas por el usuario en F`L Ferver son( 3ermiten una programación modular.

    3uede crear la función una vez, almacenarla en la base de datos y llamarla desde el programa tantveces como desee. Las funciones definidas por el usuario se pueden modificar, independientemente d

    código de origen del programa. 3ermiten una e"ecución ms rpida.Cl igual que los procedimientos almacenados, las funciones definidas por el usuario GransactMF`reducen el costo de compilación del código GransactMF`L almacenando los planes en la cachéreutilizndolos para e"ecuciones repetidas. !sto significa que no es necesario volver a analizaroptimizar la función definida por el usuario con cada uso, lo que permite obtener tiempos de e"ecucimucho ms rpidos.Las funciones #LY ofrecen una venta"a de rendimiento importante sobre las funciones GransactMF`L patareas de clculo, manipulación de cadenas y lógica empresarial. GransactMF`L se adecuan me"or alógica intensiva del acceso a datos. 3ueden reducir el trfico de red.

    1na operación que filtra datos basndose en restricciones comple"as que no se puede expresar en usola expresión escalar se puede expresar como una función. La función se puede invocar en la clusA!Y! para reducir el n%mero de filas que se env'an al cliente.  ipos de )unciones

    o _unción escalar(Las funciones escalares definidas por el usuario devuelven un %nico valor de datos del tipo definido en clusula Y!G1Y=F. !n una función escalar insertada no hay cuerpo de la funciónX el valor escalar es

    http://void%280%29/http://void%280%29/http://void%280%29/http://void%280%29/

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    52/59

    Algoritmo Y Lenguajes DeProgramación

    resultado de una sola instrucción. 3ara una función escalar de varias instrucciones, el cuerpo de función, definido en un bloque +!&=...!=D, contiene una serie de instrucciones de GransactMF`L qdevuelven el %nico valor. !l tipo devuelto puede ser de cualquier tipo de datexcepto tet, ntet, image, cursor  y timestamp.

    _unciones con valores de tablaLas funciones con valores de tabla definidas por el usuario devuelven un tipo de datos table. Lfunciones insertada con valores de tabla no tienen cuerpoX la tabla es el con"unto de resultados de usola instrucción F!L!#G.

    o _unciones del sistema

    F`L Ferver proporciona numerosas funciones del sistema que se pueden usar para realizar diversoperaciones. =o se pueden modificar. 3ara obtener ms información, vea _unciones integrad)GransactMF`L*, _unciones almacenadas del sistema )GransactMF`L* y _unciones y vistas administración dinmica )GransactMF`L*.

     Gop

    6.% Pase por valo

    3asar por valor implica crear una nueva variable dentro de la función y pasarle una copia del valor devariable externa. Fi se modifica el valor de la variable copia, la variable original queda inalterada.

    Los tipos de valor incluyen lo siguiente(

    Godos los tipos de datos numéricos

    +oolean, #har y Date

    Godas las estructuras, incluso si sus miembros son tipos de referencia

    Las enumeraciones, ya que su tipo subyacente es siempre F+yte, Fhort, &nteger, Long, +yte, 1Fho1&nteger o 1Long

    Pasando datos de tipo básico

    Fea la función

      void funcion )int x*?  x8QX  Fystem.out.println)dentro de la función( a8$x*X  @

    http://technet.microsoft.com/es-es/library/ms174318.aspxhttp://technet.microsoft.com/es-es/library/ms174318.aspxhttp://technet.microsoft.com/es-es/library/ff848780.aspxhttp://technet.microsoft.com/es-es/library/ms188754.aspxhttp://technet.microsoft.com/es-es/library/ms188754.aspxhttp://technet.microsoft.com/es-es/library/ms191007.aspx#Introhttp://technet.microsoft.com/es-es/library/ms174318.aspxhttp://technet.microsoft.com/es-es/library/ms174318.aspxhttp://technet.microsoft.com/es-es/library/ff848780.aspxhttp://technet.microsoft.com/es-es/library/ms188754.aspxhttp://technet.microsoft.com/es-es/library/ms188754.aspxhttp://technet.microsoft.com/es-es/library/ms191007.aspx#Intro

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    53/59

    Algoritmo Y Lenguajes DeProgramación

    Fea la variable a que toma inicialmente el valor de . ^#ul ser el valor de a después de la llamada a función uncion!

      int a8X

      funcion)a*XFystem.out.println)después de la llamada( a8$a*X

    !n primer lugar, recordaremos que la función denominada uncion  tiene un %nico parmetro x , cualcance es desde la llave de apretura hasta la llave de cierre de la función. La variable  x  de"a de exisuna vez que la función retorna.

    Iamos a ver en este e"emplo el significado de paso por valor. La variable a toma el valor inicial de#uando se llama a la función se pasa el valor de a en su %nico argumento, el valor de a se copia enparmetro x , la variable x  toma el valor de . !n el curso de la llamada a la función, el valor de  x  cambiaQ, pero cuando la función retorna, la variable x ha de"ado de existir. La variable a no se ha modificado

    el curso de la llamada a la función, y sigue valiendo .

    Durante el curso de la llamada a la función unción, existe la variable a y su copia x , pero son dvariables distintas, aunque inicialmente guarden el mismo valor.

    Pasando ob;etos

    #reamos una clase "ntero muy sencilla que tiene como miembro dato un n%mero entero valor , y unconstructor que inicializa dicho miembro p%blico al crearse un ob"eto de la clase "ntero.

    public class !ntero ?

      public int valorX  public !ntero)int valor*?  this.valor8valorX  @@

    !l valor devuelto por neB al cear un ob"eto es una referencia a un ob"eto en memoria, que hemdenominado ob"eto. #reamos un ob"eto ant  de la clase "ntero para guardar el n%mero tres.

      !ntero a&nt8ne !ntero)*X

      funcion)a&nt*X

    !l valor devuelto por neB lo guardamos en ant , y se lo pasamos a la función denominada uncion.

      void función)!ntero x&nt*?  x&nt.valor8QX  @

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    54/59

    Algoritmo Y Lenguajes DeProgramación

    Dentro de la función denominada unción disponemos en xnt  de la referencia al ob"eto ant . #omoargumento ant  y el parmetro xnt  guardan la referencia al mismo ob"eto, es posible modificar dicob"eto en el curso de la llamada a la función, accediendo a sus miembros p%blicoDesde xnt  accedemos al miembro p%blico valor  para modificarlo. #uando la función retorna,

    ob"eto ant habr modificado su estado.

    public class IalorCppK ?  public static void main)Ftring args* ?  !ntero a&nt8ne !ntero)*X  Fystem.out.println)Cntes de llamar a la función*X  Fystem.out.println)ob"eto.miembro $a&nt.valor*X  funcion)a&nt*X  Fystem.out.println)Después de llamar a la función*X  Fystem.out.println)ob"eto.miembro $a&nt.valor*X  @

      public static void function)!nter x&nt*?  x&nt.valor8QX  @@

    !stos dos e"emplos, nos ponen de manifiesto el significado de la frase pasar por valor un dato a ufunción, y el distinto comportamiento de los tipos bsicos de datos, que no se pueden modificar en curso de la llamada a la función, de los ob"etos que si se pueden modificar. La referencia a un ob"eto spasa por valor a la función. Dentro de la función, desde esta referencia podemos acceder a los miembrp%blicos de dicho ob"eto para modificar su estado. #uando la función retorna el ob"eto estar modificado

    6.6 Pase por re>erenci

    3asar un argumento por referencia implica que en realidad se pasa a la función la variable original, dmodo que la función puede modificar su valor.

    Los tipos de referencia incluyen lo siguiente(

    Ftring

    Godas las matrices, incluso si sus elementos son tipos de valores

    Los tipos de clase, como _orm

    Delegados

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    55/59

    Algoritmo Y Lenguajes DeProgramación

    6.3 Puntero

    1n puntero es un tipo simple que siempre est asociado a otro tipo )punteros a enteros, a reales,registros, etc.*

    Fe pueden ver los punteros como variables que almacenan direcciones de memoriaX de aqu' se deduce

    1n puntero es un medio para acceder al contenido ]realk apuntado por la variable. La declaración de puntero no implica que exista contenido apuntado por el misma. !s necesario crear y destrexpl'citamente el contenido apuntado por punteros. Fe puede establecer una analog'a entre los puntery las direcciones postales( 1na dirección postal permite acceder al lugar f'sico indicado.

    !l hecho de disponer de una dirección postal no garantiza que el lugar exista. 3ara declarar variables dtipo puntero en la notación algor'tmica se utiliza la sintaxis siguiente( variable puntero a tipo

    3or e"emplo(

    puntero a real

    1na vez se declara un puntero pueden llevarse a cabo dos acciones bsicas sobre el mismo( Csignamemoria para almacenar un dato del tipo al que apunta(

    #rear 

    !liminar la memoria que tiene asignada y con ella el dato apuntado(Destruir 

    #rear )variable puntero*

    Destruir )variable puntero*

    !s posible asignar a un puntero el contenido de otroX para hacer !sto es necesario que la variable a que vamos a asignar un Ialor no apunte a ning%n dato pues en ese caso el dato original `uedarinaccesible. Cs' pues, sólo deber'amos asignar un puntero a otro si el 3untero asignado no tiene memoreservada

    6.9 /laboración de programa

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    56/59

    Algoritmo Y Lenguajes DeProgramación

    #ódigo(

    3rivate Fub cmdconv[#lic)*&f opt.Ialue 8 Grue Ghen  txt 8 1#ase)txt*  opt.Ialue 8 _alse!nd &f &f optK.Ialue 8 Grue Ghen  txt 8 L#ase)txt*  optK.Ialue 8 _alse!nd &f !nd Fub3rivate Fub cmdend[#lic)*!nd!nd Fub3rivate _unction suma)num Cs &nteger, numK Cs &nteger* Cs &nteger Dim resultado Cs &nteger suma 8 num $ numK!nd _unction3rivate Fub cmdsuma[#lic)*resultado 8 suma)NQ, KQ*5sg+ox La suma de NQ $ KQ 8 ; resultado, vb&nformation, Yesultado de funcion!nd Fub3rivate Fub _orm[Load)*

    !nd Fub3rivate Fub iblsuma[#lic)*resultado 8 suma)NQ, KQ*lblsuma.#aption 8 resultado!nd Fub3ase por valor y pase por referencia

    !l programa es un enunciado, lógicamente ordenado y clasificado, de los procedimientos de auditorque han de emplearse, la extensión que se les ha de dar y la oportunidad en que se han de aplicar. Daque los programas de auditor'a se preparan anticipadamente en la etapa de planeación, estos puedser modificados en la medida en que se e"ecute el traba"o, teniendo en cuenta los hechos concretos qse vayan observando.

    Fe acostumbra a elaborar un programa por cada sección a examinar, el cual debe incluir por lo menosprograma de traba"o en un sentido estricto y el programa adscrito al personal del traba"o a realizar. #adprograma permite el desarrollo del plan de traba"o general, pero a un nivel ms anal'tico, aplicado a urea en particular. 

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    57/59

    Algoritmo Y Lenguajes DeProgramación

    !l programa contiene prcticamente la misma información que el plan de traba"o, pero difiere de este eque se le han adicionado columnas para el tiempo estimado, el tiempo real, la referencia al papel dtraba"o donde quedó plasmada la e"ecución del programa, la r%brica de quien realizó cada paso y la fechdel mismo.

     3or medio de cada programa, el auditor adquiere control sobre el desarrollo del examen, pues estadems de ser una gu'a para los asistentes sirven para efectuar uadecuada supervisión sobre los mismos, permitiendo también determinel tiempo real de e"ecución de cada procedimiento para comparacon el estimado y as' servir de pauta para la planeación de próximas, as' mismo, permite conocer en cualquier momento el estade adelanto del traba"o, ayudando a la toma de decisiones sobrelabor pendiente por realizar. eneralmente el programa de auditor'a comprender una sección por cada rea de los estad

    financieros que se examinan. #ada sección del programa de auditor'a debe comprender(o 1na introducción que describa la naturaleza de las cuentas examinadas y resuma l

    procedimientos de contabilidad de la compañ'a.o 1na descripción de los ob"etivos de auditor'a que se persiguen en la revisión de la sección.o 1na relación de los pasos de auditor'a que se consideran necesarios para alcanzar los ob"etiv

    señalados anteriormente.

    !sta sección debe tener columnas para indicar la persona que efect%a el traba"o, el tiempo empleadoreferencias cruzadas a las planillas o cédulas donde se realiza el traba"o.

    _unción estndar Len

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo

    58/59

    Algoritmo Y Lenguajes DeProgramación

    Conclusión

  • 8/19/2019 185569333 Trabajo de Investigaciona Lgoritmo