Está en la página 1de 10

Computadora Dispositivo electrnico utilizado para procesar informacin y obtener resultados.

Datos vs Info ??
Proceso de informacin en una computadora.

Ingeniera de SW La produccin de un programa se puede definir en diferentes etapas: ________________________________________________ Anlisis Diseo Pruebas antenimiento !"iclo de vida del #$% ________________________________________________ !Principios bsicos en los &ue se sustenta la 'ng. de #$% HW "omponentes f(sicos &ue constituyen la computadora) *unto con los dispositivos &ue realizan las tareas de entrada+salida. !'nput+,utput% !-+#) '+,%. Programa "on*unto de instrucciones &ue .acen funcionar a la computadora. SW "on*unto de programas escritos para una computadora. SW vs HW ?? Programador Persona &ue escribe programas. Organizacin fsica de una computadora ! odelo /on 0eumann !sin memoria e1terna%%.

Memoria central !"M# Almacena informacin de 2 tipos !'nstrucciones de un prog. o datos de un prog.% $it acrnimo de binary digit. -l bit es la unidad m(nima de informacin empleada en informtica) en cual&uier dispositivo digital) o en la teor(a de la informacin. $%te octeto de bits. &$ 3)425 bytes !234% M$ 3)425 1 3)425 bytes !224% 6b) 7b) Pb) 8

Mem !"M vs "u'iliar !"M s rpida) ms cara) datos voltiles. "u'iliar Los datos se tienen &ue transferir a 9A

para ser procesados) permanentes.

(engua)e de programacin #irven para escribir programas &ue permitan la comunicacin usuario+m&uina. (engua)e m*+uina 4434 4444 4444 3443 (engua)e $a)o nivel -nsamblador !nemot:cnicos o nemnicos%. ADD) #;<) (engua)e alto nivel #imilares a lengua*es .umanos. Proceso de compilacin

P=) D'/) LDA) #7,

,raductores !compiladores e int:rpretes% "onvierten instrucciones escritas en lengua*es de programacin en instrucciones escritas en lengua*e m&uina !3)4%. !esolucin de pro$lemas con computadora -s una fase creativa 3% Anlisis del problema 2% Diseo del algoritmo >% "odificacin 5% "ompilacin y e*ecucin ?% /erificacin @%Depuracin A% Documentacin 3 y 2 "onducen a un diseo detallado escrito en forma de algoritmo. > #e implementa el algoritmo en un cdigo escrito en un lengua*e de programacin) refle*ando las ideas desarrolladas en las fases de anlisis y diseo. 5 7raduce y e*ecuta el programa. ? y @ -l programador busca errores de las etapas anteriores y los elimina !entre ms tiempo de gasta en 3 y 2) menos se gasta en @%. "lgoritmo #e deriva de la traduccin al lat(n de la palabra rabe AlB.CDaErFzmi) nombre de un matemtico y astrnomo rabe &ue escribi un tratado sobre manipulacin de nGmeros y ecuaciones en el #. 'H. :todo para resolver un problema mediante una serie de pasos precisos) definidos y finitos. Preciso !indicar el orden de realizacin de cada paso% Definido !si se sigue 2 veces) obtiene el mismo resultado% Iinito !tiene un finJ un K determinado de pasos% :todos algor(tmicos !se pueden e1presar por frmulas) diags. de flu*o y pseudocdigos% vs m:todos .eur(sticos !*uicio o interpretacin%

"n*lisis del pro$lema "lara identificacin donde se contemple e1actamente lo &ue debe .acer el programa y el resultado o solucin deseada. LM;- .ace el programaN !L&u: entradas se re&uierenN !tipo y cantidad%% Dise-o del algoritmo L", , .ace el prog. la tarea solcitada%N :todos ms eficaces Odivide y vencersP Divide and con&uer. ;n problema comple*o se subdivide en subproblemas. Dividir subproblemas en otros de nivel ms ba*o. Qasta &ue se pueda implementar en la computadora. Diseo descendente !7opEDoDn% o modular.

9efinamiento sucesivo !stepDise%. Proceso de romper el problema en cada etapa y e1presar cada paso en forma ms detallada. "ada subproblema es resuelto mediante un mdulo !subprograma% &ue tiene un solo punto de entrada y uno de salida. ;n programa bien diseado consta de un programa principal !el mdulo de nivel R alto% &ue llama a subprogramas !mdulos de nivel R ba*o% &ue a su vez pueden llamar otros subprogramas. Los prog. estructurados de esta forma se dice &ue tienen un diseo modular. -l m:todo de romper el programa en mdulos ms pe&ueos se llama programacin modular. Los mdulos pueden ser planeados) codificados) comprobados y depurados independientemente !incluso por diferentes programadores% y a continuacin combinarlos entre s(. :. Dise-o del alg. Proceso &ue convierte los resultados del anlisis del problema en un diseo modular con refinamiento sucesivos &ue permitan una posterior traduccin a un lengua*e. Herramientas de programacin Pseudocdigo y Diag. de flu*o !floDc.art%. Diag. de /lu)o 9epresentacin grfica de un algoritmo. Los s(mbolos .an sido normalizados por el 'nstituto 0orteamericano de 0ormalizacin !A0#'%.

3% Debe tener un inicio y un fin. 2% Las l(neas de direccin del flu*o deben ser rectas !.orEvert%. >% 7odas las l(neas deben estar conectadas !a un s(mbolo &ue e1prese lectura) proceso) decisin) impresin) cone1in o fin de programa. 5% "onstruirse de arriba aba*o e iz&uierda a derec.a. ?% 0otacin utilizada independiente del lengua*e de prog. @% Al realizar una tarea comple*a es conveniente poner comentarios &ue e1presen o ayuden a entender lo &ue .ayamos .ec.o. A% #i la construccin re&uiriera ms de 3 .o*a) usar conectores adecuados y enumerar pginas. S% 0o puede llegar ms de 3 l(nea a un solo s(mbolo determinado. Codificacin de un programa -scritura en un lengua*e de programacin de la representacin del algoritmo desarrollado en las etapas precedentes. Dado &ue el diseo del alg. es independiente del lengua*e de prog. utilizado para su implementacin) el cdigo puede ser escrito con igual facilidad en un lengua*e u otro. Para realizar la conversin del alg. en programa se deben sustituir las palabras reservadas en espaol por sus .omnimos en ingl:s y las operaciones+instrucciones indicadas en lengua*e natural e1presarlos en el lengua*e de prog. correspondiente. Documentacin 'nterna y e1terna ! anual t:cnico y de usuario%. Programacin estructurada !sin goEto% Los t:rminos prog. modular) descendente y estructurada se introdu*eron en la 2T. mitad de los @4Us y a menudo sus t:rminos se utilizan como sinnimos aun&ue no significan lo mismo. #ignifica escribir un programa de acuerdo a las sig. reglas: -l prog. tiene un diseo modular. Los mdulos son diseados de modo descendente !topEdoDn%. "ada mdulo se codifica utilizando las > estructuras de control bsicas !secuencia) seleccin y repeticin%. 0structuras de control :todos de especificar el orden en &ue las instrucciones de un alg. se e*ecutarn. -l orden de e*ecucin de las sentencias !lengua*e% o instrucciones determinan el flu*o de control.

1. (a prog. estructurada 2ace: Programas ms fciles de escribir) verificar) leer y mantener.

