Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <iostream>
using namespace std;
int main(){
int N,i;
cin >> N;
for (i = 1; i <= N ; i++) cout << i << " " ;
cout << endl;
}
#include <iostream>
using namespace std;
int main(){
int N,i;
cin >> N;
for (i = 1; i <= N ; i= i+3) cout << i << " " ;
cout << endl;
}
#include<iostream>
using namespace std;
main(){
float n,Y,P,Pu,m1,m2,m3;
cout<<"ingrese una cantidad en metros : ";cin>>n;
Y=n*(0.3048);
m1=Y/(0.3048);
P=n*(0.914);
m2=P/(0.914);
Pu=n*(39.3701);
m3=Pu/(39.3701);
cout<<"cantidad en yardas es : "<<Y<<endl;
cout<<"cantidad en METROS es : "<<m1<<endl;
cout<<"cantidad en pies es : "<<P<<endl;
cout<<"cantidad en METROS es : "<<m2<<endl;
cout<<"cantidad en pulgadas es :"<<Pu<<endl;
cout<<"cantidad en METROS es : "<<m3<<endl;
return 0;
}
3.- Muestre en pantalla los nmeros enteros de N (N es un nmero natural mayor que 1).al 1.
#include <iostream>
using namespace std;
int main(){
int N,i;
cin >> N;
for (i = N; i >= 1 ; i--) cout << i << " " ;
cout << endl;
}
4. Muestre en pantalla todos los mltiplos de 3 entre los nmeros 1 y N (N es un nmero
natural).
#include <iostream>
using namespace std;
int main(){
int N,i;
cin >> N;
for (i = N; i >= 1 ; i= N-3) cout << i << " " ;
cout << endl;
}
5. Genere la siguiente serie: 5, 10, 15, 20, 25,30 El programa preguntar primero cuantos
trminos se quieren mostrar y despus mostrar la serie correspondiente.
#include<iostream>
using namespace std;
main(){
int i, numTerminos, contador;
printf("Introduzca el nmero de trminos de la serie: ");
scanf("%d", &numTerminos);
contador = 0;
for (i = 1; i<=numTerminos; i++){
contador = contador + 5;
printf (" %d ,", contador);
}
return 0;
}
#include<iostream>
using namespace std;
main(){
int numero, cantidad, suma;
suma=0;
cantidad=0;
printf ("Introduzca un numero: ");
scanf ("%i", &numero);
while (numero!=0){
printf ("Ha introducido el numero %i\n", numero);
cantidad=cantidad+1;
suma=suma+numero;
printf ("Introduzca un numero: ");
scanf ("%i", &numero);
}
printf ("Finalizando: Se ha introducido el numero 0\n");
printf ("La cantidad de numeros introducidos es %d\n", cantidad);
printf ("La suma de los numeros introducidos es %d\n", suma);
return 0;
}
7. Pida al usuario su nombre y contrasea y le de tres oportunidades para introducir los datos
correctos, que sern root y 4321. Si los datos introducidos son correctos se mostrar por
pantalla Bienvenido al sistema. En caso contrario se mostrar un mensaje por pantalla
indicando que se ha superado el nmero de intentos permitido.
Notas:
Puesto que las cadenas de caracteres finalizan con el carcter nulo (\0), usuario y contrasea
se declararn como cadenas de longitud 5 (char usuario[5]). Para leer cualquiera de estas
cadenas con la funcin scanf se usar el descriptor de formato %s y dado que el nombre de
la cadena ya es una direccin, ste no debe ir precedido del smbolo &(scanf(%s, usuario)).
Para comparar cadenas se debe usar la funcin strcmp (string compare), por ejemplo
strcmp(usuario, "root"), que devolver un 0 si las cadenas son iguales y otro valor si son
distintas.
#include<iostream>
using namespace std;
int main(){
char user[5], pass[5];
int intentos=0;
int correcto=0;
do{
printf ("Nombre: ");
scanf ("%s", user);
printf ("Contrasea: ");
scanf ("%s", pass);
if ((strcmp(user, "root")==0) && (strcmp(pass, "1234")==0))
correcto=1;
else
intentos=intentos+1;
}while ((intentos<3) && (correcto==0));
if (intentos==3)
printf ("Se ha superado el numero maximo de intentospermitido\n");
else
printf ("Bienvenido al sistema\n");
return 0;
}
8. Eleve un nmero a una potencia, utilizando dos mtodos: a) utilizando la funcin potencia
y b) usando un bucle, sin recurrir al operador potencia. Nota: En C, para poder usar la funcin
potencia (pow(x, y)=xy) es necesario incluir la biblioteca math (#include <math.h>).
#include<iostream>
#include <math.h>
using namespace std;
int main(void){
float n,res1,res2;
int i,p;
printf ("elevar un numero a una potencia\n");
printf ("introduce el numero: \t");
scanf("%f", &n);
printf ("a que potencia lo quieres elevar \t");
scanf("%i", &p);
res1=1;
for (i=1;i<=p;i++)
res1 = res1 * n;
res2=pow(n,p);
printf("por el primer metodo el resultado es %8.2f y por el
segundo %8.2f \n", res1, res2);
return 0;
}
#include<iostream>
using namespace std;
int main(){
int i=1;
int numero, mayor, menor, suma;
float media;
printf("Introduzca el numero %d: ", i);
scanf("%d", &numero);
mayor=numero;
menor=numero;
suma=numero;
for (i = 2; i<=10; i++){
printf("Introduzca el numero %d: ", i);
scanf("%d", &numero);
suma = suma + numero;
if (numero > mayor)
mayor = numero;
if (numero < menor)
menor = numero;
}
media=suma/10.0;
printf("La suma de todos los nmeros es: %d \n", suma);
printf("Su media es: %f \n", suma/10);
printf("El numero mayor es: %d \n", mayor);
printf("El numero menor es: %d \n", menor);
return 0;
}
10. Solicite nmeros al usuario hasta que se hayan introducido 10 nmeros o la suma de todos
los nmeros ledos sea mayor que 100. A continuacin mostrar un mensaje indicando qu
condicin se ha cumplido (es decir, si se han introducido 10 nmeros o si su suma es mayor
que 100).
#include<iostream>
using namespace std;
main(){
int n;
int suma, contador;
suma=0;
contador=0;
do{
printf ("Introduzca un numero: ");
scanf("%d", &n);
suma=suma+n;
contador=contador+1;
}while ((contador<10)&&(suma<=100));
if (contador==10)
printf ("Se han introducido 10 numeros\n");
if (suma>100)
printf ("La suma de los numeros introducidos es superior a 100\n");
return 0;
}
11. Para adivinar un nmero entre 1 y 100 que previamente se ha definido como una
constante. El programa ir pidiendo nmeros al usuario y, siempre que dicho nmero no
coincida con el nmero secreto, le indicar si el nmero introducido es mayor o menor que el
nmero secreto que tiene que adivinar. Al final, el programa indicar la cantidad de intentos
que se han necesitado para adivinar el nmero. Si el nmero de intentos es menor que 5 se
mostrar Enhorabuena!. Si es un valor entre 5 y 10 se mostrar el mensaje No est mal.
Si el nmero de intentos es mayor que 10 se mostrar el mensaje Debe practicar ms.
#include<iostream>
using namespace std;
#define SECRETO 57
main(){
int n;
int intentos=0;
do{
printf ("Introduzca un numero: \n");
scanf("%d",&n);
intentos=intentos+1;
if (SECRETO>n){
printf ("El nmero secreto es mayor que el introducido\n");
}
else
if (SECRETO<n){
printf ("El nmero secreto es menor que el introducido\n");
}
} while (n!=SECRETO);
if (intentos<5)
printf("Enhorabuena\n");
else if ((intentos>=5)&&(intentos<=10))
printf("No esta mal\n");
else
printf("Debe practicar mas\n");
return 0;
}
12. Modificar el ejercicio anterior para que el nmero mximo de intentos sea 5. Al terminar
el programa indicar si el usuario ha ganado (si ha adivinado el nmero en menos de cinco
intentos) o no.
#include<iostream>
using namespace std;
#define SECRETO 57
int main(void){
int intentos=5;
int adivinado=0;
int numero;
do{
printf("Introduzca un numero: ");
scanf("%d", &numero);
if (numero==SECRETO)
adivinado=1;
else{
if (SECRETO>numero)
printf ("El nmero secreto es mayor que %i\n", numero);
else
printf ("El nmero secreto es mayor que %i\n", numero);
intentos=intentos-1;
}
}while ((intentos>0) && (adivinado==0));
if (adivinado)
printf ("ENHORABUENA. HA ADIVINADO EL NUMERO SECRETO\n");
else
printf ("Ha superado el nmero de intentos permitido\n");
return 0;
}
13. Solicite al usuario nmeros positivos de tres o ms cifras y compruebe si son pares. Si el
nmero introducido es positivo pero de una o dos cifras, se solicitar un nuevo nmero. El
programa finaliza cuando se introduce 0 o un nmero negativo.
#include<iostream>
using namespace std;
main(){
int n;
do{
printf("Introduzca un numero positivo de tres o mas cifras:");
scanf("%i", &n);
while ((n>0)&&(n<=99)){
printf ("El numero introducido tiene menos de tres cifras. Introduzca nuevo numero :");
scanf("%i", &n);
}
if (n>0){
if (n%2==0)
printf ("El nmero introducido es par\n");
else
printf ("El nmero introducido es impar\n");
}
} while (n>0);
return 0;
}
14. Permita calcular el importe de una factura, a partir de una serie de artculos vendidos. Para
ello, el programa ir preguntando para cada artculo la cantidad de unidades vendidas y el
precio unitario.
El programa comprobar que tanto el precio como la cantidad son nmeros positivos, y en
caso contrario volver a solicitar los valores.
La lectura de artculos acabar cuando se introduzca un 0 en la primera pregunta. Entonces
se imprimir por pantalla el importe total de la factura.
#include<iostream>
using namespace std;
main(){
int n;
int precio, total=0;
do{
do{
printf("\nIntroduzca la cantidad vendida: ");
scanf("%d",&n);
if(n<0) printf("Cantidad no valida");
}while(n<0);
if (n>0){
printf("Introduzca el precio: ");
do{
scanf("%d",&precio);
if(precio<0) printf("Precio no valido");
}while(precio<0);
}
total=total+n*precio;
}while(n!=0);
printf("\n Total vendido = %d \n", total);
return 0;
}
15. Escribir un programa en C que escriba los nmeros comprendidos entre 1 y 1000. El
programa escribir en la pantalla los nmeros en grupos de 20, solicitando al usuario si quiere
o no continuar visualizando el siguiente grupo de nmeros. Generalizar el programa para que
escriba los nmeros comprendidos entre dos valores que introduzca el usuario, y sea ste
tambin quien decida el tamao del grupo a visualizar por pantalla.
#include<iostream>
using namespace std;
main(){
int main (int argc,char *argv[]);
{char r;
int x=1;
int tope = 1000;
int paso = 10;
do{
cout<<x<<" \t";
if(x%paso == 0 && x! = tope){
cout<< endl << "desea continuar (s/n)";
cin>>r;
}
}white(r! ="n"&& x++<tope);
cout<<endl;
system("pause");
return 0; }
}
16. Escriba un programa que lea nmeros por teclado hasta que se introduzca el cero. En ese
momento deber representar el nmero de introducciones efectuadas, y la mayor secuencia
de nmeros consecutivos iguales, indicando cul fue el nmero que se repiti y cuntas veces
seguidas apareci.
Ejemplo: Si se introduce 8 8 8 4 5 6 6 6 7 7 7 7 2 0, el resultado a mostrar ser. El nmero
ms repetido es el 7 y se ha escrito 4 veces.
#include<iostream>
using namespace std;
void factorial (int x)
{
int i;
long int fac = 1;
for (i=2; i<=x; i=i+1) fac=fac*i;
printf ("El factorial de %d es %ld", x, fac);
}
main ()
{
int a;
do
{
printf ("\n Introduce el numero ");
scanf ("%d", &a);
if (a>0)
factorial (a);
} while (a > 0);
}
18. Escriba un programa que calcule la raz cuadrada de un nmero con n decimales, por el
Mtodo de aproximaciones sucesivas.
Nota: Mtodo de las aproximaciones sucesivas
Se basa en 'ensayo y error'. A este tipo de algoritmos se les llama de aproximaciones
sucesivas: se empieza por un valor inicial y se va modificando para acercarse al resultado.
En este caso se comienza suponiendo que la raz es 1. Se comprueba si raiz*raiz=num y si
no es as se suma un incremento, y se vuelve a comprobar. Se repiten estos pasos hasta que
raiz*raiz>num.
Para computar el valor con un nmero determinado de decimales se repiten esos pasos con
un incremento cada vez menor (la primera vuelta 1, la segunda 0,1, la tercera 0,01
En cada paso la precisin es un decimal ms, por lo que se repite hasta que el nmero de
decimales sea el introducido por el usuario, o hasta que se encuentre el valor exacto.
19. Se quiere averiguar el nmero mgico de una persona. Para calcularlo se suman todos
los nmeros de su fecha de nacimiento y a continuacin se reducen a un solo dgito.
Ejemplo:
Fecha de nacimiento: 05/02/1973
5 + 2 + 1973 = 1980 => 1 + 9 + 8 + 0 = 18 =>9
#include<iostream>
using namespace std;
main(){
int d,m,a;
float Num;
cout<<"ingrese Dia de nacimiento:";cin>>d;
cout<<"ingrese mes de nacimiento:";cin>>m;
cout<<"ingrese ao de nacimiento:";cin>>a;
Num=d+m+a;
}
int sumaDigitos(int Num){
int Suma=0, Resto;
while(Num!=0){
Resto=(Num%10);
Suma=(Suma+Resto);
Num=(Num/10);
}
cout<<"numero magico es : "<<Num<<endl;
return (Suma);