Está en la página 1de 17

LENGUAJE C

• ESTRUCTURA DE UN PROGRAMA C
 Consta de una o más funciones, las cuales se llaman main. Desde esta
función se pueden llamar a otras funciones.
 Cada función está formada por la cabecera de la función, compuesta
por el nombre de la misma y la lista de argumentos, si los hay. La
declaración de las variables a utilizar y la secuencia de sentencias a
ejecutar.
 Una cabecera de función: la misión de la cabecera es identificar la
función, así como declarar el tipo de datos que devuelve.
 Declaración de argumentos: la declaración de argumentos informa
de los parámetros que recibe la función (en caso de recibir alguno).
 Una sentencia compuesta: que contiene el código de la función.

Declaraciones de funciones

Main ( )
{
Definimos Variables locales (int)
Instrucciones
}

#include “stdio.h” Le decimos de que librería coger los datos


Main ( ) Le indicamos el principio de la función.
{ Abrimos el programa
Int num1; Indicamos la variable y de que tipo es.
Float num2, resu; Indicamos las variables y de que tipo son.
Printf (“introduce un número: “); Nos muestra un mensaje por pantalla.
Scanf (“%d”, &num1); Lee el numero que hemos introducido.
Printf (“Introduce otro número: “); Nos muestra otro mensaje por pantalla.
Scanf (“%f”, &num2); Lee el 2º numero que hemos introducido.
resu = num1*num2; Hace la operación con las 2 variables introducidas y
las guarda en la variable resu.
printf ("El resultado es: %f”, resu); Nos muestra el mensaje con el resultado por la
pantalla.
} Cerramos el programa.
• VARIABLES
 VARIABLE: representa una dirección en memoria del ordenador
donde se almacena un dato que puede ser recuperado y modificado a
lo largo del programa. Antes de utilizar una variable hay que
declararla.
 Toda variable tiene dos partes: nombre (identificador) y un tipo.

<tipo> <identificador>

Es posible inicializar y declarar más de una variable del mismo tipo en


la misma sentencia:

<tipo> <identificador>,<identificador2>=<valor>,
<identificador3>=<valor>,<identificador>;

Ejemplo:
int num1=4,num2,num3=6;

Tipo: nos índica que lo que guardamos en la memoria es un número, o una


letra, o una cadena de letras.

Tipos de datos

C proporciona cuatro tipos de datos básicos para almacenar caracteres y


números.
Los tipos de datos básicos son:

char: para almacenar un carácter.


Ejemplo: char letra = ‘a ‘;
int: se utiliza para almacenar números enteros.
Ejemplo: int contador = 0;
int posición;
float: se utiliza para almacenar números reales con precisión simple.
Ejemplo: float precio=0.1;

float area;
double: se utiliza para almacenar los números reales con doble precisión. La
diferencia con la anterior es la cantidad de bytes que se utilizan para
almacenar el valor de la variable.

C Carácter
D Decimal
E Numero de punto flotante en notación científica
F Numero de punto flotante decimal
G En el formato-e o el formato-f
S String

¿Dónde se declaran?

Las variables pueden ser de dos tipos según el lugar en que las
declaremos: globales o locales.
La variable global se declara antes de la main( ). Puede ser
utilizada en cualquier parte del programa y se destruye al finalizar
éste.
La variable local se declara después de la main( ), en la función
en que vaya a ser utilizada. Sólo existe dentro de la función en que
se declara y se destruye al finalizar dicha función.
El identificador (nombre de la variable) no puede ser una
palabra clave y los caracteres que podemos utilizar son las letras:
a-z y A-Z (ojo! la ñ o Ñ no está permitida), los números: 0-9 y el
símbolo de subrayado _. Además hay que tener en cuenta que el
primer carácter no puede ser un número.

Ejemplo:

/* Declaración de variables */
#include <stdio.h>
int a;
main() /* Muestra dos valores */
{
int b=4;
printf("b es local y vale %d",b);
a=5;
printf("\n a es global y vale %d",a);
}
 CONSTANTE:

 Son valores fijos que no se pueden modificar por el programa.


Estos valores se almacenan en memoria.

 Pueden ser de tipo entero, real, carácter, de cadena o enumerado.

 Para expresar una constante con un nombre, la constante debe ser


declarada previamente. Las constantes que se declaran en un
programa escrito en lenguaje C reciben un tratamiento diferente
al de la mayoría de los lenguajes de programación. En C, para
representar a las constantes, se utilizan constantes simbólicas.
Una constante simbólica representa (sustituye) a una secuencia
de caracteres, en vez de representar a un valor (dato almacenado
en memoria).

 Para que una variable sea constante escribimos: const.

 Sintaxis:
• #define <constante> <secuencia_de_caracteres>

• La directiva #define indica al preprocesador que debe sustituir, en el


código fuente del programa, todas las ocurrencias del
<nombre_de_la_constante> por la <secuencia_de_caracteres>, antes de
la compilación.

Ejemplo 2: Dos constantes muy habituales son:

#define PI 3.141592
#define NUMERO_E 2.718281

En programación es una buena práctica escribir los identificadores de las


constantes en mayúsculas, de esta forma es más fácil localizarlos en el
código de un programa. Después de la declaración de una constante
simbólica, no se escribe un carácter punto y coma (;), cosa que sí se debe
hacer al declarar una variable.
Por otra parte, no se puede declarar más de una constante simbólica en
una misma línea de código.

Ejemplo 3: Para declarar las constantes simbólicas PI y NUMERO_E, no


se puede escribir:

#define PI 3.141592, NUMERO_E 2.718281

Por otra parte, en C, es posible declarar una variable indicando que su


valor es inalterable. Para ello, se utiliza el cualificador const.

Ejemplo 4: Uso de const:

const int temperatura = -5;

En el ejemplo, se ha declarado la variable entera temperatura


inicializada al valor -5 y, por medio de const, que es una palabra
reservada, se ha indicado que su valor no puede cambiar durante la
ejecución del programa. En cierta manera, la variable temperatura está
simulando a una constante.

• ARCHIVOS DE CABECERA

 Son los parámetros que ponemos al principio del programa para que
encuentre los parámetros utilizados en el programa.
 es una recopilación de ficheros cabecera y librerías con rutinas que implementan
operaciones comunes, como las de entrada salida o el tratamiento de cadenas. no
incorpora palabras clave para estas tareas, por lo que prácticamente todo
programa implementado en C se basa en la librería estándar para funcionar.
 se encuentran en un fichero denominado archivo de cabecera (con extensión
".h"), pero la implementación real de las funciones están separadas en un
archivo de la librería.
 funciones para entrada de cadenas como gets() o scanf()
 Las funciones de su biblioteca estándar están clasificadas en base a
su funcionalidad, y sus declaraciones se agrupan en archivos con
extensión (.h).

 Definir librerias:
 stdio.h: entrada y salida de datos.
 conio.h: entrada y salida por consola.
 math.h: Contiene formulas matemáticas.
 string.h: Manipulación de cadenas.
 time.h: Contiene la hora y la fecha del sistema.
 Malloc.h: Retorna un puntero nulo o un puntero al espacio
adjudicado.
 Stdlib.h: Gestión de memoria dinámica, control de procesos y
otras.

• OPERADORES ARIMETICOS Y DE ASIGNACION


 Los operadores aritméticos nos permiten, básicamente, hacer
cualquier operación aritmética, que necesitemos (ejemplo: suma,
resta, multiplicación, etc). En la siguiente tabla se muestran los
operadores de los que disponemos en C y su función asociada

+,- Suma, resta ^ EXOR booleano


++, Incremento,
~ Complemento a 1
-- decremento
*, /, Multiplicación,
! Complemento a 2, NOT logico
% división, modulo
>>, Rotacion de bits a la
==, != Igualdad, desigualdad
<< derecha, izquierda
Sqrt (num) Raiz cuadrada
& AND booleano &&, || AND, OR lógico
OR booleano Menor, menor o igual Mayor,
| <, <= ó >, >=
mayor o igual

Falta jerarquía de operadores.


 En otros lenguajes de programación se considera la asignación como
una sentencia especial, en C, esto no es así. La asignación es un
operador más. Este operador, tiene como value (left value, el valor a
la izquierda del operador) un variable y como rvalue una expresión
válida. Puesto que es un operador, el todo es una expresión:
Es por ello que podemos hacer asignaciones múltiples:

int x,y,z;

x = y = z = 0;
// Cuidado no todos los compiladores permite estas asignaciones
múltiples. Yo lo quitaría.

Existen una serie de casos particulares de la asignación, que son las


asignaciones compuestas. La asignación compuesta simplifica la escritura de
operaciones en las que el lvalue aparece tanto en la derecha como en la
izquierda; como en el siguiente ejemplo:

int x;

x = x + 2;

La forma abreviada de escribirlo será poniendo el operador ``+'' (en este


caso) a continuación el igual y por último la expresión que estamos sumando
al lvalue, que en este caso es 2.

int x;

x += 2;

• ENTRADA/SALIDA: SCANF/PRINTF
 SCANF:
 Lee el valor que introducimos en la variable.

// solo esto de scanf y printf es muy poco .Te pongo el caso de de


printf() y tu intentas hacer parecido pero con el scanf.

• Sentencia printf( )
La función printf permite la aparición de valores numéricos,
caracteres y cadenas de texto por pantalla.
El prototipo de la sentencia printf es el siguiente:

printf(control,arg1,arg2...);

En la cadena de control indicamos la forma en que se mostrarán los


argumentos posteriores. También podemos introducir una cadena de texto
(sin necesidad de argumentos), o combinar ambas posibilidades, así como
secuencias de escape.
El modificador está compuesto por el carácter % seguido por un carácter de
conversión, que indica de que tipo de dato se trata.

Ejemplo:

/* Uso de la sentencia printf() 1. */

#include <stdio.h>
main() /* Saca por pantalla una suma */
{
int a=20,b=10;
printf("El valor de a es %d\n",a);
printf("El valor de b es %d\n",b);
printf("Por tanto %d+%d=%d",a,b,a+b);
}

Los modificadores más utilizados son:

%c Un único carácter
%d Un entero con signo, en base decimal
%u Un entero sin signo, en base decimal
%o Un entero en base octal
%x Un entero en base hexadecimal
%e Un número real en coma flotante, con exponente
%f Un número real en coma flotante, sin exponente
%s Una cadena de caracteres
%p Un puntero o dirección de memoria

Ejemplo:
/* Uso de la sentencia printf() 2. */
#include <stdio.h>
main() /* Modificadores 1 */
{
char cad[]="El valor de";
int a=-15;
unsigned int b=3;
float c=932.5;
printf("%s a es %d\n",cad,a);
printf("%s b es %u\n",cad,b);
printf("%s c es %e o %f",cad,c,c);
}

El formato completo de los modificadores es el siguiente:

% [longitud] [.precisión] [l/L] formato

Longitud: especifica la longitud mínima del campo, hace que rellene la


salida con espacios para asegurar que el campo alcance la longitud mínima. Si
la cadena o el número es más largo que la longitud, se imprimirá toda la
longitud. Si queremos que aparezcan ceros en vez de blancos se pondrá
antes un cero.
Precisión: indicamos el número máximo de decimales que tendrá el valor.
l/L: utilizamos l cuando se trata de una variable de tipo long y L cuando
es de tipo double.

Ejemplo:

/* Uso de la sentencia printf() 3. */

#include <stdio.h>
main() /* Modificadores 2 */
{
char cad[ ]="El valor de";
int a=25986;
long int b=1976524;
float c=9.57645;
printf("%s a es %9d\n",cad,a);// longitud 9
printf("%s a es %09d\n",cad,a);// longitud 9 relleno con ceros
printf("%s a es %3d\n",cad,a);// lon 3 veo todo el número
printf("%s c es %.3f\n",cad,c); // indicamos que queremos 3 decimales
printf("%s c es %10.2f\n",cad,c);//lon 10 y 2 decimales
printf("%s b es %ld\n",cad,b);// variable de tipo long
getchar();
getchar();

• Sentencia escanf:
o

• SIMBOLOS:

\a Alerta
\b Espacio atrás
\f Salto de página
\n Salto de línea
\r Retorno de carro
\t Tabulación horizontal
\v Tabulación vertical
\\ Barra invertida
\' Comilla simple
\" Comillas dobles
\OOO Visualiza un carácter cuyo código ASCII es OOO en octal
\xHHH Visualiza un carácter cuyo código ASCII es HHH en hexadecimal
SENTENCIAS:
• Sentencia IF:
o Simple:

If (condición) if (condición)
Sentencia sentencia1
else
sentencia2

if (condición)
{
Sentencia1
Sentencia2
Sentencias n
}

o Anidada:
if (condición1)
if (condición2)
Sentencia1
Else
Sentencia2
Else
Sentencia 3

o Mas de una condición:


If (condicion1)
Sentencia1
Else if (condicion2)
Sentencia2
Else
Sentencia n
• Estructura de decisión múltiple (switch):
La estructura switch evalúa una expresión que puede tomar n valores
distintos, según con cual de estos valores coincida, se ejecutaran ciertas
acciones, es decir, el programa o algoritmo seguirá un determinado camino
entre los n posibles.

Esta estructura inspecciona una variable y la va comparando con una lista de


constantes, cuando encuentra una coincidencia se ejecuta la sentencia o
grupo de sentencias asociados. Entonces podemos decir que la estructura
funcionaria así:
Según (switch) la variable que tenemos, compáramela con la constante1, si
es ejecuta sentencias sino compáramela con la constante2… y así
sucesivamente hasta que encuentra alguna coincidencia. Si no se encuentra
ninguna coincidencia se ejecutaría la sección default (que no es obligatoria).
Aunque haya más de una sentencia no es necesario poner comillas. Veamos
un ejemplo para entender mejor esta complicadísima estructura:

o La sintaxis de la estructura switch es:

Switch (variable)
{
case cte1: sentencia;
break;
case cte2: sentencia;
break;
...

default: sentencia;
}

• EJEMPLO:

#include <stdio.h>
#include <conio.h>

int main()
{
int n;
printf("1.- Quiero comerme un bocadillo\n");
printf("2.- Quiero comerme una hamburguesa\n");
printf("\n ¿Que quieres comerte?");
scanf("%d",&n);

switch(n){
case 1: printf("\nTe has comido un bocadillo");
getch();
break;
case 2: printf("\nTe has comido una hamburguesa");
getch();
break;
default: printf("\nPor tonto no te comes nada");
getch();
break;
}
return 0;
}

Ejercicio 16:
#include "stdio.h"
main ()
{
int num1, num2, operacion, suma, resta, multi, division;
printf ("Introduce el primer numero: ");
scanf ("%d", &num1);
printf ("Introduce el segundo numero: ");
scanf ("%d", &num2);
printf ("Ahora introduce la operacion que deseas realizar: \n 0 Suma; \n 1
Resta; \n 2 Multiplicacion; \n 3 Division \n\nOpcion.....:");
scanf ("%d", &operacion);

switch (operacion)
{
case 0:
printf ("\nEl resultado de la suma es: %d", num1+num2);
break;

case 1:
printf ("\nEl resultado de la resta es: %d", num1-num2);
break;

case 2:
printf ("\nEl resultado de la multiplicacion es: %d", num1*num2);
break;

case 3:
printf ("\nEl resultado de la division es: %d", num1/num2);
break;
}
return 0;
}

• SENTENCIA WHILE:

o Sintaxis:

While (condición)
{
Sentencia 1;
Sentencia 2;
.
.
.
Sentencia n;
}

Ejemplo:

Int x=1;

While (x<100)
{
Printf (“numero: %d”, x);
X=x+1
}
• SENTENCIA DO WHILE:
o Lo hará minimito una vez.
o SINTAXIS:

Do
{
Sentencia 1;
Sentencia 2;
Sentencias n;
}
While (condición)

• SENTENCIA FOR:

Es uno de los más útiles y de los más usados. Se utiliza mucho para arrays.

for(valor inicial; condición; incremento o decremento)

Sentencias

p.e.

for(a=7; a>10; a++)

Sentencias

p.e.

for(a=o, b=7; a<10; a++, b++)

for(a=0, b=7; a<10&&b>20;a++,b++)

CONTINUE:
Provoca un salto en la ejecución del bucle continuando a la siguiente
iteración.

for( ; ; )

--

--

if(condición)

{continue;}

--

--

En distintas circunstancias puede haber iteraciones que no se ejecuten.

También podría gustarte