,eorema de la programacin estructurada1 -n mayo de 3V@@) <W.m y Xacopini demostraron &ue un Oprograma propioP puede ser escrito utilizando solamente > tipos de estructuras de control. Programa propio #i cumple las sig. caracter(sticas: Posee un solo punto de entrada y uno de salida o fin para control del programa. -1isten caminos desde la entrada .asta la salida &ue se pueden seguir y &ue pasan por todas partes del programa. 7odas las instrucciones son e*ecutables !cdigo muerto% y no e1isten lazos o bucles infinitos !sin fin%. 3erificacin % depuracin de un programa 3erificacin Proceso de e*ecucin del programa con una amplia variedad de datos de entrada !datos de test o prueba%) &ue determinan si el programa tiene errores !ObugsP%. #e debe desarrollar una amplia gama de datos de test /alores normales de entrada /alores e1tremos de entrada &ue comprueben los l(mites del programa /alores de entrada &ue comprueben aspectos especiales del programa. Depuracin Proceso de encontrar los errores del programa y corregir o eliminar dic.os errores. ,ipos de errores !al e*ecutar un programa% De compilacin. Por un uso incorrecto de las reglas del lengua*e de programacin y suelen ser errores de sinta1is. #i e1iste un error de sinta1is) la computadora no puede comprender la instruccin) no obtendr el programa ob*eto y el compilador imprimir una lista de todos los errores encontrados durante la compilacin. De e)ecucin #e producen por instrucciones &ue la computadora puede comprender pero no e*ecutar. -*em. Divisin por cero y ra(ces cuadradas de Ks negativos. -n estos casos se detiene la e*ecucin del programa y se imprime un mensa*e de error. (gicos #e producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. -stos son los ms dif(ciles de detectar ya &ue el programa puede funcionar y no produce errores de compilacin ni de e*ecucin y slo puede advertir el error por la obtencin de resultados incorrectos. 0ntorno de programacin -s un programa &ue contiene) adems del compilador !lengua*e de programacin%) utilidades y .erramientas. -stos elementos estn integrados) de modo &ue pueden llamarse fcilmente a cual&uiera de los mdulos) durante el proceso de programacin) desde cual&uier otro. ;n editor Proporciona el medio de introducir el te1to y s(mbolos para crear el cdigo fuente. ;n int:rprete o compilador "onvierte el cdigo fuente en instrucciones &ue la computadora puede comprender y e*ecutar. ;n verificador de errores en tiempo de e*ecucin 9econoce errores no detectados en tiempo de compilacin. ;n depurador Ayuda a analizar y corregir errores de sinta1is) estructura o lgicos. ;na utilidad de referencias cruzadas "rea tablas de variables) nGmeros de l(nea u otros s(mbolos. ID0 0ntorno de desarrollo integrado#

4reve 2istoria de C 5 C66 5 C7


La .istoria de " parte de un lengua*e anterior) el lengua*e <) escrito por Yen 7.ompson en 3VA4 con el ob*etivo de recodificar el sistema operativo ;0'H) &ue .asta el momento se .ab(a programado en ensamblador. La pega del ensamblador era &ue lo ligaba a una serie de m&uinas concretas) por lo &ue conseguir un lengua*e abstra(do de cada m&uina conseguir(a una portabilidad del sistema muc.(simo mayor. A su vez < fue inspirado en el <"PL de artin 9ic.ard) diseado tres aos antes. -n 3VA2 es Dennis 9itc.ie !de los Laboratorios <ell de A7Z7% &uien disea finalmente " a partir del < de 7.ompson) aportando un diseo de tipos y estructuras de datos &ue consiguen una claridad y eficacia en el lengua*e muy superior. -s un lengua*e &ue permite realizar una programacin estructurada economizando las e1presiones) con abundancia de operadores y tipos de datos !aun&ue los bsicos sean pocos%) codificando en alto y ba*o nivel simultneamente) reemplazando venta*osamente la programacin en ensamblador y permitiendo una utilizacin natural de las funciones primitivas del sistema. Adems) no est orientado a ningGn rea en especial y sobre todo consigue un cdigo ob*eto altamente optimizado &ue repercute en &ue los programas son muy rpidos. Durante muc.os aos no e1isten reglas estndar para el lengua*e) pero en 3VS> se decide formar un comit: con el ob*etivo de crear el estndar A0#' !'nstituto 0acional Americano de -stndares%. -l proceso dura seis aos y a principios de los V4 el estndar es reconocido por la '#, !,rganizacin 'nternacional de -stndares% y comienza a comercializarse con el nombre A0#' ". /* "Hola mundo" escrito en C */ #include <stdio.h> void main() { printf( "Hola mundo" );

