presentación

Anuncio
Programación en C
1
• Creación de un proyecto
• Variables y constantes
• Funciones
• Entrada/Salida
• Definidas por el programador
• Operadores
• Control de flujo de ejecución
2
Creación de un proyecto
#include <stdio.h>
#include<stdlib.h>
# define constantes
ZONA DONDE
DECLARAMOS
LAS FUNCIONES
int main (int argc, char *argv[])
{
ZONA DONDE
ESCRIBIREMOS
NUESTRO PROGRAMA
}
system (“PAUSE”);
return 0;
3
VARIABLES Y CONSTANTES
• En C es necesario declarar todas las variables y
constantes que se vayan a utilizar.
• Una
U
variable
i bl o constante
t t no declarada
d l
d produce
d
un
mensaje de error en la compilación.
• Cuando una variable o constante es declarada se le
reserva memoria de acuerdo con su tipo.
• Hemos visto diferentes tipos:
• int
• float
• char
• string (o palabra)
• array (vector o matriz)
4
CONSTANTES
A diferencia de las variables, su valor no se modifica durante la
ejecución del algoritmo.
Se pueden definir de diferentes formas pero nosotros vamos a
utilizar sólo el define.
#include <stdio.h>
#include<stdlib.h>
#define PI 3.141592
3 141592
int main (int argc, char *argv[])
{
ZONA DONDE
ESCRIBIREMOS
NUESTRO PROGRAMA
}
system (“PAUSE”);
return 0;
5
DEFINICIÓN
Ó DE VARIABLES
Se ha de hacer siempre al principio del programa
#include <stdio.h>
#include<stdlib.h>
int main (int argc, char *argv[])
{
int a;
float b;
char c;
char d[50];
char *e;
e;
int f[5];
int g[5][3];
entero
real
carácter
string o palabra
string o palabra
vector de enteros
matriz de enteros
Cuerpo del Programa
}
system (“PAUSE”);
return 0;
6
ASIGNACIÓN DE VALORES A LAS VARIABLES
• Leer de teclado
Mediante función scanf
scanf(“%d”,&a);
Lectura de un entero
scanf(“%f”,&b);
Lectura de un real
scanf(“%c”,&c);
a (
,& );
Lectura
u a de
d un
u carácter
a á
scanf(“%s”,d);
Lectura de un string
scanf(“%s”,e);
f(“% ” )
L t
Lectura
de
d un string
t i
for (i=0;i<=4;i++) scanf(“%d”,&f[i]);
Lectura de un vector
for (i=0;i<=4;i++)
Lectura de una matriz
for (j=0;i<=2;j++) scanf(“%d”,&g[i][j]);
7
ASIGNACIÓN
Ó DE VALORES A LAS VARIABLES
• Asignación interna
Mediante el operador =
a=1;
a=a+1;
b=2.5; b=b/3;
c=´a´;
strcpy(d, nombre1 );
strcpy(d,”nombre1”);
strcpy(e,”nombre2”);
f[3]=5;
f[4]=a+f[3];
g[3][2]=5;
g[4][2]=a+f[3];
8
Funciones
• Son subalgoritmos que luego pueden ser reutilizados en
diferentes algoritmos
g
como si fuesen operaciones
p
primitivas.
• En otras palabras, las funciones son trozos de código que
van a ser utilizados muchas veces. Para no tener que
escribirlos cada vez, lo que hacemos es una llamada a la
función que ejecuta ese código.
• Existe la posibilidad de anidamiento (definir un
subalgoritmo dentro de otro.
• Pueden estar:
• Definidas en la librería de C.
• Definidas por el programador
9
Funciones
• Definidas en la librería de C.
• Necesitamos incluir la librería correspondiente
• Entrada/Salida:
#include <stdio.h>
scanf, printf, …
• Matemáticas:
á
#include <math.h>
sqrt,…
• Tratamiento de cadenas
#include <stdlib.h>
strcpy,…
strcpy
• etc.
10
Funciones de Entrada/Salida
• Para su utilización es necesario incluir el archivo stdio.h
#include <stdio.h>
• Entrada: lee datos de la entrada estándar (normalmente el
teclado).
• scanf(“%tipo”,&variable);
Si la variable es de tipo string, no hay que ponerle & delante.
scanff
scanf
scanf
scanf
scanf
(“%d”,&a);
(“%d”
& )
(“%f”,&b);
(“%c”,&c);
(“%s”
(“%s”,d);
d);
(“%s”,e);
iintt a;
float b;
char c;
char d[20];
char *e;
11
Funciones de Entrada/Salida
• Salida: escribe texto y el valor de las variables por la salida
estándar (normalmente la pantalla).
pantalla)
Podemos escribir:
ƒ Texto
printf (“texto que queremos que salga por la pantalla”);
ƒ El valor de las variables que le indiquemos
printf(“%tipo”,variable);
No hace falta poner & delante de la variable
ƒ Combinar texto y variables
printf(“texto1 %tipo1 texto2 %tipo2”,variable1,variable2);
ƒ Caracteres especiales
printf(“\n”);
Salto de línea
printf(“\t”);
Tabulador
12
Funciones de Entrada/Salida
a=3;
b=2.5;
printf (“El valor de a es %d \n\t El valor de b es %f”,a,b);
El valor de a es 3
El valor de b es 2.5
13
Funciones
• Definidas por el programador.
• Resultado: devuelven un valor tipo int, float,… o nada void.
• Parámetros: se les pueden pasar parámetros.
• Formales: aparecen en la definición de la función
• Actuales: aparecen en la llamada a la función
• Declaración: se han de declarar antes de main.
• Referencia: dentro del algoritmo,
algoritmo se referencia a la función
con su nombre y con sus parámetros.
• Variables locales: declaradas en la función y sólo existen
dentro de ella.
14
#include
#i
l d <stdio.h>
tdi h
#include<stdlib.h>
Funciones
int factorial (int n)
{
int ret;
ret=1;
while (n>1)
{
ret=ret*n;
n--;;
};
return ret;
};
int main (int argc, char *argv[])
{
int x,y;
x y;
x=5;
y=factorial (x);
printf (“%d!=%d\n”
( %d!=%d\n ,x,y);
x y);
}
Declaración de la función
n, p
parámetro formal de tipo
p int
ret, variable local
Devuelve como resultado el valor
int de ret
Referencia
Se le pasa x como parámetro actual
El resultado se almacena en y
15
OPERADORES
• Aritméticos
• De asignación
• Incrementales
• Relacionales
• Lógicos
16
OPERADORES ARITMÉTICOS
• Suma
+
• Resta
-
• Multiplicación *
• División /
• Resto
%
17
OPERADORES DE ASIGNACIÓN
variable = expresión;
Una variable puede aparecer a la izquierda y a la derecha
del operador =
Sin embargo, a la izquierda de dicho operador NUNCA
puede haber una expresión.
p
p
a+b = c es incorrecto.
Existen otros 4 operadores de asignación:
+=
-=
*=
/=
x
x
x
x
+=1;
-=1;
*=3;
/=2;
equivale
equivale
equivale
equivale
a
a
a
a
x
x
x
x
=
=
=
=
x+1;
x-1;
x*3;
x/2;
18
OPERADORES INCREMENTALES
++
--
• Incrementan o disminuyen en una unidad el valor de la
variable.
• Si preceden a la variable, ésta
é
es modificada antes de
que el valor de la variable sea utilizado en la expresión
en la que aparece.
• Si es la
l variable
i bl la
l que precede
d all operador,
d
ésta
é t es
modificada después de que el valor de la variable sea
utilizado en la expresión en la que aparece.
i = 2;
j = 2;
m = i++;
n = --j;
//después de ejecutarse esta sentencia,
sentencia
m vale 2 e i vale 3
//después de ejecutarse esta sentencia,
n vale 1 y j vale 1
19
OPERADORES INCREMENTALES
++
--
i = 3;
j = 10;
x = i-i
+ ++j;
j
// (x
( = 14,
14 i = 2,
2 j = 11)
printf(“x = --i + j++ => %d\n”, (--i + j++));
// x = --i + j++ => 12
20
OPERADORES RELACIONALES
• Permiten evaluar condiciones mediante la comparación
de dos expresiones.
• El resultado es 0 (falso) si la condición no se cumple y
1 (verdadero) en caso contrario.
• Igual que
expresión1 == expresión2
• Menor que
expresión1 < expresión2
• Mayor que
expresión1 > expresión2
• Menor o igual que
expresión1 <= expresión2
• Mayor o igual que
expresión1 >= expresión2
• Distinto que
expresión1 != expresión2
21
OPERADORES LÓGICOS
• Permiten combinar los resultados de los operadores
relacionales.
• El resultado es 0 (falso) si la condición no se cumple y
1 (verdadero) en caso contrario.
•Y
expresión1 && expresión2
(a< b) && (b
(a<=b)
(b==c)
c)
•O
expresión1 || expresión2
(a > b) || (b==c)
22
SENTENCIAS
Terminan todas con ;
•Simples:
• Declaración:
• Instrucción:
I t
ió
int a;
a = 1;
1
• Vacía: No hace nada
•;
• Compuesta o bloque:
• Tratar varias sentencias simples como un bloque
• { … };
23
CONTROL DE FLUJO DE EJECUCIÓN
• Las sentencias de un programa C, se ejecutan de
manera secuencial.
• Sin embargo, podemos modificar este flujo secuencial
utilizando
tili
d sentencias
t
i d
de
• Bifurcación
• if..else
if else
• switch
• Bucles
• while
• do..while
• for
24
Bifurcación
s1;
if (p)
{
s2; Si se cumple p, la secuencia es: s1, s2, s3
};
Si no se cumple p, la secuencia es: s1, s3
s3;
s1
si
p
s2
no
s3
25
s1;
if (p)
{
s2;
}
else
{
s3;
};
s4;
Bifurcación
Si se cumple p, la secuencia es: s1, s2, s4
Si no se cumple p, la secuencia es: s1, s3, s4
s1
s3
no
p
si
s2
s4
26
Bif
Bifurcación
ió
s1;
switch(n)
{
case v1: s2; break;
case v2: s3; break;
case v3: s4; break;
…
default: sn; break;
};
s;
27
Bucles
• while
• do
while
while
hil ((p))
{
s;
};
do
{
s;
} while (p);
•for
for (i=vi; i!=vf; i=i+inc)
{
s;
};
28
Bucles
• while
• do
•for
while
int n,i;
n = 10;; i = 0;;
while (i <= n)
{ printf(“%d\n”,i);
i++;
};
int n,i;
n = 10; i = 0;
do
{ printf(“%d\n”,i);
i++;
} while (i <= n);
int n,i;
,;
n = 10;
for (i = 0; i <=n; i++)
{ printf(“%d\n”,i);
};
29
Descargar