Fundamentos de la Programacin
Introduccin a la Informtica
E.U. Politcnica.
Diseo Industrial. Primer Curso.
Curso 2005-2006
Jos Luis Leiva Olivencia.
Despacho: I-326(El Ejido)
05/05/2006
Introduccin
n
Estructura de un programa en C
n
Estructura de un programa en C
#include <stdio.h>
#define pi 3.14;
void funcion1();
main()
{
printf(Buenos das. Soy el programa principal.\n);
funcion1();
printf(Acabamos de realizar nuestro primer programa);
}
funcion1()
{
printf(Hola y adios. Soy un subprograma\n);
}
Variables de un programa
n
Nombre: identificador
Tipo: conjunto de valores que puede tomar
Valor: elemento del tipo que se le asigna
Operadores
n
Aritmticos:
+, - * , / (ojo si es float o int), ++, --, %
Relacionales
n
n
n
Lgicos
n
n
n
==
!=
>, <, >=, <=
&& ---- Y
|| ---- O
! ---- No
Asignacin:
=
A && B
A || B
Entrada de datos
n
10
Instruccin scanf
Instruccin scanf: Permite leer
datos desde teclado. Se
encuentra en la librera
stdio.h
scanf(formato,lista de
argumentos);
Ejemplo:
float n;
Comando
Tipo
%c
Carcter
%f
Real
%s
%d
Cadena de
caracteres
Entero
%i
Entero
scanf(%f,&n);
11
Instruccin cin
n
Ejemplo:
float numero;
cin>>numero;
12
Instruccin gets.
n
Ejemplo:
char nombre[20];
gets(nombre);
13
Salida de datos.
Conjunto de instrucciones que toman los datos finales
(resultados) de la memoria central y los envan a los
dispositivos externos. Su misin consiste en enviar
datos a un dispositivo externo.
n Instruccin printf (stdio.h):
printf(formato de los argumentos,lista de argumentos);
num=7;
printf(El valor del nmero es %d. Gracias\n,num);
n
14
Ejemplo
n
15
Solucin
#include <stdio.h>
#include <conio.c>
#include <math.h>
#define PI 3.14
main()
{
float radio,area,longitud, volumen;
printf(Introduzca el valor del radio: );
scanf(%f,&radio);
area=PI*radio*radio;
longitud=2*PI*radio;
volumen=4*PI*pow(radio,3)/3;
clrscr();
printf(El area resultante es: %f\n,area);
printf(El volumen resultante es: %f\n,volumen);
printf(El permetro resultante es: %f\n,longitud);
getche();
}
16
Ejemplo
n
17
Solucin
#include <stdio.h>
#include <conio.h>
main()
{
int a,b, suma, respta, producto;
float cociente;
printf(Introduzca el primer nmero: );
scanf(%d,&a);
printf(Introduzca el segundo nmero: );
scanf(%d,&b);
suma=a+b;
resta=a-b;
producto=a*b;
cociente=(float)a/b; /*Por qu hacemos esto?*/
printf(La suma es %d\n,suma);
printf(La resta es %d\n,resta);
printf(El producto es %d\n,producto);
printf(El cociente es %f\n,cociente);
getche();
}
Tema 2. Fundamentos de Programacin.
18
Ejemplo
n
#include <stdio.h>
main()
{
char letra;
printf(Introduzca letra: );
scanf(%c,&letra);
printf(El cdigo de %c es %d\n,letra,letra);
}
Tema 2. Fundamentos de Programacin.
19
Instrucciones alternativas
n
N
if (cond)
{ instrucciones;
}
COND
S
INSTRUCCIONES
20
10
Instrucciones alternativas
n
COND
INSTRUCCIONES 2
S
INSTRUCCIONES 1
if (cond)
{ instrucciones1;
}
else
{ instrucciones2;
}
Tema 2. Fundamentos de Programacin.
21
Instrucciones alternativas
n
default: instruccionesdefecto;
}
22
11
Ejemplo
n
Algoritmo que lee dos nmeros y nos dice cual es el mayor o si son iguales.
#include <stdio.h>
#include <conio.h>
main()
{
int a,b;
printf(Introduzca dos nmeros: );
scanf(%d,&a);
scanf(%d,&b);
if (a>b)
printf(El %d es el mayor\n,a);
else
if (a==b)
printf(Son iguales);
else
printf(El %d es el mayor\n,b);
getche();
}
Tema 2. Fundamentos de Programacin.
23
Ejemplo
Realizar un programa que pida el da de la semana y nos informe de su nombre
(1 Lunes, 2 Martes, .)
#include <stdio.h>
#include <conio.h>
main()
{
int dia;
printf(Introduzca da de la semana: \n);
scanf(%d,&dia);
switch (dia)
{
case 1: printf(Lunes);break;
case 2: printf(Martes);break;
case 3: printf(Mircoles);break;
case 4: printf(Jueves);break;
case 5: printf(Viernes);break;
default: printf(No es un da laborable); break;
}
getche();
}
n
24
12
Ejemplo
Algoritmo que lee tres nmeros cualesquiera y los escribe ordenados de
forma ascendente:
(Solucin no demasiado formal)
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,c;
printf(Introduzca 3 nmeros diferentes: );
scanf(%d,&a);
scanf(%d,&b);
scanf(%d,&c);
if ((a>b) && (b>c))
printf(%d-%d-%d\n,a,b,c);
if ((a>c) && (c>b))
printf(%d-%d-%d\n,a,c,b);
if ((b>a) && (a>c))
printf(%d-%d-%d\n,b,a,c);
n
25
Ejemplo
if ((b>c) && (c>a))
printf(%d-%d-%d\n,b,c,a);
if ((c>a) && (a>b))
printf(%d-%d-%d\n,c,a,b);
if ((c>b) && (b>a))
printf(%d-%d-%d\n,c,b,a);
getche();
}
26
13
Ejemplo
(Solucin ms formal)
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,c;
printf(Introduzca 3 nmeros diferentes: );
scanf(%d,&a);
scanf(%d,&b);
scanf(%d,&c);
if (a>b)
{
if (b>c)
printf(%d-%d-%d,a,b,c);
else
if (a>c)
printf(%d-%d-%d,a,c,b);
else
printf(%d-%d-%d,c,a,b);
}
Tema 2. Fundamentos de Programacin.
27
Ejemplo
else
{
if (b>c)
if (a>c)
printf(%d-%d-%d,b,a,c);
else
printf(%d-%d-%d,b,c,a);
else
printf(%d-%d-%d,c,b,a);
}
getche();
}
Tema 2. Fundamentos de Programacin.
28
14
Instrucciones repetitivas.
n
29
Instruccin while
n
while (cond)
{
bucle;
}
BUCLE
30
15
Ejemplo
n
#include <stdio.h>
main()
{
int numero;
printf(Introduzca numero positivo: );
scanf(%d,&numero);
while (numero>0)
{
printf(EL nmero vale ahora: %d\n,numero);
numero--;
}
getche();
}
Tema 2. Fundamentos de Programacin.
31
Instruccin do..while
n
do
{
bucle;
}while (cond);
COND
si
no
Tema 2. Fundamentos de Programacin.
32
16
Ejemplo
n
#include <stdio.h>
main()
{
int numero;
long fact=1;
printf(Introduzca numero positivo: );
scanf(%d,&numero);
do
{
fact=fact*numero;
numero--;
} while (numero>0);
printf(El factorial es %ld.,fact);
getche();
}
Tema 2. Fundamentos de Programacin.
33
Instruccin for
n
34
17
Instruccin for
Por ejemplo, para imprimir los mltiplos de 7 que hay
entre 23 y 567
for (i=7;i<=567;i=i+7)
{
printf(%d\t,i);
}
n Por ejemplo, el factorial de un nmero positivo
for (i=1;i<=n;i++)
{
fact=fact*i;
}
n
35
Contadores
Acumuladores
Interruptores o conmutadores
36
18
Contadores
n
37
Ejemplo
Algoritmo que lee 100 nmeros y cuenta cuantos son positivos.
#include <stdio.h>
main()
{
int numero,contador=0,i=0;
do
{
printf(Introduzca numero : );
scanf(%d,&numero);
i++;
if (numero>0)
contador++;
}
while (i<100);
printf(EL nmero total de positivos ha sido: %d\n,contador);
getche();
}
n
38
19
Acumuladores
n
39
Ejemplo
Algoritmo que calcula y escribe la suma y producto de los 10
primeros nmero naturales.
#include <stdio.h>
main()
{
int i=1,suma=0,producto=1;
do
{
suma=suma+i;
producto=producto*i;
}
while (i<=10);
printf(La suma es %d. El producto es %d\n,suma,producto);
getche();
}
n
40
20
Interruptores o conmutadores.
n
41
Ejemplo
Algoritmo que lee una secuencia de notas (con valores que van de 0 a 10) que
termina con el valor -1 y nos dice si hubo o no alguna nota con valor 10.
#include <stdio.h>
main()
{
int sw=0,nota;
do
{
printf(Introduzca nota: );
scanf(%d,¬a);
if (nota==10)
sw=1;
}
while (nota!=-1);
if (sw==1)
printf(Hubo nota 10);
else
printf(No hubo nota 10);
getche();
}
n
42
21
int v[100],i;
.
.
for (i=0;i<100;i++)
tratar v[i]
.
.
Tema 2. Fundamentos de Programacin.
43
int m[10][20],f,c;
.
for (f=0;f<10;f++)
for(c=0;c<20;c++)
tratar m[f][c];
44
22
#include <stdio.h>
#include <conio.c>
main()
{
float radio, area,volumen,pi=3.14;
int opcion;
do{
clrscr();
printf(Men de opciones);
printf(1. rea crculo\n);
printf(2. Volumen esfera\n);
printf(3. Salir\n);
printf(Elegir opcin: );
scanf(%d,&opcion);
Tema 2. Fundamentos de Programacin.
45
if (opcion==1)
{
printf(Introduzca el radio: );
scanf(%f,&radio);
if (radio<0)
{printf(Valor no vlido); }
else
{
area=pi*radio*radio;
printf(El rea resultante es: %f,area);
}
}
Tema 2. Fundamentos de Programacin.
46
23
if (opcion==2)
{
printf(Introduzca el radio: );
scanf(%f,&radio);
if (radio<0)
{printf(Valor no vlido); }
else
{
volumen=4*pi*radio*radio*radio/3;
printf(El volumen resultante es: %f,volumen);
}
}
getche();
}while (opcion!=3);
}
Tema 2. Fundamentos de Programacin.
47
#include <stdio.h>
#include <conio.h>
main()
{
int n=2, primo=1,numero; /*El valor 1 de la variable primo indica que suponemos que es primo*/
printf(Introduzca nmero: );
scanf(% d,&numero);
while (primo==1) && (n<numero ) )
{
if (numero%n==0)
{ primo=0;}
/*Al ser divisible por un nmero ms pequeo asigno el valor 0 a primo para indicar que no es primo*/
n++;
}
if (primo==1)
{ printf(E l numero %d es primo,numero);}
else
{printf(E l numero %d no es primo,numero);}
getche();
}
48
24
49
#include <stdio.h>
#include <conio.h>
main()
{ int numero,suma=0;
do
{
printf(Introduzca numero: );
scanf(%d,&numero);
if (numero!=0)
{ suma=suma+numero;}
}while (numero!=0);
printf(La suma es %d\n,suma);
getche();}
Tema 2. Fundamentos de Programacin.
50
25
51
#include <stdio.h>
#include <conio.h>
main()
{ int v[10], i;
for (i=0;i<10;i++)
{
printf(Introduzca nmero %d: ,i+1);
scanf(%d,&v[i]);
}
for (i=0;i<10;i++)
printf(El nmero que est en la posicin %d es %d\n
,i+1,v[i]);
getche();}
52
26
Librera string.h
n
strcat(cad1,cad2);
strcmp(cad1,cad2);
strlen(cad);
strcpy(cad1,cad2);
Librera stdlib.h
n
fflush(stdin)
system
53
Bibliografa
n
54
27