Você está na 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 Mantenimiento (Ciclo de vida del SW) ________________________________________________ (Principios bsicos en los que se sustenta la Ing. de SW) HW Componentes fsicos que constituyen la computadora, junto con los dispositivos que realizan las tareas de entrada/salida. (Input/Output) (E/S, I/O). Programa Conjunto de instrucciones que hacen funcionar a la computadora. SW Conjunto de programas escritos para una computadora. SW vs HW ?? Programador Persona que escribe programas. Organizacin fsica de una computadora (Modelo Von Neumann (sin memoria externa)).

Memoria central (RAM) Almacena informacin de 2 tipos (Instrucciones de un prog. o datos de un prog.) bit acrnimo de binary digit. El bit es la unidad mnima de informacin empleada en informtica, en cualquier dispositivo digital, o en la teora de la informacin. byte octeto de bits. Kb 1,024 bytes (210) Mb 1,024 x 1,024 bytes (220) Gb, Tb, Pb,

Mem RAM vs Auxiliar RAM Ms rpida, ms cara, datos voltiles. Auxiliar Los datos se tienen que transferir a RAM para ser procesados, permanentes. Lenguaje de programacin Sirven para escribir programas que permitan la comunicacin usuario/mquina. Lenguaje mquina 0010 0000 0000 1001 Lenguaje bajo nivel Ensamblador (nemotcnicos o nemnicos). ADD, SUB, MPY, DIV, LDA, STO Lenguaje alto nivel Similares a lenguajes humanos. Proceso de compilacin

Traductores (compiladores e intrpretes) Convierten instrucciones escritas en lenguajes de programacin en instrucciones escritas en lenguaje mquina (1,0). Resolucin de problemas con computadora Es una fase creativa 1) Anlisis del problema 2) Diseo del algoritmo 3) Codificacin 4) Compilacin y ejecucin 5) Verificacin 6)Depuracin 7) Documentacin 1 y 2 Conducen a un diseo detallado escrito en forma de algoritmo. 3 Se implementa el algoritmo en un cdigo escrito en un lenguaje de programacin, reflejando las ideas desarrolladas en las fases de anlisis y diseo. 4 Traduce y ejecuta el programa. 5 y 6 El programador busca errores de las etapas anteriores y los elimina (entre ms tiempo de gasta en 1 y 2, menos se gasta en 6). Algoritmo Se deriva de la traduccin al latn de la palabra rabe Alkhwa-rzmi, nombre de un matemtico y astrnomo rabe que escribi un tratado sobre manipulacin de nmeros y ecuaciones en el S. IX. Mtodo 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) Finito (tiene un fin; un # determinado de pasos) Mtodos algortmicos (se pueden expresar por frmulas, diags. de flujo y pseudocdigos) vs mtodos heursticos (juicio o interpretacin)

Anlisis del problema Clara identificacin donde se contemple exactamente lo que debe hacer el programa y el resultado o solucin deseada. QUE hace el programa? (qu entradas se requieren? (tipo y cantidad)) Diseo del algoritmo COMO hace el prog. la tarea solcitada)? Mtodos ms eficaces divide y vencers Divide and conquer. Un problema complejo se subdivide en subproblemas. Dividir subproblemas en otros de nivel ms bajo. Hasta que se pueda implementar en la computadora. Diseo descendente (Top-Down) o modular.

Refinamiento sucesivo (stepwise). Proceso de romper el problema en cada etapa y expresar cada paso en forma ms detallada. Cada subproblema es resuelto mediante un mdulo (subprograma) que tiene un solo punto de entrada y uno de salida. Un programa bien diseado consta de un programa principal (el mdulo de nivel + alto) que llama a subprogramas (mdulos de nivel + bajo) que a su vez pueden llamar otros subprogramas. Los prog. estructurados de esta forma se dice que tienen un diseo modular. El mtodo de romper el programa en mdulos ms pequeos se llama programacin modular. Los mdulos pueden ser planeados, codificados, comprobados y depurados independientemente (incluso por diferentes programadores) y a continuacin combinarlos entre s. :. Diseo del alg. Proceso que convierte los resultados del anlisis del problema en un diseo modular con refinamiento sucesivos que permitan una posterior traduccin a un lenguaje. Herramientas de programacin Pseudocdigo y Diag. de flujo (flowchart). Diag. de Flujo Representacin grfica de un algoritmo. Los smbolos han sido normalizados por el Instituto Norteamericano de Normalizacin (ANSI).

