CAPITULO 1 Y 2

49
CAPITULO 1 Conceptos básicos

description

Análisis numerico

Transcript of CAPITULO 1 Y 2

CAPITULO 1 Conceptos bsicosINTRODUCCINSe pueden utilizar muchos lenguajes para programar una computadora.El ms bsico es el lenguaje de mquina, una coleccin de instruccionesmuy detallada que controla la circuitera interna de la mquina. Este esel dialecto natural de la mquina. Muy pocos programas se escriben actualmente en lenguaje de maquinapor dos razones importantes: primero, porque ellenguaje de maquinaesmuyincmodoparatrabajarysegundoporquelamayoradelasmaquinas se pide programar en diersos tiposde lenguajes,que sonlenguajes de alto niel, cuyas instrucciones son ms compatibles con loslenguajes y la !orma de pensar humanos como lo es el lenguaje c queadems es de propsito general."ebidoaquelos programas dise#ados enestelenguajesepuedenejecutar en cualquier mquina, casi sin modi!icaciones. $or tanto el usodel lenguajedealtoniel o!recetresentajasimportantes, sencillez,uni!ormidad y portabilidad.1.1 LENGUAJE DE PROGRAMACIN Sistema de smbolos y reglas que permite la construccin de programascon los que la computadora puede operar as como resoler problemasde manera e!icaz. Estos contienen un conjunto de instrucciones que nospermiten realizar operaciones de entrada % salida, calculo, manipulacinde te&tos, lgica % comparacin y almacenamiento % recuperacin.'os lenguajes de programacin se clasi!ican en:'enguaje Mquina: Son aquellos cuyas instrucciones son directamenteentendibles por la computadora y no necesitan traduccin posterior paraque la ($) pueda comprender y ejecutar el programa. 'as instruccionesen lenguaje maquina se e&presan en t*rminos de la unidad de memoriams peque#a el bit +dgito binario , -..'enguaje de /ajo 0iel +Ensamblador.: En este lenguaje lasinstrucciones se escriben en cdigos al!ab*ticos conocidos comomnemot*cnicos para las operaciones y direcciones simblicas.'enguajede1lto0iel:'oslenguajesdeprogramacindealtoniel+/1S2(, pascal, cobol, !ortran, etc.. son aquellos en los que lasinstrucciones o sentencias a la computadora son escritas con palabrassimilares a los lenguajes humanos +en general en ingl*s., lo que !acilitala escritura y comprensin del programa.1.2. ALGORITMO'a palabra algoritmo se deria de la traduccin allatn de la palabrarabe al3ho4arizmi, nombre de un matemtico y astrnomo rabe queescribi un tratado sobre manipulacin de n5meros y ecuaciones en elsiglo 26.'a solucin a cualquier problema de cmputo inolucra la ejecucin deuna serie de acciones en orden espec!ico. )n procedimiento pararesoler un problema en t*rminos de: a. 'as acciones a ejecutarse y b.el orden en el cual estas acciones deben ejecutarse se llama algoritmo.)n ejemplo de un algoritmo para llegar a la escuela: Salir de la cama 7uitarse la pijamas "arse un ba#o 8estirse "esayunar1.3 PROGRAMASecuencia de instrucciones mediante las cuales se ejecutan di!erentesaccionesdeacuerdoconlosdatosqueseest*nprocesando. Esunalgoritmo desarrollado para ser utilizado por la computadora. E&presinde un algoritmo en un lenguaje preciso que puede llegar a entender unamquina de cmputo.CAPITULO 2Los datos y operaciones bsicas Fases para la creaci !e " pr#$ra%a.2.1 DEFINICIN DEL PRO&LEMAEsta !ase est dada por el enunciado del problema, el cual requiere unade!inicin clara y precisa. Es importante que se conozca lo que se deseaque realice la computadora9 mientras esto no se conozca deltodo notiene mucho caso continuar con la siguiente etapa.2.2 AN'LI(I( DEL PRO&LEMA)na ez que se ha comprendido lo que se desea de la computadora, esnecesario de!inir:'osdatosdeentrada. (ul eslain!ormacinquesedeseaproducir+salida. losm*todosy!rmulas quesenecesitanparaprocesar losdatos. )na recomendacin muy prctica es el que nos pongamos en ellugar de la computadora y analicemos que es lo que necesitamos quenos ordenen y en que secuencia para producir los resultados esperados.2.3 DI(E)O DEL ALGORITMO'as caractersticas de un buen algoritmo son: "ebe tener un punto particular de inicio. "ebe ser de!inido, no debe permitir dobles interpretaciones. "ebe ser general, es decir, soportar la mayora de las ariantesque se puedan presentar en la de!inicin del problema. "ebe ser !inito en tama#o y tiempo de ejecucin.2.* CODIFICACIN'a codi!icacin es la operacin de escribir la solucin del problema +deacuerdo a la lgica del diagrama de !lujo o pseudocdigo., en una seriede instrucciones detalladas, en un cdigo reconocible por lacomputadora, laseriedeinstruccionesdetalladasseleconocecomocdigo!uente, el cual seescribeenunlenguajedeprogramacinolenguaje de alto niel.

2.+ PRUE&A , DEPURACIN'os errores humanos dentro de la programacin de computadoras sonmuchos y aumentan considerablemente con la complejidad delproblema. El proceso de identi!icar y eliminar errores, para dar paso auna solucin sin errores se le llama depuracin. 'a prueba consiste en lacaptura de datos hasta que elprograma no presente errores +los mscomunes son los sintcticos y lgicos..2.- DOCUMENTACINEs la gua o comunicacinescritaessusariadas!ormas, yaseaenenunciados, procedimientos, dibujos o diagramas. 1 menudo unprograma escrito por una persona, es usado por otra. $or ello ladocumentacin sire para ayudar a comprender o usar un programa opara !acilitar !uturas modi!icaciones +mantenimiento.. 'a documentacinse diide en tres partes: "ocumentacin2nterna: Sonloscomentarios omensaje quesea#aden al cdigo !uente para hacer ms claro el entendimiento deun proceso. "ocumentacin E&terna: Sede!ine en un documento escrito lossiguientespuntos: "escripcindel $roblema, nombredel 1utor,algoritmo +diagrama de !lujo o pseudocdigo., diccionario de"atos, cdigo :uente +programa. Manual del )suario: "escribe paso a paso la manera cmo!uncionael programa, conel !indequeel usuarioobtengaelresultado deseado.2.. MANTENIMIENTOSe llea acabo despu*s de terminado elprograma, cuando se detectaquees necesariohacer alg5ncambio, ajusteocomplementacinalprogramaparaquesigatrabajandodemaneracorrecta. $arapoderrealizar estetrabajoserequierequeel programaeste correctamentedocumentado.3. LO( DATO( , OPERACIONE( &'(ICA(.IDENTIFICADOR. )n identi!icador es una serie de caracteres !ormadospor letras, dgitos y el carcter subrayado + ; . que no inicie con dgito,as mismo es el nombre que damos a todo lo que manipulamos dentrodeunprograma+ariables, constantes, !unciones, etc... $or ejemploariables, constantes, !unciones, tipos de!inidos por el usuario etc.TIPO( DE DATO(.. El tipo de dato determina la naturaleza del conjunto de aloresque puede tomar una ariable.Tip# e/er#: representa n5meros enteros con o sin signo, que estarncompuestos por los dgitos del , al ?, pudiendo ser precedidos por lossignos @ o A.1lgunos ejemplo de datos enteros son: ,, B=, A-CD, A-, etc.$ara de!inir ariables en ( se antepone la palabra reserada del tipo alidenti!icador delaariable. El tipodedatosenterosede!ineenellenguaje de programacin ( por la palabra reserada int.$ara de!inir un tipo de dato en ( se escribe lo siguiente:int nombre;ariable E alor90oes necesarioquelaariabletengaunalor predeterminado. Sepuede de!inir sin asignarle ning5n alor. Sitenemos arios datos queson del mismo tipo, se pueden de!inir todas en la misma lnea de cdigoescribiendo un 5nico int, separando el nombre de las ariables por F,G.)na ez que se haya acabado de de!inir ariables, se cierra la lnea decdigo con F9G,$or ejemplo: int edad E BH9 int edad9int edad, num, contador9Tip# real0Se emplean para representar n5meros reales +condecimales.. $ara de!inir datos reales se antepone la palabra reseradafloat al identi!icador de la ariable.!loat identi!icador E alor9$or ejemplo: !loat numero-, numeroB9!loat numero= E -B=.H=9!loat numero=9Tip#car1c/er0Este tipo dedatos seemplea para representar uncarcter perteneciente a un determinado cdigo utilizado por elordenador +normalmente el cdigo 1S(22.. $ara representar este tipo dedato se antepone la palabra reseradacharal identi!icador de laariable.(har identi!icador E IalorJ9)na constante tipo char se representa como un solo carcter encerradoentre comillas simples.$or ejemplo: char letra, letraB9char letraEJaJ9Tip# ca!ea !e carac/eres0una cadena de caracteres es un n5merode caracteres consecutios +incluso ninguno. encerrado entre unosdelimitadores determinados, que en el lenguaje (son las comillasdobles.$ara de!inir ariables de tipo cadena, estas se de!inen como ectores decaracteres, esto es, anteponiendo la palabra reseradacharalidenti!icador de la ariable, y despu*s entre corchetes la longitudm&ima de cadena.(har identi!icadorKcantidadL E F mensaje G9$or ejemplo: char cadenaKB,L9char cadenaKB,L E FMola mundoG9char cadenaKL E FMN'1G92ARIA&LE(.)na ariable es un identi!icador que puede tomardi!erentes alores dependiendo del tipo que esta se declare. )naariablees unidenti!icador quepuedecambiar dealor durantelaejecucin de unprograma. )naariablees unaposicindememoriadonde se puede almacenar un alor para uso de un programa.INICIALI3ACIN DE 2ARIA&LE(2nicializar una ariable es el darle un alor despu*s que se ha declaradopero antes de que se ejecuten las sentencias en las que se emplea.$or ejemplo: char cadena KB,L9char cadenaKB,L E FMola mundoG9char cadenaKL E FMN'1G91qu se inicializa la ariable cadena con la palabra Fhola mundoGCON(TANTE(.(onstantes son los alores que no pueden sermodi!icados. En (@@, pueden ser de cualquier tipo de datos. 1dems delos ejempli!icados anteriormente, podemos crear constantes decaracteres con barra inertida. Estos corresponden a los caracteres queson imposibles introducir desde el teclado.H. N$EO1"NOES)n operador es un smbolo que indica al compilador que realicemanipulaciones lgicasomatemticas espec!icas. 'os operadoresdelmismo niel de precedencia son ealuados por el compilador deizquierdaaderecha. $or supuesto, sepuedeutilizar par*ntesisparaordenar la ealuacin. , elementos para elarreglo &, ambos de tipo entero, se puede utilizar la siguientedeclaracin:P"EU#OCO#I$O LE%$UA&E CEntero a'1(()* +',() Int a[100], x[50];ARREGLO( UNIDIMEN(IONALE( 92ECTORE( O LI(TA(:)n arreglo unidimensionalesunconjuntoden elementosdelmismotipo almacenados en memoria continua en un ector o lista. $araaccederacadaelementodel arregloserequieredeunsolondiceosubndice, el cual representa la posicin en la que se encuentra."eclaracin de un arreglo unidimensional:P"EU#OCO#I$O LE%$UA&E CTipo-dato-ident-arreg!o'tam-arreg!o)Tipo_dato_ident_arreglo[tam_arreglo];"nde:Tip#;!a/#: Sere!iere altipo de dato decada elemento delarreglo9puede ser entero, real, carcter, etc*tera.i!e/;arre$l#: Es el nombre que representa a todo el arreglo/a%;arre$l#: Es la cantidad de elementos que contiene el arreglo.ARREGLO( EN LA MEMORIA0Si tomamos la declaracin del arreglo lista del ejemplo anterior, as se representara en memoria entero lista KHL:Posicin de memoria1(((1((11((2 1((3 1(( 1((, 1((.1((/Lista 0 1 2 3'os enteros requierendedos bytes paraalmacenarseenmemoria9como se muestra, por cada posicin se requiere de dos localidades dememoria, por ejemplo el , ocupa la posicin -,,, y -,,-.'a cantidad de arreglos que se pueden declarar depender de lamemoria libre, que com5nmente es de DH ]bytes9 esta cantidad puedeariareinclusosepuedeutilizar msmemoriadisponiblesiempreycuando la computadora cuente con ella.Ejemplo de arreglo de n5meros reales con identi!icador &:P"EU#OCO#I$O LE%$UA&E C0ea! +'1) Float x[8];Oepresentacin del arreglo:Este arreglo contiene ocho elementos almacenados entre la posicin +,AC.. $arare!erirnos a unelemento enparticular dentro del arreglo,especi!icamos el nombre del arreglo y el n5mero de posicin donde seencuentra ubicado. 'a posicin del arreglo a entre par*ntesis cuadradoso corchetes +FK LG. para el lenguaje (9 seg5n el lenguaje deprogramacin ser la sinta&is requerida.El primerelementoenunarregloesalmacenadoenlaposicinceroPosiciones+'() +'1)+'2)+'3) +')+',)+'.)+'/)ELE2E%TO"5 7.1 1 0.5 57.9 55.1 2 12para el lenguaje ( y en la posicin uno para el lenguaje $ascal. En estecaso trabajaremos el pseudocdigo en (. $or lo tanto el primer elementode un arreglo & se encuentra en la posicin cero y se conoce como & K,L,el segundo como & K-L, el s*ptimo como & KDL y en general, el elementode orden i del arreglo & ser & KiA-L, ya que se encuentra en la posicini^-, donde i es un subndice que sire para hacer re!erencia a la posicinen el arreglo. Ejemplo para imprimir los alores contenidos en los primeros elementosdel arreglo &:P"EU#OCO#I$O LE%$UA&E Ca 34 +'() 5 +'1) 5 +'2)Imprimir aa = x[0] + x[1] + x[2]printf(%f,a)"onde la ariable a es de tipo real, ya que los elementos del arreglo & son de ese tipo.INICIALI3ACIN DE ARREGLO( UNIDIMEN(IONALE(En el momento de declarar el arreglo, se especi!ican los alores.Sinta&is:P"EU#OCO#I$O LE%$UA&E CTipo-datoidenti6'tam-arreg!o)3478a!ores9Entero !ista',) 34 '1(* 1/* 1* *:)Tipo-dato identi6'tam-arreg!o); 78a!ores9Int lista [5] = {10, 17, 8, 4, !'a asignacin de los alores se realiza al declarar el arreglo mediante eloperador de asignacin +ZA%E. y los alores contenidos dentro de lasllaes W X a cada posicin del arreglo9 los alores dentro de las llaes sedeben separar por una coma +,. y no es necesario asignarle un alor acadaposicinyaqueel compilador del lenguaje(seencargardehacerlo seg5n el lugar donde se haya declarado el arreglo, comenzandopor la posicin cero. Si eln5mero de alores es menor al tama#o delarreglo a las posiciones !altantes les asigna cero.LECTURA E IMPRE(IN DE UN DE ARREGLO UNIDIMEN(IONAL(uando la computadora ejecuta un ciclo y la instruccin leer +scan!. elprograma almacena los alores en la ariable arreglo. $ara utilizar ciclosrepetitios es necesario el uso de ariables de apoyo la !orma de pedirleal usuario e imprimirlos despu*s, utilizando ciclos repetitios !or.MODIFICACIN DE UN ELEMENTO DEL ARREGLO UNIDIMEN(IONAL$odemos modi!icar los elementos de un ector en cualquier momento,slo es necesario especi!icar elnombre delarreglo unidimensional,laposicin y el nueo alor. Enseguida se muestra la sinta&is a seguir:P"EU#OCO#I$O LE%$UA&E CTipo_dato ident_arr[pos]"#$alor%ntero &['] "# 18Tipo_ato i!nt_arr[po"] = #a$or%&nt '[3] = 1(%"onde alor es un dato,el resultadode una llamadaa !uncinodealguna operacin lgica o aritm*tica, etc. En este ejemplo se le asigna elalor -_ al cuarto elemento del arreglo que se encuentra en la posicin=.ARREGLO( DE CARACTERE('os arreglos sonnecesarios parala implementacindecadenas decaracteres. )na cadena de te&to es un conjunto de caracteres. May querecordar que en el lenguaje ( no e&iste el tipo de dato cadena +string.comoenotros lenguajesdeprogramacin, por loqueseutilizaunarreglo de caracteres, para poder almacenar una cadena:P"EU#OCO#I$O LE%$UA&E C(ara(ter (ad[ ]"#)*eng+a,e- )*ar +a[ ]=,!n-.a/!%)na cadena de caracteres es un arreglo de caracteres que contiene al !inal el carcter nulo +`,., El compilador inserta automticamente un carcter nulo al !inal de la cadena. ARREGLO( &IDIMEN(IONALE( 9TA&LA( O MATRICE(:)n arreglo bidimensional es un conjunto de n elementos del mismo tipoalmacenados en memoria contigua en una matriz o tabla. 1 di!erenciade los arreglos unidimensionales que slo requieren de un subndice, losarreglos bidimensionales para acceder a cada elemento del arreglorequieren de dos ndices o subndices declarados en dos pares decorchetes, donde elprimer corchete se re!iere altama#o de !ilas y elsegundo al tama#o de columnas.P"EU#OCO#I$O LE%$UA&E CTipo-dato ident-arr'tam-.-.,donde cada mdulo se codi!ica y se procesa de manera independiente,sin importar los detalles de otros mdulos. Esto !acilita la localizacin deun error cuando se produce. Este tipo de programacin es uno de losm*todos de dise#o ms !le&ibles y potentes para mejorar laproductiidad de un programa.PROGRAMA PRINCIPAL , FUNCIONE('a base de la programacin en ( es la !uncin, ya que constituye unaparte !undamental de la codi!icacin en el proceso de solucin deproblemas. )n programa contiene una o ms !unciones en uno o msarchios.)na de las !unciones es main+., donde seinicia la ejecucindelprograma. El resto de las !unciones se llaman desde main +. y desde elinterior de otras !unciones.El papel ms importante del programa principal +main +.. es coordinar alas otras !unciones mediante llamadas o inocaciones.:uncinEsunsubprogramaquerealizaunatareaespec!icaquepuedeonorecibir alores +parmetros.. En ( podemos deoler cualquier tipo dedatos escalares +puntero, tipo num*rico y el tipo carcter o en su casoregresar un alor nulo que llamaremos nada o ninguno.. 1simismo, nose pueden deoler arreglos ni estructuras.El usode!uncionesesunaprcticacom5nyrecomendableyaquepermite diidir el cdigo, simpli!icando as el desarrollo y la depuracindel mismo. $ara utilizar !unciones en un programa es necesariodeclararlas preiamente.'as !unciones pueden ir antes o despu*s del programa principal, pero sise ubican despu*s es necesario escribirelprototipo de la !uncin+elencabezado. antes del programa principal. )na !uncin puede queregrese o no regrese nada +oid.. En el primer caso se comporta comounaariable, yaquelapodemos imprimir, asignar aotraariable,comparar, utilizar como parmetro, etc. En el segundo caso, el resultadolo tenemos que imprimir dentro de la !uncin +slo las ariables globalesse imprimirn !uera..:unciones sin paso de parmetrosSonaquellasquenorecibenparmetrosoalores, yaque*stossesolicitan dentro de la !uncin, luego se realizan las instrucciones+clculos u operaciones. y normalmente se imprime el resultado.1 continuacin aparece la sinta&is correspondiente:oid 2denti!;!uncion + .W"eclaracin de ariables9(uerpo de la !uncin9X:unciones con paso de parmetrosEstas !unciones son las ms utilizadas en la programacin ya quepueden recibir uno o ms alores llamados parmetros y regresan unsolo alor de tipo entero, real o carcter. Si deseas regresar un arreglode carcter es necesario hacerlo desde los parmetros. 'os parmetroso alores son eniados del programa principal o de otra !uncin. "entrode la !uncin se realizan solamente las instrucciones +clculos uoperaciones.. Es importante reisar que el tipo de dato que regresar la!uncin sea del mismo tipo que el alor declarado en el encabezado dela misma.!loat diide +int &, int y.Wint a, b9print! +F"ame dos n5meros enteros: F.9scan! +FadadF,Pa,Pb.92ARIA&LE(8ariablelocal. 8ariabledeclaradaenunadetermina!uncin, sloseencuentra disponible durante el!uncionamiento de la misma, es decirest en memoria cuando dicha !uncin est actia.8ariable global. = 8ariable declarada !uera de cualquier !uncin y quepuedeser utilizadapor las!uncionesqueseencuentrandespu*sdedicha declaracin9 por lo tanto si la declaramos junto a las libreras, lapodr utilizar todo el programa. Esta caracterstica es propia dellenguaje (.$rototipo de una !uncin)n prototipo es el encabezado de una !uncin, es decir la primera lneadela!uncin. 'aentajadeutilizar prototiposesquelas!uncionespuedenestar encualquier lugar yencualquier ordenypuedenserllamadas desde cualquier punto del programa principal o de otra!uncin.'a desentaja de las !unciones sin prototipos, es que en el momento dellamarlas o inocarlas tienen que estar declaradas antes9 por ejemplo,en la sinta&is de las !unciones sin paso de parmetros y sin prototipos la!uncion;b + . y principal + . +main. llaman a la !uncion;a + . que estdeclaradaantes9sinembargola!uncion;a+.nopuedellamarala!uncion;b + .. 'a !uncin main+. puede llamar a cualquier !uncin, peroninguna otra !uncin puede llamar a main+..)n prototipo sin paso de parmetros es el encabezado de la !uncin9 enlenguaje (, como eremos en seguida, a di!erencia de la declaracin deuna !uncin, llea punto y coma. 'a entaja es que le aisa alcompilador que e&iste una !uncin que regresa un determinado tipo dedato y puede ser utilizada en cualquier momento, por lo que ladeclaracin de las !unciones no tiene que ser antes de la llamada sinodespu*s de la !uncin principal o main.RECUR(I2IDAD(uando una !uncin se llama a s misma le llamamos recursiidad. $ara!inalizar *sta debe e&istir una condicin preiamente de!inida.Vinclude Zconio.h[Vinclude Zstdio.h[!loat !actorial+int n.W!loat !9i! +nEE,. !E-9else !EnS!actorial+nA-.9return !9Xmain+.W!loat !act9int n9print!+U`n"ame un numero: U.9scan!+UadU,Pn.9!actE!actorial+n.9print!+U`nEl !actorialEa!`nU,!act.9getch+.9 return ,9XFUNCIONE( PREDEFINIDA( DE LENGUAJE CCAPITULO .APU%TA#O0E" DECLARACIN DE UN PUNTERO)n puntero, en (, se declara como sigue: