Tema 2. Fundamentos de la Programación - Departamento ...jlleivao/introduccion/programacion.pdf ·...

27
05/05/2006 Dpto. Lenguajes y Ciencias de la Computación 1 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) Dpto. Lenguajes y Ciencias de la Computación 2 Tema 2. Fundamentos de Programación. Introducción n Un programa se considera como una secuencia lógica de instrucciones que manipulan un conjunto de objetos (datos) para obtener unos resultados. n Todo programa contiene dos bloques diferenciados: n Bloque de declaraciones: se especifican los objetos que utiliza el programa (constantes, variables, tablas, registros, etc) n Bloque de instrucciones: conjunto de operaciones que se han de realizar para la obtención de los resultados obtenidos. n Las instrucciones de un programa consisten generalmente en modificar los objetos del programa

Transcript of Tema 2. Fundamentos de la Programación - Departamento ...jlleivao/introduccion/programacion.pdf ·...

1

05/05/2006 Dpto. Lenguajes y Ciencias de la Computación 1

Tema 2. Fundamentos de la Programación

Introducción a la InformáticaE.U. Politécnica.

Diseño Industrial. Primer Curso.Curso 2005-2006

José Luis Leiva Olivencia.Despacho: I-326(El Ejido)

Dpto. Lenguajes y Ciencias de la Computación 2

Tema 2. Fundamentos de Programación.

Introducción

n Un programa se considera como una secuencia lógica de instrucciones que manipulan un conjunto de objetos (datos) para obtener unos resultados.

n Todo programa contiene dos bloques diferenciados:n Bloque de declaraciones: se especifican los objetos que utiliza

el programa (constantes, variables, tablas, registros, etc)n Bloque de instrucciones: conjunto de operaciones que se han

de realizar para la obtención de los resultados obtenidos.

n Las instrucciones de un programa consisten generalmente en modificar los objetos del programa

2

Dpto. Lenguajes y Ciencias de la Computación 3

Tema 2. Fundamentos de Programación.

Historia del lenguaje C

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.

n Es un lenguaje que no está ligado a ningún sistema operativo, lo que permite la portabilidad de programas escritos en este lenguaje.

n Existe un gran número de compiladores, nosotros utilizaremos en clase el compilador DEV-C++

Dpto. Lenguajes y Ciencias de la Computación 4

Tema 2. Fundamentos de Programación.

Estructura de un programa en C

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.

n La cabecera de un programa en C o bloque de declaraciones suelen constar de:n Comentarios (nombre de programa, fecha, programador,…)

n Ej. /*Esto es un ejemplo*/n /*Programa realizado por Agapito Perez*/

n Directrices #include (de inclusión) y #define (de sustitución)n Ej. #include <stdio.h>n Ej. #define pi 3.14

n El bloque de instrucciones DEBE estar compuesto por funciones, una de ellas se denomina main.

3

Dpto. Lenguajes y Ciencias de la Computación 5

Tema 2. Fundamentos de Programación.

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”);}

Dpto. Lenguajes y Ciencias de la Computación 6

Tema 2. Fundamentos de Programación.

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 distintasoperaciones que intervienen en la solución del problema. Todo variable tiene 3 atributos:n Nombre: identificadorn Tipo: conjunto de valores que puede tomarn Valor: elemento del tipo que se le asigna

n 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’).

n El lenguaje C utiliza las siguientes palabras para designat los tipos de datos: int, long, short, unsigned, char, float y double.

4

Dpto. Lenguajes y Ciencias de la Computación 7

Tema 2. Fundamentos de Programación.

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;

Dpto. Lenguajes y Ciencias de la Computación 8

Tema 2. Fundamentos de Programación.

Operadores

n Aritméticos:+, - * , / (ojo si es float o int), ++, --, %

n Relacionalesn ==n !=n >, <, >=, <=

n Lógicosn && ---- Yn || ---- On ! ---- No

n Asignación:=

n Paréntesis: se utilizan para anidar expresiones.

Verdad: Valor distinto de 0Falso: Valor igual a 0

5

Dpto. Lenguajes y Ciencias de la Computación 9

Tema 2. Fundamentos de Programación.

Tablas de verdad de los operadores lógicos.

FFF

FVF

FFV

VVV

A && BBA

FFF

VVF

VFV

VVV

A || BBA

Dpto. Lenguajes y Ciencias de la Computación 10

Tema 2. Fundamentos de Programación.

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.

6

Dpto. Lenguajes y Ciencias de la Computación 11

Tema 2. Fundamentos de Programación.

Instrucción scanf

Instrucción scanf: Permite leer datos desde teclado. Se encuentra en la librería stdio.h

scanf(“formato”,lista de argumentos);

Entero%i

Entero%d

Cadena de caracteres

%s

Real%f

Carácter%c

TipoComando

Ejemplo:float n;

scanf(“%f”,&n);

Dpto. Lenguajes y Ciencias de la Computación 12

Tema 2. Fundamentos de Programación.

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;

7

Dpto. Lenguajes y Ciencias de la Computación 13

Tema 2. Fundamentos de Programación.

Instrucción gets.

n Muy recomendable para las cadenas de texto.

Ejemplo:

char nombre[20];

gets(nombre);

Dpto. Lenguajes y Ciencias de la Computación 14

Tema 2. Fundamentos de Programación.

Salida de datos.

n 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 Instrucción cout (iostream.h)cout<<“El valor del número es “<<num<<“. Gracias”<<endl;

8

Dpto. Lenguajes y Ciencias de la Computación 15

Tema 2. Fundamentos de Programación.

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.

Dpto. Lenguajes y Ciencias de la Computación 16

Tema 2. Fundamentos de Programación.

Solución

#include <stdio.h>#include <conio.c>#include <math.h>#define PI 3.14main(){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();}

9

Dpto. Lenguajes y Ciencias de la Computación 17

Tema 2. Fundamentos de Programación.

Ejemplo

n Algoritmo que lee dos número enteros, calculando su suma, resta, producto y división.

Dpto. Lenguajes y Ciencias de la Computación 18

Tema 2. Fundamentos de Programación.

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();}

10

Dpto. Lenguajes y Ciencias de la Computación 19

Tema 2. Fundamentos de Programación.

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);}

Dpto. Lenguajes y Ciencias de la Computación 20

Tema 2. Fundamentos de Programación.

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.

COND

INSTRUCCIONES

SNif (cond)

{ instrucciones;}

11

Dpto. Lenguajes y Ciencias de la Computación 21

Tema 2. Fundamentos de Programación.

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.

COND

INSTRUCCIONES 1

SN

INSTRUCCIONES 2

if (cond){ instrucciones1;}else{ instrucciones2;}

Dpto. Lenguajes y Ciencias de la Computación 22

Tema 2. Fundamentos de Programación.

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;}

12

Dpto. Lenguajes y Ciencias de la Computación 23

Tema 2. Fundamentos de Programación.

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);

elseif (a==b)printf(“Son iguales”);elseprintf(“El %d es el mayor\n”,b);

getche();}

Dpto. Lenguajes y Ciencias de la Computación 24

Tema 2. Fundamentos de Programación.

Ejemplo

n 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();}

13

Dpto. Lenguajes y Ciencias de la Computación 25

Tema 2. Fundamentos de Programación.

Ejemplo

n 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);

Dpto. Lenguajes y Ciencias de la Computación 26

Tema 2. Fundamentos de Programación.

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();}

14

Dpto. Lenguajes y Ciencias de la Computación 27

Tema 2. Fundamentos de Programación.

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);elseprintf(“%d-%d-%d”,c,a,b);

}

Dpto. Lenguajes y Ciencias de la Computación 28

Tema 2. Fundamentos de Programación.

Ejemplo

else{

if (b>c)if (a>c)printf(“%d-%d-%d”,b,a,c);elseprintf(“%d-%d-%d”,b,c,a);

elseprintf(“%d-%d-%d”,c,b,a);

}getche();}

15

Dpto. Lenguajes y Ciencias de la Computación 29

Tema 2. Fundamentos de Programación.

Instrucciones repetitivas.

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.

n El lenguaje C dispone de las siguientes instrucciones para este propósito:n while (número indeterminado de repeticiones 0 a n)n do..while (número indeterminado de repeticiones 1 a n)n for (número determinado de repeticiones normalmente por

variable asociada)

Dpto. Lenguajes y Ciencias de la Computación 30

Tema 2. Fundamentos de Programación.

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.

COND

BUCLE

si

no while (cond){bucle;}

16

Dpto. Lenguajes y Ciencias de la Computación 31

Tema 2. Fundamentos de Programación.

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();}

Dpto. Lenguajes y Ciencias de la Computación 32

