lunes, 19 de noviembre de 2007

LENGUAJE C++

C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. Es un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se pueden desarrollar cualquier tipo de aplicación.
lLa base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. El primer compilador de C fue escrito por Dennis Ritchie.



CARACTERISTICAS DEL LENGUAJE C:

lEl lenguaje C se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (Por ejem: Basic). Los compilados convierten el código fuente en un fichero objeto y éste en un ejecutable. Este es el caso del lenguaje C.
lPodemos decir que el lenguaje C es un lenguaje de nivel medio, ya que combina elementos de lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques dentro de otros procedimientos. Hay que destacar que el C es un lenguaje portable, ya que permite utilizar el mismo código en diferentes equipos y sistemas informáticos: el lenguaje es independiente de la arquitectura de cualquier máquina en particular.


Estructuras Basicas de Programacion

  • Secuenciales (Accion por Accion)
  • Selectivas (Con Condiciones)

  • Repetitivas o Iterativas
    (Con Bucles de Retroalimentación

SECUENCIALES:

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.





Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos.







Ejemplo 2: Escribir algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.






















ESTRUCTURAS SELECTIVAS :

La especificación formal de algoritmos tiene realmente utilidad cuando el algoritmo requiere una descripción más complicada que una lista sencilla de instrucciones. Este es el caso cuando existen un número de posibles alternativas resultantes de la evaluación de una determinada condición.
Estas estructuras se identifican porque en la fase de solución del problema existe algún punto en el cual es necesario establecer una pregunta, para decidir si ciertas acciones d eben realizarse o no.
Las condiciones se especifican usando expresiones lógicas. La representación de una estructura selectiva se hace con palabras en pseudocódigo (if - then - else o en español si - entonces - sino) y en flujograma con una figura geométrica en forma de rombo.
Las estructuras selectivas o alternativas se clasifican en:
a) Simple

b) Dobles

c) Múltiples

  • ESTRUCTURAS SELECTIVAS SIMPLES.
    Se identifican porque están compuestos únicamente de una condición. La estructura si - entonces evalúa la condición y en tal caso:
    Si la condición es verdadera, entonces ejecuta la acción Si (o acciones si son varias).Si la condición es falsa, entonces no se hace nada.
    Español Inglés














  • ESTRUCTURA SELECTIVA DOBLE

Esta estructura, se caracteriza por el hecho que ofrece dos caminos a seguir, dependiendo si al evaluar la condición resulta cierta o falsa. Su sintaxis es la siguiente:


if(Condición)
Acción 1;
else
Acción 2;



Ejemplo 1.

Se desea saber si un número es par o impar. Diseñe un programa en el cual el usuario, ingrese el número y el programa muestre con un mensaje, si éste es par o no.

#include
#include
main()
{
int num;
printf("Ingrese el n£mero:\n");
scanf("%d", &num);
if(num%2==0)
printf("ES PAR\n\n");
else
printf("ES IMPAR\n\n");
getch();
return 0;


}

  • ESTRUCTURAS MULTIPLES: Con frecuencia es necesario que existan más de dos elecciones posibles. Este problema se podría resolver por estructuras selectivas simples o dobles, anidadas o en cascada, pero si el número de alternativas es grande puede plantear serios problemas de escritura y de legibilidad.
    Usando la estructura de decisión múltiple se evaluará una expresión que podrá tomar n valores distintos, 1, 2 , 3, ....,n y según que elija uno de estos valores en la condición, se realizará una de las n acciones o lo que es igual, el flujo del algoritmo seguirá sólo un determinado camino entre los n posibles.
    Esta estructura se representa por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el valor 2 ejecutará la acción 2, si toma el valor N realizará la acción N.







Ejemplo 2.

