miércoles, 5 de diciembre de 2018

EL ORIGEN DE C++ COMO LENGUAJE DE PROGRAMACIÓN

LENGUAJE C: 

EL ORIGEN DE C++ COMO LENGUAJE DE PROGRAMACIÓN


C es el lenguaje de programación de propósito general asociado, de modo universal, al sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C, se ha producido porque este lenguajeno está prácticamente asociado a ningún sistema operativo, ni a ninguna máquina, en especial. Ésta esla razón fundamental, por la cual C, es conocido como el lenguaje de programación de sistemas, por excelencia.

C nació realmente en 1978, con la publicación de The C Programming Languaje, por Brian Kernighan y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, C fue creciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los años junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron necesario pensar en la estandarización de la definición del lenguaje C.

Así, en 1983, el American National Standard Institute (ANSI), una organización internacional de estandarización, creó un comité (el denominado X3J11) cuya tarea fundamental consistía en hacer “una definición no ambigua del lenguaje C, e independiente de la máquina”. Había nacido el estándar ANSI del lenguaje C. Con esta definición de C se asegura que cualquier fabricante de software que vende un compilador ANSI C incorpora todas las características del lenguaje, especificadas por el estándar. Esto significa también que los programadores que escriban programas en C estándar tendrán la seguridad de que correrán sus modificaciones en cualquier sistema que tenga un compilador C.

C es un  lenguaje de alto nivel, que permite programar con instrucciones de lenguaje de propósito general. También, C se define como un lenguaje de programación estructurado de propósito general; aunque en su diseño también primó el hecho que fuera especificado como un lenguaje de programación de Sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.

El estándar ANSI C formaliza construcciones no propuestas en la primera versión de C, en especial, asignación de estructuras y enumeraciones. Entre otras aportaciones, se definió esencialmente, una nueva forma de declaración de funciones (prototipos). Pero es, esencialmente, la biblioteca estándar de funciones, otra de las grandes aportaciones.

Hoy, en el siglo XXI, C sigue siendo uno de los lenguajes de programación más utilizados en la industria del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades. Prácticamente todos los fabricantes de sistemas operativos, Windows, UNIX, Linux, MacOS, Solaris..., soportan diferentes tipos de compiladores de lenguaje C y en muchas ocasiones distribuciones gratuitas bajo cualquiera de los sistemas operativos citados. Todos los compiladores de C++ pueden ejecutar programas escritos en lenguaje C, preferentemente si cumplen el estándar ANSI C.

C versus C++


C++ es una extensión de C con características más potentes. Estrictamente hablando, es un superconjunto de C. Al igual que sucede con Java y C# que son superconjuntos de C++. El ANSI C estándar no sólo define el lenguaje C sino que también define una biblioteca de C estándar que las implementaciones de ANSI C deben soportar. C++ también utiliza esa biblioteca, además de su propia biblioteca estándar de clases. Hace unos años se revisó el nuevo estándar de C, denominado C99 que fue adoptado por ISO en 1999 y por ANSI en 2000. El estándar de C ha añadido algunas características que soportan algunos compiladores de C++.

Por estas razones casi todas las sentencias de C también tienen una sentencia correcta en C++, pero no es cierto a la inversa. Los elementos más importantes añadidos a C para crear clases C, objetos y programación orientada a objetos (C++ fue llamado originalmente “C con clases”). Sin embargo, a C++ se han añadido nuevas características, incluyendo un enfoque mejorado de la entrada/salida (E/S) y un nuevo medio para escribir comentarios.

De hecho las diferencias prácticas entre C y C+ son mucho mayores que lo que se pueda pensar. Aunque se puede escribir un programa en C++ similar a un programa en C, raramente se hace. C++ proporciona a los programadores las nuevas características de C++ y enfatiza a utilizar estas características, pero también se suele utilizar en partes de los programas las características específicas y potentes de C. Si usted ya conoce C, muchas propiedades le serán familiares y aprenderá de un modo mucho más rápido y eficiente, pero encontrará muchas propiedades nuevas y muy potentes que le harán disfrutar con este nuevo lenguaje y construir sus programas aprovechando la potencia de orientación a objetos y genérica de C++.

martes, 4 de diciembre de 2018

ESTRUCTURA DE UN PROGRAMA EN LENGUAJE C

ESTRUCTURA DE UN PROGRAMA EN LENGUAJE C

Un programa escrito en Lenguaje C tiene la siguiente estructura:
  • Definición de archivos de cabecera (.h)
  • Definición de constantes y variables globales
  • Definición de funciones del usuario
  • Definición e implementación del programa principal (main)
  • Implementación de funciones del usuario

NOTA: No necesariamente debe contener todos los puntos  

DEFINICIÓN  DE ARCHIVOS DE CABECERA (.h):

#include <stdio.h>
#include <stdlib.h>


DEFINICIÓN  DE CONSTANTES Y VARIABLES GLOBALES:

#define Pi 3.1416
float Area; 
int Radio;


DEFINICIÓN  DE FUNCIONES DEL USUARIO:

void Area_Cir(int R);

DEFINICIÓN  E IMPLEMENTACIÓN DEL PROGRAMA PRINCIPAL:

void main()
{
  printf("CÁLCULO DEL ÁREA DE UN CÍRCULO: \n");
  printf("Radio: ");
  scanf("%d",&Radio);
  Area_Cir(Radio);
  printf(\n El Area es: %.2f",Area);
  getch();
}

IMPLEMENTACIÓN DE FUNCIONES DEL USUARIO;

void Area_Cir(int R)
{
  Area=Pi*R*R; 
}

ARCHIVOS DE CABECERA (.h):

ARCHIVOS DE CABECERA (.h):

Los archivos de cabecera tienen extensión .h por la referencia a headers (encabezamiento).

Entre los más utilizados se puede mencionar:

<stdio.h>   Para uso de funciones de entrada/salida standard
<iostream.h> Para uso de funciones de entrada/salida por flujos
<math.h>   Para uso de funciones matemáticas
<conio.h> Para uso de funciones de entrada/salida por teclado o cónsola
<string.h> Para uso de funciones relacionadas con cadenas de caracteres 
<time.h>    Para uso de funciones de hora y fecha

FUNDAMENTOS DEL ENTORNO C

Todos los sistemas en C consisten, en general, de tres partes: el entorno, el lenguaje y la biblioteca estándar C. Los programas en C casi siempre pasan a través de seis fases para su ejecución. Estas fases son: editar, preprocesar, compilar, enlazar, cargar y ejecutar.
La primera fase consiste en editar un archivo, esto se ejecuta con un programa de edición. El programador escribe un programa en C utilizando un editor, y si es necesario hace correcciones. La mayoría de paquetes de software C/C++, tienen editores incorporados, que están integrados al entorno de programación.
A continuación el programador ejecuta la acción de compilar el programa C a código de lenguaje máquina (también conocido como código objeto). En un sistema C, un programapreprocesador se ejecuta de forma automática antes de la fase de traducción. El preprocesador C obedece comandos especiales que se llaman directrices del preprocesador, las cuales indican que antes de su compilación se deben ejecutar ciertas manipulaciones sobre el programa. Estas manipulaciones consisten en la inclusión de otros archivos en el código a compilar y en el reemplazo de símbolos especiales con texto de programa.
La cuarta fase se conoce como enlace

COMPILACIÓN Y ENLAZADO

Para crear un archivo ejecutable (código de máquina relocalizable) se realiza mediante dos etapas o tiempos que son: Compilación y Enlazado.

Compilación:  Durante este proceso se examina el o los programas fuente (.cpp) de la aplicación con los archivos de cabecera para hallar errores de sintaxis; de no existir se genera un archivo objeto (.obj) por cada programa fuente.

Enlazado:  Durante este proceso se unen todos  los programas objeto de los cuales se conforme la aplicación, así como los archivos de cabecera (.h) para formar un solo programa independiente, o programa ejecutable (.exe).


TIPOS DE DATOS BÁSICOS EN LENGUAJE C

TIPOS DE DATOS BÁSICOS EN LENGUAJE C


ENTRADA Y SALIDA ESTÁNDAR:


Para la entrada y Salida de datos con formato se utilizan dos funciones halladas en el archivo de cabecera stdio.h :

 printf() y  scanf()

Salida por pantalla: 
   printf(char *cadena_de_control, Lista_argumentos);
 

Entrada por teclado:
   scanf(char *cadena_de_control, Lista_argumentos);
 

La cadena de control empieza con un % y va seguido por el código del formato. Debe haber exactamente el mismo número de argumentos que especificadores de formato y ambos deben coincidir en su orden de aparición de izquierda a derecha.









EJERCICIOS PROPUESTOS:

  1. Realizar un programa que lea 2 números por teclado y muestre la suma de éstos.
  2. Programa que lea un número y muestre su cuadrado.
  3. Programa que calcule el área de un triángulo dados sus valores.
  4. Programa que lea Nombre, Edad y Peso de una persona y muestre al final los valores introducidos.
  5. Programa que lea Nombre, 3 calificaciones de un estudiante y al final muestre su promedio calificaciones.

CÓDIGO FUENTE DE EJERCICIOS PROPUESTOS:

CÓDIGO FUENTE DE EJERCICIOS PROPUESTOS:

1.- Realizar un programa que lea 2 números por teclado y muestre la suma de éstos.

#include <stdio.h>
int n1,n2,s=0;
int main()
{
    printf("ingrese el primer número: ");
    scanf("%d",&n1);
    printf("ingrese el segundo número: ");
    scanf("%d",&n2);
    s=n1+n2;
    printf("\n La Suma es: %d",s);   
    getchar();
    return 0;
}

2.- Programa que lea un número y muestre su cuadrado.

#include <stdio.h>
int n,cuad;
int main()
{
    printf("ingrese un número: ");
    scanf("%d",&n);
    cuad=n*n;
    printf("\n El cuadrado de %d es: %d",n,cuad);   
    getchar();
    return 0;
}

3.- Programa que calcule el área de un triángulo dados sus valores..

#include <stdio.h>
int b,h;
float area;
int main() 
{
    printf("ingrese la base: ");
    scanf("%d",&b);
    printf("ingrese la altura: ");
    scanf("%d",&h);   
    area=(b*h)/2;
    printf("\n El area del triangulo es: %.2f",area);   
    getchar();
    return 0;
}

4.- Programa que lea Nombre, Edad y Peso de una persona y muestre al final los valores introducidos.


Ejercicio para realizar, utilizando como referencia los demás... Es sencillo.

5.- Programa que lea el Nombre, 3 calificaciones de un estudiante y al final muestre su promedio de calificaciones:

#include <stdio.h>
int n1,n2,n3;
char nom[15];
float prom;
int main() 
{
    printf("Ingrese el nombre: ");
    scanf("%s",nom);
    printf("ingrese la 1ra nota: ");
    scanf("%d",&n1);
    printf("ingrese la 2da nota: ");
    scanf("%d",&n2);
    printf("ingrese la 3ra nota: ");
    scanf("%d",&n3);
    prom=(n1+n2+n3)/3;
    printf("\n El Promedio de notas de %s es: %.2f",nom,prom);       
    getchar();
    return 0;
}

lunes, 3 de diciembre de 2018

ARREGLOS (ARRAYS)

ARREGLOS (ARRAYS)

Es una secuencia de objetos del mismo tipo.  Los objetos se llaman elementos del array y se numeran consecutivamente 0, 1, 2, 3…


El tipo de elementos almacenados en el array puede ser cualquier tipo de dato de Lenguaje C, incluyendo estructuras definidas por el usuario.


Normalmente el array se utiliza para almacenar tipo tales como charint o float.

Dimensión:


1 (Vector o Lista) Contiene o una fila o una columna 
2 (Matriz o Tabla) Contiene n filas o m columnas  
3 (cubo) Tiene largo, ancho y fondo 

DECLARACIÓN DE UN ARREGLO: 
          tipo nombrearray[Numero_de_Elementos;





Por ejemplo, para crear un array (lista) de diez variables enteras:



     int numeros[10]; 



Para crear un array de dos dimensiones (matriz) de tipo double:



     double nvar[3] [2];  (Almacena 6 valores)


ALMACENAMIENTO EN MEMORIA DE LOS ARREGLOS:



Los elementos de los arreglos se almacenan en bloques contiguos.  Por ejemplo, los arreglos

 int edades[5];  
 char codigos[5];  






Todos los subíndices de los arreglos comienzan por cero (0)


ARREGLOS DE CARACTERES:

Los arreglos de caracteres funcionan de igual forma que los arreglos numéricos, partiendo de la base de que cada carácter ocupa normalmente un byte. Por ejemplo:


char nombre[]=“Pedro”;  


 




INICIALIZACIÓN DE UN ARREGLO:

  

int notas[6]= {13,14,12,18,20,17};    // declara un arreglo de 6 elementos  

int n[]= {3,4,5};      // declara un arreglo de 3 elementos  

char nombre[]= {‘L’,’a’,’u’,’r’,’a’};  // declara un arreglo de 5 elementos


EJEMPLO:



#include <stdio.h>
#define n 10
int main() {
  int notas[n];  float promedio;
  int total = 0;
  for (int i=0; i < n ; i++)
  {
     printf(“Introduzca la nota: ");
     scanf(“%d”,&notas[i]);
     total += notas[i];
  }
  promedio = total / n;
  printf(“El promedio de notas es: %.2f”,promedio);
}

ARREGLOS

ARREGLOS

IMPLEMENTACIÓN DE LA BÚSQUEDA SECUENCIAL:



#include <stdio.h>
int hallado = 0;  int bus=0;
Int notas[10]= {13,14,12,18,20,17,9,5,11,8};
int main() {
  printf(“Introduzca la nota a buscar : ");
  scanf(“%d”,&bus);
  for (int i=0; i < 10 ; i++)
  {
     if (notas[i] == bus)
          {  hallado=1;
  break;
        }
  }
  if (hallado==0)
  printf(“La nota %d No se encuentra en el vector”,bus);
  else
  printf(“La nota %d Se encuentra en el vector”,bus);
}

IMPLEMENTACIÓN DE LA BÚSQUEDA BINARIA:


int hallado = 0,  bus=0, linf=0, lsup=10, mitad;
notas[10]= {5,8,9,11,12,13,14,17,18,20};
int main() {
  printf(“Introduzca la nota a buscar : ");     scanf(“%d”,&bus);
  while (linf <= lsup)
  {
     mitad = (lsup + linf) /2;
     if (notas[mitad] == bus
        {  hallado=1;   break;
        }
     else
       if (bus > notas[mitad]
           linf = mitad +1;
      else
           lsup = mitad -1;
  }
  if (hallado==0)
  printf(“La nota %d No se encuentra en el vector”,bus);
  else
  printf(“La nota %d Se encuentra en el vector”,bus);
}