Paralelamente) en 3VS4 surge "RR de la mano de <*arne #troustrup !tambi:n de Laboratorios <ell de A7Z7%. Disea este lengua*e con el ob*etivo de aadir a " nuevas caracter(sticas: clases y funciones virtuales !de #' ;LA@A%) tipos gen:ricos y e1presiones !de ADA%) la posibilidad de declarar variables en cual&uier punto del programa !de AL6,L@S%) y sobre todo) un aut:ntico motor de ob*etos con .erencia mGltiple &ue permite combinar la programacin imperativa de " con la programacin orientada a ob*etos. -stas nuevas caracter(sticas mantienen siempre la esencia del lengua*e ": otorgan el control absoluto de la aplicacin al programador) consiguiendo una velocidad muy superior a la ofrecida por otros lengua*es.-l siguiente .ec.o fundamental en la evolucin de "RR es sin duda la incorporacin de la librer(a #7L aos ms tarde) obra de Ale1ander #tepanov y AdreD Yoening. -sta librer(a de clases con contenedores y algoritmos gen:ricos proporciona a "RR una potencia Gnica entre los lengua*es de alto nivel. Debido al :1ito del lengua*e) en 3VV4 se reGnen las organizaciones A0#' e '#, para definir un estndar &ue formalice el lengua*e. -l proceso culmina en 3VVS con la aprobacin del A0#' "RR. /* "Hola mundo" escrito en C!! */ #include <iostream> void main() { std""cout << "Hola mundo";

La Gltima variante &ue .a surgido de " es el moderno "K. -n el ao 2444) icrosoft presenta su plataforma .0-7 *unto con un nuevo lengua*e) "K !diseado por Anders Qe*lsberg%) &ue servir de lengua*e principal de la plataforma. "K es un .(brido de "RR y Xava &ue fusiona) principalmente) la capacidad de combinar operadores propia del primero !no incorpora la .erencia mGltiple% con la plena orientacin a ob*etos del segundo. La orientacin a ob*etos es tal &ue el propio programa est encapsulado en una clase.Actualmente "K se encuentra entre los 34 lengua*es ms utilizados. A pesar de su corta .istoria) .a recibido la aprobacin del estndar de dos organizaciones: en el 2443 se aprueba el -" A y en el 244> el '#,. /* "Hola mundo" escrito en C# */ class Hola#undo {

static void #ain() { $%stem.Console.&rite( "Hola mundo" );

4i$lioteca est*ndar de C Los programas " consisten en mdulos o piezas &ue se denominan funciones. Podemos programar todas las funciones &ue necesitemos para formar un programa ") pero la mayor parte de los programadores de " aprovec.an una gran recopilacin de funciones e1istentes) &ue se conocen como la <iblioteca estndar de ". Documento estndar de A0#' ". ,ipos de datos Los datos &ue procesa una computadora se clasifican en simples y estructurados. Datos simples ,cupan slo una casilla de mem. !e*em. enteros) reales) caracteres) etc.%. Datos estructurados "on un nombre se .ace referencia a un grupo de casillas de memoria. !e*em. Arreglos) cadena de caracteres) registros) etc.% Identificadores Los datos ya sean simples o estructurados) se deben almacenar en casillas o celdas de memoria para utilizarlos posteriormente. A estas casillas o celdas se les asigna un nombre para reconocerlas. #e forma por medio de letras) d(gitos y el carcter de subrayado !_%. #iempre .ay &ue comenzar con una letra. -l lengua*e de programacin " es Ocase sensitiveP. !Diferencia mayus de minus%. 'dentificadores ms comunes !> caracteres%) identificadores largos !A caracteres%. 0o puede ser una palabra reservada. Constantes #on datos &ue no cambian durante la e*ecucin del programa. Para nombrarlas utilizamos identificadores Puede .aber constantes de todos los tipos de datos !entero) real) carcter) cadena de caracteres) etc.%. #e deben definir antes de comenzar el programa principal. -1isten > formas de definir constantes: 1) const int nu1 = 20; const float re1 = 2.18; const char ca1 = f; 2) #define nu1 20 #define re1 2.18 #define ca1 f 3) Utilizando el mtodo enumerado enum). enum !"a0# "a1# "a2# "a3$; %& define ' constantes enteras &% es similar a realizar lo si(uiente const int "a0 = 0; const int "a1 = 1; const int "a2 = 2; const int "a3 = 3; 3aria$les #on ob*etos &ue pueden cambiar su valor durante la e*ecucin de un programa. Para nombrarlas utilizamos identificadores. Pueden e1istir variables de todos los tipos de datos Por lo general se declaran en el programa principal y en las funciones. Deben ser representativos de la funcin &ue cumplen en el programa. void main!void% [ int va3) va2J float re3) re2J c.ar ca3) ca2J \ "ada variable tiene un nombre) un tipo) un tamao y un valor.

Operacin "signacin ;na vez &ue se declaran las variables) :stas reciben un valor a trav:s de una asignacin. -sta operacin es destructiva !si la variable ten(a un valor) :ste se destruye al asignar el nuevo valor%. variable ] e1presin o valorJ int va3) va2J int va3 ] 34) va2 ] 3?J va3 ] 34J va2 ] va3 R 3?J

Operadores aritm8ticos 0os permiten realizar operaciones entre operandos: nGmeros) constantes o vars. #uma R ultiplicacin ^ dulo _ !slo entre enteros y devuelve residuo% #ubstraccin E Divisin + Operadores aritm8ticos simplificados R R] 1 R] ?J 1 ] 1 R ?J E ] 1 E] >J 1 ] 1 ` >J ^ ^] 1 ^] 2J 1 ] 1 ^ 2J + +] 1 +] @J 1 ] 1 + @J _ _] 1 _] 32J 1 ] 1 _ 32J Operadores de incremento % decremento !RR% !EE% #implifican y clarifican la escritura de los progs. #e pueden utilizar antes o despu:s de la variable !post o pre%. 1 ] AJ 1]A y ] 1 RRJ y]A 1]S 1 ] AJ 1]A y ] RR1J y]S 1]S 1 ] @J 1]@ y ] 1EEJ y]@ 1]? 1 ] @J 1]@ y ] EE1J y]? 1]? 0'presiones lgicas -n .onor al matemtico 6eorge <oole !en " se simulan%. 3 /erdadero) 4 Ialso. Operadores relacionales Para comparar dos operandos !nGmeros) caracteres) cadenas de caracteres) constantes o variables%. ,perador ,peracin -*emplos 9esultados relacional ]] 'gual a res ] a.U ] ] apUJ res ] 4 b] Diferente de res ] aaU b] abUJ res ] 3 c enor &ue res ] A c 3?J res ] 3 d ayor &ue res ] 22 d 33J res ] 3 c] enor o igual &ue res ] 3? c] 2J res ] 4 d] ayor o igual &ue res ] >? d] 24J res ] 3 falso es menor a verdadero e*em. res ] !A d S% d !V d @%J +^ 4 d 3 !falso% 4 ^+ Operadores lgicos "on*uncin !ZZ%) disyuncin !ee% y negacin !b% ,perador ,peracin -*emplos 9esultados lgico

b ZZ ee

0egacin "on*uncin Disyuncin

1 ] !b!A d 3?%%J ++ !b4% y ] !b4% 1 ] !>? d 24% ZZ !24 c] 2>%J y ] 4 ZZ 3J 1 ] !>? d 24% ee !24 c] 3S%J y ] 4 ee 3J

1]3 y]3 1]3 y]4 1]3 y]3

Operador coma -ncadena diferentes e1presiones. Prioridad de operadores Aritm:ticos) relacionales y lgicos. #e evalGan de iz&uierda a derec.a. ,peradores Xerar&u(a ! % ++operador asociativo !mayor% b) RR) EE ^) +) _ R) E ] ]) b]) c) d) c]) d] ZZ) ee R]) E]) ^]) +]) _] ) !menor% Pala$ras reservadas en lengua)e C Auto do <reaB double "ase else ".ar enum "onst e1tern "ontinue float Default for ,ipos de datos simples en C 7ipo Descripcin int -nteros float 9eales long -nteros de largo alcance double 9eales de doble precisin c.ar "arcter goto 'f int long register return s.ort signed sizeof static struct sDitc. typedef union unsigned void volatile D.ile

