Skip to content

Instantly share code, notes, and snippets.

@oscarperpinan
Last active February 12, 2017 22:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oscarperpinan/c72962deec5187a1d26151c483ec320b to your computer and use it in GitHub Desktop.
Save oscarperpinan/c72962deec5187a1d26151c483ec320b to your computer and use it in GitHub Desktop.
Programación en C :: Tema 2 (Q103)
/* Hello World! */
#include <stdio.h>
void main()
{
printf("Hello World!\n");
}
/* Hello World! (2) */
#include <stdio.h>
void main()
{
printf("Hello World!\n");
printf("¡Hola Mundo!\n");
printf("Bonjour le Monde!\n");
printf("Hallo Welt!\n");
}
/* Hello World! (y 3) */
#include <stdio.h>
// void implica que main *no* devuelve nada
void main()
{
printf("Hello World!\n");
}
#include <stdio.h>
// Definimos la salida de main: int = entero
int main()
{
printf("Hello World!\n");
// Resultado de main
return 0;
}
/* Comentarios */
/** Este simple programa sirve para
mostrar un mensaje en pantalla */
#include <stdio.h>
// Todo programa necesita una función main.
// Su contenido está delimitado entre llaves
void main()
{
//La función printf muestra el mensaje en pantalla
// Atención: el mensaje debe ir entre comillas
printf("Hello World!\n");
} // Aquí acaba main y por tanto el programa
/* Constantes y Variables */
void main()
{
// declara una variable con el identificador v1
int v1;
// declara una constante simbólica
// con el identificador c1
const int c1 = 4;
// declara una variable v2,
// y le asigna el valor 2 (una constante literal)
int v2 = 2;
// asigna el valor de la
// constante c1 a la variable v1
v1 = c1;
// ídem con v2 (cambia su valor previo)
v2 = c1;
// error: c1 es una constante
c1 = 3;
}
/* Uso de =printf= */
#include <stdio.h>
void main()
{
// Usamos %i para números enteros
printf("Hoy es día %i\n", 6);
// Y también %d
printf("Hoy es día %d\n", 6);
}
/* Definición con =int= */
#include <stdio.h>
int main()
{
// int designa variable de números enteros
int dia;
// Asignamos un valor a la variable dia
dia = 6;
printf("Hoy es día %i\n", dia);
return 0;
}
/* Definición y asignación */
#include <stdio.h>
int main()
{
// Hacemos la asignación junto con la definición
int dia = 6;
printf("Hoy es día %i\n", dia);
return 0;
}
/* Lectura de números enteros con =scanf= */
#include <stdio.h>
int main()
{
int num;
printf("Escribe un número\n");
//Atención: con scanf el nombre de la
//variable debe ir precedido de &
scanf("%i", &num);
printf("Has escrito el número %i\n", num);
return 0;
}
/* Uso de =printf= */
#include <stdio.h>
int main()
{
double num = 102.30;
// Usamos %f para números reales
printf("Esto es un número real %f\n", num);
// Indicamos número de decimales explicitamente
printf("escrito con dos decimales %.2f\n", num);
return 0;
}
/* Distintos formatos */
#include <stdio.h>
int main()
{
double num = 103.56e10;
printf("Esto es un número real %f\n", num);
printf("... en notación científica %e\n", num);
printf("... y de forma automática %g\n", num);
return 0;
}
/* Lectura de datos con =scanf= */
#include <stdio.h>
int main()
{
float peso, altura, imc;
printf("Indica tu peso (kg) y altura (m)\n");
scanf("%f %f", &peso, &altura);
printf("Pesas %f kg, y mides %f m.\n",
peso, altura);
return 0;
}
/* Uso de =printf= */
#include <stdio.h>
int main()
{
// Usamos %c para caracteres
// Atención: para delimitar caracteres usamos '
printf("La última letra del alfabeto es la %c\n",
'z');
//Usamos %i para enteros
printf("Su valor en la tabla ASCII es %i\n",
'z');
//Y si usamos %c para un número?
printf("El número %i es la letra %c\n",
122, 122);
return 0;
}
/* Definición y asignación */
#include <stdio.h>
int main()
{
// Usamos char para asignar caracteres
char letra = 'z';
printf("La última letra es la %c\n", letra);
return 0;
}
/* Asignación de números a =char= */
#include <stdio.h>
int main()
{
// Y char con un número?
char letra = 122;
printf("La última letra es la %c\n", letra);
return 0;
}
/* Lectura de caracteres con =scanf= */
#include <stdio.h>
int main()
{
char letra;
printf("Escribe una letra\n");
scanf("%c", &letra);
printf("Has escrito letra %c\n", letra);
return 0;
}
/* Uso de =printf= */
#include <stdio.h>
void main()
{ // Usamos %s para cadenas de caracteres
// y ", a diferencia de los caracteres
printf("Estamos en %s\n", "febrero");
}
/* Definición y asignación */
#include <stdio.h>
int main()
{
int dia = 6;
int anho = 2017;
// char define una variable de caracteres.
// Para una cadena hay que indicar
// la longitud entre corchetes
char mes[10] = "febrero";
printf("Hoy es día %i de %s de %i\n",
dia, mes, anho);
return 0;
}
/* Definición y asignación */
#include <stdio.h>
int main()
{
// Las variables del mismo tipo
// se pueden definir en una misma línea
int dia = 6, anho = 2017;
char mes[10] = "febrero";
printf("Hoy es día %i de %s de %i\n",
dia, mes, anho);
return 0;
}
/* Lectura de cadena de caracteres con =scanf= */
#include <stdio.h>
int main()
{
char nombre[100];
printf("Escribe tu nombre\n");
// Atención: Con cadenas de caracteres
// *no* hay que usar &
scanf("%s", nombre);
printf("Te llamas %s\n", nombre);
return 0;
}
/* =sizeof= */
/* Proporciona el tamaño de su operando en bytes. */
#include <stdio.h>
int main()
{
int i1;
float f1;
double d1;
char c1;
printf("Un entero ocupa %d bytes\n", sizeof i1);
printf("Un float ocupa %d bytes\n", sizeof f1);
printf("Un double ocupa %d bytes\n", sizeof d1);
printf("Un caracter ocupa %d bytes\n", sizeof c1);
return 0;
}
/* Aritméticos con enteros */
#include <stdio.h>
int main()
{
int x, y, sum;
x = 10;
y = 15;
sum = x + y;
printf("La suma de %i con %i es %i\n",
x, y, sum);
return 0;
}
/* Aritméticos con caracteres */
#include <stdio.h>
int main()
{
char letra, Letra;
letra = 'z';
Letra = letra - 32;
printf("La letra %c en mayúscula es %c\n",
letra, Letra);
return 0;
}
/* Aritméticos con números reales */
#include <stdio.h>
int main()
{
float peso, altura, imc;
printf("Indica tu peso (kg) y altura (m)\n");
scanf("%f %f", &peso, &altura);
imc = peso / (altura * altura);
printf("Tu índice de masa corporal es %f\n", imc);
return 0;
}
/* Operaciones de asignación */
#include <stdio.h>
void main()
{
int a, b = 3;
a = 5;
printf("a = %d\n", a);
a *= 4; // a = a * 4
printf("a = %d\n", a);
a += b; // a = a + b
printf("a = %d\n", a);
a /= (b + 1); // a = a / (b+1)
printf("a = %d\n", a);
a = b = 1;
printf("a = %d, b = %d\n", a, b);
}
/* Operaciones de incremento */
#include <stdio.h>
int main()
{
int b = 2, r;
//Preincremento
r = ++b;
printf("b = %d, r = %d\n", b, r);
//Postincremento
r = b++;
printf("b = %d, r = %d\n", b, r);
return 0;
}
/* Operaciones de incremento */
#include <stdio.h>
void main()
{
int a = 0;
printf("a = %d\n", ++a);
printf("a = %d\n", a++);
printf("a = %d\n", a);
printf("a = %d\n", --a);
printf("a = %d\n", a--);
printf("a = %d\n", a);
}
/* Precedencia y asociatividad */
#include <stdio.h>
void main()
{
double a = 4, b = 7, c = 3, g = 9;
double result;
result = a + b * c;
printf( "resultado = %f\n", result);
result = (a + b) * c;
printf( "resultado = %f\n", result);
result = a * b / c * g;
printf("resultado = %f\n", result);
result = (a * b) / (c * g);
printf("resultado = %f\n", result);
}
/* Operaciones relacionales */
#include <stdio.h>
int main()
{
int x = 10, y = 3;
printf("x igual a y = %d\n",
(x == y));
printf("x distinto a y = %d\n",
(x != y));
printf("x mayor que y = %d\n",
(x > y));
printf("x menor o igual a y = %d\n",
(x <= y));
printf("x mayor o igual que y = %d\n",
(x >= y));
return 0;
}
/* Operaciones lógicas */
#include <stdio.h>
void main()
{
int a = 3, b = 2, c = 4, d = 5;
printf("resultado = %d\n",
(a > b) && (c < d));
printf("resultado = %d\n",
(a < 10) || (d != 5));
printf("resultado = %d\n",
(a != b) && (2 * d < 8));
}
/* Operaciones lógicas */
#include <stdio.h>
void main()
{
int x, resto;
printf("Escribe un número entero: ");
scanf("%d", &x);
// Calcula el resto de dividir por 2
resto = x % 2;
// Si el resto es 0, x es par.
printf("Es un número %s\n",
(resto == 0) ? "par" : "impar");
}
/* Conversión implícita */
/* - Asignaciones :: el valor de la derecha se convierte al tipo de la variable de la izquierda (posible aviso o error). */
#include <stdio.h>
int main()
{
float f1 = 3.7, f2;
int i1 = 2, i2;
// Real a entero: pierde decimales
i2 = f1;
printf("Un real %f convertido a entero %d\n",
f1, i2);
// Entero a real: no cambia valor
f2 = i1;
printf("Un entero %d convertido a real %f\n",
i1, f2);
return 0;
}
/* Conversión explícita */
/* - Conversión explícita o forzada :: =(tipo) expresión= */
#include <stdio.h>
int main()
{
float f1 = 3.7, f2;
int i1 = 2, i2;
f2 = (float) i1;
printf("Un entero %d convertido a real %f\n",
i1, f2);
i2 = (int) f1;
printf("Un real %f convertido a entero %d\n",
f1, i2);
return 0;
}
/* Conversión en expresiones */
/* - Expresiones :: los valores de los operandos se convierten al tipo del operando que tenga la precisión más alta. */
#include <stdio.h>
int main()
{
double f1 = 100;
int i1 = 150, i2 = 100;
printf("Un entero, %d, dividido por un real, %f,",
i1, f1);
printf(" produce un real, %f\n",
i1 / f1);
printf("Un entero, %d, por un entero, %d: %d\n",
i1, i2, i1 / i2);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment