//-----------------------------------------------------------------
// Verificació de condicions amb operadors relacionals
//
// Joan Aranès Clua
// data: 15/12/2001
//
// Pertany el punt (x,y) al cercle de centre (a,b) i radi r ?
//-----------------------------------------------------------------
#include <stdio.h>
#include <math.h>
void main ()
{
double a,b,r,x,y;
double dist2;//distància euiclidiana al quadrat entre P(x,y) i O(a,b)
//definició de la circumferència -> cercle
printf("-----------------------------------\n");
printf("Definiu una circumfer\x08Ancia donant el centre i el radi:\n");
printf("introdu\x08Bu les coordenades del centre de la
circumfer\x08Ancia: a i b, separades per un espai:\n");
scanf("%lf %lf",&a, &b);
printf("introdu\x08Bu el valor del radi de la circumfer\x08Ancia r:\n");
scanf("%lf",&r);
//definició del punt P(x,y) interior o exterior a la circumferència
printf("-----------------------------------\n");
printf("Pertany el punt P(x,y) al cercle de centre O(a,b) i radi r ?\n");
printf("introdu\x08Bu les coordenades del punt P: x i y,
separades per un espai:\n");
scanf("%lf %lf",&x, &y);
printf("\n");
printf("Si el punt P \x082s interior a la c. escriur\x085 un 1,en cas\n");
printf("contrari escriur\x085 un 0 ....\n");
printf("\n");
// càlcul de la distància al quadrat entre el centre de la c. i el punt
dist2=pow((x-a),2)+pow((y-b),2);
printf("resposta:\n");
printf("%d\n",dist2<=pow(r,2));
}
Mostrando entradas con la etiqueta C. Mostrar todas las entradas
Mostrando entradas con la etiqueta C. Mostrar todas las entradas
viernes, 1 de octubre de 2021
Punto interior/exterior a una circunferencia. Un ejercicio de programación en C/C++
Etiquetas:
C,
C/C++,
punto interior/exterior a una circunferencia
El algoritmo 3n+1. Conjetura de Collatz. Un ejercicio de programación en C/C++
//-----------------------------------------------------------------
// CICLE d'un nombre enter. L'algoritme 3n+1
//
// Joan Aranès Clua
// data: 17/12/2001
//
// Aquest programa calcula el "cicle" d'un nombre n
// el qual es calcula de la manera següent:
// 1. s'entra n
// 2. es mostra n
// 3. si n =1
// 4. aleshores ACABA EL PROGRAMA
// 5. si n es senar aleshores n:=3n+1
// 6. en cas contrari, és a dir, si n és parell, aleshores n:=n/2
// 7. tornar a la línia 2
//---------------------------------------------------------------------
// exemple 1. cicle(22) = {22, 11, 34, 17, 52, 26, 13,
40, 20, 10, 5, 16, 8, 4, 2, 1}
// es tracta d'un cicle de longitud 16
// --------------------------------------------------------------------
// EXEMPLES AMB POTÈNCIES DE ^2: 2^x
// exemple 2. cicle(32) = {32, 16, 8, 4, 2, 1}
// exemple 3. cicle(64) = {64, 32, 16, 8, 4, 2, 1}
// ...
// exemple 4. cicle(1024) = {1025, 512, 256, 128,
64, 32, 16, 8, 4, 2, 1}
// ...
// Cal observar que:
// 1r Efectivament, les longituds dels cicles de les potències de 2
són relativament curtes
// 2n longitud_del_cicle(2^x) = x+1
//-----------------------------------------------------------------
#include <stdio.h> //printf i scanf
#include <stdlib.h> //system() .. per a la f. cls
void main()
{
int n; // variable corresponent a la dada d'entrada
int m; // variable auxiliar
int longitud; // variable per mesurar la longitud del cicle
system("cls"); //esborra la pantalla
// entrada dels coeficients
printf("\nintrodu\x08Bu un nombre enter:\n");
printf("n=");
scanf("%d",&n);
printf("\ncicle(%d)=",n);
m=n;
longitud=1;
while (m>1)
{
printf("%d ",m);
if ((m%2)!=0)
m=3*m+1;
else
m=m/2;
longitud=longitud+1;
}
printf("%d ",m);
printf("\nlongitud del cicle(%d)=%d",n,longitud);
printf("\n\n");
}
Etiquetas:
3n+1,
C,
C/C++,
conjetura de Collatz
Encriptación de un texto por sustitución monoalfabética. Un ejercicio en C/C++
//////////////////////////////////////////
// Còpia encriptada per substitució monoalfabètica
// Joan Aranès Clua
// 7/04/2002
//////////////////////////////////////////
// MANEIG DE L'EXECUTABLE:
//
// Cal posar-nos a la consola del DOS
// i anar al directori on es troba l'executable m8e1.exe
// seguint els següents passos:
// 1. generem un fitxer de prova fent, per exemple,
// 1.1.: %>copy con prova.txt
// aixo es una prova
// CTRL+Z (insereix la marca de final d'arxiu EOF)
// 2. executem el programa que genará un segon arxiu amb el missatge encriptat
// el nom del qual haurem de triar (p.ex: 'arxiu2.txt') fent:
// 2.1.: %>m8e1 prova.txt prova2.txt
// 3. comprovar el contingut del fitxer generat
// %>type prova2.txt
#include <stdio.h>
#include <ctype.h>
void main(int argc, char *argv[]){
FILE *origen, *desti;
char car;
int codi; //codi de substitució
if(argc!=3){
printf("S'ha d'especificar arxiu origen i arxiu destí\n");
return;
}
printf("\n\nintroduïu el codi (0-25)...\n");
scanf("%d", &codi);
origen=fopen(argv[1],"rb");//fitxer de lectura i binari
desti=fopen(argv[2],"wb");// fitxer d'escriptura i binari
if (origen==NULL || desti==NULL){
printf("no es pot realitzar l'operació\n");
return;
}
car=getc(origen);
while(!feof(origen))
// llegeix en el fitxer origen fins trobar
// la marca EOF de final d'arxiu
{
if (car!=' ')
// si no es tracta d'un espai en blanc
{
car =(tolower(car)-97+codi)%26+97;
}
putc(car,desti); // també copia els espais
car=getc(origen);
}
fclose(origen);
fclose(desti);
}
Suscribirse a:
Entradas (Atom)