Tema 2. Fundamentos en la Programación.

Anuncio
Tema 2. Fundamentos de la Programación
Introducción a la Informática
E.U. Politécnica.
Diseño Industrial. Primer Curso.
Curso 2005-2006
José Luis Leiva Olivencia.
Despacho: I-326(El Ejido)
05/05/2006
Dpto. Lenguajes y Ciencias de la Computación
1
Introducción
n
n
Un programa se considera como una secuencia lógica
de instrucciones que manipulan un conjunto de
objetos (datos) para obtener unos resultados.
Todo programa contiene dos bloques diferenciados:
n
n
n
Bloque de declaraciones: se especifican los objetos que utiliza
el programa (constantes, variables, tablas, registros, etc)
Bloque de instrucciones: conjunto de operaciones que se han
de realizar para la obtención de los resultados obtenidos.
Las instrucciones de un programa consisten
generalmente en modificar los objetos del programa
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
2
1
Historia del lenguaje C
n
n
n
C es un lenguaje moderno de propósito general que
combinan las características e un lenguaje de alto
nivel con una serie de características que sólo se
encuentran en los de más bajo nivel.
Es un lenguaje que no está ligado a ningún sistema
operativo, lo que permite la portabilidad de programas
escritos en este lenguaje.
Existe un gran número de compiladores, nosotros
utilizaremos en clase el compilador DEV-C++
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
3
Estructura de un programa en C
n
n
El uso de mayúsculas y minúsculas INFLUYE de
manera decisiva en el lenguaje C. Se recomienda para
evitar problemas escribir siempre en minúsculas.
La cabecera de un programa en C o bloque de
declaraciones suelen constar de:
n
Comentarios (nombre de programa, fecha, programador,…)
n
n
n
Directrices #include (de inclusión) y #define (de sustitución)
n
n
n
Ej. /*Esto es un ejemplo*/
/*Programa realizado por Agapito Perez*/
Ej. #include <stdio.h>
Ej. #define pi 3.14
El bloque de instrucciones DEBE estar compuesto por
funciones, una de ellas se denomina main.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
4
2
Estructura de un programa en C
#include <stdio.h>
#define pi 3.14;
void funcion1();
main()
{
printf(“Buenos días. Soy el programa principal.\n”);
funcion1();
printf(“Acabamos de realizar nuestro primer programa”);
}
funcion1()
{
printf(“Hola y adios. Soy un subprograma\n”);
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
5
Variables de un programa
n
Son objetos de un programa que son manipulados por las
instrucciones. Mediante ellos, podremos realizar el
almacenamiento de los datos y de los resultados de las distintas
operaciones que intervienen en la solución del problema. Todo
variable tiene 3 atributos:
n
n
n
n
n
Nombre: identificador
Tipo: conjunto de valores que puede tomar
Valor: elemento del tipo que se le asigna
El valor de una variable puede cambiar durante la ejecución de
un programa y debe ser declarada antes de ser utilizada. Su
declaración consiste en definir el nombre de la misma con su tipo
correspondiente. Cuando queramos componer una cadena de
caracteres, pondremos la información entre comillas(“Ejemplo”).
Si se trata de un carácter simple, lo escribiremos entre comilla
simple(‘C’).
El lenguaje C utiliza las siguientes palabras para designat los
tipos de datos: int, long, short, unsigned, char, float y double.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
6
3
Ejemplos de declaración de variables.
int i; /*i es una variable entera*/
int n, pasos, contador=0, suma;
/*se declaran 4 variables enteras inicializando al valor 0 la variable
contador*/
char letra, palabra[30];
/*se declara una variable para almacenar una letra, y otra para
almacenar un máximo de 30 letras*/
int v[100];
/*se declara la variable v, denominada array o vector que es capaz
de almacenar 100 números enteros. La primera posición es la
número 0 y la última la 99. v[34] es la posición 35 de v*/
int m[10][30];
/*se declara la variable m, denominada matriz o array de array que
es una estructura bidimensional de 10 filas y 30 columnas*/
long poblacion;
float precio;
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
7
Operadores
n
Aritméticos:
+, - * , / (ojo si es float o int), ++, --, %
n
Relacionales
n
n
n
n
Lógicos
n
n
n
n
==
!=
>, <, >=, <=
&& ---- Y
|| ---- O
! ---- No
Verdad: Valor distinto de 0
Falso: Valor igual a 0
Asignación:
=
n
Paréntesis: se utilizan para anidar expresiones.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
8
4
Tablas de verdad de los operadores lógicos.
A
B
A && B
A
B
A || B
V
V
V
V
V
V
V
F
F
V
F
V
F
V
F
F
V
V
F
F
F
F
F
F
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
9
Entrada de datos
n
La constituyen todas las instrucciones que
toman los datos de entrada desde un
dispositivo externo y los almacena en la
memoria central para que puedan ser
procesados. Las instrucciones de entrada
tienen como misión almacenar el dato
recogido en el objeto cuyo identificador
aparece en la propia instrucción. Si estos
objetos tienen algún valor previo, este se
pierde.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
10
5
Instrucción scanf
Instrucción scanf: Permite leer
datos desde teclado. Se
encuentra en la librería
stdio.h
scanf(“formato”,lista de
argumentos);
Ejemplo:
float n;
Comando
Tipo
%c
Carácter
%f
Real
%s
%d
Cadena de
caracteres
Entero
%i
Entero
scanf(“%f”,&n);
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
11
Instrucción cin
n
Tiene el mismo funcionamiento que la instrucción
scanf, pero se encuentra en la librería iostream.h
Ejemplo:
float numero;
cin>>numero;
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
12
6
Instrucción gets.
n
Muy recomendable para las cadenas de texto.
Ejemplo:
char nombre[20];
gets(nombre);
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
13
Salida de datos.
Conjunto de instrucciones que toman los datos finales
(resultados) de la memoria central y los envían a los
dispositivos externos. Su misión consiste en enviar
datos a un dispositivo externo.
n Instrucción printf (stdio.h):
printf(“formato de los argumentos”,lista de argumentos);
num=7;
printf(“El valor del número es %d. Gracias\n”,num);
n
n
Instrucción cout (iostream.h)
cout<<“El valor del número es “<<num<<“. Gracias”<<endl;
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
14
7
Ejemplo
n
Algoritmo que toma como dato de
entrada un número que corresponde a la
longitud de un radio y nos calcula y
escribe la longitud de la circunferencia,
el área del círculo y el volumen de la
esfera que se corresponden con dicho
radio.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
15
Solución
#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 perímetro resultante es: %f\n”,longitud);
getche();
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
16
8
Ejemplo
n
Algoritmo que lee dos número enteros,
calculando su suma, resta, producto y
división.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
17
Solución
#include <stdio.h>
#include <conio.h>
main()
{
int a,b, suma, respta, producto;
float cociente;
printf(“Introduzca el primer número: “);
scanf(“%d”,&a);
printf(“Introduzca el segundo número: “);
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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
18
9
Ejemplo
n
Realizar un programa que nos pida por
teclado un carácter y nos informe el
código ASCII que le corresponde.
#include <stdio.h>
main()
{
char letra;
printf(“Introduzca letra: “);
scanf(“%c”,&letra);
printf(“El código de %c es %d\n”,letra,letra);
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
19
Instrucciones alternativas
n
Son aquellas que controlan la ejecución de uno o
varios bloques de instrucciones, dependiendo del
cumplimiento o no de alguna condición o del valor
final de una expresión. Existen tres modelos típicos de
instrucciones alternativas:
n
Alternativa simple: controla la ejecución de instrucciones por
el cumplimiento o no de una condición, de tal forma que, si se
cumple, se ejecutan; si no se cumple, no se ejecutan.
N
if (cond)
{ instrucciones;
}
COND
Tema 2. Fundamentos de Programación.
S
INSTRUCCIONES
Dpto. Lenguajes y Ciencias de la Computación
20
10
Instrucciones alternativas
n
Alternativa doble: controla la ejecución de instrucciones por el
cumplimiento o no de una condición, de tal forma que, si se
cumple, se ejecutan las instrucciones del primer bloque; si no
se cumple, se ejecutan las instrucciones del segundo.
N
COND
INSTRUCCIONES 2
S
INSTRUCCIONES 1
if (cond)
{ instrucciones1;
}
else
{ instrucciones2;
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
21
Instrucciones alternativas
n
Alternativa múltiple: controla la ejecución de varios conjuntos
de instrucciones por el valor final de una expresión, de tal
forma que cada conjunto de instrucciones está ligado a un
posible valor de la expresión, existiendo un bloque al final que
engloba otros posibles valores no definidos. Se ejecutará el
conjunto que se encuentre relacionado con el valor que
resulte de la evaluación de la expresión, de tal forma que si
éste no aparece se ejecutará el último.
switch (expresion)
{
case valor1:instrucciones1; break;
case valor2:instrucciones2; break;
……………
default: instruccionesdefecto;
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
22
11
Ejemplo
n
Algoritmo que lee dos números y nos dice cual es el mayor o si son iguales.
#include <stdio.h>
#include <conio.h>
main()
{
int a,b;
printf(“Introduzca dos números: “);
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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
23
Ejemplo
Realizar un programa que pida el día de la semana y nos informe de su nombre
(1 Lunes, 2 Martes, ….)
#include <stdio.h>
#include <conio.h>
main()
{
int dia;
printf(“Introduzca día de la semana: \n”);
scanf(“%d”,&dia);
switch (dia)
{
case 1: printf(“Lunes”);break;
case 2: printf(“Martes”);break;
case 3: printf(“Miércoles”);break;
case 4: printf(“Jueves”);break;
case 5: printf(“Viernes”);break;
default: printf(“No es un día laborable”); break;
}
getche();
}
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
24
12
Ejemplo
Algoritmo que lee tres números cualesquiera y los escribe ordenados de
forma ascendente:
(Solución no demasiado formal)
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,c;
printf(“Introduzca 3 números 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
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computació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();
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
26
13
Ejemplo
(Solución más formal)
#include <stdio.h>
#include <conio.h>
main()
{
int a,b,c;
printf(“Introduzca 3 números 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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
28
14
Instrucciones repetitivas.
n
n
Son aquellas que controlan la repetición de un
conjunto de instrucciones denominado bucle mediante
la evaluación de una condición que se realiza cada
nueva repetición o por medio de un contador
asociado.
El lenguaje C dispone de las siguientes instrucciones
para este propósito:
n
n
n
while (número indeterminado de repeticiones 0 a n)
do..while (número indeterminado de repeticiones 1 a n)
for (número determinado de repeticiones normalmente por
variable asociada)
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
29
Instrucción while
n
Controla la ejecución de instrucciones que configuran
el bucle, de tal forma que éstas se ejecutan mientras
se cumpla la condición, que será evaluada siempre
antes de cada repetición, es decir, mientras la
condición sea CIERTA.
no
COND
si
while (cond)
{
bucle;
}
BUCLE
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
30
15
Ejemplo
n
Algoritmo que escribe en pantalla todos los números desde uno
introducido positivo hasta la unidad.
#include <stdio.h>
main()
{
int numero;
printf(“Introduzca numero positivo: “);
scanf(“%d”,&numero);
while (numero>0)
{
printf(“EL número vale ahora: %d\n”,numero);
numero--;
}
getche();
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
31
Instrucción do..while
n
Controla la ejecución de instrucciones que configuran
el bucle, de tal forma que éstas se ejecutan mientras
se cumpla la condición, que será evaluada siempre
después de cada repetición, es decir, mientras la
condición sea CIERTA. Al menos se repite 1 vez.
BUCLE
do
{
bucle;
}while (cond);
COND
si
no
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
32
16
Ejemplo
n
Algoritmo que escribe el factorial de un número positivo:
#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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
33
Instrucción for
n
n
La sentencia for permite ejecutar una sentencia simple
o compuesta, repetidamente un número de veces
conocido.
Su sintaxis es:
for(instr.inicio;condición;intr.actualizació n)
{
Instrucciones;
}
Por ejemplo, para imprimir los números del 1 al 100
for (i=1;i<=100;i++)
{
printf(“%d\t”,i);
}
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
34
17
Instrucción for
Por ejemplo, para imprimir los múltiplos 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 número positivo
for (i=1;i<=n;i++)
{
fact=fact*i;
}
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
35
Variables auxiliares de un programa
n
n
Son objetos que utiliza un programa y por la función
que realizan dentro del mismo toman un nombre
especial, modelizando su funcionamiento debido a su
frecuente utilización.
Entre las más habituales podemos encontrar:
n
Contadores
Acumuladores
n
Interruptores o conmutadores
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
36
18
Contadores
n
n
Un contador es un objeto que se utiliza para contar
cualquier evento que pueda ocurrir dentro de un
programa. En general suelen contar de forma natural
desde 0 y de 1 en 1, aunque se pueden realizar otros
tipos de cuentas necesarios en algunos procesos.
Se utilizan realizando sobre ellos dos operaciones
básicas:
n
n
Inicialización: todo contador se inicializa a 0 si realiza cuenta
natural o a Vi(valor inicial), si se desea realizar otro tipo de
cuenta.
Contabilización o incremento: cada vez que aparece el evento
a contar se ha de incrementar el contador en 1 si se realiza
cuenta natural o en la In (Incremento) si se realiza otro tipo
de cuenta.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
37
Ejemplo
Algoritmo que lee 100 números 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 número total de positivos ha sido: %d\n”,contador);
getche();
}
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
38
19
Acumuladores
n
n
Son objetos que se utilizan en un programa para
acumular elementos sucesivos de una misma
operación. En general se usan para calcular sumas y
productos, sin descartar otros posibles tipos de
acumulación.
Al igual que los contadores, para utilizarlos hay que
realizar sobre ellos dos operaciones básicas:
n
n
Inicialización: todo acumulador requiere ser inicializado con el
valor neutro de la operación que va a acumular.(0 para sumas
y 1 para productos)
Acumulación: cuando se hace presente en la memoria el
elemento a acumular por la realización de una lectura o
cálculo, se efectúa la acumulación.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
39
Ejemplo
Algoritmo que calcula y escribe la suma y producto de los 10
primeros número 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
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
40
20
Interruptores o conmutadores.
n
n
Los interruptores son objetos que se utilizan en un
programa y sólo pueden tomar dos valores (Cierto o
Falso, 1 o 0), realizando la función de transmitir
información de un punto a otro dentro del programa.
Podemos decir que actúan como recordatorios
manteniendo características de objetos o cálculos que
estuvieron presentes en un momento anterior de la
ejecución de un programa.
Se utilizan inicializándolos con un valor y en los puntos
en que corresponda se cambian al valor contrario, de
tal forma que examinado su valor posteriormente
podemos realizar la transmisión de información que
deseábamos.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computació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”,&nota);
if (nota==10)
sw=1;
}
while (nota!=-1);
if (sw==1)
printf(“Hubo nota 10”);
else
printf(“No hubo nota 10”);
getche();
}
n
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
42
21
Tratamiento secuencial de un vector
n
Suele ser más cómodo utilizar el bucle for utilizando
una variable índice, que permite acceder de forma
sucesiva a los distintos elementos del vector.
int v[100],i;
.
.
for (i=0;i<100;i++)
tratar v[i]
.
.
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
43
Tratamiento secuencial de una matriz
n
Se realiza normalmente mediante el anidamiento de
dos bucles for. El externo recorre cada una de las filas,
y el interno todas las componentes de una fila.
int m[10][20],f,c;
.
for (f=0;f<10;f++)
for(c=0;c<20;c++)
tratar m[f][c];
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
44
22
1. Realizar un programa que permita al usuario elegir repetidamente
entre calcular el área de la circunferencia o el volumen de la esfera.
#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 círculo\n”);
printf(“2. Volumen esfera\n”);
printf(“3. Salir\n”);
printf(“Elegir opción: “);
scanf(“%d”,&opcion);
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
45
if (opcion==1)
{
printf(“Introduzca el radio: “);
scanf(“%f”,&radio);
if (radio<0)
{printf(“Valor no válido”); }
else
{
area=pi*radio*radio;
printf(“El área resultante es: %f”,area);
}
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
46
23
if (opcion==2)
{
printf(“Introduzca el radio: “);
scanf(“%f”,&radio);
if (radio<0)
{printf(“Valor no válido”); }
else
{
volumen=4*pi*radio*radio*radio/3;
printf(“El volumen resultante es: %f”,volumen);
}
}
getche();
}while (opcion!=3);
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
47
2. Realizar un programa que pide por teclado un número positivo e indica
si es primo o no.
#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 número: “);
scanf(“% d”,&numero);
while (primo==1) && (n<numero ) )
{
if (numero%n==0)
{ primo=0;}
/*Al ser divisible por un número más pequeño 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();
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
48
24
3. Realizar un programa que pida por teclado un valor n y nos
muestra por pantalla los n primeros t érminos de la sucesión
de fibonacci.
#include <stdio.h>
#include <conio.h>
main()
{
int n,ant1=1,ant2=1,i,aux;
printf(“Introduzca un número: “);
scanf(“% d”,&n);
for (i=0;i<=n;i++)
{
if ((i==0) || (i==1))
{ printf(“Término %d=%d\n”,i,1);
ant1=1;
ant2=1;
}
else
{ printf(“Término %d=%d\n”,i,ant1+ant2);
aux=ant1;
ant1=ant2;
ant2=ant2+aux;
}
}
getche() ;
}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
49
4. Realizar un programa que calcule la suma de los números
introducidos hasta introducir un cero.
#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 Programación.
Dpto. Lenguajes y Ciencias de la Computación
50
25
5. Realizar un programa que pida por teclado los sueldos de los
empleados de una empresa. Debe informar como resultado
el mayor y el menor sueldo.
#include <stdio.h>
#include <conio.h>
main()
{ float mayor=0,menor=100000,salario;
int empleados, i;
printf(“Introduzca numero de empleados: “);
scanf(“%d”,&empleados);
for (i=1;i<=empleados;i++)
{
printf(“Introduzca salario: “);
scanf(“%f”,&salario);
if (salario>mayor)
mayor=salario;
if (salario<menor)
menor=salario;
}
printf(“El salario mayor es %f\n”,mayor);
printf(“El salario menor es %f\b”,menor);
getche();}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
51
6. Almacenar en un vector 10 números y escribirlos en pantalla.
#include <stdio.h>
#include <conio.h>
main()
{ int v[10], i;
for (i=0;i<10;i++)
{
printf(“Introduzca número %d: “,i+1);
scanf(“%d”,&v[i]);
}
for (i=0;i<10;i++)
printf(“El número que está en la posición %d es %d\n
“,i+1,v[i]);
getche();}
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
52
26
Otras instrucciones interesantes
n
n
Librería string.h
n
strcat(cad1,cad2);
n
strcmp(cad1,cad2);
n
strlen(cad);
n
strcpy(cad1,cad2);
Librería stdlib.h
n
fflush(stdin)
n
system
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
53
Bibliografía
n
n
n
n
Galindo, J; Rodríguez J.María, Aprendiendo C.
Universidad de Cadiz.
Ceballos, Fco Javier. Ed. Rama.Curso de
Programación C/C++
Schildt, Herbert. Guía de autoenseñanza en C.
McGrawHill.
Joyanes. Fundamentos de programación.
McGrawHill
Tema 2. Fundamentos de Programación.
Dpto. Lenguajes y Ciencias de la Computación
54
27
Descargar