1) Debe tener un inicio y un fin. 2) Las lneas de direccin del flujo deben ser rectas (hor-vert). 3) Todas las lneas deben estar conectadas (a un smbolo que exprese lectura, proceso, decisin, impresin, conexin o fin de programa. 4) Construirse de arriba abajo e izquierda a derecha. 5) Notacin utilizada independiente del lenguaje de prog. 6) Al realizar una tarea compleja es conveniente poner comentarios que expresen o ayuden a entender lo que hayamos hecho. 7) Si la construccin requiriera ms de 1 hoja, usar conectores adecuados y enumerar pginas. 8) No puede llegar ms de 1 lnea a un solo smbolo determinado. Codificacin de un programa Escritura en un lenguaje de programacin de la representacin del algoritmo desarrollado en las etapas precedentes. Dado que el diseo del alg. es independiente del lenguaje de prog. utilizado para su implementacin, el cdigo puede ser escrito con igual facilidad en un lenguaje u otro. Para realizar la conversin del alg. en programa se deben sustituir las palabras reservadas en espaol por sus homnimos en ingls y las operaciones/instrucciones indicadas en lenguaje natural expresarlos en el lenguaje de prog. correspondiente. Documentacin Interna y externa (Manual tcnico y de usuario). Programacin estructurada (sin go-to) Los trminos prog. modular, descendente y estructurada se introdujeron en la 2. mitad de los 60s y a menudo sus trminos se utilizan como sinnimos aunque no significan lo mismo. Significa escribir un programa de acuerdo a las sig. reglas: El prog. tiene un diseo modular. Los mdulos son diseados de modo descendente (top-down). Cada mdulo se codifica utilizando las 3 estructuras de control bsicas (secuencia, seleccin y repeticin). Estructuras de control Mtodos de especificar el orden en que las instrucciones de un alg. se ejecutarn. El orden de ejecucin de las sentencias (lenguaje) o instrucciones determinan el flujo de control.

:. La prog. estructurada hace: Programas ms fciles de escribir, verificar, leer y mantener.

Teorema de la programacin estructurada: En mayo de 1966, Bhm y Jacopini demostraron que un programa propio puede ser escrito utilizando solamente 3 tipos de estructuras de control. Programa propio Si cumple las sig. caractersticas: Posee un solo punto de entrada y uno de salida o fin para control del programa. Existen caminos desde la entrada hasta la salida que se pueden seguir y que pasan por todas partes del programa. Todas las instrucciones son ejecutables (cdigo muerto) y no existen lazos o bucles infinitos (sin fin). Verificacin y depuracin de un programa Verificacin Proceso de ejecucin del programa con una amplia variedad de datos de entrada (datos de test o prueba), que determinan si el programa tiene errores (bugs). Se debe desarrollar una amplia gama de datos de test Valores normales de entrada Valores extremos de entrada que comprueben los lmites del programa Valores de entrada que comprueben aspectos especiales del programa. Depuracin Proceso de encontrar los errores del programa y corregir o eliminar dichos errores. Tipos de errores (al ejecutar un programa) De compilacin. Por un uso incorrecto de las reglas del lenguaje de programacin y suelen ser errores de sintaxis. Si existe un error de sintaxis, la computadora no puede comprender la instruccin, no obtendr el programa objeto y el compilador imprimir una lista de todos los errores encontrados durante la compilacin. De ejecucin Se producen por instrucciones que la computadora puede comprender pero no ejecutar. Ejem. Divisin por cero y races cuadradas de #s negativos. En estos casos se detiene la ejecucin del programa y se imprime un mensaje de error. Lgicos Se producen en la lgica del programa y la fuente del error suele ser el diseo del algoritmo. Estos son los ms difciles de detectar ya que el programa puede funcionar y no produce errores de compilacin ni de ejecucin y slo puede advertir el error por la obtencin de resultados incorrectos. Entorno de programacin Es un programa que contiene, adems del compilador (lenguaje de programacin), utilidades y herramientas. Estos elementos estn integrados, de modo que pueden llamarse fcilmente a cualquiera de los mdulos, durante el proceso de programacin, desde cualquier otro. Un editor Proporciona el medio de introducir el texto y smbolos para crear el cdigo fuente. Un intrprete o compilador Convierte el cdigo fuente en instrucciones que la computadora puede comprender y ejecutar. Un verificador de errores en tiempo de ejecucin Reconoce errores no detectados en tiempo de compilacin. Un depurador Ayuda a analizar y corregir errores de sintaxis, estructura o lgicos. Una utilidad de referencias cruzadas Crea tablas de variables, nmeros de lnea u otros smbolos. IDE (Entorno de desarrollo integrado)

