SlideShare una empresa de Scribd logo
1 de 46
C
Integrantes : Andrés Bernal
Marlon Gomez
Introducción al Lenguaje C
EL lenguaje C es el resultado de un proceso de desarrollo que inició con un lenguaje
denominado BCPL. Este influenció a otro llamado B (inventado por Ken Thompson). En los
años 70; éste lenguaje llevó a la aparición del C.
Con la popularidad de las microcomputadoras muchas compañías comenzaron a implementar
su propio C por lo cual surgieron discrepancias entre sí.
Por esta razón ANSI (American Nacional Standars Institute, por sus siglas en inglés),
estableció un comité en 1983 para crear una definición no ambigüa del lenguaje C e
independiente de la máquina que pudiera utilizarse en todos los tipos de C.
Tomado de : http://www.monografias.com/trabajos/introc/introc.shtml
Operadores
Un operador es un elemento de programa que se aplica a uno o varios operandos en una
expresión
o instrucción. Los operadores que requieren un operando, como el operador de incremento se
conocen como operadores unarios. Los operadores que requieren dos operandos, como los
operadores aritméticos (+,-,*,/) se conocen como operadores binarios. Un operador, el
operador
condicional (?:), utiliza tres operandos y es el único operador ternario de C++].
Existen 6 tipos de operadores según su función, que son aritméticos, relacionales, de
asignación,
lógicos, de dirección y de manejo de Bits.
OPERADORESDEASIGNACION:
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:
OPERADORESARITMETICOS:
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 :
OPERADORESRELACIONALES:
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).
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:
OPERADORESLOGICOS:
Los operadores lógicos producen un resultado booleano, y sus operandos son también
valores lógicos o asimilables a ellos (los valores numéricos son asimilados 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 último (negación) es unario:
OPERADORESDEBITS:
Los operadores de movimiento son operadores a nivel de bits, y lo que hacen es convertir
una determinada cantidad a su equivalente en bits para posteriormente realizar un
desplazamiento de dicho valor. Estos operadores son:
OPERADORESDEDIRECCION:
Además de los operadores aritméticos, de los que existen versiones para los tipos
numéricos y para los punteros, C++ dispone de dos operadores específicos para estos
últimos (punteros de cualquier tipo): la indirección “*” y la referencia “&” . Además existen dos
operadores específicos para punteros-a-clases
Sentencias .
Sentencia If-Else:
Para escribir una instrucción alternativa doble (if else) se utiliza la sintaxis:
if ( <expresión_lógica> )
{
<bloque_de_instrucciones_1>
}
else
{
<bloque_de_instrucciones_2>
}
A la <expresión_lógica> de una instrucción alternativa doble (if else) también se le denomina
condición.
Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser verdadera.
Por el contrario, si la condición es falsa, se ejecutará el <bloque_de_instrucciones_2>.
En resumen, en C una instrucción if else (alternativa doble) permite seleccionar, por medio
de una condición, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles.
EJEMPLO:
un programa que:
1º) Pida por teclado la nota de una asignatura.
2º) Muestre por pantalla:
"APROBADO", en el caso de que la nota sea mayor o igual que 5.
"SUSPENDIDO", en el caso de que la nota sea menor que 5.
CODIGO:
#include <stdio.h>
#include <conio.h>
void main()
{
float nota;
printf( "n Introduzca nota (real): " );
scanf( "%f", &nota );
if ( nota >= 5 )
printf( "n APROBADO" );
else
printf( "n SUSPENDIDO" );
getch();
}
Sentencia While:
Son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código
de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera
conocer cuándo se va a dar el valor final que esperamos, los ciclos while, no dependen
directamente de valores numéricos, sino de valores booleanos, es decir su ejecución
depende del valor de verdad de una condición dada, verdadera o falso, nada más.
En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca
Como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.
EJEMPLO:
#include <stdio.h>
#include <conio.h>
void main()
{
float nota;
printf( "n Introduzca nota (real): " );
scanf( "%f", &nota );
/* Si la primera nota introducida por el
usuario es correcta,
el bucle no itera ninguna vez. */
while ( nota < 0 || nota > 10 )
{
printf( "n ERROR: Nota incorrecta, debe
ser >= 0 y <= 10n" );
printf( "n Introduzca nota (real): " );
scanf( "%f", &nota );
}
/* Mientras que el usuario introduzca una
nota incorrecta, el bucle iterará.
Y cuando introduzca una nota correcta,
el bucle finalizará. */
if ( nota >= 5 )
printf( "n APROBADO" );
else
printf( "n SUSPENDIDO" );
getch();
}
 Sentencia DO-WHILE:
son una estructura de control cíclica, los cuales
nos permiten ejecutar una o varias líneas de
código de forma repetitiva sin necesidad de
tener un valor inicial e incluso a veces sin
siquiera conocer cuándo se va a dar el valor
final, hasta aquí son similares a los ciclos while.
Su diferencia básica con el ciclo while es que la
prueba de condición es hecha al finalizar el ciclo,
es decir las instrucciones se ejecutan cuando
menos una vez porque primero ejecuta las
instrucciones y al final evalúa la condición.
EJEMPLO:
#include <stdio.h>
#include <conio.h>
void main()
{
char seguir;
int acumulador, numero;
/* En acumulador se va a guardar la suma de
los números introducidos por el usuario. */
acumulador = 0;
do
{
printf( "n Introduzca un numero entero: " );
scanf( "%d", &numero);
acumulador += numero;
printf( "n Desea introducir otro numero
(s/n)?: " );
fflush( stdin );
scanf( "%c", &seguir);
} while ( seguir != 'n' );
/* Mientras que el usuario desee introducir
más números, el bucle iterará. */
printf( "n La suma de los numeros
introducidos es: %d",
acumulador );
getch();
}
• Sentencia FOR:
Para escribir una instrucción for (repetitiva para) se utiliza la sintaxis:
for ( <expresión_1> ; <expresión_2> ; <expresión_3> )
{
<bloque_de_instrucciones>
}
Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir
llave ({) y cerrar llave (}) son opcionales.
Por otro lado, el bucle for es ideal usarlo cuando, de antemano, ya se sabe el número de
veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones.
EJEMPLO:
#include <stdio.h>
#include <conio.h>
void main()
{
int contador;
printf( "n " );
for ( contador=1 ; contador<=10 ; contador++ )
printf( "%d ", contador );
getch();
}
LIBRERIAS
 assert.h Contiene una macro para el diagnóstico dentro de los programas.
 ctype.h Contiene varias funciones para comprobación de tipos y transformación de caracteres.
 errno.h Contiene varias macros usadas para informar de errores.
 limits.h Contienen varias macros que definen constantes para el tamaño de tipo enteros.
 float.h Contienen varias macros que definen constantes para el tamaño de tipo flotante.
 locale.h Contienen varias macros, funciones y tipos para unidades locales, como unidad
monetaria, tiempo, dígitos, etc.
 math.h Contiene una macro y varias funciones matemáticas.
 setjmp.h Contienen declaraciones que proporcionan una forma de evitar la secuencia normal
de llamada y regreso de funciones.
 signal.h Contiene un tipo, dos funciones y varias macros para manejar condiciones
excepcionales que aparecen durante la ejecución, tal como una señal de interrupción de una
fuente externa o un error en la ejecución.
 stdarg.h Contiene un tipo y tres macros que proporcionan recursos para recorrer una lista de
argumentos de función de tamaño y tipo desconocido.
 stddef.h Contiene varios tipos y macros que también están definidas en otras librerías, como
size_t.
 stdio.h Contiene tipos, macros y funciones para la realización de tareas de E/S.
 stdlib.h Contiene tipos, macros y funciones para la conversión numérica, generación de
números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares.
 string.h Contiene tipos, macros y funciones para la manipulación de cadenas de caracteres.
 time.h Contiene tipos, macros y funciones para la manipulación de información sobre fechas y
horas.
A continuación profundizaremos acerca de 5 de ellas : Stdio.h, String.h, Conio.h, Match.h, Iostream.h,
Ctype.h.
LIBRERIA STDIO.H :
Significa "standard input-output header" (cabecera estándar E/S), es la biblioteca estándar
del lenguaje de programación C, el archivo de cabecera que contiene las definiciones de
macros, las constantes, las declaraciones de funciones y la definición de tipos usados por
varias operaciones estándar de entrada y salida. Por motivos de compatibilidad, el lenguaje
de programación C++ (derivado de C) también tiene su propia implementación de estas
funciones, que son declaradas con el archivo de cabecera cstdio.
Las funciones declaradas en stdio.h son sumamente populares.
Funciones:
NOMBRE FUNCION SINTAXIS
printf Escribe en la salida estándar con formato. printf(char *formato,
lista_arg)
scanf Lee de la salida estándar con formato. scanf(“%fto. var.”,&
variable);
puts Escribe una cadena y salto de linea. puts(cadena);
gets Lee y guarda una cadena introducida por
teclado.
gets(cadena);
fclose Cierra un fichero cuyo puntero le
indicamos.
fclose(pf);
fprintf Escribe con formato en un fichero. fprintf(pf , formato , arg1 ,
...);
fgets Lee una cadena de un fichero. fgets(char *cadena, int n,
FILE *stream);
LIBRERIA CONIO.H
Conio.h es un archivo de cabecera en el lenguaje de programación C Es utilizado por los
compiladores para MS- DOS para crear interfaces basadas en texto. Se describe en el libro
El Lenguaje de Programación C por Brian Kernighan y Dennis Ritchie, porque no es parte de
la biblioteca estándar de C Asimismo, no se incluye en la familia de normas POSIX.
En esta cabecera se declaran diferentes funciones creadas debido a que un programa
puede realizar especial de entrada / salida en la consola . Muchos compiladores de C para
DOS, Windows 3.x, OS / 2 , o Win32 [ 1 ] contienen esta cabecera , a diferencia de la
mayoría de los compiladores para UNIX y LINUX . Algunos sistemas integrados utilizan una
biblioteca compatible con libreria conio.h que es de borland C++
Funciones:
NOMBRE FUNCION SINTAXIS
Crscr Borrar la pantalla. Clrscr( );
Clreol Borra desde la posición del cursor hasta
el final de la linea.
Clereol( );
Gotoxy Cambia la posición del cursor a las
coordenadas indicadas.
gotoxy(columna , fila);
Textcolor Selecciona el color de texto (0 - 15). textcolor(color);
Textbackground Selecciona el color de fondo (0 - 7). textbackground(color);
Wherex Retorna la columna en la que se
encuentra el cursor.
col=wherex( );
Wherey Retorna la fila en la que se encuentra el
cursor.
fila=wherey( );
Getch Lee y retorna un único caracter
introducido mediante el teclado por el
usuario. No muestra el caracter por la
pantalla.
letra=getch( );
Getche Lee y retorna un único caracter
introducido mediante el teclado por el
usuario. Muestra el caracter por la
pantalla.
letra=getche( );
LIBRERÍA STRING.H:
Es un archivo de la Biblioteca estándar del lenguaje de programación C que contiene la
definición de macros, constantes, funciones y tipos de utilidad para trabajar con cadenas de
caracteres y algunas operaciones de manipulación de memoria (el nombre string puede ser
algo inapropiado).
Las funciones declaradas en string.h se han hecho muy populares, por lo que están
garantizadas para cualquier plataforma que soporte C. Sin embargo, existen algunos
problemas de seguridad con estas funciones, como el desbordamiento de buffer (buffer
overflow), que hacen que algunos programadores prefieran opciones más seguras frente a la
portabilidad que estas funciones ofrecen. Además, las funciones para cadenas de caracteres
sólo trabajan con conjuntos de caracteres ASCII o extensiones ASCII compatibles.
NOMBRE FUNCION SINTAXIS
Strlen Calcula la longitud de una cadena. longitud=strlen(cadena);
Strcpy Copia el contenido de una cadena
sobre otra.
strcpy(copia , original);
Strcat Concatena dos cadenas. strcat(cadena1 , cadena2);
Strcmp Compara el contenido de dos
cadenas. Si cadena1 < cadena2
retorna un número negativo. Si
cadena1 > cadena2, un n£mero
positivo, y si cadena1 es igual que
cadena2 retorna 0 ( o NULL ).
valor=strcmp(cadena1 , cadena2);
LIBRERÍA MATH.H:
Es un archivo de cabecera de la biblioteca estándar del lenguaje de programación C
diseñado para operaciones matemáticas básicas. Muchas de sus funciones incluyen
el uso de números en coma flotante. C++ también implementa estas funciones por
razones de compatibilidad y las declara en la cabecera cmath.
Una nota importante: si se está programando en C/C++ bajo Gnu/Linux, y se utiliza
uno de los compiladores nativos de este sistema operativo (gcc o g++), es necesario
incluir, al compilar, la opción -lm, dado que, de lo contrario, el compilador generará un
error. Por ejemplo, si tenemos un fichero fuente con funciones de la biblioteca
matemática, llamado mi_fich_fuente_math.c, para compilarlo será necesario dar la
orden siguiente en la consola de comandos (respectiva al intérprete):
$ gcc mi_fich_fuente_math.c -lm -o <nombre_del_ejecutable>
Esto, asimismo, no es necesario si se programa en C/C++ bajo Windows utilizando la
herramienta gráfica MS Visual C++.
 Todas las funciones en las que participan ángulos toman y devuelven radianes.
NOMBRE FUNCION SINTAXIS
Cos Toma y devuelve un valor doublé. double cos(double x);
Toma y devuelve un valor en coma
flotante, esta función sólo está
disponible en C++.
float cos(float x);
Toma y devuelve un valor long double,
sólo disponible en C++.
long double cos(long double x);
Sin Calcula el seno de x (medido en
radianes).
double sin(double x);
Tan Calcula la tangente de x (medido en
radianes).
double tan(double x);
Log Calcula el logaritmo natural (o
neperiano). Puede producirse un error
de dominio si el argumento es negativo.
Puede producirse un error de recorrido
si el argumento es cero.
double log(double x);
Exp Calcula la función exponencial de x. double exp(double x);
Sqrt Calcula la raíz cuadrada del valor no
negativo de x. Puede producirse un
error de dominio si x es negativo.
double sqrt(double x);
LIBRERIA IOSTREAM.H:
Es un componente de la biblioteca estándar (STL) del lenguaje de programación C++ que es
utilizado para operaciones de entrada/salida. Su nombre es un acrónimo de Input/Output
Stream. El flujo de entrada y salida de datos en C++ (y su predecesor C) no se encuentra
definida dentro de la sintaxis básica y se provee por medio de librerías de funciones
especializadas como Iostream.h. Iostream.h define los siguientes objetos:
• cin : Flujo de entrada (que entra)
• cout : Flujo de salida (que sale)
• cerr : Flujo de error no almacenado.
• clog : Flujo de error almacenado
LIBRERIA CTYPE.H:
Ctype.h es un archivo de cabecera de la biblioteca estándar del lenguaje de programación C
diseñado para operaciones básicas con caracteres. Contiene los prototipos de las funciones
y macros para clasificar caracteres.
Nombre Función Sintaxis
Isalnum Comprueba si un carácter es alfanumérico. int isalnum(int c);
Isalpha Comprueba si un carácter es alfabético. int isalpha(int c);
Isascii Comprueba si un carácter es un carácter Ascii. int isascii (int c)
Iscntrl Comprueba si un carácter es un carácter de control. int iscntrl(int c);
Isdigit Comprueba si un carácter es un número. int isdigit(int c);
Isgraph Comprueba si un carácter se puede imprimir sin el espacio. int isgraph(int c);
Islower Comprueba si un carácter está en minúscula, int islower(int c);
Isprint Comprueba si un carácter se puede imprimir. int isprint(int c);
Ispunct Comprueba si un carácter es de puntuación. int ispunct(int c);
Isspace Comprueba si un carácter es un espacio. int isspace(int c);
Isupper Comprueba si un carácter está en mayúscula. int isupper(int c);
Isxdigit Comprueba si un carácter es hexadecimal. int isxdigit(int c);
EJERCICIOSREALIZADOS
 TABLA DE MULTIPLICAR:
Uno de lo primeros programas que
realizamos fue este, básicamente consiste en
ingresarle un numero y el arroja su respectiva
tabla de multiplicar.
#include "stdio.h"
#include "conio.h"
#include "Iostream.h"
void main ()
{
char seguir;
int i,num,res;
do
{
printf ("n Ingrese un numero para generar su tabla
");
scanf ("%d",&num);
for (i=1;i<=10;i++)
{
res=num*i;
printf ("n %d * %d = %d ",num,i,res);
}
printf ("n Desea ingresar otro numero S/N ");
fflush( stdin );
scanf ("%c",&seguir);
clrscr();
}while (seguir != 'n');
getch();
}
SERIE FIBONACCI :
#include <stdio.h>
#include <conio.h>
int main()
{
int i,j,k,t,n;
n=15;//final de la serie
i=0; j=1; //asignacion necesaria
printf("%d,%d,",i,j); //imprimimos los 2 primeros valores
for(k=1;k<n;k++){ //Si n = 3 entonces k va a parar cuando llegue a 2
t=i+j;
(k>n-2)?printf("%d.",t):printf("%d,",t);
i=j;
j=t;
}
getch();
}
 MAXIMO COMUN DIVISOR:
Este programa tan solo consiste en ique el
usuario le ingrese un numero y lse le arroja el
MCD .
#include "stdio.h"
#include "conio.h"
#include "Iostream.h"
void main()
{
int x,y,r;
printf ("n Maximo comun divisor de dos
numeros n");
printf ("n Ingrese primer numero en X ");
scanf("%d", &x);
printf ("n Ingrese segundo numero en Y ");
scanf("n%d", &y);
r=x%y;
while(r>0)
{
x=y;
y=r;
r=x%y;
}
printf(" n El MCD es %d", y);
getch();
}
MINIMO COMUN MULTIPLO:
Consiste en ingresar 2 números uno en la variable X,
y otro en la variable Y. Seguido a esto el programa
dará el MCM de los 2 números ingresados.
#include "stdio.h"
#include "conio.h"
#include "Iostream.h"
void main()
{
int a, b, x, y, m=1, i=2;
printf ("n Minimo común múltiplon ");
printf ("n Ingrese primer numero: X ");
scanf("%d",&x);
printf ("n Ingrese segundo numero: Y ");
scanf("n%d",&y);
if (x<y){a=x; b=y;} else {a=y; b=x;}
do{
if (a%i==0){
if(b%i==0){
m=m*i;
a=a/i; b=b/i; i=2;
}
else i++;
}
else i++;
} while(i<=a);
m=m*b*a;
printf ("n El MCM es %d",m);
getch();
}
ES NUMERO PRIMO ?
Consiste en que el usuario le ingrese un numero y el
arroja si el numero ingresado es primo o no es primo.
#include "stdio.h"
#include "conio.h"
#include "Iostream.h"
void main()
{
int num,i;
int a=0;
printf (" nIngrese un numero ");
scanf ("%d",&num);
for (i=1;i<(num+1);i++)
{
if (num%i==0)
{
a++;
}
}
if (a==2)
{
printf ("El numero %d es: Primo",num);
}
else
{
printf ("El numero %d es: No primo",num);
}
getch();
}
EL NUMERO ES CAPICUA ?
#include "stdio.h"
#include "conio.h"
#include <stdlib.h>
int main()
{
int opc;
{
int num[5];
long int n, n_temp;
int aux1, aux2, i;
i = 0;
aux1 = 0;
printf("Introduzca el numero a
analizar si es capicua o no: ");
scanf("%i", &n);
printf("n");
n_temp = n;
do
{
num[aux1] =
n_temp%10;
n_temp = n_temp/10;
aux1++;
i++;
}
while (n_temp != 0);
aux1 = 0;
while (aux1 != i) {
printf("%i ", num[aux1]);
aux1++; }
printf("nn");
aux1 = 0;
aux2 = i-1; /*2*/
while ((aux1 != aux2))
{
if (num[aux1] != num[aux2])
{
printf("El numero %i NO ES capicuann", n);
getch();
return 0;
}
else
{
//printf("%i = %in", aux1, aux2);
aux1++;
aux2--;
}
}
printf("El numero %i ES capicuann", n);
}
getch();
}
VECTORES
Un vector, también llamado array(arreglo) unidimensional, es
una estructura de datos que permite agrupar elementos del
mismo tipo y almacenarlos en un solo bloque de memoria
juntos, uno después de otro. A este grupo de elementos se les
identifica por un mismo nombre y la posición en la que se
encuentran. La primera posición del array es la posición 0.
Podríamos agrupar en un array una serie de elementos de tipo
enteros, flotantes, caracteres, objetos, etc.
Ejemplo de vector
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main ()
{
int *pt, x[5]={3,2,9,1,6},i;
for(i=0;i<5;i++)
{
printf("n Valor de x[%d]=%d",i,x[i]);
getchar(); // PARA PAUSAR EL PROGRAMA CON UN ENTER
}
}
MATRICES
Una matriz es un vector de vectores o un también llamado array
bidimensional. La manera de declarar una matriz es C++ es similar a un
vector:
int matrix[rows][cols];
int es el tipo de dato, matrix es el nombre del todo el conjunto de datos
y debo de especificar el numero de filas y columnas.
Las matrices también pueden ser de distintos tipos de datos como char,
float, double, etc. Las matrices en C++ se almacenan al igual que los
vectores en posiciones consecutivas de memoria.
EJEMPLO DE MATRIZ:
//consta en sumar números
asignados
#include <stdio.h>
#include <conio.h>
const x=3;
const y=3;
void main()
{
int
m[x][y]={{4,9,7},{5,2,1},{7,8,5}};
int
n[x][y]={{5,7,3},{2,4,6},{9,1,8}};
int res[x][y];
int i,j;
for (i=0;i<x;i++)
{
for (j=0;j<y;j++)
{
res[i][j]=m[i][j]+n[i][j];
printf ( "%2d ",res[i][j]);
}
printf ("n");
}
getch();
}
PUNTEROS
Los punteros permiten simular el paso por referencia, crear y manipular
estructuras dinamicas de datos, tales como listas encadenadas, pilas,
colas y árboles. Generalmente las variables contienen valores
especificos.
Los punteros son variables pero en vez de contener un valor especifico,
contienen las direcciones de las variables a las que apuntan. Para
obtener o modificar el valor de la variable a la que apuntan se utiliza el
operador de indirección. Los punteros, al ser variables deben ser
declaradas como punteros antes de ser utilizadas.
Sintaxis
int *ptrID, ID;
ID = 8;
ptrID = &ID; // puntero a ID
ptrID es un puntero a int, mientras que la variable ID es solo una
variable del tipo int. Todo puntero debe ser precedido por un
asterisco (*) en la declaración.
Se puede declarar más de un puntero en la misma sentencia.
Ejemplo “declaración de dos punteros a int”.
int *ptrY, *ptrX;
Operadores
Existen dos operadores a tener en cuenta cuando trabajamos
con punteros. El operador de dirección (&) que devuelve la
dirección de memoria de su operando y el operador de
indirección (*) que devuelve un alias para el objeto al cual
apunta el operando del puntero.
En el siguiente ejemplo vemos como se inicializa una variable X
con el valor 15. Luego se crea un puntero a int y por último el
puntero pasa a apuntar a la variable X. Esto es, ptrX es un
puntero a X.
int X = 15;
int *ptrX;
ptrX = &X;
Punteros y matrices
Las matrices son punteros constantes. Una matriz sin subindice es un puntero al
primer elemento de la matriz.
int X[15];
int *ptrX;
ptrX = X; // ptrX recibe la dirección del primer elemento ( 0 ) de X
Se pueden utilizar distintos elementos de la matriz teniendo en cuenta la sintaxis de
punteros.
int X[15], Y, *ptrX;
ptrX = X;
Y = *( ptrX + 7 );
En este caso puede verse que Y toma el valor del elemento 7 de la matriz X, siendo 7
el desplazamiento dentro de la matriz. El operador de indirección queda fuera del
paréntesis porque tiene una prioridad superior a la del operador +. De no existir los
paréntesis, se sumaria 7 al elemento X[0]. Teniendo en cuenta que las matrices son
punteros constantes, el nombre de la matriz puede tratarse como un puntero:
Y = *( X + 7 );
Ejemplo de puntero
// la función de este puntero es imprimir valores de un vector ya asignados
asignados
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main ()
{
int *pt, x[5]={3,2,9,1,6},i;
for(i=0;i<5;i++)
{
printf("n Valor de x[%d]=%d",i,x[i]);
getchar(); // pulsa enter para generar la impresion
}
}
GRACIAS
ESPERAMOS QUE NUESTRA
INFORMACION LES SEA UTIL .

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Constructors in C++.pptx
Constructors in C++.pptxConstructors in C++.pptx
Constructors in C++.pptx
 
detailed information about Pointers in c language
detailed information about Pointers in c languagedetailed information about Pointers in c language
detailed information about Pointers in c language
 
C language unit-1
C language unit-1C language unit-1
C language unit-1
 
C++ programming
C++ programmingC++ programming
C++ programming
 
Introduction to Procedural Programming in C++
Introduction to Procedural Programming in C++Introduction to Procedural Programming in C++
Introduction to Procedural Programming in C++
 
Chapter 8 c solution
Chapter 8 c solutionChapter 8 c solution
Chapter 8 c solution
 
Let us c chapter 4 solution
Let us c chapter 4 solutionLet us c chapter 4 solution
Let us c chapter 4 solution
 
Operators in C
Operators in COperators in C
Operators in C
 
What is c
What is cWhat is c
What is c
 
Storage classes
Storage classesStorage classes
Storage classes
 
4 memoria dinamica
4 memoria dinamica4 memoria dinamica
4 memoria dinamica
 
COMPILATION PROCESS IN C.pptx
COMPILATION PROCESS IN C.pptxCOMPILATION PROCESS IN C.pptx
COMPILATION PROCESS IN C.pptx
 
Clanguage
ClanguageClanguage
Clanguage
 
Tokens expressionsin C++
Tokens expressionsin C++Tokens expressionsin C++
Tokens expressionsin C++
 
Pointers in c language
Pointers in c languagePointers in c language
Pointers in c language
 
Programming Languages / Translators
Programming Languages / TranslatorsProgramming Languages / Translators
Programming Languages / Translators
 
COM1407: Working with Pointers
COM1407: Working with PointersCOM1407: Working with Pointers
COM1407: Working with Pointers
 
C++ vs C#
C++ vs C#C++ vs C#
C++ vs C#
 
File Handling.pptx
File Handling.pptxFile Handling.pptx
File Handling.pptx
 
introduction to visual basic PPT.pptx
introduction to visual basic PPT.pptxintroduction to visual basic PPT.pptx
introduction to visual basic PPT.pptx
 

Destacado

WordPress absichern - WP Camp 2012 in Berlin
WordPress absichern - WP Camp 2012 in BerlinWordPress absichern - WP Camp 2012 in Berlin
WordPress absichern - WP Camp 2012 in BerlinTorsten Landsiedel
 
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02Karen Rodriguez Rondon
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User GroupMatthias Praunegger
 
Proceso de realización1 copia
Proceso de realización1   copiaProceso de realización1   copia
Proceso de realización1 copiaPalau de Mar
 

Destacado (6)

Internet
Internet Internet
Internet
 
WordPress absichern - WP Camp 2012 in Berlin
WordPress absichern - WP Camp 2012 in BerlinWordPress absichern - WP Camp 2012 in Berlin
WordPress absichern - WP Camp 2012 in Berlin
 
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02
Contextohistricodelcurrculo2 090813130918-phpapp02-100319220859-phpapp02
 
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
2011 12 05 KLUG Karl Franzens Universität Graz Linux User Group
 
Proceso de realización1 copia
Proceso de realización1   copiaProceso de realización1   copia
Proceso de realización1 copia
 
Digitale Signatur
Digitale SignaturDigitale Signatur
Digitale Signatur
 

Similar a Tutorial lenguaje c

La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaAeChm-MgMs-NnNm-OpSe
 
Programación en c++
Programación en c++Programación en c++
Programación en c++vic-97
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuelaroyimar
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c Mar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxxMar15marian
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacionrotflol
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNKarol Moreno
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaMariannis Ortega
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructuradaMariannis Ortega
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxFedericoMartearena
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Maztherprozh
 

Similar a Tutorial lenguaje c (20)

Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
La programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortadaLa programación informática o programación algorítmica, acortada
La programación informática o programación algorítmica, acortada
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
Escuela
EscuelaEscuela
Escuela
 
Escuela
EscuelaEscuela
Escuela
 
C++
C++C++
C++
 
Clase lenguaje c
Clase lenguaje c Clase lenguaje c
Clase lenguaje c
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Clase lenguaje c xxxxxx
Clase lenguaje c xxxxxxClase lenguaje c xxxxxx
Clase lenguaje c xxxxxx
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Desarrollo aplicaciones visuales
Desarrollo aplicaciones visualesDesarrollo aplicaciones visuales
Desarrollo aplicaciones visuales
 
Elementos basicos de programacion
Elementos basicos de programacionElementos basicos de programacion
Elementos basicos de programacion
 
PROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓNPROGRAMACIÓN WEB INTRODUCCIÓN
PROGRAMACIÓN WEB INTRODUCCIÓN
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Programación estructurada
Programación estructuradaProgramación estructurada
Programación estructurada
 
Python_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptxPython_Introduccion_a_la_programacion.pptx
Python_Introduccion_a_la_programacion.pptx
 
Ikgi
IkgiIkgi
Ikgi
 
Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_Estructura basica de_un_programa_c_
Estructura basica de_un_programa_c_
 

Último

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdfDemetrio Ccesa Rayme
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 

Último (20)

DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Neurociencias para Educadores NE24 Ccesa007.pdf
Neurociencias para Educadores  NE24  Ccesa007.pdfNeurociencias para Educadores  NE24  Ccesa007.pdf
Neurociencias para Educadores NE24 Ccesa007.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 

Tutorial lenguaje c

  • 1. C Integrantes : Andrés Bernal Marlon Gomez
  • 2. Introducción al Lenguaje C EL lenguaje C es el resultado de un proceso de desarrollo que inició con un lenguaje denominado BCPL. Este influenció a otro llamado B (inventado por Ken Thompson). En los años 70; éste lenguaje llevó a la aparición del C. Con la popularidad de las microcomputadoras muchas compañías comenzaron a implementar su propio C por lo cual surgieron discrepancias entre sí. Por esta razón ANSI (American Nacional Standars Institute, por sus siglas en inglés), estableció un comité en 1983 para crear una definición no ambigüa del lenguaje C e independiente de la máquina que pudiera utilizarse en todos los tipos de C. Tomado de : http://www.monografias.com/trabajos/introc/introc.shtml
  • 3. Operadores Un operador es un elemento de programa que se aplica a uno o varios operandos en una expresión o instrucción. Los operadores que requieren un operando, como el operador de incremento se conocen como operadores unarios. Los operadores que requieren dos operandos, como los operadores aritméticos (+,-,*,/) se conocen como operadores binarios. Un operador, el operador condicional (?:), utiliza tres operandos y es el único operador ternario de C++]. Existen 6 tipos de operadores según su función, que son aritméticos, relacionales, de asignación, lógicos, de dirección y de manejo de Bits.
  • 4. OPERADORESDEASIGNACION: 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:
  • 5. OPERADORESARITMETICOS: 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 :
  • 6. OPERADORESRELACIONALES: 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). 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:
  • 7. OPERADORESLOGICOS: Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados 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 último (negación) es unario:
  • 8. OPERADORESDEBITS: Los operadores de movimiento son operadores a nivel de bits, y lo que hacen es convertir una determinada cantidad a su equivalente en bits para posteriormente realizar un desplazamiento de dicho valor. Estos operadores son:
  • 9. OPERADORESDEDIRECCION: Además de los operadores aritméticos, de los que existen versiones para los tipos numéricos y para los punteros, C++ dispone de dos operadores específicos para estos últimos (punteros de cualquier tipo): la indirección “*” y la referencia “&” . Además existen dos operadores específicos para punteros-a-clases
  • 10. Sentencias . Sentencia If-Else: Para escribir una instrucción alternativa doble (if else) se utiliza la sintaxis: if ( <expresión_lógica> ) { <bloque_de_instrucciones_1> } else { <bloque_de_instrucciones_2> }
  • 11. A la <expresión_lógica> de una instrucción alternativa doble (if else) también se le denomina condición. Para que se ejecute el <bloque_de_instrucciones_1>, la condición tiene que ser verdadera. Por el contrario, si la condición es falsa, se ejecutará el <bloque_de_instrucciones_2>. En resumen, en C una instrucción if else (alternativa doble) permite seleccionar, por medio de una condición, el siguiente bloque de instrucciones a ejecutar, de entre dos posibles. EJEMPLO: un programa que: 1º) Pida por teclado la nota de una asignatura. 2º) Muestre por pantalla: "APROBADO", en el caso de que la nota sea mayor o igual que 5. "SUSPENDIDO", en el caso de que la nota sea menor que 5.
  • 12. CODIGO: #include <stdio.h> #include <conio.h> void main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); if ( nota >= 5 ) printf( "n APROBADO" ); else printf( "n SUSPENDIDO" ); getch(); }
  • 13. Sentencia While: Son también una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuándo se va a dar el valor final que esperamos, los ciclos while, no dependen directamente de valores numéricos, sino de valores booleanos, es decir su ejecución depende del valor de verdad de una condición dada, verdadera o falso, nada más. En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca Como verdadera en el momento en que la condición se convierte en falsa el ciclo termina.
  • 14. EJEMPLO: #include <stdio.h> #include <conio.h> void main() { float nota; printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); /* Si la primera nota introducida por el usuario es correcta, el bucle no itera ninguna vez. */ while ( nota < 0 || nota > 10 ) { printf( "n ERROR: Nota incorrecta, debe ser >= 0 y <= 10n" ); printf( "n Introduzca nota (real): " ); scanf( "%f", &nota ); } /* Mientras que el usuario introduzca una nota incorrecta, el bucle iterará. Y cuando introduzca una nota correcta, el bucle finalizará. */ if ( nota >= 5 ) printf( "n APROBADO" ); else printf( "n SUSPENDIDO" ); getch(); }
  • 15.  Sentencia DO-WHILE: son una estructura de control cíclica, los cuales nos permiten ejecutar una o varias líneas de código de forma repetitiva sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuándo se va a dar el valor final, hasta aquí son similares a los ciclos while. Su diferencia básica con el ciclo while es que la prueba de condición es hecha al finalizar el ciclo, es decir las instrucciones se ejecutan cuando menos una vez porque primero ejecuta las instrucciones y al final evalúa la condición. EJEMPLO: #include <stdio.h> #include <conio.h> void main() { char seguir; int acumulador, numero; /* En acumulador se va a guardar la suma de los números introducidos por el usuario. */ acumulador = 0; do { printf( "n Introduzca un numero entero: " ); scanf( "%d", &numero); acumulador += numero; printf( "n Desea introducir otro numero (s/n)?: " ); fflush( stdin ); scanf( "%c", &seguir); } while ( seguir != 'n' ); /* Mientras que el usuario desee introducir más números, el bucle iterará. */ printf( "n La suma de los numeros introducidos es: %d", acumulador ); getch(); }
  • 16. • Sentencia FOR: Para escribir una instrucción for (repetitiva para) se utiliza la sintaxis: for ( <expresión_1> ; <expresión_2> ; <expresión_3> ) { <bloque_de_instrucciones> } Cuando el <bloque_de_instrucciones> sólo contiene una instrucción, los caracteres abrir llave ({) y cerrar llave (}) son opcionales. Por otro lado, el bucle for es ideal usarlo cuando, de antemano, ya se sabe el número de veces (iteraciones) que tiene que ejecutarse un determinado bloque de instrucciones.
  • 17. EJEMPLO: #include <stdio.h> #include <conio.h> void main() { int contador; printf( "n " ); for ( contador=1 ; contador<=10 ; contador++ ) printf( "%d ", contador ); getch(); }
  • 18. LIBRERIAS  assert.h Contiene una macro para el diagnóstico dentro de los programas.  ctype.h Contiene varias funciones para comprobación de tipos y transformación de caracteres.  errno.h Contiene varias macros usadas para informar de errores.  limits.h Contienen varias macros que definen constantes para el tamaño de tipo enteros.  float.h Contienen varias macros que definen constantes para el tamaño de tipo flotante.  locale.h Contienen varias macros, funciones y tipos para unidades locales, como unidad monetaria, tiempo, dígitos, etc.  math.h Contiene una macro y varias funciones matemáticas.  setjmp.h Contienen declaraciones que proporcionan una forma de evitar la secuencia normal de llamada y regreso de funciones.
  • 19.  signal.h Contiene un tipo, dos funciones y varias macros para manejar condiciones excepcionales que aparecen durante la ejecución, tal como una señal de interrupción de una fuente externa o un error en la ejecución.  stdarg.h Contiene un tipo y tres macros que proporcionan recursos para recorrer una lista de argumentos de función de tamaño y tipo desconocido.  stddef.h Contiene varios tipos y macros que también están definidas en otras librerías, como size_t.  stdio.h Contiene tipos, macros y funciones para la realización de tareas de E/S.  stdlib.h Contiene tipos, macros y funciones para la conversión numérica, generación de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares.  string.h Contiene tipos, macros y funciones para la manipulación de cadenas de caracteres.  time.h Contiene tipos, macros y funciones para la manipulación de información sobre fechas y horas. A continuación profundizaremos acerca de 5 de ellas : Stdio.h, String.h, Conio.h, Match.h, Iostream.h, Ctype.h.
  • 20. LIBRERIA STDIO.H : Significa "standard input-output header" (cabecera estándar E/S), es la biblioteca estándar del lenguaje de programación C, el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones y la definición de tipos usados por varias operaciones estándar de entrada y salida. Por motivos de compatibilidad, el lenguaje de programación C++ (derivado de C) también tiene su propia implementación de estas funciones, que son declaradas con el archivo de cabecera cstdio. Las funciones declaradas en stdio.h son sumamente populares.
  • 21. Funciones: NOMBRE FUNCION SINTAXIS printf Escribe en la salida estándar con formato. printf(char *formato, lista_arg) scanf Lee de la salida estándar con formato. scanf(“%fto. var.”,& variable); puts Escribe una cadena y salto de linea. puts(cadena); gets Lee y guarda una cadena introducida por teclado. gets(cadena); fclose Cierra un fichero cuyo puntero le indicamos. fclose(pf); fprintf Escribe con formato en un fichero. fprintf(pf , formato , arg1 , ...); fgets Lee una cadena de un fichero. fgets(char *cadena, int n, FILE *stream);
  • 22. LIBRERIA CONIO.H Conio.h es un archivo de cabecera en el lenguaje de programación C Es utilizado por los compiladores para MS- DOS para crear interfaces basadas en texto. Se describe en el libro El Lenguaje de Programación C por Brian Kernighan y Dennis Ritchie, porque no es parte de la biblioteca estándar de C Asimismo, no se incluye en la familia de normas POSIX. En esta cabecera se declaran diferentes funciones creadas debido a que un programa puede realizar especial de entrada / salida en la consola . Muchos compiladores de C para DOS, Windows 3.x, OS / 2 , o Win32 [ 1 ] contienen esta cabecera , a diferencia de la mayoría de los compiladores para UNIX y LINUX . Algunos sistemas integrados utilizan una biblioteca compatible con libreria conio.h que es de borland C++
  • 23. Funciones: NOMBRE FUNCION SINTAXIS Crscr Borrar la pantalla. Clrscr( ); Clreol Borra desde la posición del cursor hasta el final de la linea. Clereol( ); Gotoxy Cambia la posición del cursor a las coordenadas indicadas. gotoxy(columna , fila); Textcolor Selecciona el color de texto (0 - 15). textcolor(color); Textbackground Selecciona el color de fondo (0 - 7). textbackground(color); Wherex Retorna la columna en la que se encuentra el cursor. col=wherex( ); Wherey Retorna la fila en la que se encuentra el cursor. fila=wherey( ); Getch Lee y retorna un único caracter introducido mediante el teclado por el usuario. No muestra el caracter por la pantalla. letra=getch( ); Getche Lee y retorna un único caracter introducido mediante el teclado por el usuario. Muestra el caracter por la pantalla. letra=getche( );
  • 24. LIBRERÍA STRING.H: Es un archivo de la Biblioteca estándar del lenguaje de programación C que contiene la definición de macros, constantes, funciones y tipos de utilidad para trabajar con cadenas de caracteres y algunas operaciones de manipulación de memoria (el nombre string puede ser algo inapropiado). Las funciones declaradas en string.h se han hecho muy populares, por lo que están garantizadas para cualquier plataforma que soporte C. Sin embargo, existen algunos problemas de seguridad con estas funciones, como el desbordamiento de buffer (buffer overflow), que hacen que algunos programadores prefieran opciones más seguras frente a la portabilidad que estas funciones ofrecen. Además, las funciones para cadenas de caracteres sólo trabajan con conjuntos de caracteres ASCII o extensiones ASCII compatibles.
  • 25. NOMBRE FUNCION SINTAXIS Strlen Calcula la longitud de una cadena. longitud=strlen(cadena); Strcpy Copia el contenido de una cadena sobre otra. strcpy(copia , original); Strcat Concatena dos cadenas. strcat(cadena1 , cadena2); Strcmp Compara el contenido de dos cadenas. Si cadena1 < cadena2 retorna un número negativo. Si cadena1 > cadena2, un n£mero positivo, y si cadena1 es igual que cadena2 retorna 0 ( o NULL ). valor=strcmp(cadena1 , cadena2);
  • 26. LIBRERÍA MATH.H: Es un archivo de cabecera de la biblioteca estándar del lenguaje de programación C diseñado para operaciones matemáticas básicas. Muchas de sus funciones incluyen el uso de números en coma flotante. C++ también implementa estas funciones por razones de compatibilidad y las declara en la cabecera cmath. Una nota importante: si se está programando en C/C++ bajo Gnu/Linux, y se utiliza uno de los compiladores nativos de este sistema operativo (gcc o g++), es necesario incluir, al compilar, la opción -lm, dado que, de lo contrario, el compilador generará un error. Por ejemplo, si tenemos un fichero fuente con funciones de la biblioteca matemática, llamado mi_fich_fuente_math.c, para compilarlo será necesario dar la orden siguiente en la consola de comandos (respectiva al intérprete): $ gcc mi_fich_fuente_math.c -lm -o <nombre_del_ejecutable> Esto, asimismo, no es necesario si se programa en C/C++ bajo Windows utilizando la herramienta gráfica MS Visual C++.
  • 27.  Todas las funciones en las que participan ángulos toman y devuelven radianes. NOMBRE FUNCION SINTAXIS Cos Toma y devuelve un valor doublé. double cos(double x); Toma y devuelve un valor en coma flotante, esta función sólo está disponible en C++. float cos(float x); Toma y devuelve un valor long double, sólo disponible en C++. long double cos(long double x); Sin Calcula el seno de x (medido en radianes). double sin(double x); Tan Calcula la tangente de x (medido en radianes). double tan(double x); Log Calcula el logaritmo natural (o neperiano). Puede producirse un error de dominio si el argumento es negativo. Puede producirse un error de recorrido si el argumento es cero. double log(double x); Exp Calcula la función exponencial de x. double exp(double x); Sqrt Calcula la raíz cuadrada del valor no negativo de x. Puede producirse un error de dominio si x es negativo. double sqrt(double x);
  • 28. LIBRERIA IOSTREAM.H: Es un componente de la biblioteca estándar (STL) del lenguaje de programación C++ que es utilizado para operaciones de entrada/salida. Su nombre es un acrónimo de Input/Output Stream. El flujo de entrada y salida de datos en C++ (y su predecesor C) no se encuentra definida dentro de la sintaxis básica y se provee por medio de librerías de funciones especializadas como Iostream.h. Iostream.h define los siguientes objetos: • cin : Flujo de entrada (que entra) • cout : Flujo de salida (que sale) • cerr : Flujo de error no almacenado. • clog : Flujo de error almacenado
  • 29. LIBRERIA CTYPE.H: Ctype.h es un archivo de cabecera de la biblioteca estándar del lenguaje de programación C diseñado para operaciones básicas con caracteres. Contiene los prototipos de las funciones y macros para clasificar caracteres. Nombre Función Sintaxis Isalnum Comprueba si un carácter es alfanumérico. int isalnum(int c); Isalpha Comprueba si un carácter es alfabético. int isalpha(int c); Isascii Comprueba si un carácter es un carácter Ascii. int isascii (int c) Iscntrl Comprueba si un carácter es un carácter de control. int iscntrl(int c); Isdigit Comprueba si un carácter es un número. int isdigit(int c); Isgraph Comprueba si un carácter se puede imprimir sin el espacio. int isgraph(int c); Islower Comprueba si un carácter está en minúscula, int islower(int c); Isprint Comprueba si un carácter se puede imprimir. int isprint(int c); Ispunct Comprueba si un carácter es de puntuación. int ispunct(int c); Isspace Comprueba si un carácter es un espacio. int isspace(int c); Isupper Comprueba si un carácter está en mayúscula. int isupper(int c); Isxdigit Comprueba si un carácter es hexadecimal. int isxdigit(int c);
  • 30. EJERCICIOSREALIZADOS  TABLA DE MULTIPLICAR: Uno de lo primeros programas que realizamos fue este, básicamente consiste en ingresarle un numero y el arroja su respectiva tabla de multiplicar. #include "stdio.h" #include "conio.h" #include "Iostream.h" void main () { char seguir; int i,num,res; do { printf ("n Ingrese un numero para generar su tabla "); scanf ("%d",&num); for (i=1;i<=10;i++) { res=num*i; printf ("n %d * %d = %d ",num,i,res); } printf ("n Desea ingresar otro numero S/N "); fflush( stdin ); scanf ("%c",&seguir); clrscr(); }while (seguir != 'n'); getch(); }
  • 31. SERIE FIBONACCI : #include <stdio.h> #include <conio.h> int main() { int i,j,k,t,n; n=15;//final de la serie i=0; j=1; //asignacion necesaria printf("%d,%d,",i,j); //imprimimos los 2 primeros valores for(k=1;k<n;k++){ //Si n = 3 entonces k va a parar cuando llegue a 2 t=i+j; (k>n-2)?printf("%d.",t):printf("%d,",t); i=j; j=t; } getch(); }
  • 32.  MAXIMO COMUN DIVISOR: Este programa tan solo consiste en ique el usuario le ingrese un numero y lse le arroja el MCD . #include "stdio.h" #include "conio.h" #include "Iostream.h" void main() { int x,y,r; printf ("n Maximo comun divisor de dos numeros n"); printf ("n Ingrese primer numero en X "); scanf("%d", &x); printf ("n Ingrese segundo numero en Y "); scanf("n%d", &y); r=x%y; while(r>0) { x=y; y=r; r=x%y; } printf(" n El MCD es %d", y); getch(); }
  • 33. MINIMO COMUN MULTIPLO: Consiste en ingresar 2 números uno en la variable X, y otro en la variable Y. Seguido a esto el programa dará el MCM de los 2 números ingresados. #include "stdio.h" #include "conio.h" #include "Iostream.h" void main() { int a, b, x, y, m=1, i=2; printf ("n Minimo común múltiplon "); printf ("n Ingrese primer numero: X "); scanf("%d",&x); printf ("n Ingrese segundo numero: Y "); scanf("n%d",&y); if (x<y){a=x; b=y;} else {a=y; b=x;} do{ if (a%i==0){ if(b%i==0){ m=m*i; a=a/i; b=b/i; i=2; } else i++; } else i++; } while(i<=a); m=m*b*a; printf ("n El MCM es %d",m); getch(); }
  • 34. ES NUMERO PRIMO ? Consiste en que el usuario le ingrese un numero y el arroja si el numero ingresado es primo o no es primo. #include "stdio.h" #include "conio.h" #include "Iostream.h" void main() { int num,i; int a=0; printf (" nIngrese un numero "); scanf ("%d",&num); for (i=1;i<(num+1);i++) { if (num%i==0) { a++; } } if (a==2) { printf ("El numero %d es: Primo",num); } else { printf ("El numero %d es: No primo",num); } getch(); }
  • 35. EL NUMERO ES CAPICUA ? #include "stdio.h" #include "conio.h" #include <stdlib.h> int main() { int opc; { int num[5]; long int n, n_temp; int aux1, aux2, i; i = 0; aux1 = 0; printf("Introduzca el numero a analizar si es capicua o no: "); scanf("%i", &n); printf("n"); n_temp = n; do { num[aux1] = n_temp%10; n_temp = n_temp/10; aux1++; i++; } while (n_temp != 0); aux1 = 0; while (aux1 != i) { printf("%i ", num[aux1]); aux1++; }
  • 36. printf("nn"); aux1 = 0; aux2 = i-1; /*2*/ while ((aux1 != aux2)) { if (num[aux1] != num[aux2]) { printf("El numero %i NO ES capicuann", n); getch(); return 0; } else { //printf("%i = %in", aux1, aux2); aux1++; aux2--; } } printf("El numero %i ES capicuann", n); } getch(); }
  • 37. VECTORES Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos que permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria juntos, uno después de otro. A este grupo de elementos se les identifica por un mismo nombre y la posición en la que se encuentran. La primera posición del array es la posición 0. Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres, objetos, etc.
  • 38. Ejemplo de vector #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<time.h> int main () { int *pt, x[5]={3,2,9,1,6},i; for(i=0;i<5;i++) { printf("n Valor de x[%d]=%d",i,x[i]); getchar(); // PARA PAUSAR EL PROGRAMA CON UN ENTER } }
  • 39. MATRICES Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es C++ es similar a un vector: int matrix[rows][cols]; int es el tipo de dato, matrix es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas. Las matrices también pueden ser de distintos tipos de datos como char, float, double, etc. Las matrices en C++ se almacenan al igual que los vectores en posiciones consecutivas de memoria.
  • 40. EJEMPLO DE MATRIZ: //consta en sumar números asignados #include <stdio.h> #include <conio.h> const x=3; const y=3; void main() { int m[x][y]={{4,9,7},{5,2,1},{7,8,5}}; int n[x][y]={{5,7,3},{2,4,6},{9,1,8}}; int res[x][y]; int i,j; for (i=0;i<x;i++) { for (j=0;j<y;j++) { res[i][j]=m[i][j]+n[i][j]; printf ( "%2d ",res[i][j]); } printf ("n"); } getch(); }
  • 41. PUNTEROS Los punteros permiten simular el paso por referencia, crear y manipular estructuras dinamicas de datos, tales como listas encadenadas, pilas, colas y árboles. Generalmente las variables contienen valores especificos. Los punteros son variables pero en vez de contener un valor especifico, contienen las direcciones de las variables a las que apuntan. Para obtener o modificar el valor de la variable a la que apuntan se utiliza el operador de indirección. Los punteros, al ser variables deben ser declaradas como punteros antes de ser utilizadas.
  • 42. Sintaxis int *ptrID, ID; ID = 8; ptrID = &ID; // puntero a ID ptrID es un puntero a int, mientras que la variable ID es solo una variable del tipo int. Todo puntero debe ser precedido por un asterisco (*) en la declaración. Se puede declarar más de un puntero en la misma sentencia. Ejemplo “declaración de dos punteros a int”. int *ptrY, *ptrX;
  • 43. Operadores Existen dos operadores a tener en cuenta cuando trabajamos con punteros. El operador de dirección (&) que devuelve la dirección de memoria de su operando y el operador de indirección (*) que devuelve un alias para el objeto al cual apunta el operando del puntero. En el siguiente ejemplo vemos como se inicializa una variable X con el valor 15. Luego se crea un puntero a int y por último el puntero pasa a apuntar a la variable X. Esto es, ptrX es un puntero a X. int X = 15; int *ptrX; ptrX = &X;
  • 44. Punteros y matrices Las matrices son punteros constantes. Una matriz sin subindice es un puntero al primer elemento de la matriz. int X[15]; int *ptrX; ptrX = X; // ptrX recibe la dirección del primer elemento ( 0 ) de X Se pueden utilizar distintos elementos de la matriz teniendo en cuenta la sintaxis de punteros. int X[15], Y, *ptrX; ptrX = X; Y = *( ptrX + 7 ); En este caso puede verse que Y toma el valor del elemento 7 de la matriz X, siendo 7 el desplazamiento dentro de la matriz. El operador de indirección queda fuera del paréntesis porque tiene una prioridad superior a la del operador +. De no existir los paréntesis, se sumaria 7 al elemento X[0]. Teniendo en cuenta que las matrices son punteros constantes, el nombre de la matriz puede tratarse como un puntero: Y = *( X + 7 );
  • 45. Ejemplo de puntero // la función de este puntero es imprimir valores de un vector ya asignados asignados #include<conio.h> #include<stdio.h> #include<stdlib.h> #include<time.h> int main () { int *pt, x[5]={3,2,9,1,6},i; for(i=0;i<5;i++) { printf("n Valor de x[%d]=%d",i,x[i]); getchar(); // pulsa enter para generar la impresion } }