Está en la página 1de 13

Historia del C, C++:

El lenguaje C fue diseñado por Dennis Ritchie, de los Laboratorios Bell, y se instaló en un PDP-11 en 1972.Se diseñó para ser el
lenguaje de los sistemas operativos UNIX.
Se creó para superar las limitaciones del lenguaje B, utilizado por Ken Thompson para producir la versión original de UNIX en 1970.El
lenguaje B se basó en BCPL, lenguaje sin tipos desarrollado por Martin Richards, en 1967, para programación de sistemas.
Su definición apareció en 1978:
apéndice ³C Reference Manual´ del libro ³The C programming Language´ de Brian W. Kernighan y Dennis M. Ritchie (Ed. Prentice-Hall)
En 1983, se publicó otro estándar: ³The C Programming Language-Reference Manual´ (Lab.Bell) escrito por Dennis M. Ritchie
ES UN LENGUAJE DE NIVEL MEDIO
Combina elementos de lenguajes de alto nivel (tipos, bloques, «) con la funcionalidad de los ensambladores.
Permite manejar los elementos típicos de la programación de sistemas:
bits
bytes
direcciones
NO ESTA FUERTEMENTE ORIENTADO A TIPOS
Tiene cinco tipos de datos básicos, tipos estructurados y admite definición de tipos por el usuario.
Pero permite casi todas las conversiones (p.ej. se pueden mezclar los tipos ³int´ y ³char´ en casi todas las expresiones).
No hace comprobaciones de error en tiempo de ejecución (desbordamiento de arrays, «)
³Deja hacer´ al programador.
ES UN LENGUAJE SEMI-ESTRUCTURADO
No es completamente estructurado en bloques porque no permite declarar procedimientos o funciones dentro de otros procedimientos o
funciones.
Pero tiene algunas características propias de los lenguajes estructurados:
‡ Dos formas de estructuración del código:
Con funciones independientes
Con bloques
‡ Dispone de las sentencias típicas para construir estructuras de control:
while
do-while
for
Se diseñó para la programación de sistemas
Los programas son muy transportables
Actualmente se usa para otros propósitos

BIBLIOGRAFIA
³The C programming language´
Brian W Kernighan y Dennis M. Ritchie
Ed. Prentice-Hall, segunda edición, 1988.
³Lenguaje C. Introducción a la programación´
Al Kelley e Ira Pohl
Ed. Addison-Wesley, 1987 (edición original, en 1984).

CÓDIGOS BÁSICOS:

Código Descripción

#include<conio.h>
#include<stdio.h> Librerías
#include<iostream.h>

void main (){ Procedimiento Principal

int a, b, suma; Declaración de variables

clrscr(); Instrucción para limpiar la pantalla

cout<<´Introduce valor de a ´; Instrucción de salida de datos.


cin>>a; Instrucción de entrada de datos.
cout<<´Introduce valor de b ´; Instrucción de salida de datos.
cin>>b; Instrucción de entrada de datos.

suma = a+b; Instrucción de operación

cout<<´La suma es ´<<suma;

getch(); Instrucción de espera.

} Fin

Operadores aritméticos (+, -, *, /,%)


Las cinco operaciones de aritmética apoyado por el lenguaje C + + son:
+ Además
- resta
* multiplicación
/ división
% módulo

Asignación compuesta (+ =, -=, *=, / =,% =,> =, <<= e ^ =, =, | =)


Cuando queremos modificar el valor de una variable mediante la realización de una operación en el valor almacenado actualmente en
esa variable se puede utilizar operadores de asignación compuestos:
Expresión es equivalente a
+ = incremento de valor; valor = valor + incremento;
un -= 5; a = a - 5;
a / = b; a = a / b;
precio *= unidades + 1; precio = precio * (unidades + 1);
Aumentar y disminuir (+ +, -)
Acortar aún más algunas expresiones, el operador incremento ( + + ) y el operador de disminución ( - ) aumentar o reducir a un valor
almacenado en una variable. Son equivalentes a + = 1 y -= 1 , respectivamente. Por lo tanto:
C+C++C=1,C=C+1;

Relacionales y operadores de igualdad (==,! =,>, <,> =, <=)

Con el fin de evaluar una comparación entre dos expresiones que pueden utilizar los operadores relacionales y de igualdad. El resultado
de una operación relacional es un valor booleano que sólo puede ser verdadera o falsa, de acuerdo a su resultado booleano.

Es posible que desee comparar dos expresiones, por ejemplo, para saber si son iguales o si uno es mayor que el otro es. Aquí está una
lista de los operadores relacionales y de igualdad que se pueden utilizar en C + +:

== Igual a
! = No es igual a
> Mayor que
< Menos de
> = Mayor o igual a
<= Menor o igual a
Los operadores lógicos (& &, |! |)

El Operador ! es el C + + operador para realizar la operación booleana NO, sólo tiene un operando, que se encuentra a su derecha, y lo
único que hace es invertir el valor de la misma, produciendo falso si su operando es verdadero y cierto si su operando es
falso. Básicamente, se devuelve el valor booleano opuesto de la evaluación de su operando.
Los operadores lógicos & & y | | se utilizan en la evaluación de dos expresiones para obtener un resultado único de relación. El
operador & & corresponde con la operación lógica booleana AND. Esta operación da como resultado verdadero si tanto sus dos
operandos son verdaderos, y falso en caso contrario. El siguiente panel muestra el resultado del operador & & evaluar la expresión
de un & & b:
& & OPERADOR
una b A&&b
cierto cierto cierto
cierto falsos falsos
falsos cierto falsos
falsos falsos falsos

El operador | | se corresponde con la operación booleana OR lógico. Esta operación da como resultado verdadero si cualquiera de sus
dos operandos es cierto, por lo tanto ser falso cuando ambos operandos son falsos ellos mismos. Estos son los resultados posibles
de un | | b :

| | OPERADOR
una b a||b
cierto cierto cierto
cierto falsos cierto
falsos cierto cierto
falsos falsos falsos
operador condicional (?)

El operador condicional evalúa una expresión que devuelve un valor si esa expresión es verdadera y otra diferente si la expresión se
evalúa como falsa. Su formato es:

condición?
operador coma (,)
El operador coma ( , ) se utiliza para separar dos o más expresiones que se incluyen en una sola expresión que se espera. Cuando el
conjunto de expresiones tiene que ser evaluado por un valor, más que la expresión se considera más a la derecha.
Los operadores bit a bit (&, | ^, ~, <<,>>)

los operadores bit a bit modificar las variables teniendo en cuenta los patrones de bits que representan los valores que almacenan.
creador asm equivalente descripción
Y Y AND bit a bit
| O O inclusiva bit a bit
^ XOR O exclusivo bit a bit
~ NO Unario complemento (inversión de los bits)
<< SHL Desplazamiento a la izquierda
>> SHR Desplazamiento a la derecha
sizeof ()
Este operador acepta un parámetro, que puede ser un tipo o una misma variable y devuelve el tamaño en bytes de ese tipo u objeto.
e mayor a menor prioridad, el orden de prioridad es el siguiente:
Nivel Operador Descripción Agrupación
1 :: ámbito de aplicación De izquierda a derecha
2 () []. -> + + - Static_cast dynamic_cast const_cast reinterpret_cast typeid sufijo De izquierda a derecha
+ + - ~! sizeof nuevos eliminar unario (prefijo)
3 *Y indirecto o de referencia (punteros) De derecha a izquierda
+- operador de signo unario
4 (Tipo) tipo de fundición De derecha a izquierda
5 .* -> * puntero a miembro De izquierda a derecha
6 * /% multiplicativo De izquierda a derecha
7 +- aditivo De izquierda a derecha
8 <<>> cambio De izquierda a derecha
9 <> <=> = relacionales De izquierda a derecha
10 ==! = la igualdad De izquierda a derecha
11 Y AND bit a bit De izquierda a derecha
12 ^ XOR bit a bit De izquierda a derecha
13 | OR bit a bit De izquierda a derecha
14 && Y lógico De izquierda a derecha
15 || OR lógico De izquierda a derecha
16 ?: condicional De derecha a izquierda
17 = *= / =% = + = -=>> = <<= & = ^ = | = asignación De derecha a izquierda
18 , coma De izquierda a derecha

El operador de inserción ( << ): se puede utilizar más de una vez en una sola instrucción

El endl: es un manipulador produce un carácter de nueva línea, tal y como la inserción de '\ n' hace.

La entrada estándar (cin):El dispositivo de entrada estándar suele ser el teclado. Manejo de la entrada estándar en C + + se realiza
mediante la aplicación del operador sobrecargado de extracción ( >> ) en el cin corriente. El operador debe ser seguida por la variable
que almacenará los datos que va a ser extraído de la corriente.

