lunes, 8 de diciembre de 2014

bloque num 3 de ple

BLOQUE3

C UN LENGUAJE ESTRUCTURADO Y PROCEDIMENTAL
OBJETIVO: Presentar un lenguaje estructurado y procedimental.
ACTIVIDADES 1: 
  • Acceda al enlace que se dispone a continuación y realice un resumen sobre la historia del Lenguaje C, sus características, sus ventajas e inconvenientes. 






    Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
    Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel pero con muchas características de bajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos.
    La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas.


    Características

    Propiedades
    • Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
    • Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).
    • Un sistema de tipos que impide operaciones sin sentido.
    • Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente.
    • Acceso a memoria de bajo nivel mediante el uso de punteros.
    • Interrupciones al procesador con uniones.
    • Un conjunto reducido de palabras clave.
    • Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
    Carencias
    Aunque la lista de las características útiles de las que carece C es larga, este factor ha sido importante para su aceptación, porque escribir rápidamente nuevos compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del programador, y permite implementar la solución más natural para cada plataforma. Ésta es la causa de que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.

    Ventajas

    • Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones óptimas.
    • A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos.
    • Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas existentes.

    Inconvenientes

    El mayor problema que presenta el lenguaje C frente a los lenguajes de tipo de dato dinámico es la gran diferencia en velocidad de desarrollo: es más lento programar en C, sobre todo para el principiante. La razón estriba en que el compilador de C se limita a traducir código sin apenas añadir nada. La gestión de la memoria es un ejemplo clásico: en C el programador ha de reservar y liberar la memoria explícitamente. En otros lenguajes (como BASIC, Matlab o C#) la memoria es gestionada de forma transparente para el programador. Esto alivia la carga de trabajo humano y en muchas ocasiones previene errores, aunque también supone mayor carga de trabajo para el procesador.
    El mantenimiento en algunos casos puede ser más difícil y costoso que con ciertos lenguajes de más alto nivel. El código en C se presta a sentencias cortas y enrevesadas de difícil interpretación
         ACTIVIDADES 2:
    Escriba una definición  de compilador e intérprete.
    Compilador


    Definición:

    Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio, o simplemente texto. Este proceso de traducción se conoce como compilación.


    El Intérprete


    Definición:

    En ciencias de la computación, intérprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.
    Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables específicos a cada sistema.
     Elabore una tabla de las características de un compilador frente a un intérprete.    





















    ACTIVIDADES:3 3:
    Acceda al primer link y realice la lectura de la información, así mismo ingrese al segundo link y observe el video que se dispone en el mismo:
    • Realice la descripción de la estructura básica en C
    La estructura básica de c es un poco compleja  llaqué está compuesta por las siguientes partes:
    • preprocesador.
    •  tipos de datos.
    •  variables.
    • funciones.

    Ponga un ejemplo donde se identifique la estructura de un programa en C
    * Programa que calcula el área de un triangulo a partir de la base y  altura dado por teclado.
    Programa: area-triangulo
    Módulo: main  ** (principal)
    Variables:
    Base: natural
    altura: natural
    Area: natural
    Inicio
         Visualizar “Introduce la base y altura”
         Leer base y altura
    Area = base  * altura  /  2

         Visualizar “El área del triangulo es”, area
    Fin   
     
    • ACTIVIDADES 4:
    ·         Elabore una tabla con los tipos de datos que se manejan en C
    ·         Enteros 










  •  
     
     
     
     
      ACTIVIDADES 5:
      • Elabore una tabla con los operadores aritméticos que se utilizan en C.
      • Elabore una tabla con los operadores relacionales  que se utilizan en C.
      • Elabore una tabla con los operadores lógicos que se utilizan en C.
     
     
     
     
     
     
     
     
     
     
      operador
      nombre
      ejemplo
      Devuelve cierto  si
      &&
      Y(and)
      (exp1)&&
      (exp2)
      Ambas son verdaderas
      II
      O(or)
      (exp1)II
      (exp2)
      Una o ambas son verdaderas
      !
      No
      (not)
      !(exp1)

      Cambia el valor de la
      expresión

     
     
     
     
     
      ACTIVIDADES 6:
      Elabore una tabla con los tipos de datos que se manejan en C, con las siguientes características
       
       
       
     
     
     
     
     
      TIPO DE DATO
      RANGO
      EJEMPLO
      TIPOS ENTEROS
      CHAR
      (CARACTER)
      RANGO:
      -
      128... 127 char
      0...255 unsigned char
      char
      car;
      /* car es una variable de tipo char */
     
     
     
     
     
     
     
      TIPO DE DATO
      RANGO
      EJEMPLO
      INT
      (ENTERO
      RANGO PARA 16 BITS:
      -
      32768... 32767 int
      0.
      .. 65535 unsigned int
      int
      x;
      /* x es de tipo entero */
      TIPO DE DATO
      RANGO
      EJEMPLO
     
     
     
     
      SHORT
      (ENTERO CORTO
      32768... 32767 short
      0... 65535 unsigned short
      short
      x,y;
      /* declara x e y como enteros cortos *

     
     
     
     
     
     
     
      TIPO DE DATO
      REALES EN SIMPLE PRECISION)
      4 BYTES

      RANGO

      3.402823E+38.....
      -
      1.40129E45
      negativos
      1.401293E
      -
      45 ... 3.40282E38
      positivos
      EJEMPLO

      float
      x;
      /* x es un real *







      TIPO DE DATO
      DOUBLE
      (REALES EN DOBLE PRECISION)

      8 BYTES
      RANGO
      -
      1.79769313316E308.......4.94065E
      -
      324
      negativos


      4.94065E
      -
      3
      24... 1.797334862316E308
      positivos
      EJEMPLO


      double
      x


      /* x es un real en doble precisión * /








      ACTIVIDADES 7: FUNCIONES DE ENTRADA Y SALIDA
      • Elabore una tabla de datos con la siguientes funciones: printf(), scanf (), getchar(), putchar(), fflush(), y con su respectivo uso dentro de la programación en C. Revise y estudie la presentación de la página 11 a la 17.



      Función      uso de la  programación


      scanf
      Lee los datos de  entrada en el stdin (flujo de entrada estándar

      printf
      Es útil para enviar  a la salida estándar cualquier tipo de  dato

      Putchar
      Las cuales muestran el carácter a la salida
      Estándar.


      sscanf
      Obtiene la entrada que se va  a analizar de una cadena de caracteres dada( string)

      getchar

      Las cuales obtienen el  valor de un  carácter de la entrada  estándar














      CARÁCTER DE CONTROL
      FUNCIÓN
      %
      c

      Carácter
      % d
      Número entero  ( int )

      %D
      Número entero  long (o también % ld )

      %i
      Número entero( int )

      % f
      Punto flotante(float)

      % e
      Notación científica con e minúscula

      % E
      Notación científica con E mayúscula

      % g
      Utiliza %f o %e según sea más corto

      % G
      Utiliza %f o %E según sea más corto

      % o
      Número octal sin signo
      % s
                      Cadena de texto

      %u
      Entero sin signo

      % U
      Entero sin signo
      long
      (o también %

      % x
      Hexadecimal sin signo con minúsculas

      % X
      Hexadecimal sin signo con mayúsculas
      % p
      Puntero, dirección de memoria
      %

      % n
      Número de caracteres

      %o
      Formato entero octal
      %              

      % O
      Formato entero octal
      long
      (o también %lo)
      %

      % lf
      double
      %


      ACTIVIDADES 9: EJEMPLOS DE PROGRAMACIÓN EN LENGUAJE C
      • Accedad al enlace siguiente y escriba 5 ejemplos de programación en C,  estudie su estructura y desarrollo de cada uno.

      Ejercicio 8

      Modificar el programa anterior para que se pueda repetir indefinidamente si el usuario lo desea (que el ordenador pregunte ¿Quiere continuar? y la persona pueda responder S ó N)
      #include <stdio.h>
      int main(){
      int x,y,z;
      char resp;

      do {
      printf ("Escribe el primer lado");
      scanf("%i",&x);
      printf ("\nEscribe el segundo lado");
      scanf("%i",&y);
      printf ("\nEscribe el tercer lado");
      scanf("%i",&z);

      printf("\n\n\n"); //Saltar tres líneas

      /*Comprobación de si es un triángulo,
      damos por hecho que los números son positivos */
      if ((x+y>z) && (x+z>y) && (y+z)>x){
      if (x==y && x==z) printf ("Equilátero");
      else if (x==y || x==z || y==z) printf ("Isósceles");
      else printf("Escaleno");
      }
      else
      printf("Esos números no forman un triángulo");

      printf("\n¿Desea continuar (S/N)?)");
      scanf("%c",&resp);
      }while (resp!='N' && resp!='n');

      Ejercicio 9

      Escribir un programa que escriba todos los múltiplos de 3 del número 1 al 3000
      #include <stdio.h>
      int main(){
      for(int i;i<=1000;i+=3)
      printf("%i\t",i);
      }

      Ejercicio 10

      Programa que lea una serie de números (leer hasta que llegue el cero por ejemplo) y que calcule su media aritmética
      #include <stdio.h>
      int main(){
      int i,suma=0,cont=0;
      do{

      printf("\nNúmero: ");
      scanf("%i",&i);
      suma+=i;
      if (i!=0) cont++;

      }while (i!=0);

      if(cont!=0)

      printf("\nMedia: %5.2f",(float)suma/cont);
      else
      printf("\nNo hubo números");
      }



      Ejercicio 11

      Programa que escriba todo el código ASCII (el código ASCII va de 0 a 255 y representa el número con el que los ordenadores almacenan los caracteres)
      #include <stdio.h>
      int main(){
      for(int i=0;i<=255;i++){
      printf("%c(%i)\t",i,(int)i);
      //Salto de línea cada 5 símbolos
      if (i%10==5) printf("\n");

      Ejercicio 12

      Programa que lea un número entero por teclado y que calcule su factorial
      #include <stdio.h>
      int main(){
      int x;
      double fact=1;

      printf("Escriba el número: ");
      scanf("%i",&x);

      while(x>1) fact*=x--;

      printf("Factorial =%lf",fact)





      ACTIVIDADES 9: EJEMPLOS DE PROGRAMACIÓN EN LENGUAJE C
      • Elija un ejemplo de programacíon en C e identifique las partes o estructura.



      Ejercicio 14

      Crear un programa que lea un número entero y a partir de él cree un cuadrado de asteriscos con ese tamaño. Los asteriscos sólo se verán en el borde del cuadrado, no en el interior-
      #include <stdio.h>
      int main(){
      int n,fila,col;

      printf("tamaño del cuadrado: ");
      scanf("%d",&n);

      /*Primera fila*/
      for(col=1;col<=n;col++){
      printf("*");
      }
      printf("\n");

      /*Filas interiores*/
      for(fila=2;fila<n;fila++){
      printf("*");
      for(col=2;col<n;col++){
      printf(" ");
      }
      printf("*");
      printf("\n");
      }

      /* Última fila*/
      for(col=1;col<=n;col++){
      printf("*");
      }
      }










     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

No hay comentarios.:

Publicar un comentario