Conceptos básicos (Parte 1)


 
¿Qué es lenguaje c y c++?
 

C es un lenguaje de programación de propósito general originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,​ como evolución del anterior lenguaje B, a su vez basado en BCPL.​

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 softwares de sistemas y aplicaciones.

Se trata de un lenguaje de tipos de datos estáticos, débilmente tipado, de medio nivel, que 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 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 portable entre plataformas y/o arquitecturas.


C++ es un lenguaje de programación diseñado en 1979 por Bjarne Stroustrup. La intención de su creación fue extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, C++ es un lenguaje híbrido.

Posteriormente se añadieron facilidades de programación genérica, que se sumaron a los paradigmas de programación estructurada y programación orientada a objetos. Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.

Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.

El nombre "C++" fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.



¿Cuáles son sus diferencias?

El lenguaje C, está orientado a la programación estructurada. ¿En qué consiste la programación estructurada?. Pues, básicamente, en trabajar con código secuencial, con un conjunto de sentencias o instrucciones que se ejecutan una por una.

Las podemos clasificar en:

  • Instrucciones condicionales.
  • Instrucciones de iteración (bucle de instrucciones).

El concepto de estructurada viene de trabajar con funciones.

En cambio C++ también está orientado a la Programación POO (Programación orientada a Objetos). Esta es la diferencia más grande entre los dos idiomas.

A continuación, muestro un gráfico con este concepto diferencial entre ambos lenguajes.



Tipos de datos, operadores en c

Operadores de asignación

La operación más importante en cualquier lenguaje de programación es la asignación:

En C hay muchos operadores de asignación que serán en realidad simplificaciones de expresiones más complejas, como las auto-operaciones (+=-=*=/=&=, ...) y los pre/post incrementos/decrementos (++--).

En general estas expresiones no podrán ser utilizadas en los diagramas de flujo.

Operadores aritméticos

Cabe destacar que se diferencian la división entera y la división real, según los operandos.

Operadores relacionales

Operadores lógicos

Los operandos son considerados falsos (valor 0) ó ciertos (valor distinto de 0). El resultado siempre es 0 ó 1.

Para estudiar el resultado se utilizan las tablas de verdad.

Operadores bit a bit

Afectan a los operandos bit a bit, por lo que se aplica la operación lógica a cada uno de ellos. El resultado bit a bit es 0 ó 1 pero la composición de estos resultados no tiene porqué ser 0 ó 1, como era el caso en los operadores lógicos.

Las tablas de verdad, aplicadas bit a bit a los operandos son:

Operador condicional

Es un operador ternario, es decir, tiene tres operandos.

Su funcionamiento es el siguiente: para una ejecución ? e1 : e2 siendo ce1 y e2 tres expresiones,

  • Se evalúa c
    • Si el resultado es cierto (es decir, distinto de cero)
      • se evalúa e1 y éste será el resultado.
    • Si no (el resultado es falso o cero)
      • se evalúa e2 y éste será el resultado.

Ejemplos. Para x = 4y = 2z = 7:

  • La expresión x >= 5? 1:0 se evalúa a 1
  • La expresión x >= 5? y:z se evalúa a 7
  • La expresión x <= 5? y:z se evalúa a 2
  • La expresión x ? z+y:z-y se evalúa a 9
  • La expresión x >= 0 ? sqrt(x):0 se evalúa a 2.0 (sqrt: raíz cuadrada, prototipo en math.h)

Precedencia y asociatividad



Tipos de datos, operadores en c++


Operadores de asignación

“Tal y como su nombre lo indica, este tipo de operadores permiten la asignación de un valor especifico a una variable. En C++ se encuentran disponibles los siguientes operadores: 

Operadores aritméticos Los operadores aritméticos se usan para realizar cálculos y operaciones con números reales y punteros. Básicamente permiten hacer cualquier operación aritmética que se necesite. Los operadores más comunes son:

Operadores relacionales

“Los operadores relacionales, también denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso, es decir, producen un resultado booleano. Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa será false (cero). C++ dispone de los siguientes operadores relacionales:


Operadores lógicos

Los operadores lógicos producen un resultado booleano, y sus operadores son también valores lógicos o asimilables a ellos (los valores numéricos son asimilables a cierto o falso según su valor sea cero o distinto de cero) por el contrario, las operaciones entre bits producen valores arbitrarios. los operadores lógicos son tres, dos de ellos son binarios y el ultimo (negación) es unario.



Leer e imprimir en C 

La función scanf permite leer varios tipos de datos de una sola vez, tales como enteros, números decimales o cadenas de caracteres.

La función printf (que deriva su nombre de print formatted) imprime un mensaje por pantalla utilizando una “cadena de formato” que incluye las instrucciones para mezclar múltiples cadenas en la cadena final a mostrar por pantalla. Lenguajes como Java también incluyen funciones similares a esta (ver Método printf de la clase PrintStream).

printf es una función especial porque recibe un número variable de parámetros. El primer parámetro es fijo y es la cadena de formato. En ella se incluye texto a imprimir literalmente y marcas a reemplazar por texto que se obtiene de los parámetros adicionales. Por tanto, printf se llama con tantos parámetros como marcas haya en la cadena de formato más uno (la propia cadena de formato). El siguiente ejemplo muestra cómo se imprime el valor de la variable contador.

El símbolo % denota el comienzo de la marca de formato. La marca %d se reemplaza por el valor de la variable contador y se imprime la cadena resultante. El símbolo \n representa un salto de línea. La salida, por defecto, se justifica a la derecha del ancho total que le hallamos dado al campo, que por defecto tiene como longitud la longitud de la cadena.

Leer e imprimir en C++

La lectura de datos en C++ es bastante simple. Leer datos por teclado en C++ se hace usando el comando cin >> es importante notar el uso de los dos signos >> que son usados para controlar el flujo de datos. No te preocupes mucho por ellos, solo ten en cuenta que cada vez que vaya a usar la instrucción cin debes agregarle >> para quedar con un cin>>. Una manera muy sencilla de recordar esta instrucción es que in significa entrar y como estamos programando en C++ le añadimos la letra C al comienzo quedando así cin>> (sin olvidar los >>).

 

#include "iostream"

#include "string"

using namespace std;

int main()

{

    cout << "Hola! Este es un ejemplo en C++" << "\n" << "Por favor ingrese su nombre:" << "\n";

    //La instrucción \n es un salto de línea Mostrando los textos separados

   string nombre;//En esta variable estará almacenado el nombre ingresado.

   cin >> nombre; //Se lee el nombre

   cout << "Bienvenido al sistema " << nombre << ". Gracias por usar nuestra aplicación" << "\n";

   return 0;

}

Mostrar texto por pantalla en C++ es muy simple. Para imprimir una salida de texto en C++ se hace uso de la instrucción cout, junto con <<. Es importante tener en cuenta que la instrucción cout siempre va acompañada de << para controlar el flujo de datos que sale. No te fijes mucho en ellos, solo ten siempre presente que cout viene acompañado de << para tener cout << como resultado.

 

#include "iostream"

using namespace std;

int main()

{

    //Se muestra un mensaje por pantalla.

    cout << "Hola Mundo" << " Desde ProgramarYa." << "\n";

    return 0;

}


Ejercicios Básicos

#include <stdio.h>

int main()

{

   float altura, area, base;

   printf( "Introduzca base: " );

   scanf( "%f", &base );

   printf( "Introduzca altura: " );

   scanf( "%f", &altura );

   area = base * altura / 2;

   printf( "El area del triangulo es: %f", area );

   return 0;

}



















Comentarios