Breve historia de C / C++ / C#


La historia de C parte de un lenguaje anterior, el lenguaje B, escrito por Ken Thompson en 1970 con el objetivo de recodificar el sistema operativo UNIX, que hasta el momento se haba programado en ensamblador. La pega del ensamblador era que lo ligaba a una serie de mquinas concretas, por lo que conseguir un lenguaje abstrado de cada mquina conseguira una portabilidad del sistema muchsimo mayor. A su vez B fue inspirado en el BCPL de Martin Richard, diseado tres aos antes. En 1972 es Dennis Ritchie (de los Laboratorios Bell de AT&T) quien disea finalmente C a partir del B de Thompson, aportando un diseo de tipos y estructuras de datos que consiguen una claridad y eficacia en el lenguaje muy superior. Es un lenguaje que permite realizar una programacin estructurada economizando las expresiones, con abundancia de operadores y tipos de datos (aunque los bsicos sean pocos), codificando en alto y bajo nivel simultneamente, reemplazando ventajosamente la programacin en ensamblador y permitiendo una utilizacin natural de las funciones primitivas del sistema. Adems, no est orientado a ningn rea en especial y sobre todo consigue un cdigo objeto altamente optimizado que repercute en que los programas son muy rpidos. Durante muchos aos no existen reglas estndar para el lenguaje, pero en 1983 se decide formar un comit con el objetivo de crear el estndar ANSI (Instituto Nacional Americano de Estndares). El proceso dura seis aos y a principios de los 90 el estndar es reconocido por la ISO (Organizacin Internacional de Estndares) y comienza a comercializarse con el nombre ANSI C. /* "Hola mundo" escrito en C */ #include <stdio.h> void main() { printf( "Hola mundo" ); } Paralelamente, en 1980 surge C++ de la mano de Bjarne Stroustrup (tambin de Laboratorios Bell de AT&T). Disea este lenguaje con el objetivo de aadir a C nuevas caractersticas: clases y funciones virtuales (de SIMULA67), tipos genricos y expresiones (de ADA), la posibilidad de declarar variables en cualquier punto del programa (de ALGOL68), y sobre todo, un autntico motor de objetos con herencia mltiple que permite combinar la programacin imperativa de C con la programacin orientada a objetos. Estas nuevas caractersticas mantienen siempre la esencia del lenguaje C: otorgan el control absoluto de la aplicacin al programador, consiguiendo una velocidad muy superior a la ofrecida por otros lenguajes.El siguiente hecho fundamental en la evolucin de C++ es sin duda la incorporacin de la librera STL aos ms tarde, obra de Alexander Stepanov y Adrew Koening. Esta librera de clases con contenedores y algoritmos genricos proporciona a C++ una potencia nica entre los lenguajes de alto nivel. Debido al xito del lenguaje, en 1990 se renen las organizaciones ANSI e ISO para definir un estndar que formalice el lenguaje. El proceso culmina en 1998 con la aprobacin del ANSI C++. /* "Hola mundo" escrito en C++ */ #include <iostream> void main() { std::cout << "Hola mundo"; } La ltima variante que ha surgido de C es el moderno C#. En el ao 2000, Microsoft presenta su plataforma .NET junto con un nuevo lenguaje, C# (diseado por Anders Hejlsberg), que servir de lenguaje principal de la plataforma. C# es un hbrido de C++ y Java que fusiona, principalmente, la capacidad de combinar operadores propia del primero (no incorpora la herencia mltiple) con la plena orientacin a objetos del segundo. La orientacin a objetos es tal que el propio programa est encapsulado en una clase.Actualmente C# se encuentra entre los 10 lenguajes ms utilizados. A pesar de su corta historia, ha recibido la aprobacin del estndar de dos organizaciones: en el 2001 se aprueba el ECMA y en el 2003 el ISO. /* "Hola mundo" escrito en C# */ class HolaMundo {