cin y cadenasPodemos usar cin para obtener cadenas con el operador de extracción ( >> ) como lo hacemos con las variables
fundamentales de tipo de datos.

Librería Estándar C++

Ficheros Funcionalidad/funciones
<algorithm> Parte de la STL que describe los algoritmos
<bitset> Parte de la STL relativa a contenedores tipo bitset Set de valores booleanos.
<complex> Parte de la librería numérica de la STL relativa a los complejos
<deque> Parte de la STL relativa a contenedores tipo deque; un tipo de colas: "Double-ended-queue"
<exception> Parte de la librería de diagnóstico relativa al manejo de excepciones
<fstream> Flujos hacia/desde ficheros.
<functional> Parte de la STL relativa a Objetos-función
<iomanip> Manipuladores.
<ios> Supreclases para manejo de flujos de E/S.
<iosfwd> Contiene declaraciones adelantadas de todas las plantillas de flujos y sus typedefs estándar. Por ejemplo ostream.
<iostream> Parte del a STL que contiene los algoritmos estándar de E/S.
<istream> Algoritmos estándar de flujos de entrada.
<iterator> Parte de la STL relacionada con iteradores, un tipo de puntero que permite utilizar los algoritmos de la Librería con las
estructuras de datos representadas por los contenedores.
<limits> Descripción de propiedades dependientes de la implementación que afectan a los tipos fundamentales.
<list> Parte de la STL relativa a contenedores tipo list ,listas doblemente enlazadas
<locale> Parte de la STL relativa a la internacionalización
<map> Parte de la STL relativa a contenedores tipo map .
<memory> Utilidades relativas a la gestión de memoria, incluyendo asignadores
<new> Manejo de memoria dinámica
<numeric> Parte de la librería numérica de la STL relativa a operaciones numéricas
<ostream> Algoritmos estándar para los flujos de salida.
<queue> Parte de la STL relativa a contenedores tipo queue
<set> Parte de la STL relativa a contenedores tipo set
<sstream> Flujos hacia/desde cadenas alfanuméricas.
<stack> Parte de la STL relativa a contenedores tipo stack ; pilas de objetos
<stdexcept> Parte de la STL relativa a las clases de las que derivan los objetos lanzados por las excepciones ocasionadas en los
algoritmos de la propia STL y otras expresiones. Estas clases son utilizadas para reportar errores detectados durante
runtime. Los usuarios también pueden utilizar excepciones para reportar errores en sus propios programas
<streambuf> Parte de la STL relativa al Almacenamiento de flujos de E/S ("Stream buffers"). Define los tipos que controlan la capa
de transporte .
<string> Parte de la STL relativa a contenedores tipo string ; una generalización de las cadenas alfanuméricas para albergar
cadenas de objetos.
<typeinfo> Mecanismo de identificación de tipos en tiempo de ejecución
<utility> Parte de la STL que contiene elementos auxiliares como operadores y pares (pairs).
<valarray> Parte de la librería numérica de la STL relativa a manejo de matrices numéricas ()
<vector> Parte de la STL relativa a los contenedores tipo vector; una generalización de las matrices unidimensionales C/C++

Como ingresar a visual:


Los primeros tres proyectos no los tengo por que yo solo pude incluir la materia en los dias de revicion de matriculas y eso fue dos
semanas despues del inicio de clases.

Proyecto # 5
Miercoles 13 de abril.

Ejercicio de tarea
Ejercicio hecho en casa # 1:
Ejercicios hecho en casa # 2:

Ejercicio hecho en casa # 3:


Proyecto # 6
Lunes 25 de abril
Proyecto # 7
TIPOS DE DATOS C++

A toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato específico.

Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecución del programa y a lo
largo de toda la vida útil del propio programa.

Los tipos de datos más comunes en C++ son:

TIPO DATO ESPACIO MEMORIA RANGO

unsigned char 8 bits 0 a 255

char 8 bits -128 a 127

short int 16 bits -32,768 a 32,767

unsigned int 32 bits 0 a 4,294,967,295

int 32 bits -2,147,483,648 a 2,147,483,647

unsigned long 32 bits 0 a 4,294,967,295

enum 16 bits -2,147,483,648 a 2,147,483,647

long 32 bits -2,147,483,648 a 2,147,483,647

float 32 bits 3.4 x 10-38 a 3.4 x 10+38(6 dec)

double 64 bits 1.7 x 10-308 a 1.7*10+308(15 dec)

long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932

void sin valor

También podría gustarte