MANUEL FERNANDEZ MARTIN

/*EL SIGUIENTE PROGRAMA SIRVE PARA CALCULAR LA NOTA MEDIA DE UNA ASIGNATURA, DONDE EL 90% SON LOS EXAMENES,
Y EL 10% RESTANTE SON LOS TRABAJOS REALIZADOS. EL PRIMER EXAMEN VALE UN 30%, EL SEGUNDO EXAMEN VALE UN 50%
Y EL TERCER EXAMEN VALE UN 20%. CADA TRABAJO SUMA 0.2 HASTA UN TOTAL DE 1 PUNTO. ADEMAS TE DICE QUE EXAMENES TIENES QUE RECUPERAR.*/
#include<iostream>

using namespace std;

int main()
{
double nota1, nota2, nota3, trabajo, nota_examenes, notafinal;

do{cout<<“Dame la nota de tu primer examen: “;
cin>>nota1;}while (nota1<0||nota1>10);
do{cout<<“Dame la nota de tu segundo examen: “;
cin>>nota2;}while (nota2<0||nota2>10);
do{cout<<“Dame la nota de tu tercer examen: “;
cin>>nota3;}while (nota3<0||nota3>10);
do{cout<<“Cuantos trabajos has echo: “;
cin>>trabajo;}while (trabajo<0||trabajo>5);

cout<<“Tu nota media de examenes es: “<<nota1*0.3+nota2*0.5+nota3*0.2<<endl;
cout<<“A continuacion indica tu nota final de examenes dicha anteriormente: “;
cin>>nota_examenes;
notafinal=nota_examenes*0.9+trabajo*0.2;
cout<<“La nota final del curso es: “<<notafinal<<endl;
if(notafinal<5){if(nota1<5){cout<<“Tienes que recuperar el primer examen”<<endl;}
if(nota2<5){cout<<“Tienes que recuperar el segundo examen”<<endl;}
if(nota3<5){cout<<“Tienes que recuperar el tercer examen”<<endl;}
}
else if (notafinal<=7){cout<<“Has aprobado, enhorabuena.”;}
else if(notafinal<=9){cout<<“Has aprobado, tu nota es un notable, enhorabuena”;}
else if(notafinal<=10){cout<<“Has aprobado con un sobresaliente, enhorabuena”;}
}

Anuncios
Publicado en Sin categoría | Deja un comentario

Quitar vocales y espacios de un fichero

IGNACIO MONTERO GIL

 
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int isvowel (int c);

int
main () 
{
  
int c, i;
  
FILE * pf, *pq;
  
 
    /* abrimos un fichero donde esta el quijote */ 
    
pf = fopen ("quijote.txt", "r+");
  
pq = fopen ("quijote1.txt", "w+");
  
 
printf ("LEEMOS CARACTER A CARACTER: \n");
  
while (feof (pf) == 0)
    
    {
      
c = getc (pf);
      
if (!isvowel (c))
	{
	  
putchar (toupper (c));
	  
putc (toupper (c), pq);
	
}
    
}
  
putchar ('\n');
  
fclose (pf);
  
system ("pause");

}


 
int
isvowel (int c)
{
  
 
if (c == 'a' || c == 'A' || c == 'e' || c == 'E' || c == 'i' || c == 'I'
	 || c == 'o' || c == 'O' || c == 'u' || c == 'U' || c == ' ')
    
return 1;
  
return 0;

}

Publicado en Informática e Internet | Deja un comentario

Tipos de triángulos

MANUEL FERNANDEZ MARTIN

/* El siguiente programa calcula si un triángulo es equilátero, isósceles o escaleno, y su perímetro a partir de los lados dados */

#include<iostream>
using namespace std;
int main()
{
int lado1, lado2, lado3;

cout<<“Introduzca el primer lado del triangulo: “<<endl;
cin>>lado1;
cout<<“Introduzca el segundo lado del triangulo: “<<endl;
cin>>lado2;
cout<<“Introduzca el tercer lado del triangulo: “<<endl;
cin>>lado3;

if(lado1==lado2&&lado1==lado3&&lado2==lado3)
{cout<<“El triangulo es equilatero”<<endl;
cout<<“El perimetro del triangulo es: “<<lado1+lado2+lado3;}
else if(lado1!=lado2&&lado2!=lado3&&lado1!=lado3)
{cout<<“El triangulo es escaleno”<<endl;
cout<<“El perimetro del triangulo es: “<<lado1+lado2+lado3;}
else{cout<<“El triangulo es isosceles”<<endl;
cout<<“El perimetro del triangulo es: “<<lado1+lado2+lado3;}

return 0;
}

Publicado en Informática e Internet | Deja un comentario

Rombo

MIKEL PALACIOS MARTINEZ

/* PROGRAMA PARA CALCULAR EL AREA Y PERIMETRO DE UN ROMBO */

#include <iostream>
#include <math.h>
using namespace std;

main ()
{
int area, per, dM, dm;
double lado;

do{
cout << “Dame el valor de la diagonal mayor: “;
cin >> dM;
}while(dM<0 || dM>100);

do{
cout<< “dame el valor de la diagonal menor: “;
cin >> dm;
}while(dm<0 || dm>50);

lado=0.5*sqrt((dM*dM)+(dm*dm));

per=lado*4;

area=(dM*dm)/2;

cout << “el valor del perimetro es: ” << per << endl;
cout << “el valor del area es: ” << area << endl;
}

Publicado en Informática e Internet | Deja un comentario

Colores en el espectro visible

MIKEL PALACIOS MARTINEZ

/* PROGRAMA PARA SABER EL COLOR EN FUNCION DEL VALOR DE nm EN EL ESPECTRO VISIBLE */

#include <iostream>
using namespace std;

int main()
{
//char color, rojo, amarillo, azul;
int lo;

do{
cout << “dame el valor de la longitud de onda: “;
cin >> lo;
}while(lo<380 || lo>760);

if(lo>=380 && lo<495)
{
cout << “ese valor de longitud de onda corresponde al color: azul ” << endl;
}
else if(lo>=495 && lo<620)
{
cout << “ese valor de longitud de onda corresponde al color: amarillo ” << endl;
}
else if(lo>=620)
{
cout << “ese valor de longitud de onda corresponde al color: rojo” << endl;
}

}

Publicado en Informática e Internet | Deja un comentario

Triángulo de Pascal

Jaime Jiménez Omeñaca

/*ESTE PROGRAMA DEVUELVE N FILAS DEL TRIÁNGULO DE PASCAL*/

#include<iostream>
#include<math.h>
#include<stdlib.h>

using namespace std;

int factorial (int n);
int combinatoria (int n, int r);

int main()
{
int i, j, n;

cout << “Introduce el numero de filas del Triangulo de Pascal: ” << endl;
cin >> n;

cout << endl << endl;

for(int i=0; i<=n; i++)
{
for(int j=0; j<=i; j++)
cout << combinatoria(i, j) << ” \t”;
cout << endl;
}
return 0;

}

int factorial(int n)
{
if(n<2)
return 1;
else
return n * factorial(n-1);
}

int combinatoria(int n, int r)
{
if(r==1 || r==n-1)
return n;
else
{
if(r==0 || r==n)
return 1;
else
return factorial(n) / (factorial(r) * factorial(n – r));
}
}

Publicado en Informática e Internet | Deja un comentario

Números perfectos y cuasi-perfectos

Ricardo López Ruiz

/******************************************************************************

Cálculo de Números Cuasi-Perfectos: Sum_div_prop_n = (n + n_more)

[ div_prop_n = {i, tales que i<n & i mod n =0} ] (se incluye al 1 en este conjunto)

(1) Para n_more=0 tenemos el caso de los números perfectos. Hasta donde permite el cálculo se obtienen los primeros números perfectos: 6, 28, 496, 8128, 33550336,… Todos los números perfectos conocidos son pares y acabados en 6 ó en 28. Recordar que sólo se conocen del orden de 50 números perfectos (una lista de ellos está colgada en el One-Drive), en consonancia con el número de primos de Mersenne que se conocen, y con los que los números perfectos están relacionados. Por tanto, la probabilidad de encontrar números perfectos es aprox. del 0%. La probabilidad de encontrar números abundantes (Sum_div_prop_n > n)  es aprox. del 25%, y la de encontrar números defectivos (Sum_div_prop_n < n) es aprox. del 75%, como puede fácilmente verificarse con una simulación.

(2) Para n_more=-1 se obtienen las potencias de 2: 2,4,8,16,32,64,… Es fácil ver que
si n=2^k entonces Sum_div_prop_n = 2^k-1 = n-1. No parece trivial
ver el inverso, es decir, que si Sum_div_prop_n = n-1, entonces
n es potencia de 2. De hecho, a día de hoy parece ser un problema abierto.

(3) Para n_more=1 se obtienen cero soluciones hasta donde nos permite el cáculo, es decir, parece no haber números n que cumplan Sum_div_prop_n = n+1. Habría que ver si hay en la bibliografía algun resultado a este respecto.

(4) La cuestión es que la modificación de n_more también parece dar otros valores donde no se obtienen soluciones. Por ejemplo, para n_more=5,9,…,-3,-9,… no se encuentran soluciones hasta donde el cálculo lo permite.

(5) Para otros n_more=2,3,4,6,7,8…-2,-4,-5,-6,-7,-8,…  las soluciones son muy concretas tal como lo son para n_more=0, que es el caso hiper-conocido de los números perfectos.

(6) En resumen, si definimos la función entera F(n) = Sum_div_prop_n – n = n_more, los números perfectos son aquel subconjunto (no se sabe si finito o infinito) del dominio tal que F(n)=0. Evidentemente, estudiar otros subconjuntos del dominio para otro n_more cualquiera, F(n)=n_more, también puede deparar comportamientos parecidos a los del caso particular de los números perfectos, por ejemplo, ver punto (5). O también incluso que haya un dominio vacío para F(n)=n_more, para ciertos n_more, tal como se prevee en puntos (3) y (4).

*******************************************************************************/
#include <stdio.h>
#include <math.h>

#define n_more -1

int tipo(int);

int main()
{
int N;

printf(“Dame N>2: “);
scanf(“%i”,&N);

printf(“\nNumeros cuasi-perfectos: \n”);
for(int n=2;n<=N;n++)
if(tipo(n)) printf(“%i “, n);

return 0;
}

int tipo(int n)
{
int sum=1, lim;

lim=sqrt(n);
for(int i=2;i<=lim;i++)
if(n%i==0) sum += i + n/i;

if(lim==sqrt(n)) sum -= lim; // Si n cuadrado perfecto

if(sum==n+n_more) return 1;
return 0;
}

Publicado en Informática e Internet | Deja un comentario