static void Main() { System.Console.Write( "Hola mundo" ); }

Biblioteca estndar de C Los programas C consisten en mdulos o piezas que se denominan funciones. Podemos programar todas las funciones que necesitemos para formar un programa C, pero la mayor parte de los programadores de C aprovechan una gran recopilacin de funciones existentes, que se conocen como la Biblioteca estndar de C. Documento estndar de ANSI C. Tipos de datos Los datos que procesa una computadora se clasifican en simples y estructurados. Datos simples Ocupan slo una casilla de mem. (ejem. enteros, reales, caracteres, etc.). Datos estructurados Con un nombre se hace referencia a un grupo de casillas de memoria. (ejem. 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. Se forma por medio de letras, dgitos y el carcter de subrayado (_). Siempre hay que comenzar con una letra. El lenguaje de programacin C es case sensitive. (Diferencia mayus de minus). Identificadores ms comunes (3 caracteres), identificadores largos (7 caracteres). No puede ser una palabra reservada. Constantes Son datos que no cambian durante la ejecucin del programa. Para nombrarlas utilizamos identificadores Puede haber constantes de todos los tipos de datos (entero, real, carcter, cadena de caracteres, etc.). Se deben definir antes de comenzar el programa principal. Existen 3 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 {va0, va1, va2, va3}; /* define 4 constantes enteras */ es similar a realizar lo siguiente const int va0 = 0; const int va1 = 1; const int va2 = 2; const int va3 = 3; Variables Son objetos que pueden cambiar su valor durante la ejecucin de un programa. Para nombrarlas utilizamos identificadores. Pueden existir 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 que cumplen en el programa. void main(void) { int va1, va2; float re1, re2; char ca1, ca2; } Cada variable tiene un nombre, un tipo, un tamao y un valor.

Operacin Asignacin Una vez que se declaran las variables, stas reciben un valor a travs de una asignacin. Esta operacin es destructiva (si la variable tena un valor, ste se destruye al asignar el nuevo valor). variable = expresin o valor; int va1, va2; int va1 = 10, va2 = 15; va1 = 10; va2 = va1 + 15;

Operadores aritmticos Nos permiten realizar operaciones entre operandos: nmeros, constantes o vars. Suma + Multiplicacin * Mdulo % (slo entre enteros y devuelve residuo) Substraccin Divisin / Operadores aritmticos simplificados + += x += 5; x = x + 5; = x -= 3; x = x 3; * *= x *= 2; x = x * 2; / /= x /= 6; x = x / 6; % %= x %= 12; x = x % 12; Operadores de incremento y decremento (++) (--) Simplifican y clarifican la escritura de los progs. Se pueden utilizar antes o despus de la variable (post o pre). x = 7; x=7 y = x ++; y=7 x=8 x = 7; x=7 y = ++x; y=8 x=8 x = 6; x=6 y = x--; y=6 x=5 x = 6; x=6 y = --x; y=5 x=5 Expresiones lgicas En honor al matemtico George Boole (en C se simulan). 1 Verdadero, 0 Falso. Operadores relacionales Para comparar dos operandos (nmeros, caracteres, cadenas de caracteres, constantes o variables). Operador Operacin Ejemplos Resultados relacional == Igual a res = h = = p; res = 0 != Diferente de res = a != b; res = 1 < Menor que res = 7 < 15; res = 1 > Mayor que res = 22 > 11; res = 1 <= Menor o igual que res = 15 <= 2; res = 0 >= Mayor o igual que res = 35 >= 20; res = 1 falso es menor a verdadero ejem. res = (7 > 8) > (9 > 6); /* 0 > 1 (falso) 0 */ Operadores lgicos Conjuncin (&&), disyuncin (||) y negacin (!) Operador Operacin Ejemplos Resultados lgico

! && ||

Negacin Conjuncin Disyuncin

x = (!(7 > 15)); // (!0) y = (!0) x = (35 > 20) && (20 <= 23); y = 0 && 1; x = (35 > 20) || (20 <= 18); y = 0 || 1;

x=1 y=1 x=1 y=0 x=1 y=1

Operador coma Encadena diferentes expresiones. Prioridad de operadores Aritmticos, relacionales y lgicos. Se evalan de izquierda a derecha. Operadores Jerarqua ( ) //operador asociativo (mayor) !, ++, -*, /, % +, = =, !=, <, >, <=, >= &&, || +=, -=, *=, /=, %= , (menor) Palabras reservadas en lenguaje C Auto do Break double Case else Char enum Const extern Continue float Default for Tipos de datos simples en C Tipo Descripcin int Enteros float Reales long Enteros de largo alcance double Reales de doble precisin char Carcter goto If int long register return short signed sizeof static struct switch typedef union unsigned void volatile while

Rango -32,768 a +32,767 3.4 X 10-38 a 3.4 X 1038 -2147,483,648 a 2147,483,647 1.7 X 10-308 a 1.7 X 10308 Smbolos del abecedario, nmeros o smbolos especiales, que van encerrados entre comillas

/* // { } ;

*/

Comentario (bloques) Comentario (lnea) Cadena de texto o caracteres Inicia cuerpo de funcin Termina cuerpo de funcin Terminador de enunciado

Carcter de escape (\) Secuencia de escape simple (Caracteres de control) \n Permite pasar una nueva lnea

\t \v \f \a \ \ \\ \? \b \r

Permite tabular horizontalmente Permite tabular verticalmente Indica avance de fila Indica sonido de alerta Escribe apstrofe Escribe comillas Escribe diagonal invertida Escribe ? BS (Backscape) Retorno de carro.

Formato de escritura de las variables %u Escribe enteros sin signo de 2 bytes (unsigned int) %d %i Escribe enteros de 2 bytes (int) %ld %li Imprime enteros de largo alcance (long) %f Escribe reales de 4 bytes (float) %lf Escribe reales de doble precisin, 8 bytes (double) %e Imprime en forma exponencial %g Imprime en %f o %e en funcin del tamao del nmero %c Escribe un carcter de un byte (char) %s Escribe una cadena de caracteres, que termina con \0 %h short %p puntero Modificadores al smbolo % Formato Explicacin %5d Escribe un entero utilizando un campo de 5 dgitos. La justificacin predeterminada es a la derecha %-6d Escribe enteros utilizando un campo de seis dgitos. La justificacin es a la izquierda. %4.2f Escribe un real utilizando un campo de 4 dgitos, dos de ellos sern utilizados para los decimales. %-5.2f Escribe un real utilizando un campo de 5 dgitos, dos de ellos sern utilizados para los decimales. La justificacin es a la izquierda. La instruccin de lectura scanf necesita del mismo formato de variables que la instruccin printf, la nica diferencia radica en que al utilizar la instruccin de lectura se debe escribir el smbolo de direccin & antes de cada variable. Funciones de la biblioteca math.h Funcin Explicacin sin(x) Seno de x asin(x) Arco seno de x cos(x) Coseno de x acos(x) Arco coseno de x tan(x) Tangente de x atan(x) Arco tangente de x exp(x) Funcin exponencial ex. Eleva e (2.718281) a la potencia de x fabs(x) Devuelve valor absoluto de x fmod(x1,x2) Obtiene el resto de x1 entre x2, con el mismo signo que x1 log(x) Logaritmo natural de x, in(x), x>0 log10(x) Logaritmo base 10 de x, log10(x), x>0 pow(x, y) Potencia xy, x>0, y>=0 sqrt(x) Obtiene la raz cuadrada de x, x>=0 Instrucciones break y continue Alteran el control del flujo.

break cuando se ejecuta en una estructura while, for, do/while o switch, provoca la salida inmediata de la estructura; la ejecucin del programa contina en la primera instruccin que est despus de la estructura. Generalmente se usa para salir antes de tiempo de un ciclo y para saltarse el resto de una estructura switch. continue al ejecutarse en una estructura while, for o do/while, salta las instrucciones restantes del cuerpo de dicha estructura y contina con la siguiente iteracin del ciclo.

Você também pode gostar