Elementos de Un Programa

Embed Size (px)

DESCRIPTION

partes de un programa

Citation preview

  • Luis Rodrguez Baena ([email protected])Universidad Pontificia de SalamancaEscuela Superior de Ingeniera y Arquitectura

    Fundamentos de Programacin I

    2. Elementos de un programa

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 2

    Datos y tipos de datos Los datos constituyen los elementos bsicos sobre

    los que trabajar un algoritmo. La eleccin de un tipo de dato determinar el algoritmoutilizado para procesarlos.Algoritmos + estructuras de datos = programas (Nicklaus Wirth).

    Por ejemplo:Si un programa procesa una lista de alumnos

    Requerir un algoritmo con una estructura repetitiva que repita elmismo proceso para todos los alumnos hasta que finalice la lista.

    Si un programa necesita hacer distincin entre las personassolteras o casadas Requerir de un algoritmo con una estructura selectiva que permita

    hacer la distincin entre los dos estados posibles que puede tomar elestado civil de una persona.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 3

    Datos y tipos de datos (II) Dato: unidad mnima de informacin con la que puedetrabajar un programa.

    El concepto de informacin mnima puede cambiar de un programaa otro en funcin de los tipos de datos que maneje. Por ejemplo, mientras que FORTRAN puede trabajar con nmeros complejos,las primeras versiones de BASIC slo podan trabajar con nmeros reales.

    Tipo de dato: conjunto de valores distintos que puede tomarun dato. La mayora de los lenguajes tienen un conjunto de tipos de datossimilar. Cada lenguaje puede nombrarlos o almacenarlos de forma distinta. Aunque el procesador slo trabaja con datos binarios, los lenguajesde alto nivel realizan una abstraccin de la informacin.

    El tipo de dato indica al programa como tiene que interpretar esa secuenciade bits. Por ejemplo, la secuencia de bits 0000000001000001 puede ser interpretada porun programa como

    El valor numrico decimal 65 si se considera como un tipo de dato numrico. El carcter A, si se considera como un tipo de dato carcter.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 4

    Clasificacin de los tipos de datos

    Tipos de datos

    Simples

    Estructurados

    Estndar

    Definidos por elusuario

    Numricos

    Lgicos

    Alfanumricos

    Subrango

    Enumerados

    Enteros

    Reales

    Carcter

    Cadena

    Estticos

    Dinmicos

    Conjuntos

    Arrays

    Registros /estructuras

    Cadena

    Archivos

    Punteros

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 5

    Datos simplesUn dato simple es aquel que no se puede subdividiren otros ms pequeos. Por el contrario un dato estructurado estara compuesto deotros datos que sern a su vez simples o estructurados.

    Datos estndar (datos primitivos o integrados). Datos que son directamente soportados por el lenguaje deprogramacin.

    Vamos a considerar los siguientes tipos de datosestndar. Numricos. Lgicos. Carcter. Cadena. Punteros.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 6

    Datos simples (II) Datos numricos.

    Entero. Podr contener cualquier valor numrico entero. En C, segn su tamao en bytes pueden ser int, short, long.

    Real. Cualquier valor numrico con parte decimal. En C podrn ser float y double.

    Datos carcter. Podrn contener cualquier carcter vlido. En C se corresponde con el tipo de dato char y se puede considerar tambin como un dato

    entero. Datos lgicos.

    Slo podrn contener los valores si/no, verdad/falso. En C no existen de forma directa y las expresiones lgicas devuelve 0 si es falsa o 1 si es

    verdadera. El archivo de cabecera stdbool.h contiene especificaciones que enmascaran esto.

    Datos de tipo cadena. Podrn contener una secuencia de caracteres. En C no existen directamente y se consideran arrays de caracteres terminados en un carcter

    nulo. Datos de tipos puntero.

    Contienen exclusivamente direcciones de memoria dnde se almacenen otros datos. Se ven en profundidad en la asignatura de Fundamentos II

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 7

    Datos simples (III) Datos definidos por el usuario. El usuario (programador) decide el conjunto de valores que

    puede almacenar el tipo de dato. Es necesario indicar el nombre del tipo y el conjunto devalores.

    Segn la forma en que se especifica el conjunto de valores. Datos enumerados.

    Se enumeran de forma explcita cada uno de los valores que puede contener. Ejemplos:

    daSemana = {lunes,martes,mircoles,jueves,viernes,sbado,domingo}

    Una dato de tipo diaSemana podr contener cualquiera de estos valores. En C se puede hacer algo parecido con las constantes enumeradas.

    Datos subrango. Son un subconjunto de algn tipo de dato ya definido. Ejemplos:

    sigloXX = 1900..1999semanaLaboral = lunes..viernes

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 8

    Datos estructurados Datos compuestos de otros datos.

    Se podrn tratar tanto individualmente como en su conjunto. Segn su forma de almacenamiento en memoria podrn ser:

    Estticos. Se reserva un espacio fijo para almacenarlos y siempre ocupan la mismaposicin de memoria.

    Dinmicos. El espacio que ocupan y su posicin pueden variar a lo largo de la ejecucindel programa.

    En la asignatura de Fundamentos de Programacin I setratarn la siguientes estructuras de datos estticas: Arrays. Registros. Cadenas.

    Se pueden considerar tambin un dato estructurado puesto que estncompuestas de datos ms simples (caracteres). Otros datos estructurados estticos son:

    Archivos (se vern en Fundamentos de Programacin II). Conjuntos.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 9

    ConstantesDatos que no cambian su valor a lo largo de laejecucin del programa. Constantes literales. Representacin de la informacin que contiene el dato. Segn el tipo de informacin que contengan pueden ser.Enteras.

    Formadas por los dgitos de 0 a 1 y pueden estar precedidas por elsigno -.Reales.

    Representacin en coma fija. Formadas por los dgitos de 0 a 1, el punto decimal y pueden estarprecedidas por el signo .

    Por ejemplo, 567.56 o -34.678.

    Representacin en coma flotante. Adems de la mantisa, van seguidas por la base (representada por laletra E) y el exponente.

    Por ejemplo, 2.34E02 (sera 2,34 x 102) o 1.034E-21 (sera 1,034 x 10-21).

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 10

    Constantes (II) Constantes literales (continuacin). Lgicas.

    Representas mediante las palabras reservadas verdad o falso. C no tiene este tipo de constantes, aunque el archivo de cabecera stdbool.hdefine las constantes true y false que valen 1 y 0 respectivamente.. Carcter.

    Cualquier carcter del juego de caracteres utilizado encerrado entrecomillas. C distingue entre constantes de carcter y de cadena.

    En C el delimitador de caracteres es la comilla simple. Cadena. Secuencia de caracteres del juego de caracteres utilizado encerrado entrecomillas.

    En C, el delimitador de cadenas es la comilla doble. Constantes simblicas. Constantes a las que se asigna un nombre nemotcnico(identificador). El compilador sustituir todas las apariciones de ese nombre porsu valor asignado en la declaracin de la constante.

    En C se pueden declarar mediante el modificador const.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 11

    Variables Datos que pueden variar su contenido a lo largo de laejecucin de un programa. El nombre de la variable es un identificador vlido. Las variables primitivas se almacenan en una zona dememoria que se reserva al arrancar el programa (pila) yqueda inaccesible cuando termina. Cuando en el programa se indica que se va a utilizar, por ejemplo,una variable entera.

    Antes de la ejecucin del programa se busca una zona de memoria losuficientemente grande como para almacenar un dato entero. A esa zona de la memoria se le asigna un identificador (un nombre). Mientras que se ejecuta el programa al utilizar ese identificador se estarhaciendo referencia a esa zona de memoria. Al terminar el programa, el identificador desaparece, por lo que no sepuede utilizar esa zona de memoria, ya que no se puede hacer referenciaa ella.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 12

    Expresiones

    Modifican los datos presentes en el algoritmo. Conjunto de variables, constantes, operadores y llamadas a funciones

    que siempre devuelven un valor. El valor ser de un tipo determinado que depende de los operadores y los

    operandos de la funcin. Segn el tipo de dato que devuelven habr expresiones:

    Numricas. Lgicas. De cadena.

    En un algoritmo, las expresiones algebraicas comunes tendrn que sertraducidas a expresiones algortmicas:

    bd

    ca2

    52

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 13

    Expresiones aritmticas Dan como resultado un valor de tipo numrico. Estn compuestas de operandos numricos y operadores aritmticos. El lenguaje algortmico UPSAM utiliza los siguientes operadores aritmticos:Operador Significado Ejemplo Operador en C

    ** Exponenciacin 2 ** 3 equivale a 23No existe en C. La funcinpow(2,3). La funcin seencuentra en la bibliotecamath.h

    + Suma aritmtica 3 + 5 devolvera el valor 8 3 + 5- Resta. Como operador unario (con un solooperando) actuar como el signo negativo

    8 3 devolvera el valor 5. -6 equivaldraal valor negativo de 6. 8 - 3

    * Multiplicacin 6 * 4 devolvera 24 6 * 4/ Divisin real 5 / 2 devolvera 2.5 5 / 2mod Mdulo (resto) de la divisin entera 5mod 2 devolvera 1, el resto de dividir5 entre 2 5 % 2

    div Divisin entera 5 div 2 devolvera 2, el resultado de ladivisin entera de 5 entre 2.No existe. Si los operandosson enteros el operador /devuelve la divisin entera

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 14

    Expresiones aritmticas (II) No todas las variables numricas pueden aceptar cualquier expresin numrica.

    Es importante determinar el tipo de dato (entero o real) devuelto por una expresin numrica. Valores devueltos por las expresiones aritmticas:

    Dependen de los operadores y el tipo de dato de los operandos. Los operadores +, - y *:

    Si todos los operandos son enteros el resultado es entero. Si algn operando es real el resultado es real.

    Operador /. El resultado es real.

    Operador **. El resultado es real.

    Los compiladores suelen solucionar la exponenciacin mediante logaritmos, por lo que el convenienteconsiderar el resultado como real.

    Operadores mod y div. El resultado es entero.

    Operacin Resultado Tipo de dato Operacin Resultado Tipo de dato3+4 7 Entero 2*4.5 9.0 Real5/2 2.5 Real 4/2 2.0 Real15 mod 4 3 Entero 2**3 8.0 Real

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 15

    Expresiones lgicas Devuelven un dato lgico (verdad o falso). Utilizan operadores relacionales y los operadores lgicos. Operadores relacionales.

    Analizan la relacin entre dos operandos del mismo tipo. Pueden ser de cualquier tipo, pero siempre del mismo tipo.

    Operador Significado Ejemplo Operador en C= Igual que 2 = 3 devuelve falso ==< Menor que 3 < 5 devuelve verdad Mayor que 8 > 3 >= Distinto de 5 2 devuelve verdad !=

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 16

    Expresiones lgicas (II) Operadores de relacin en datos de tipo carcter ycadena. Los operadores de relacin se pueden utilizar en expresiones detipo carcter y cadena. Se compara el cdigo numrico asociado a cada carcter que mso menos est ordenado alfabticamente.

    Hay que tener en cuenta que normalmente: Cualquier letra mayscula es menor que cualquier minscula. Cualquier dgito es menor que cualquier letra. Algunos caracteres (por ejemplo la o las vocales acentuadas) tienen uncdigo mayor que los caracteres estndar.

    Estas expresiones son verdaderas:A < Bc > A > zMALAGA > MADRID

    En C se pueden comparar caracteres, pero para compararcadenas hay que utilizar la funcin strcmp de la bibliotecastring.h.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 17

    Expresiones lgicas (III) Operadores lgicos.

    Evalan dos expresiones lgicas. Su resultado siempre es lgico. Operadores:

    y (en C, &&). o (en C, ||). no (en C, !).

    La tabla de verdad de estos operadores es:a b a y b a o b no a

    verdad verdad verdad verdad falsoverdad falso falso verdad falsofalso verdad falso verdad verdadfalso falso falso falso verdad

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 18

    Expresiones de cadena

    Operan sobre cadenas o caracteres y utilizanoperadores de cadena.

    Operador de concatenacin: &, +. El resultado de la concatenacin de dos cadena es otracadena formada por la unin de ambas.

    "Fundamentos" & "de Programacin" devolvera lacadena "Fundamentosde Programacin

    C no tiene este operador. Para concatenar cadenas seutiliza la funcin strcat de la bilioteca string.h.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 19

    Prioridad de los operadoresUna operacin puede estar compuesta por varios

    operadores y operandos de distinto tipo. Las operaciones siempre se hacen por parejas deoperandos (en los operadores binarios), comenzando por eloperador de mayor prioridad.

    A igualdad de prioridad las operaciones se hacen deizquierda a derecha.

    El parntesis altera el orden natural de las operaciones.Si existen varios parntesis anidados se comienza por el msinterno.

    Si existen varios parntesis al mismo nivel se evalan deizquierda a derecha.

    Cada lenguaje puede tener un orden de prioridadpropio.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 20

    Prioridad de los operadores (II)

    Tabla de prioridades.

    Lenguaje UPSAM C+ prioridad - (unario), no - (unario), !

    **, *, /,mod, div *, / %+, -, + (concatenacin), & +, -= ==, ==, !=y &&

    - prioridad o ||

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 21

    Prioridad de los operadores (III)

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 22

    InstruccionesUn programa estar compuesto de una serie deproposiciones, sentencias o instrucciones queindican al ordenador las tareas a realizar y en elorden en que lo deben hacer.

    A pesar de la complejidad aparente quepresentan los lenguajes de programacin, lostipos de instrucciones se pueden resumir en trescategoras: Instruccin de asignacin. Instrucciones de entrada y salida. Instrucciones de control.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 23

    Instruccin de asignacin La asignacin modifica el valor de una variable. Modifica el contenido de un rea de memoria.

    El formato general de la instruccin de asignacinsera el siguiente:nombreVariable expresinsubtotal precioProducto * unidadesProducto

    Evala la expresin que aparece a la derecha. Asigna el valor de la expresin en la variable de laizquierda.

    En C, el operador de asignacin es el smbolo =. Adems existen operadores de asignacin que implicanexpresiones aritmticas como +=, -=, *=, /=, %=. En C la asignacin en s misma se considera tambin unaexpresin.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 24

    Instruccin de asignacin (II) El tipo de la expresin debe ser el mismo que el tipode la variable. Conversin de tipos. Algunos lenguajes realizan una conversin de tipos,convirtiendo automticamente el valor de la expresin altipo de la variable siempre que sea posible.Esto no ser posible en todas las expresiones.

    Cuando se permite la conversin de tipos, puede habercasos de perdida de precisin cuando el tipo de dato de lavariable tiene un tamao menor que el tipo de dato de laexpresin. En C en las asignaciones se hace una conversinautomtica del tipo de dato si la variable tiene unacapacidad mayor que la expresin.En caso contrario el resultado queda indeterminado.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 25

    Instruccin de asignacin (III) La variable puede aparecer a ambos lados del

    operador. En la asignacin

    a a + 5Primero evala la expresin situada a la derecha.Despus asigna el valor a la variable a.

    El anterior valor de la variable a se pierde.En C el operador de asignacin += hara esto.

    a = a + 5 es equivalente a a+=5 Para realizar esto es necesario que la variable que apareceen la expresin tenga un valor inicial.Algunos lenguajes inicializan la variable a 0.

    Esto no ocurre en todos los lenguajes. C no inicializa las variables a 0.

    Es una buena prctica inicializar siempre las variables.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 26

    Instrucciones de entrada y salida Permiten proporcionar informacin al algoritmo ydevolver informacin al usuario. Instruccin de salida. escribir(listaDeExpresiones) La listaDeExpresiones son una o ms expresionesseparadas por comas.

    Instruccin de entrada. leer(listaDeVariables) La ejecucin del programa se detiene hasta que se leproporcionan datos. Cada uno de los datos proporcionados se asignan a unavariable.Es necesario que los datos proporcionados sean del mismo tipoque la variable.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 27

    Instrucciones de entrada y salida (II)

    En C las instrucciones de entrada y salida son funcionesalmacenadas en la biblioteca stdio.h. La instruccin de salida en C es

    printf( cadenaFormato, listaExpresiones) Escribe el resultado de la lista de expresiones aplicando el formato de lacadena de formato.

    printf(%i ms %i es igual a %i,3,4,3+4) sacara por pantalla3 ms 4 es igual a 7

    La instruccin de entrada en C esscanf(cadenaFormato, listaPunteros)

    Lee por teclado una lista de valores separados por blanco y lostrata de asignar a las variables de la lista de punteros.scanf(%i %i %i,&a,&b,&c) si la entrada de teclado es 45 65 78

    asignara a la variable a el valor 45, a la variable b el valor 65 y a la variable cel valor 78.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 28

    Instrucciones de control

    Modifican el flujo normal (secuencial) de un programa. Todas utilizan una bifurcacin.

    Bifurcacin condicional. Bifurcacin incondicional.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 29

    Elementos de un algoritmo Los algoritmos se pueden especificar mediante lenguaje natural o utilizandoalguna herramienta de programacin.

    Algunas herramientas son flexibles (diagramas de flujo). Otras son ms rgidas y se acercan a un lenguaje de programacin (pseudocdigo yLenguaje Algortmico UPSAM 2.1).

    Un algoritmo expresado en pseudocdigo estar compuesto de una serie deelementos que se deben utilizar mediante una sintaxis precisa. Aunque no tienen por qu ser tan rgidos como un lenguaje de programacin, respetaresa sintaxis ayudar a que el resto de las personas entiendan el algoritmo.

    Elementos de un algoritmo: Variables y constantes, palabras reservadas, identificadores, comentarios,declaraciones.

    Palabras reservadas. Cada lenguaje tiene un conjunto propio de palabras reservadas. El compilador tratar esas palabras de forma especial. Construcciones que forman parte del lxico del lenguaje y que tienen un significadoespecial en un programa fuente escrito en un lenguaje de programacin determinado.

    En nuestro lenguaje algortmico se sealarn en negrita o subrayado.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 30

    Elementos de un algoritmo (II) Identificadores.

    Palabras creadas por el programador con los caracteres permitidos por ellenguaje y que permiten identificar los distintos objetos creados por l comolos nombres de variables. Tienen que estar formados por caracteres del juego de caracteres permitidospor el lenguaje.

    ASCII, Unicode. Aunque hay implementaciones de C que permiten un juego de caracteres extendido, esms portable utilizar los caracteres ASCII estndar.

    Estos no incluyen los caracteres especficos del idioma espaol como la o las vocales acentuadas. En nuestro caso: cualquier carcter alfabtico del idioma espaol, caracteres numricos oel guin bajo (_).

    El lenguaje UPSAM 2.1 no es sensible a maysculas. Otros lenguajes (C, Java) si lo son.

    Deben comenzar por un carcter alfabtico. Se considera como carcter alfabtico cualquier carcter o ideograma que describa uncarcter alfabtico o un dgito en cualquier idioma.

    En la prctica, se consideran de longitud ilimitada. C es capaz de admitir hasta 63 caracteres

    No pueden ser igual que las palabras reservadas.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 31

    Elementos de un algoritmo (III) Comentarios. Documentacin interna del programa. {comentario} , /*comentario*/ o //comentario

    En C: //Comentario (comentarios de una sola lnea). /* Comentario */ (para comentarios de ms de una lnea).

    Instrucciones. De asignacin, de entrada/salida, de control.

    Declaraciones. Instrucciones no ejecutables que definen los elementos utilizadosen un algoritmo. Declaracin del nombre del algoritmo, tipos de datos, constantesy variables. Declaracin de subprogramas. Declaracin del inicio y el fin del cdigo del algoritmo.

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 32

    Estructura de un algoritmo enpseudocdigoLa estructura de un algoritmo escrito en ellenguaje algortmico UPSAM 2.1 sigue elesquema siguiente:

    algoritmo NombreDelAlgoritmo//Seccin de declaraciones globales[Declaracin de tipos de datos][Declaracin de constantes

    simblicas][Declaracin de variables]//Cuerpo del algoritmoinicio

    //Cdigo del algoritmofin

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 33

    Estructura de un algoritmo enpseudocdigo (II) Declaracin de constantes.

    Se utilizan para declarar las constantes simblicas.

    Declaracin de variables. Se deben declarar todas las variables que utilice el algoritmo.

    tipoDeDato podr ser cualquier tipo de datos estndar o definido por el usuario,simple o estructurado. De momento ser entero, real, lgico, carcter o cadena.

    constidentificador1 = expresin1identificador2 = expresin2constpi = 3.141592 //pi ser una constante realradio = 23 //radio ser una constante enteraexiste = verdad //Existe ser una constante lgicaciudad = 'Madrid' //ciudad ser una constante de cadenalongitudCircunfereciaFija = 2 * pi * radio

    vartipoDeDato : ListaIdentificadores [= expresinInicializacin]...

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 34

    Estructura de un algoritmo enpseudocdigo (III) Declaraciones en C.

    C no tiene secciones especiales de declaraciones para constantes y variables. Pueden declararse en cualquier lugar del programa. Si es posible, conviene agruparlas al comienzo del programa y utilizar un

    comentario para indicarlo. Declaraciones de variables.

    Cada variable puede llevar una expresin de inicializacin.

    Declaracin de constantes. La palabra reservada const indica que un dato es constante.

    tipoDato listaDeVariables

    //Declaracin de variablesint a,b,c;float d = 3.45;boolean e;char f,g,h;char *i = "hola"

    //Declaracin de constantesconst float PI = 3.141592 //PI ser una constante real

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 35

    Estructura de un algoritmo enpseudocdigo (IV) Ejemplo de algoritmo en lenguaje UPSAM 2.1.algoritmo clculoPrecioVentaconst

    IVA = 0.18varreal : total, precioProducto, subtotal, totalIVA , totalConIVAentero : unidadesProductoiniciototal 0leer(precioProducto)// precioProducto = 0 indica que no hay ms productosmientras precioProducto 0 hacer

    //Calcula el subtotal de un productoleer(unidadesProducto)subtotal precioProducto * unidadesProductototal total + subtotal//Para salir, introducir un precioProducto = 0leer(precioProducto)fin_mientras

    totalIVA total * IVAtotalConIVA total + totalIVAescribir('Total (sin iva):', total)escribir('IVA (16%):', totalIVA)escribir('Total a pagar:', totalConIVA)fin

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 36

    Estructura de un algoritmo enpseudocdigo (V) Ejemplo de programa en C./*

    El nombre del archivo fuentecalculoPrecioVenta.c es el nombre del algoritmo

    */#include int main(void){

    /*Declaracion de constantes */const float IVA = 0.18;/*Declaracion de variables */float total=0, precioProducto,subtotal,totalIVA,totalConIVA;int unidadesProducto;printf("%s","\nPrecio del producto (0 para terminar):");scanf("%f",&precioProducto);

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 37

    Estructura de un algoritmo enpseudocdigo (VI) Ejemplo de programa en C.

    while(precioProducto !=0){printf("%s","\nUnidades producto:");scanf("%i",&unidadesProducto);subtotal = precioProducto * unidadesProducto;total += subtotal;printf("%s","\nPrecio del producto (0 para terminar):");scanf("%f",&precioProducto);

    }totalIVA = total * IVA;totalConIVA = total + totalIVA;printf("\nTotal (sin iva): %.2f\n",total);printf("IVA (18%%): %.2f\n",totalIVA);printf("Total a pagar: %.2f\n",totalConIVA);return 0;

    }

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 38

    Ejercicios1. Cules de los siguientes datos seran vlidos para procesar por un

    lenguaje de descripcin de algoritmos? Por qu?. En caso de que sean correctos de qu tipo seran?

    a) 45.6765b) 6.34X-4c) $Hola$d) "Hola'e) 'Hola'f) 0,45g) 4.06E-12h)-3.12E+43i) verdad

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 39

    Ejercicios (II)2. Cules de los siguientes identificadores sern vlidos? Por qu?

    a) xb) A32c) 2000Ad) TotalxAoe) Daf) 3B16g) Nombre_Apellidosh) Nombre-Apellidosi) SueldoBase_Dia

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 40

    Ejercicios (III)3. Convierta a expresiones algortmicas las siguientes expresiones

    algebraicas.

    a) 4NM

    b) 2QPNM

    c)RPDQM

    n24

    d) RQ

    PNM

  • Universidad Pontificia de Salamanca. Escuela Superior de Ingeniera y Arquitectura(CC) Luis Rodrguez Baena, 2012 41

    Ejercicios (IV)

    4. Cul sera el resultado de las siguientes expresiones?