Ejemplos de Código C++
Ejemplos de Código C++
Ejemplos de Código C++
El lenguaje de Programación C
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 2
Ejemplo 1: Estructura de un programa
Inclusión de bibliotecas, declaraciones de variables y tipos, y
secuencia de funciones
Una y sólo una función denominada main (programa principal)
Función:
tipoRetorno Nombre (parametros) {sentencias}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 3
#include <stdio.h>
int main( )
{
int multiplicador; /*se define multiplicador como un entero */
int multiplicando; /*se define multiplicando como un entero */
int res; /*se define resultado como un entero*/
multiplicador = 1000; /*se asignan valores*/
multiplicando=2;
res=multiplicador*multiplicando;
printf("Resultado =%d\n",res); /*se muestra el resultado */
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 4
Ejemplo 3: Definición de variables
#include <stdio.h>
int main( ) {
int multiplicador, multiplicando; /*se definen 2 variables*/
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 5
Tipos de variables
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 6
Tipos de variables
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 7
#include <stdio.h>
int main() {
double d , e , f = 2.33 ;
int i = 6 ;
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 8
Ejemplo 5: Variable tipo carácter
int main () {
char c;
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 9
Secuencias de escape
Existe una serie de caracteres no imprimibles que el editor los toma como órdenes,
por lo que la manera de acceder a ellos es mediante una secuencia de escape
CODIGO SIGNIFICADO VALOR ASCII VALOR ASCII
(decimal) (hexadecimal)
'\n' nueva línea 10 0x0A
'\r' retorno de carro 13 0x0D
'\f ' nueva página 12 0x0C
'\t' tabulador horizontal 9 0x09
'\b' retroceso (backspace) 8 0x08
'\'' comilla simple 39 0x27
'\"' comillas 34 0x22
'\\' barra hacia atrás (backslash) 92 0x5C
'\? ' Interrogación 63 0x3F
'\nnn' cualquier carácter (donde nnn es el código ASCII
expresado en octal)
'\xnn' cualquier carácter ( nn es el código ASCII
expresado en hexadecimal)
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 10
Ejemplo 6: Tamaño de las variables
/* ejemplo 6.- Uso del operador sizeof para determinar el tamaño de
una variable */
#include <stdio.h>
int main () {
char c;
int n, d;
n= sizeof(c);
printf(" el número de bytes de la variable c es %d\n", n);
n= sizeof(d);
printf(" el número de bytes de la variable d es %d\n", n);
n= sizeof(int);
printf(" el número de bytes que ocupa el tipo entero es %d\n",
n);
printf(" el número de bytes que ocupa el tipo double es %d\n",
sizeof(double));
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 11
#include <stdio.h>
#define PI 3.1416 /* definición de constante */
int main () {
float perim, radio; int dos=2;
#include <stdio.h>
#define va_int 805
#define va_float 332.41e-1
int main () {
printf(" %f \n", va_float); /* imprime 33.241*/
printf(" %.1f \n", va_float); /* imprime 33.2*/
printf(" %.4f \n", va_float); /* imprime 33.2410*/
printf(" %1.4e \n", va_float); /* imprime 3.3241e+01*/
printf(" %d \n", va_int); /* imprime 805*/
printf(" %10f\n", va_float); /* imprime 33.241*/
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 13
#include <stdio.h>
int main () {
int i;
float x;
printf(" teclee el número entero i ");
scanf("%d", &i);
printf(" teclee el número real x ");
scanf("%f", &x);
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 14
Ejemplo 10: La instrucción if-else
Cuando hay muchas opciones el programa se hace difícil de entender
getchar(), lee un carácter de la entrada estándar (teclado)
#include <stdio.h>
int main() {
int c;
printf(" Menu:\n");
printf(" A=Añadir a la lista\n");
printf(" B=Borrar de la lista\n");
printf(" O=Ordenar la lista\n");
printf(" I=Imprimir la lista\n");
printf(" Escriba su selección y luego <enter>\n");
if ((c=getchar()) != '') {
if (c=='A') printf(" Has seleccionado añadir\n");
else if (c=='B') printf(" Has seleccionado borrar\n");
else if (c=='O') printf(" Has seleccionado ordenar\n");
else if (c=='I') printf(" Has seleccionado imprimir\n");
} else printf(" No has seleccionado una opcion valida");
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 15
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 16
Ejemplo 12: La instrucción switch
#include <stdio.h>
int main() {
int nota;
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 17
#include <stdio.h>
#define euro 166.386
int main() {
float n,x; int opcion;
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 18
Punteros y arrays en C
Arrays
Un array es una variable indexable que contiene muchos objetos
(denominados elementos) de un mismo tipo que se almacenan
consecutivamente en memoria.
Los elementos están indexados desde 0 hasta n-1
int B[10]; 500 502 504 506 508
int N[5] = { 5, 25, 12, 2, 8 }
5 24 4 2 8 ... ...
int a, b;
a = N[2]; // a es 12 N[0] N[1] N[2] N[3] N[4]
N[2] = 4; // Se modifica 3er elemento
b = N[3]*N[3]; // b vale 4
b = N[10]; // Error de programación!!!
300 304 308 312 316 320
– Arrays multidimensionales
1.0 2.0 3.0 4.0 5.0 6.0 ...
float v[2][3] ={1, 2, 3, 4, 5, 6 };
v[0][0] V[0][1] V[0][2] V[1][0] V[1][1] V[1][2]
char c2[2][3];
float v12 = v[1][2]; // v12 vale 6.0
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 19
Punteros y arrays en C
Punteros
Un puntero es una variable que contiene la dirección de otro objeto.
Se define como: tipo *nombre
El operador & obtiene la dirección de una variable.
Se denomina Indirección devolver el dato apuntado por el puntero(operador *)
La declaración int N[] es equivalente a int *N;
Ejemplo: (Compilador asigna memoria a partir posición memoria 500)
500 502 504 506 508 510 512
? 12 ? 1 2 3 ?
int b; b x p N[0] N[1] N[2] pc
int x = 12;
int *p; 500 502 504 506 508 510 512
int N[3] = {1, 2, 3}; ? 12 502 1 2 3 ?
char *pc; //puntero a carácter b x p N[0] N[1] N[2] pc
p = &x; //p toma la dirección de x
b = *p; //b toma el valor del entero 500 502 504 506 508 510 512
//apuntado por p 12 12 502 1 2 3 ?
*p = 10; //El entero apuntado por p, b x *p p N[0] N[1] N[2] pc
//pasa a tomar el valor 10
p = N; //p toma la dirección del 500 502 504 506 508 510 512
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 20
Punteros y arrays en C
Cadenas (strings)
Una cadena es un array de caracteres cuyo último elemento
contiene el carácter nulo (‘\0’)
Para trabajar con cadenas utilizar funciones de strings (strcpy,
strlen, etc.)
Ejemplos:
char *cad = “PEPITO PEREZ”; cad
char c; P E P I T O P E R E Z \0
char *p;
cad[0] cad[1] cad[2] cad[3] cad[4] ...
c = cad[2]; // c vale ‘P’
P
p = cad // p apunta a cad
c = p[4]; // c vale ‘T’ p[0] p[1] p[2] p[3] p[4] ...
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 21
Punteros y arrays en C
• Aritmética de punteros
– C permite realizar varias operaciones con variable punteros
– Operadores incremento/decremento (++/--).
– Suma y resta (desplazamiento de la posición)
– El desplazamiento es siempre del tipo al que apunta la variable
– Ejemplos:
int dat[5] = {1, 2, 3, 4, 5}; SALIDA POR PANTALLA>>
int *p; dat[0]= 1 p[0]= 3
int i, n; dat[1]= 2 p[1]= 4
dat[2]= 3 p[2]= 5
p= dat; //p toma la direccion de dat[3]= 4 p[3]= 8911
//dat[0] dat[4]= 5 p[4]= 8305
p= dat+2; //p toma la dirección de
//dat[2] 500 502 504 506 508 510 512
n= sizeof(datos)/sizeof(int); 1 2 3 4 5 ? ?
for (i= 0; i < n; i++) { dat[0] dat[1] dat[2] dat[3] dat[4] ... ...
printf(“dat[%u]= %u\t”, i, dat[i]);
printf(“p[%u]= %u\n”, i, *p++); dat dat+1 dat+2 dat+3 dat+4 dat+5 ...
} p p+1 p+2 p+3 ...
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 22
Punteros y arrays en C
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 23
#include <stdio.h>
int main () {
char l, palabra[21];
int i;
#include <stdio.h>
int main() {
int num=0,suma=0;
do {
suma=suma+num;
printf("un número: ");
scanf("%d",&num);
} while(num>=0);
printf("suma es: %d",suma);
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 25
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 26
Ejemplo 17: Parámetros por referencia
#include <stdio.h>
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 27
Ejecución de ej19:
ej19 parametro1 parametro2
Salida:
arg[0]= ej19
arg[1]= parametro1
arg[2]= parametro2
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 29
#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void) {
int *p, i;
#include <stdio.h>
#include <stdlib.h>
int main() {
char numPtr[5] = "1234";
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 31
#include <stdio.h>
#include <string.h>
int main() {
char s1[11] = "Hola ”, s2[6] = "amigos";
printf( "s1=%s\n", s1 ); printf( "s2=%s\n", s2 );
strcat( s1, s2 );
printf( "s1=%s\n", s1 );
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 33
Valor de retorno:
#include <stdio.h>
#include <string.h>
int main() {
char s[13] = "Hola a todos";
printf( "s=%s\n", s );
printf( "strlen(s) = %d\n", strlen( s ) );
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 34
Ejemplo 25.- Función strcpy()
char *strcpy(char *s1, const char *s2);
Copia la cadena apuntada por s2 (incluyendo el carácter nulo) a la cadena
apuntada por s1
Valor de retorno:
La función retorna el valor de s1. Si al copiar una cadena a la otra se superponen,
entonces el comportamiento no está definido
#include <stdio.h>
#include <string.h>
int main() {
char s2[7] = "abcdefg";
char s1[7];
strcpy( s1, s2 );
printf( "s2=%s\n", s2 );
printf( "s1=%s\n", s1 );
return 0;
}
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 35
#include <stdio.h>
#include <string.h>
int main() {
char s1[5] = "Abeja”, s2[5] = "abeja"; int i;
EUI-SG/INFOR.UVA.ES S0_PR01_20061005 36