Tema 2. Fundamentos de Programación.

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.

COND

BUCLE

sino

do{bucle;}while (cond);

17

Dpto. Lenguajes y Ciencias de la Computación 33

Tema 2. Fundamentos de Programación.

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();}

Dpto. Lenguajes y Ciencias de la Computación 34

Tema 2. Fundamentos de Programación.

Instrucción for

n La sentencia for permite ejecutar una sentencia simple o compuesta, repetidamente un número de veces conocido.

n Su sintaxis es:for(instr.inicio;condición;intr.actualización){Instrucciones;}

n Por ejemplo, para imprimir los números del 1 al 100for (i=1;i<=100;i++){printf(“%d\t”,i);}

18

Dpto. Lenguajes y Ciencias de la Computación 35

Tema 2. Fundamentos de Programación.

Instrucción for

n 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 positivofor (i=1;i<=n;i++){fact=fact*i;}

Dpto. Lenguajes y Ciencias de la Computación 36

Tema 2. Fundamentos de Programación.

Variables auxiliares de un programa

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.

n Entre las más habituales podemos encontrar:n Contadoresn Acumuladores

n Interruptores o conmutadores

19

Dpto. Lenguajes y Ciencias de la Computación 37

Tema 2. Fundamentos de Programación.

Contadores

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.

n Se utilizan realizando sobre ellos dos operaciones básicas: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.

n 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.

Dpto. Lenguajes y Ciencias de la Computación 38

Tema 2. Fundamentos de Programación.

Ejemplo

n 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();}

20

Dpto. Lenguajes y Ciencias de la Computación 39

Tema 2. Fundamentos de Programación.

Acumuladores

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.

n Al igual que los contadores, para utilizarlos hay que realizar sobre ellos dos operaciones básicas: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)

n 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.

Dpto. Lenguajes y Ciencias de la Computación 40

Tema 2. Fundamentos de Programación.

Ejemplo

n 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();}

21

Dpto. Lenguajes y Ciencias de la Computación 41

Tema 2. Fundamentos de Programación.

Interruptores o conmutadores.

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.

n 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.

Dpto. Lenguajes y Ciencias de la Computación 42

Tema 2. Fundamentos de Programación.

Ejemplo

n 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”);elseprintf(“No hubo nota 10”);getche();}

22

Dpto. Lenguajes y Ciencias de la Computación 43

Tema 2. Fundamentos de Programación.

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]..

Dpto. Lenguajes y Ciencias de la Computación 44

Tema 2. Fundamentos de Programación.

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];

23

Dpto. Lenguajes y Ciencias de la Computación 45

Tema 2. Fundamentos de Programación.

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);

Dpto. Lenguajes y Ciencias de la Computación 46

Tema 2. Fundamentos de Programación.

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);}}

24

Dpto. Lenguajes y Ciencias de la Computación 47

Tema 2. Fundamentos de Programación.

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);}

Dpto. Lenguajes y Ciencias de la Computación 48

Tema 2. Fundamentos de Programación.

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(“El numero %d es primo”,numero);}

else{printf(“El numero %d no es primo”,numero);}

getche();}

25

Dpto. Lenguajes y Ciencias de la Computación 49

Tema 2. Fundamentos de Programación.

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() ;}

Dpto. Lenguajes y Ciencias de la Computación 50

Tema 2. Fundamentos de Programación.

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();}

26

Dpto. Lenguajes y Ciencias de la Computación 51

Tema 2. Fundamentos de Programación.

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();}

Dpto. Lenguajes y Ciencias de la Computación 52

Tema 2. Fundamentos de Programación.

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();}

27

Dpto. Lenguajes y Ciencias de la Computación 53

Tema 2. Fundamentos de Programación.

Otras instrucciones interesantes

n Librería string.h

n strcat(cad1,cad2);

n strcmp(cad1,cad2);

n strlen(cad);

n strcpy(cad1,cad2);

n Librería stdlib.hn fflush(stdin)

n system

Dpto. Lenguajes y Ciencias de la Computación 54

Tema 2. Fundamentos de Programación.

Bibliografía

n Galindo, J; Rodríguez J.María, Aprendiendo C. Universidad de Cadiz.

n Ceballos, Fco Javier. Ed. Rama.Curso de Programación C/C++

n Schildt, Herbert. Guía de autoenseñanza en C. McGrawHill.

n Joyanes. Fundamentos de programación. McGrawHill