Dados los datos A, B y C que representan números enteros diferentes, construir un algoritmo para escribir estos números en forma descendente. Este es un ejemplo de los algoritmos conocidos como de Lógica Pura, ya que poseen muchas decisiones y muchas bifurcaciones.
Salida: A, B y C ordenados descendentemente.Entradas: A, B y C.La dinámica del problema es comparar dos números a la vez para conocer cuál es el mayo















                                    ESTRUCTURA REPETITIVO:

                                    Los bucles son estructuras que permiten ejecutar partes del código de forma repetida mientras se cumpla una condición. Esta condición puede ser simple o compuesta de otras condiciones unidas por operadores lógicos.


                                    11.1.- Sentencia WHILE
                                    Su sintaxis es:
                                    while (condición sea verdad)
                                    {
                                    sentencias;
                                    }
                                    Con esta sentencia se controla la condición antes de entrar en el bucle. Si ésta no se cumple, el programa no entrará en el bucle. Naturalmente, si en el interior del bucle hay más de una sentencia, éstas deberán ir entre llaves para que se ejecuten como un bloque.


                                    11.2.- Sentencia DO...WHILE
                                    Su sintaxis es:
                                    do
                                    {
                                    sentencias;
                                    }
                                    while (condición sea verdad);


                                    Con esta sentencia se controla la condición al final del bucle. Si ésta se cumple, el programa vuelve a ejecutar las sentencias del bucle. La única diferencia entre las sentencias while y do...while es que con la segunda el cuerpo del bucle se ejecutará por lo menos una vez.


                                    11.3.- Sentencia FOR
                                    Su sintaxis es:
                                    for (inicialización; condición; incremento)
                                    {
                                    sentencias;
                                    }


                                    La inicialización indica una variable (variable de control) que condiciona la repetición del bucle. Si hay más, van separadas por comas:
                                    for (a=1,b=100;a!=b;a++,b- -){



                                    FUNCIONES Y PROCEDIMIENTOS :
                                    Las funciones generan retorno de un valor. Una función es una colección independiente de declaraciones y sentencias, generalmente enfocadas a realizar una tarea específica.
                                    •Los procedimientos realizan parte del proceso de un programa
                                    •El C++, no diferencia entre ambas las trabaja igual.



                                    Modulo principal :


                                    - Se trabaja con un modulo principal, el cual contiene las llamadas a las funciones y/o procedimientos a realizar





                                    Por ejemplo:
                                    Trabajando con funciones programa que calcule la suma de 2 números.
                                    El pseudocodigo será:
                                    Inicio
                                    Var: a,b,s: real
                                    Escribir (“Ingresar primer numero”)
                                    Leer (a)
                                    Escribir (“Ingresar segundo numero”)
                                    Leer (b)
                                    s ß suma (a,b)
                                    Escribir (“La suma es: ” , s)
                                    Fin


                                    Funcion suma (x:real , y:real)
                                    Var: suma: real
                                    suma ß x + y
                                    retornar (suma)
                                    Fin-función


                                    --Visión completa:
                                    #include
                                    float suma(float,float); //variable Global
                                    //Programa Principal
                                    void main( )
                                    {
                                    float a,b,s; //variables locales
                                    cout<<"ingrese 1 numero: ";cin>>a;
                                    cout<<"ingrese 2 numero: ";cin>>b;
                                    s=suma(a,b); //Uso de la Función
                                    cout<<"El resultado es: "<FUNCIONES MAS USADAS

                                    -FUNCIONES DE ENTRADA/SALIDA

                                    · #include
                                    cout cout<< “cadena de caracteres”<> variables;
                                    · #include
                                    printf printf (“formato”, lista de datos);
                                    scanf scanf (“formato”, lista de direcciones de variables);
                                    puts puts(“cadena”);
                                    gets gets(cadena);
                                    · #include
                                    getch a = getch();
                                    putch putch(caracter);

                                    FUNCIONES DEL SISTEMA #include

                                    System(“CLS”)
                                    System(“PAUSE”);
                                    return 0;

                                    FUNCIONES MATEMATICAS #include

                                    · TRIGONOMETRICAS
                                    acos(x) devuelve el arco del coseno de x
                                    asin(x) devuelve el arco del seno de x
                                    atan(x) devuelve el arco tangente de x
                                    cos(x) devuelve el coseno de x en radianes
                                    sin(x) devuelve el seno de x en radianes
                                    tan(x) devuelve la tangente de x en radianes
                                    cosh(x) devuelve el coseno hiperbólico de x
                                    sinh(x) devuelve el seno hiperbólico de x
                                    tanh(x) devuelve la tangente hiperbólica de x
                                    hypot(x,y) devuelve la longitud de la hipotenusa de un triángulo donde
                                    x e y son los catetos
                                    · ALGEBRAICAS
                                    exp(n) devuelve e (2,7182818) elevado a la n.
                                    pow(b,n) devuelve b elevado a la n
                                    log(n) devuelve el logaritmo natural de x
                                    logio(x) devuelve el algoritmo decimal de x
                                    sqrt(x) devuelve la raíz cuadrada de x
                                    ceil(x) devuelve el menor entero de los enteros mayores a x
                                    floor(x) devuelve el mayor entero de los enteros menores a x
                                    abs(x) devuelve el valor absoluto de x
                                    labs(x) igual al anterior pero x está dado en entero longint
                                    fabs(x) igual al anterior pero x está dado en double
                                    modf(n&x) devuelve la parte fraccionaria de n y la parte entera la guarda en x.
                                    rand( ) devuelve un entero en el rango comprendido entre 0 y 32767 (stdio.h)
                                    srand(exp) produce la generación aleatoria del número.
                                    randomize( ) utiliza el reloj del computador para generar el número aleatorio (time.h, stdlib.h)
                                    random(n) devuelve un número entero aleatorio dentro del rango de 0 a
                                    n-1. (stdlib.h)

                                    FUNCIONES NUMERICAS #include

                                    setw(n) determina un ancho n del dato numérico
                                    setprecision(n) determina n cantidad de decimales

                                    FUNCIONES PARA CONVERSION DE DATOS #include

                                    atof(c) convierte la cadena c a una cantidad en doble precisión.
                                    atoi(c) convierte la cadena c en un entero.
                                    atol(c) convierte la cadena c en un entero largo.


                                    1)MATRICES (ARREGLOS BIDIMESIONALES)

                                    Una Matriz es un arreglo de valores, ordenadas por medio de filas y columnas. En el lenguaje C, los arreglos se inicializan en 0,0 y las filas son horizontales y las columnas verticales.

                                    ejemplo
                                    LEER E IMPRIMIR UNA MATRIZ:
                                    #include
                                    void main()
                                    {float matriz[10][10];
                                    int k1=0,k2=0;
                                    cout<<"Numero de Filas:";cin>>k1;
                                    cout<<"Numero de Columnas:";cin>>k2;
                                    for (int x=0;x

                                    2. VECTORES (ARREGLOS UNI-DIMENSIONALES):
                                    -Vector es un tipo de arreglo de valores unidimensionales, cuya posición inicia en 0 .
                                    -Ejemplo Vector R:
                                    R[7]={21,32,14,35,46,23,20}
                                    Asignando los valores:
                                    R[0]=21 R[1]=32 R[2]=14 R[3]=35
                                    R[4]=46 R[5]=23 R[6]=20

                                    Ejemplo: Cálculo de Sueldos


                                    Una empresa que cuenta con k empleados desea realizar algunos cálculos para la nueva nómina. Los datos con que cuenta son los sueldos de los k empleados:
                                    k, s1, s2, s3, ..., sk.
                                    Elabore un diagrama de flujo para leer los datos y contestar a las siguientes preguntas:
                                    -¿Cuál es el aumento correspondiente a cada empleado según el siguiente criterio?
                                    17% si el sueldo es inferior a $5,000
                                    10% si el sueldo está entre $5,000 y $15,000
                                    5% si el sueldo es superior a $15,000
                                    -¿Cuál es el nuevo sueldo para cada empleado?
                                    -¿Cuál es el total de la nueva nómina?
                                    -¿Cuál es el incremento en la nómina?
                                    Resuelva los incisos progresivamente.


                                    #include
                                    void main()
                                    {float sueldos[100],ss=0, nn=0;
                                    int k=0,i=0;
                                    cout<<"Numero de Empleados :";cin>>k;
                                    //Ingreso de Sueldos
                                    for(i=0;i5000) && (sueldos[i]<=15000)) {cout<<"Aumento del 10%. "; sueldos[i]=1.1*sueldos[i]; cout<<"Nuevo sueldo es:"<