Cap03_ConceptosProgramacion

29
1 Conceptos Fundamentales de Programación Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006

description

programacion

Transcript of Cap03_ConceptosProgramacion

  • Conceptos Fundamentales de Programacin Introduccin a la InformticaDepartamento de SistemasUniversidad del Cauca2006

  • AgendaLENGUAJE DE PROGRAMACION CCaractersticasBreve HistoriaESTRUCTURA GENERAL DE UN PROGRAMAFuncin principalSentenciasEncabezadosELEMENTOS DEL LENGUAJEDatos, Tipos de DatosIdentificadoresVariables, ConstantesExpresiones, Operadores y Funciones PrimitivasCREACION Y COMPILACION DE UN PROGRAMABUENAS PRACTICAS DE PROGRAMACIN

  • Lenguaje de Programacin CCaractersticas del Lenguaje C:El ms difundido de los lenguajes de programacin existentes.Combina elegancia y sutileza con potencia y flexibilidad.A menudo se lo considera Lenguaje de Medio Nivel.Estructurado.Creado por y para programadores.Breve Historia:Apareci a finales de los 70s como resultado evolutivo de otros lenguajes. Creado por Brian Kernighan y Dennis Ritchie en Bell Telephone Laboratories Inc. (AT&T Bell Laboratories).

  • Estructura General de un ProgramaTodos los programas en C comparten ciertos componentes y rasgos esenciales:Funciones - main() -SentenciasEncabezados/*Programa de Ejemplo en C*/#include stdio.hint main(){printf (Este es un breve programa en C);return 0;}

  • Elementos del LenguajeDatosTipos de DatosIdentificadoresVariables, Constantes, Palabras ReservadasExpresiones, Operadores y Funciones Primitivas

  • DatosSon los valores con los que opera un programa.

    Arreglos (Vectores, Matrices)

    Registros (Estructuras)

    Archivos

    Apuntadores

    Numricos

    Lgicos

    Alfanumricos

    Estructurados: Hacen referencia a un grupo de casillas de memoria

    Simples: Ocupan una casilla de memoria

    TIPOS DE DATOS

    Caracteres

    Cadenas

    Entero

    Real

  • Tipos de DatosNUMRICOS:ENTERO: positivos o negativos, no tienen parte decimal.REAL: positivos o negativos, tienen parte decimal.LGICOS: BOOLEANO: Solo puede tomar dos valores: Verdadero o Falso. Se utiliza para representar las alternativas (s/no) a determinadas condiciones.Tipo

    caracterenteroflotantedoblesin valorSignificado

    dato de caracternmeros enteros con signonmeros en punto flotantenmeros en punto flotante de doble precisinsin valorPalabra Clave

    charintfloatdoublevoid

  • ALFANUMRICOS: LETRAS: (a...z) o (A...Z) DIGITOS: (0...9) SIMBOLOS ESPECIALES: ], [, , *, ?, =, ), (, /, &, %, $, #, , etc

    CARACTER: Representa un solo dato alfanumrico.Se caracteriza por estar entre comillas simples Ejm: a, 5, ?

    CADENA: Contiene una serie finita de caracteres.Se caracteriza por estar entre comillas dobles . Ejm: Pepito Prez & Cia, ao 2005.Tipos de Datos

  • Identificadores Reglas de creacin:Comenzar con letra o con el caracter de subrayadoContener letras, dgitos o caracter subrayadoNo debe contener espacios en blancoDiferencia maysculas de minsculasNo usar Palabras Reservadas ni nombres de Funciones de la Biblioteca Estndar.

    Nombres elegidos por el programador para representar entidades (variables, constantes, funciones, etc.) en el programa.

  • Variables, ConstantesVariables: Posicin en memoria, referenciada por un identificador, que puede tomar distintos valores a lo largo del programa.

    Constantes: Posicin de memoria, referenciada por un identificador, al que se le asignar un valor que no se podr modificar a lo largo del programa

    Los datos se guardan en casillas (espacios) de memoria para su utilizacin y tienen un NOMBRE que es su identificador.

  • Almacenan un valor (Datos) que puede cambiar en el transcurso de la ejecucin del programa, cuantas veces sea necesario.

    Formato para declarar variables:Tipo_de_Dato Nombre_Var1, Nombre_Var2,..., Nombre_VarN

    Ejm:int Edad float Estaturachar Generochar* Nombre

    Segn su uso se definen como:

    AcumuladorContadorBanderasVariablesLuego de la creacin, las variables estn indefinidas, es decir no tienen un valor definido.

  • Son valores reales, no variables, cuyo valor no cambia.

    Tipos:Constantes enteras:1, 658, 1000000, 15, etc.Constantes reales:3.1416, 8000000.12, 58, etc.Constantes de carcter:'a', 'B', ';', '

  • Solo las puede utilizar el lenguaje (condicionales, smbolos especiales, etc.) .

    Las variables y las constantes no se deben nombrar utilizando las palabras reservadas del lenguaje de programacin.autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatilewhileListado de palabras reservadas en CPalabras Reservadas

  • OperadoresEn lenguaje C, como en todos los lenguajes de alto nivel, juegan un papel preponderante los operadores, por medio de los cuales es posible establecer modificaciones sobre las variables o influencia de las unas sobre las otras.

    Operadores AritmticosOperadores LgicosOperadores RelacionalesOperadores de Asignacin

    Jerarqua de Operadores

  • Operadores AritmticosEXPRESION ARITMTICA:

    Es una combinacin de variables, constantes y operadores aritmticos que genera un resultado de tipo numrico.OPERADORES ARITMTICOS:Solo pueden utilizarse con tipos de datos Enteros y Reales.Operaciones con caracteres toman los valores del ASCII.

    Operador

    Significado

    Ejemplo

    Resultado

    +

    Suma

    125.78 + 10

    135.78

    -

    Resta

    65.30 32.33

    32.97

    *

    Multiplicacin

    8.25 * 7

    57.75

    /

    Divisin

    15 / 4

    3

    ^

    Potencia

    3^2

    9

    MOD (%)

    Modulo (Residuo)

    15 MOD 2

    1

    DIV

    Divisin entera

    15 DIV 2

    7

  • Si se tienen en una expresin mas de un operador, se debe aplicar primero el operador de mayor jerarqua, resolver esa operacin y as sucesivamente. Cuando se encuentran mas de dos operadores del mismo, se toma el primero de izquierda a derecha.Operadores Aritmticos -Jerarqua-

    Operador

    Jerarqua

    Significado

    ( )

    (Mayor)

    |

    |

    |

    V

    (Menor)

    Parntesis

    ^

    Potencia

    *, /, MOD, DIV (Mismo nivel)

    Multiplicacin, Divisin, Modulo, Divisin entera

    +, - (Mismo nivel)

    Suma , Resta

  • EJEMPLO:

    15 / 2 * (7 + (68 15 * 33 + (45 ^ 2 / 16) / 3) /15) + 19

    2025

    126.5625

    495

    1

    2

    3

    4

    42.19

    5

    -427

    6

    -384.8125

    7

    -25.654

    9

    7.5

    8

    -18.6541

    11

    -120.9062

    10

    -139.9062

  • Operadores LgicosTablas de Verdad para los operadores lgicos:|| OR&& AND! NOTPermiten realizar condiciones complejas a partir de condiciones simples.

    ABA||B000011101111

    ABA&&B000010100111

    A!A0100

    Operador

    Jerarqua

    Expresin

    Significado

    NOT

    (Mayor)

    |

    |

    |

    |

    V

    (Menor)

    NOT P

    No es cierto que P,

    Es FALSO que P

    AND

    P AND Q

    P y Q deben de ser verdaderas, para que el resultado sea verdadero

    OR

    P OR Q

    Tiene que se verdadero al menos una para que el resultado sea verdadero

  • Operadores RelacionalesUna expresin lgica combina variables, constantes, operadores aritmticos, operadores relacionales y operadores lgicos.El resultado de la expresin relacional y de una expresin lgica es de tipo lgico. El resultado es verdadero o falso.Cuando se utilizan los operadores de relacin con operandos lgicos, Falso es menor que Verdadero.

    Operador

    Significado

    Ejemplo

    Resultado

    ==

    Igual a

    hola == lola

    FALSO

    !=

    Diferente de

    a != b

    VERDADERO

    >

    Mayor que

    22 > 11

    VERDADERO

    >=

    Mayor o Igual que

    35 >= 20

    VERDADERO

  • EJEMPLO:

    (15 >= 7 * 3 ^ 2 AND 8 > 3 AND 15 > 6) OR NO (7 * 3 < 5 + 12 * 2 div 3 ^ 2)

    9

    1

    63

    2

    FALSO

    3

    VERDADERO

    4

    FALSO

    6

    VERDADERO

    5

    FALSO

    7

    9

    8

    21

    9

    24

    10

    2

    11

    7

    12

    FALSO

    13

    VERDADERO

    14

    VERDADERO

    15

  • Operadores de AsignacinOperadores Unarios

    OperadorOperacin=Asignacin++Incremento--Decremento+=Suma y Asignacin-= Resta y Asignacin*=Multiplicacin y Asignacin/= Divisin y Asignacin%=Mdulo y Asignacin

    OperadorOperacin-Cambio de Signo del OperandoOperando entero o real~Complemento a uno.Operando entero

  • Jerarqua de OperadoresOperadores Ordenados por prioridad

    { }, ( ), [ ]- (unario), ~, !, ++*, /, %+, -===, !=&&||

  • EJEMPLO:

    ((1580 mod 6 * 2 ^ 7) > (7 + 8 * 3 ^ 4)) >((15*2) == (60 * 2 / 4))

    9

    30

    11

    VERDADERO

    8

    30

    7

    FALSO

    655

    6

    648

    5

    81

    4

    10

    120

    256

    3

    2

    2

    1

    128

    12

    FALSO

  • Funciones PrimitivasA veces se necesitan otros operadores especiales diferentes de los ya nombrados que son funciones predefinidas o internas del lenguaje.Aceptan argumentos.Producen un solo resultado de diferentes tipos.Las mas usuales son: (siendo x el argumento de la funcin)

    Funcin

    Descripcin

    Tipo de argumento

    Resultado

    Abs (x)

    Valor absoluto de x

    Entero o real

    Igual que argumento

    Seno (x)

    Seno de x

    Entero o real

    Real

    Coseno (x)

    Coseno de x

    Entero o real

    Real

    Ln (x)

    Logaritmo neperiano de x

    Entero o real

    Real

    Log10 (x)

    Logaritmo decimal de x

    Entero o real

    Real

    Redondeo (x)

    Redondeo de x

    Real

    Entero

    Cuadrado (x)

    Cuadrado de x

    Entero o real

    Igual que argumento

    Raz (x)

    Raz cuadrada de x

    Entero o real

    Real

  • Pasar la siguiente expresin a una expresin algortmica utilizando funciones primitivas.

    (3 * Exp(X,2) * Y * Raz(2 * X + Y)) / Raz(4 * Exp(X,2) + 4 * X * Y + Exp(Y,2))

    EXPRESIN ARITMETICAEXPRESIN ARITMETICA ALGORTMICA:EJEMPLO

  • Funciones de Entrada/SalidaLa entrada y salida de informacin (E/S), se puede gestionar mediante la funcionalidad de la biblioteca stdio.Entrada: scanf()Salida: printf()

    Ejemplo: Leer un nmero por teclado y mostrarlo

    int num;scanf(%d,&num);printf(El nmero es:%d,num);Secuencias de Escape:

    \nNueva lnea\t Tabulador Horizontal\v Tabulador Vertical\b Retroceder Espacio\r Retorno de carro\f Alimentar una pgina\a Pitar\ Escribir comilla simple\ Escribir comilla doble\\ Escribir barra hacia atrs

    Formatos E/S%dentero%fcoma flotante%c caracter%s cadena de caracteres

  • Creacin y Compilacin de un ProgramaEditorDiscoSe crea el programa en el editor y se almacena en discoEl programa preprocesador procesa el cdigoEl compilador crea el cdigo objeto y lo guarda en discoEl editor de enlaces vincula el cdigo objeto con las bibliotecas, crea a.out y lo almacena en discoPreprocesadorDiscoCompiladorDiscoEditor de EnlacesDiscoCargadorDiscoCPUEl cargador pone en memoria el programaLa CPU toma cada instruccin y la ejecuta, posiblemente almacenando nuevos valores de datos a medida que se ejecuta el programa

  • Buenas Prcticas de ProgramacinLa claridad en un programa es de vital importancia, pues la mayor parte del tiempo de mantenimiento de un programa se emplea en estudiar y comprender el cdigo fuente existente.Recomendaciones Bsicas sobre estilo de codificacin al escribir nuestros programas en C:Identificadores SignificativosConstantes SimblicasComentarios, comentarios...Estructura del programaIdentacin o sangradoPresentacin

  • Bibliografa:Deitel y Deitel. C++ Cmo programar. Prentice Hall 1999.

    Hernandez G, Jaime y otros. Curso prctico de programacin de computadoras. Cekit 1999.

    Schildt, Herbert. C Gua de Autoenseanza. McGraw Hill 1994.