Escribe un programa que imprima una pirámide de dígitos como la de la figura, tomando
como entrada el número de filas de la misma (debe ser menor de 10):
#incluye<iostream> using namespace std; int LeerNFilas(){ int filas; do{ cout << "Introduce el número de filas de la pirámide entre 1 y 10 "; cin >> filas; }while(filas < 1 || filas > 10); return filas; } void PiramideDigitos(int filas){ for(unsigned i= 1; i <= filas; i++){ for(unsigned j = 1; j <= (filas - i); j++){ cout << " "; } for(unsigned j= 1; j <= i; j++){ cout << j; } for(unsigned h = (i-1); h >= 1; h-- ){ cout << h; } cout << endl; } } int main() { int filas; cout << "Practica 4. Pirámide de dígitos" << endl; filas= LeerNFilas(); PiramideDigitos(filas); return 0; }
Escribe un programa que calcule el valor de S para un número real X dado por teclado,
utilizando la siguiente serie:
S = 1 + x + (x ^ 2) / 2! + (x^ 3) / 3! + (x ^ 4/4!) + ...
Nota: No se añadirán más sumandos cuando se calcule uno con valor menor que 0.0001.
#include <iostream> using namespace std; const double MINIMO = 0.0001; double potencia(double a,unsigned b) { double resultado = 1; if(b == 1){ resultado = a; } else if (b > 1){ for(int i = 1; i <= b; i++){ resultado = resultado * a; } } return resultado; } unsigned factorial(int x){ unsigned fact = 1; for(unsigned i= 2; i <= x; i++){ fact = fact * i; } return fact; } double serie(double x){ double suma = 1; double sumando = 1; unsigned i = 1; while(sumando >= MINIMO){ sumando = potencia(x, i)/ factorial(i); suma = suma + sumando; i++; } return suma; } int main (){ cout << " Introduzca el valor de X (X>=0 y X<=1): "; double x; cin >> x; if (! (x >= 0 && x <= 1)){ throw "Error . Valor de X fuera de rango" ; } else { cout << " Serie : " << serie (x) << endl ; } }
Escribe un programa que calcule e imprima por pantalla los N primeros números primos,
siendo N un número natural que se introduce por teclado. Por ejemplo, si N = 8, los primos
que se mostrarán por pantalla son 1, 2, 3, 5, 7, 11, 13, 17..
#include <iostream> using namespace std; unsigned leerDato(){ unsigned n; cout << "Introduce N: "; cin >> n; return n; } bool esPrimo(unsigned num){ bool loes = true ; unsigned i = 2; while((loes == true) && (i <= unsigned(num/2))){ //modificar para que sea mas rapido if(num != i){ if(num%i == 0){ loes = false; } } i++; } return loes; } void imprimePrimos(unsigned N){ unsigned contador = 0; unsigned i = 1; while(contador < N){ if(esPrimo(i)){ cout << i <<", "; contador ++; } i++; } } int main() { unsigned N; cout << "Programa que calcula e imprime por pantalla los N primeros números primos." << endl; // prints !!!Hello World!!! N = leerDato(); imprimePrimos(N); return 0; }Dos números a y b se dice que son amigos si la suma de los divisores de a (salvo él mismo)
coincide con b y viceversa. Diseña un programa que tenga como entrada de teclado dos
números naturales n y m y que muestre en la pantalla todas las parejas de números amigos
que existan en el intervalo determinado por n y m. El programa debe asegurarse de que n sea
menor que m.
#incluye <iostream> using namespace std; void leerDatos(unsigned& n, unsigned& m){ do{ cout << "Introduzca n y m (n < m) :"; cin >> n >> m; }while (m < n); } unsigned SumaDivisores(unsigned num){ unsigned suma = 1; for(unsigned i= 2; i < num; i++){ if(num%i == 0){ //cout << "Divisores de 6: " << i << endl; suma = suma + i; } } //cout << "Suma divisores de 6:" << suma << endl; return suma; } bool sonAmigos(unsigned a, unsigned b){ bool son = false; if((SumaDivisores(a) == b) && (SumaDivisores(b)== a)){ son = true; } return son; } void imprimirParejas(unsigned n, unsigned m){ for(unsigned i = n; i <= m; i++){ for(unsigned j = i; j <= m; j++){ cout << i << " y "<< j; if(sonAmigos(i, j)){ cout << " son amigos."<< endl; cout<<" Suma de divisores de "<<i<<" es "<<SumaDivisores(i)<<" = "<<j<<endl; cout<<" Suma de divisores de "<<j<<" es "<<SumaDivisores(j)<<" = "<<j<<endl; }else{ cout << " no son amigos." << endl; } } } } int main() { unsigned n, m; cout << "Programa que muestra en la pantalla todas las parejas de números amigos que existan en el intervalo determinado por n y m." << endl; // prints !!!Hello World!!! leerDatos(n, m); imprimirParejas(n,m); return 0; }
Escribe un algoritmo que lea un número natural N por teclado y dibuje un rombo de
asteriscos como el de la figura (N=5):
#include <iostream> using namespace std; void leerDatos(int& x){ do{ cout << "Introduce altura de la pirámide: "; cin >> x; }while( x < 1); } void dibujarFila(int x, int i){ for(unsigned j = 1; j <= (x-i); j++){ cout << " "; } for(unsigned j = 1; j<= i; j++){ cout << " * "; } } void dibujarPiramide (int x){ for(unsigned i = 1; i <= x; i++){ dibujarFila(x, i); cout << endl; } } void dibujarPiramideInv (int x){ for(unsigned i= 1; i < x; i++){ for(unsigned j = 1; j <= i ; j++){ cout << " "; } for(unsigned j = 1; j <= (x - i); j++){ cout << " * "; } cout << endl; } } int main() { int x; leerDatos(x); dibujarPiramide(x); dibujarPiramideInv(x); return 0; }
Diseña un algoritmo que lea de teclado un número natural N mayor que cero y muestre las N
primeras filas del siguiente triángulo.
#include <iostream> using namespace std; int LeerNFilas(){ int filas; do{ cout << "Introduce el número de filas de la pirámide: "; cin >> filas; }while(filas < 1); return filas; } void PiramideDigitos(int filas){ for(unsigned i= 1; i <= filas; i++){ for(unsigned j = 1; j <= (filas - i); j++){ cout << " "; } for(unsigned j= i; j <= (i + i -1); j++){ cout << j%10; } for(unsigned h = (i + i -2); h >= i; h-- ){ cout << h%10; } cout << endl; } } int main() { int filas; cout << "Practica 4. Pirámide de dígitos" << endl; filas= LeerNFilas(); PiramideDigitos(filas); return 0; }
Un saludo! (:
No hay comentarios:
Publicar un comentario