Práctica 2c: Principios básicos de Algoritmia: Bifurcaciones y bucles

Anuncio
Práctica 2c: Principios básicos de Algoritmia:
Bifurcaciones y bucles en Lenguaje C.
Objetivos
En esta práctica el objetivo principal es el de poner en práctica los principios básicos de la algoritmia.
Para ello el alumno deberá conocer las diferentes estructuras para el control del flujo de un programa:
bifurcaciones (operaciones condicionales) y bucles (operaciones iterativas).
Evaluación
La práctica consta de 3 cuestiones, de los cuales habrá que realizar correctamente al menos
1 para aprobar la práctica.
Procedimiento
Cada cuestión consta de un enunciado y de una plantilla en lenguaje C. El alumno usará
dicha plantilla para verificar el correcto funcionamiento de algoritmo que haya diseñado y su
implementación en lenguaje C. En la plantilla se indica dónde debe el alumno insertar su código. Este
mismo código deberá copiarse y enviarse a través del servidor de docencia teniendo especial cuidado
de seleccionar correctamente la línea de inserción en función del ejercicio que esté resolviendo.
Entrega de la práctica a través del servidor
Los resultados de todas la práctica se entregará usando Goodle GMS. Para el correcto
funcionamiento de las siguientes páginas su navegador debe permitir cookies y la ejecución de
javascript. Goodle se encuentra situado en la siguiente dirección:
http://bono.us.es/sdocencia/
La entrega de la práctica consiste en copiar el código desarrollador en cada cuestión en el cuadro de
respuestas correspondiente de Goodle. Hay que copiar el código una vez se haya comprobado el
correcto funcionamiento del programa.
IMPORTANTE:
•
Cada ejercicio se debe resolver utilizando únicamente las variables definidas en el molde que
se proporciona
•
Debe respetar la estructura que se le propone sin cambiar nombres de variables ni omitir
ninguna línea de código.
1
Ejercicio 227
Una sucesión geométrica está constituida por una secuencia de elementos en la que cada uno de
ellos se obtiene multiplicando el anterior por una constante denominada razón o factor de la
progresión. Se suele reservar el término progresión cuando la secuencia tiene una
cantidad finita de términos mientras que se usa sucesión cuando hay una cantidad infinita de
términos, si bien, esta distinción no es estricta.
Así, 5,15, 45, 135, 405 es una progresión geométrica con razón igual a 3, porque 15 = 5 × 3, 45 = 15
× 3, 135 = 45 × 3, 405 = 135 × 3, y así sucesivamente.
.
Realice un programa en lenguaje C que calcule y muestre por pantalla el término n-ésimo de una
progresión geométrica, dados el primer término de la sucesión a0 y la razón r.
void main(void)
{
/* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */
int a0;
int n;
int r;
int i;
int an=-1;
/* LECTURA DE DATOS */
printf("Introduzca el primer numero de la progresion geometrica:");
scanf("%d",&a0);
printf("Introduzca la razon de la progresion:");
scanf("%d",&r);
printf("Introduzca la posicion del termino que desea obtener:");
scanf("%d",&n);
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(n<0)
{
printf("Entrada no valida");
}
else
{
printf("El termino %d de la progresion geometrica es %d",n,an);
}
/* BLOQUEO DE PANTALLA*/
printf("\n");
system("pause");
}
2
Ejercicio 217
El concepto fundamental de la sucesión de Fibonacci es que cada elemento es la suma de los dos
anteriores. La sucesión inicia con 1 y 1, y a partir de ahí cada elemento es la suma de los dos
anteriores. De esta forma, la sucesión de Fibonacci es la siguiente sucesión infinita de números
naturales:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…
A cada elemento de esta sucesión se le llama número de Fibonacci. Por otro lado, si se generaliza
esta sucesión y se toma como primer elemento 2 y segundo elemento, el valor 1, se obtiene la
sucesión de Lucas, dada por:
2, 1, 3, 4, 7, 11, 18…
Formalmente, se describe como:
•
•
•
para
Realice un programa en lenguaje C que calcule el término n-ésimo de la sucesión de Lucas y lo
muestre por pantalla.
void main(void)
{
/* DECLARACIÓN DE VARIABLES (véase tabla de objetos) */
int n;
int i;
int res=-1;
int aux1,aux2;
/* LECTURA DE DATOS */
printf("Introduzca un numero natural:");
scanf("%d",&n);
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(n<0)
{
printf("Entrada no valida");
}
else
{
printf("El termino %d de la sucesion de Lucas es %d",n,res);
}
/* BLOQUEO DE PANTALLA*/
printf("\n");
system("pause");
}
3
Ejercicio 221
Un número de Harshad, o número de Niven, es un entero divisible entre la suma de sus dígitos en
una base dada. Todos los números entre cero y la base, son números Harshad.
Los primeros números de Harshad con más de dos dígitos en base 10 son: 10, 12, 18, 20, 24, 27, 30,
36, 40, 42, 45, 48, 50, 54, 60, 63, 70, 72, 80, 81, 84, 90, 100, 102, 108, 110, 111, 112, 114, 117, 120,
126, 132, 133, 135, 140, 144, 150, 152, 153, 156, 162, 171, 180, 190, 192, 195, 198, 200, 201 y 204.
Realice un programa en lenguaje C que calcule si un número entero dado, en base 10 es un número
Harshad o no.
#include<stdio.h>
void main(void)
{
int
int
int
int
int
numero;
suma_dig=0;
res=-1;
aux1;
aux2;
//Número dado
//Suma de los dígitos
// Vale 1 si numero es harshad, 0 si No lo es
/* LECTURA DE DATOS */
printf("Introduzca un numero natural: ");
scanf("%d",&numero);
/*************INICIO CÓDIGO DE ALUMNO*****************/
/***************FIN CÓDIGO DE ALUMNO******************/
/* ESCRITURA DE RESULTADOS */
if(res==1)
printf("\nEl numero %d es un numero Harshad\n",numero);
if(res==0)
printf("\nEl numero %d NO es un numero Harshad\n",numero);
/* BLOQUEO DE PANTALLA*/
printf("\n");
system ("PAUSE");
}
4
Descargar