9ango E>2)A@S a R>2)A@A >.5 H 34E>S a >.5 H 34>S E2U35A)5S>)@5S a 2U35A)5S>)@5A 3.A H 34E>4S a 3.A H 34>4S #(mbolos del abecedario) nGmeros o s(mbolos especiales) &ue van encerrados entre comillas

+^ ++ O [ \ J

^+ O

"omentario !blo&ues% "omentario !l(nea% "adena de te1to o caracteres 'nicia cuerpo de funcin 7ermina cuerpo de funcin 7erminador de enunciado

Car*cter de escape 9# Secuencia de escape simple Caracteres de control# fn Permite pasar una nueva l(nea

ft fv ff fa fU fP ff fN fb fr

Permite tabular .orizontalmente Permite tabular verticalmente 'ndica avance de fila 'ndica sonido de alerta -scribe apstrofe -scribe comillas -scribe diagonal invertida -scribe N <# !<acBscape% 9etorno de carro.

/ormato de escritura de las varia$les _u -scribe enteros sin signo de 2 bytes !unsigned int% _d _i -scribe enteros de 2 bytes !int% _ld _li 'mprime enteros de largo alcance !long% _f -scribe reales de 5 bytes !float% _lf -scribe reales de doble precisin) S bytes !double% _e 'mprime en forma e1ponencial _g 'mprime en _f o _e en funcin del tamao del nGmero _c -scribe un carcter de un byte !c.ar% _s -scribe una cadena de caracteres) &ue termina con af4U _. s.ort _p puntero Modificadores al sm$olo : Iormato -1plicacin _?d -scribe un entero utilizando un campo de ? d(gitos. La *ustificacin predeterminada es a la derec.a _E@d -scribe enteros utilizando un campo de seis d(gitos. La *ustificacin es a la iz&uierda. _5.2f -scribe un real utilizando un campo de 5 d(gitos) dos de ellos sern utilizados para los decimales. _E?.2f -scribe un real utilizando un campo de ? d(gitos) dos de ellos sern utilizados para los decimales. La *ustificacin es a la iz&uierda. La instruccin de lectura scanf necesita del mismo formato de variables &ue la instruccin printf) la Gnica diferencia radica en &ue al utilizar la instruccin de lectura se debe escribir el smbolo de direccin & antes de cada variable. /unciones de la $i$lioteca mat2.2 Iuncin -1plicacin sin!1% #eno de 1 asin!1% Arco seno de 1 cos!1% "oseno de 1 acos!1% Arco coseno de 1 tan!1% 7angente de 1 atan!1% Arco tangente de 1 e1p!1% Iuncin e1ponencial e1. -leva e !2.A3S2S3% a la potencia de 1 fabs!1% Devuelve valor absoluto de 1 fmod!13)12% ,btiene el resto de 13 entre 12) con el mismo signo &ue 13 log!1% Logaritmo natural de 1) in!1%) 1d4 log34!1% Logaritmo base 34 de 1) log34!1%) 1d4 poD!1) y% Potencia 1y) 1d4) yd]4 s&rt!1% ,btiene la ra(z cuadrada de 1) 1d]4 Instrucciones $rea; % continue Alteran el control del flu*o.

$rea; cuando se e*ecuta en una estructura D.ile) for) do+D.ile o sDitc.) provoca la salida inmediata de la estructuraJ la e*ecucin del programa continGa en la primera instruccin &ue est: despu:s de la estructura. 6eneralmente se usa para salir antes de tiempo de un ciclo y para saltarse el resto de una estructura sDitc.. continue al e*ecutarse en una estructura D.ile) for o do+D.ile) salta las instrucciones restantes del cuerpo de dic.a estructura y continGa con la siguiente iteracin del ciclo.

También podría gustarte