<<O>>  Cambios es la página ProgramacionC (r1.9 - 29 May 2005 - JuanLopez)

Programación en C

logoc.jpeg
Line: 272 to 272

}

Added:
>
>

Programa para averiguar máximo común divisor y mínimo común múltiplo usando congruencias

// Programa para calcular el máximo común divisor y mcm de dos números usando congruencias
// (c) Juan López Sánchez ' 2005
#include <iostream>

int main (int argc, char * const argv[]) {
// insert code here...
system ("clear");
unsigned long n1,n2,n3,n4;
printf("Introduce primer número: ");
scanf("%d",&n1);
n3=n1;
printf("Introduce segundo número: ");
scanf("%d",&n2);
n4=n2;
while (n1!=n2)
{
if (n1>n2)
n1=n1-n2;
else
n2=n2-n1;
}
printf ("\n\nEl máximo común divisor es: %d\n\n",n1);
printf ("El mínimo común múltiplo es: %d",n3*n4/n1);

return 0;
}



-- JuanLopez - 17 Sep 2004

 <<O>>  Cambios es la página ProgramacionC (r1.8 - 20 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 278 to 278

El pingüino ya no tiene frío

Added:
>
>

META FORM ClasificacionPaginas  
META FIELD ModeloCalculadora ModeloCalculadora  
META FIELD AreaAplicacion AreaAplicacion  
META FIELD DetallesExtra DetallesExtra ProgramacionenC
META FILEATTACHMENT logoc.jpeg attr="" comment="" date="1095364542" path="logoc.jpeg" size="9829" user="JuanLopez" version="1.1"
Changed:
<
<
META FILEATTACHMENT divisores attr="" comment="Ejecutable del programa divisores" date="1095407728" path="divisores" size="11949" user="JuanLopez" version="1.1"
>
>
META FILEATTACHMENT divisores attr="h" comment="Ejecutable del programa divisores" date="1095407728" path="divisores" size="11949" user="JuanLopez" version="1.1"
META FILEATTACHMENT programasc.tar attr="" comment="Ejecutables de los programas anteriores" date="1095681747" path="programasc.tar" size="61440" user="JuanLopez" version="1.1"
 <<O>>  Cambios es la página ProgramacionC (r1.7 - 19 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 38 to 38

scanf ("%d",&numero);
mitad=numero/2;

Changed:
<
<
for (x=1;x<=mitad;++x)<br> {
if (numero%x==0) printf ("%d, ",x);
}
>
>
for (x=1;x<=mitad;++x)

{

if (numero%x==0) printf ("%d, ",x);

}


printf ("%d\n\n",numero);
printf ("JuanLopez'2003. Powered C++\n\n");
printf ("\n\nPulsa 1 + Intro para otra vez, otro numero acaba ");
Line: 72 to 76

factorial=numero; //inicializar variables//

Changed:
<
<
for (x=1;x<=numero-1;++x)<br> {
factorial=factorial*x;
>
>
for (x=1;x<=numero-1;++x)

{

factorial=factorial*x;


}
Added:
>
>

printf ("\n\nEl factorial de %f es %f ",numero,factorial);
printf ("\n\nJuanLopez'2003. Programado en C++\n\n");
printf ("\n\nPulsa 1 + Intro para otra vez. Otro numero acaba: ");
scanf("%d",&retardo);
Changed:
<
<
if (retardo==1) goto inicio;
}
>
>
if (retardo==1) goto inicio;

}



Divertido programa para trabajar el Cálculo mental.

Aplicable desde niños de 3º y 4º de Primaria.
 <<O>>  Cambios es la página ProgramacionC (r1.6 - 17 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 11 to 11

Para escribir un programa en C en Gualinex puedes utilizar un Editor simple de texto como Gedit y guardar el fichero con el nombre fichero.c (es decir el nombre que quieras seguido de un punto y la letra c).

Added:
>
>
Puedes utilizar la opción de Copiar y Pegar con el código de esta página CRTL+C (copia) y CRTL+V (Pega)

Para compilarlo y crear un ejecutable abres un xterm y escribes:

$gcc -o fichero fichero.c (fichero es el ejecutable que te va a crear el compilador)

Line: 21 to 23


Programa para hallar todos los divisores de un número

Added:
>
>
/* Calcula todos los divisores de un número */
/* Juan López Sánchez (c) Jls-Soft'2003 */

#include <stdio.h>
#include <stdlib.h>
Line: 49 to 54

En realidad, el cálculo del factorial es una función implementada en la calculadora, pero incluyo esta rutina que por su simpleza puede ayudar a comprender la estructura de un programa en C.

Added:
>
>
/* Programa para Calcular el factorial de un número */
/* Juan López Sánchez (c) Jls-Soft'2003 */

#include<stdio.h>
#include<stdlib.h>
Line: 75 to 83

if (retardo==1) goto inicio;
}

Added:
>
>

Divertido programa para trabajar el Cálculo mental.

Aplicable desde niños de 3º y 4º de Primaria.

/* Adivina un número del 1 al 100 */
/* Tienes 6 intentos */
/* Juan López Sánchez (c) Jls-Soft'2003 */

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

double rnd (long *prandom);

main ()
{

principio:system ("clear");

long inicio = time (NULL) % 65536; //semilla
long random = inicio; //random=numero entre 0 y 65535
unsigned short pensado, mayor, diferencia, otravez, n_intentos=6,x = 1;
float numero1;

numero1 = rnd (&random);
unsigned short numero = numero1 * 101;
printf ("*** Este juego trata de acertar un número del 1 al 100 ***\n");
printf("*** Primero tienes que elegir en cuántos intentos lo vas a acertar ***\n");
printf(" ¡¡¡ Con 6 intentos te garantizas casi el éxito !!!\n\n");
printf("Teclea el número de intentos y da Intro: ");
scanf("%d",&n_intentos);

printf ("*** Tienes %d intentos para acertar un número del 1 al 100 ***\n\n",n_intentos);

printf("*****************************************************************\n");

for (x = 1; x <= n_intentos; ++x)

{

printf ("\nIntento %d Introduce un número: ", x);
scanf ("%d", &pensado);

if (pensado == numero)

{
printf ("Estupendo, lo has adivinado en %d intentos", x);
goto salir;

}

mayor = (numero > pensado) ? numero : pensado;
if (mayor == numero)
{

diferencia = numero - pensado;
if (diferencia < 10)
printf ("\nTe faltan menos de 10 unidades\n");
else
printf ("\nTe faltan más de 10 unidades\n");
}
else
{
diferencia = pensado - numero;
if (diferencia < 10)
printf ("\nTe has pasado en menos de 10 unidades\n");
else
printf ("\nTe has pasado en más de 10 unidades\n");
}

}

salir:printf ("\n\nEl número era el: %d ", numero);

printf ("\nPulsa 1 más Intro para otra vez, otro número acaba ");
scanf ("%d", &otravez);
if (otravez == 1)
goto principio;

printf("\n**** Adivina ver 2.0 *****\n");
printf ("\nJuanLopez'2003. Adict to Linux\n\n");

}

double
rnd (long *prandom)
{
*prandom = (25173 * *prandom + 13849) % 65536;
return ((double) *prandom / 65535);
}


Programa para calcular el máximo común divisor de tres números

Es interesante el uso de la recursividad. La función mcd se llama a sí misma

/**************** Maximo Comun divisor ***********/
// utilizando el algoritmo de Euclides
// (c) Juan Lopez Sanchez 2003

#include<stdio.h> //libreria de entrada y salida

#include<stdlib.h> //libreria para las llamadas al sistema

unsigned long int divisor;

unsigned long int mcd(unsigned long int numero1,unsigned long int numero2);

main ()

{ unsigned long int numero_1,numero_2,numero_3;

system("clear"); // llamada al sistema, limpia la pantalla

printf("Programa para calcular el mcd de tres numeros\n");
printf(" ** Utiliza el algoritmo de Euclides **\n\n\n");
printf("Introduce primer numero: ");
scanf("%d",&numero_1);
printf("\nIntroduce segundo numero: ");
scanf("%d",&numero_2);
printf("\nIntroduce segundo numero: ");
scanf("%d",&numero_3);
mcd(numero_1,numero_2);
mcd(numero_3,divisor);
printf("\nEl maximo comun divisor es %d\n ",divisor);

printf ("\n\nFIN. (C) Jls-Soft'2003. Adict to Linux\n\n\n");

}

unsigned long int mcd(unsigned long int numero1,unsigned long int numero2)

{ unsigned long int resto,dividendo;
long int contador;

contador=1;
dividendo=numero1;
divisor=numero2;
resto=numero1%numero2;

while (contador>=0)

{

if (dividendo%divisor==0){

//printf("\nEl maximo comun divisor es %d\n ",divisor);
return (divisor);
contador=-1;

}

else{

resto=dividendo%divisor;
dividendo=divisor;
divisor=resto;

} }

}



Changed:
<
<
-- JuanLopez - 16 Sep 2004
>
>
-- JuanLopez - 17 Sep 2004

El pingüino ya no tiene frío

 <<O>>  Cambios es la página ProgramacionC (r1.5 - 17 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 47 to 47


Programa para calcular el factorial de un número

Changed:
<
<
En realidad, el cálculo del factorial es una función implementada en la calculadora, pero incluyo esta rutina por su simpleza puede ayudar a comprender la estructura de un programa en C.
>
>
En realidad, el cálculo del factorial es una función implementada en la calculadora, pero incluyo esta rutina que por su simpleza puede ayudar a comprender la estructura de un programa en C.

#include<stdio.h>
#include<stdlib.h>

 <<O>>  Cambios es la página ProgramacionC (r1.4 - 17 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 13 to 13

Para compilarlo y crear un ejecutable abres un xterm y escribes:

Changed:
<
<
$gcc fichero.c -o fichero (fichero es el ejecutable que te va a crear el compilador)
>
>
$gcc -o fichero fichero.c (fichero es el ejecutable que te va a crear el compilador)

Para hacer correr el ejecutable creado escribes en el xterm:

Line: 55 to 55

main()
{
Changed:
<
<
inicio:float numero,x=1,factorial;
>
>
float numero,x=1,factorial;

int retardo;
Changed:
<
<
system ("clear");//en el lado oscuro system ("cls");
>
>
inicio:system ("clear");//en el lado oscuro system ("cls");

printf("Introduce un numero para calcularle su factorial: ");
scanf ("%f",&numero);
Line: 75 to 75

if (retardo==1) goto inicio;
}

Deleted:
<
<
Nota: El programa factorial funciona en algunas versiones del compilador gcc, en la versión que trae Guadalinex Edu 2.0 da errores, cuando los tenga subsanados publicaré las modificaciones.

-- JuanLopez - 16 Sep 2004

 <<O>>  Cambios es la página ProgramacionC (r1.3 - 17 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 75 to 75

if (retardo==1) goto inicio;
}

Added:
>
>
Nota: El programa factorial funciona en algunas versiones del compilador gcc, en la versión que trae Guadalinex Edu 2.0 da errores, cuando los tenga subsanados publicaré las modificaciones.

-- JuanLopez - 16 Sep 2004

Line: 85 to 86

META FIELD AreaAplicacion AreaAplicacion  
META FIELD DetallesExtra DetallesExtra ProgramacionenC
META FILEATTACHMENT logoc.jpeg attr="" comment="" date="1095364542" path="logoc.jpeg" size="9829" user="JuanLopez" version="1.1"
Added:
>
>
META FILEATTACHMENT divisores attr="" comment="Ejecutable del programa divisores" date="1095407728" path="divisores" size="11949" user="JuanLopez" version="1.1"
 <<O>>  Cambios es la página ProgramacionC (r1.2 - 16 Sep 2004 - JuanLopez)

Programación en C

logoc.jpeg
Line: 9 to 9

Guadalinex trae un compilador de C instalado de serie el gcc

Changed:
<
<
Para escribir un programa en C en Gualinex puedes utilizar un Editor simple de texto como Gedit y guardar el fichero con el nombre fichero.c (es decir el nombre que quieras seguido de un punto y la letra c).
>
>
Para escribir un programa en C en Gualinex puedes utilizar un Editor simple de texto como Gedit y guardar el fichero con el nombre fichero.c (es decir el nombre que quieras seguido de un punto y la letra c).

Para compilarlo y crear un ejecutable abres un xterm y escribes:

Changed:
<
<
$gcc fichero.c -o fichero (fichero es el ejecutable que te va a crear el compilador)
>
>
$gcc fichero.c -o fichero (fichero es el ejecutable que te va a crear el compilador)

Para hacer correr el ejecutable creado escribes en el xterm:

$./fichero

Deleted:
<
<

Programa para hallar todos los divisores de un número



Added:
>
>

Programa para hallar todos los divisores de un número


#include <stdio.h>
#include <stdlib.h>
Line: 38 to 38

if (numero%x==0) printf ("%d, ",x);
}
printf ("%d\n\n",numero);
Changed:
<
<
printf ("Jls-Soft'2003. Powered C++\n\n");
>
>
printf ("JuanLopez'2003. Powered C++\n\n");

printf ("\n\nPulsa 1 + Intro para otra vez, otro numero acaba ");
scanf ("%d",&retardo);
if (retardo==1) goto inicio;

}


Added:
>
>

Programa para calcular el factorial de un número

En realidad, el cálculo del factorial es una función implementada en la calculadora, pero incluyo esta rutina por su simpleza puede ayudar a comprender la estructura de un programa en C.

#include<stdio.h>
#include<stdlib.h>

main()
{

inicio:float numero,x=1,factorial;
int retardo;
system ("clear");//en el lado oscuro system ("cls");
printf("Introduce un numero para calcularle su factorial: ");
scanf ("%f",&numero);

factorial=numero; //inicializar variables//

for (x=1;x<=numero-1;++x)<br> {
factorial=factorial*x;
} printf ("\n\nEl factorial de %f es %f ",numero,factorial);
printf ("\n\nJuanLopez'2003. Programado en C++\n\n");
printf ("\n\nPulsa 1 + Intro para otra vez. Otro numero acaba: ");
scanf("%d",&retardo);
if (retardo==1) goto inicio;
}



-- JuanLopez - 16 Sep 2004

El pingüino ya no tiene frío

 <<O>>  Cambios es la página ProgramacionC (r1.1 - 16 Sep 2004 - JuanLopez)
Line: 1 to 1
Added:
>
>

Programación en C

logoc.jpeg

Aunque la calculadora es una herramienta muy potente para casi todas las operaciones matemáticas que deseemos, a la hora de correr programas se ven condicionadas por dos factores: el lenguaje de programación que implementan (normalmente un intérprete de BASIC) y en segundo lugar el procesador que llevan que es bastante lento. Para ello, la solución es echar mano del ordenador y en este caso crearnos nuestras propias rutinas. Para mí, el lenguaje ideal para ello por su rapidez es C. Además tenemos la suerte de que viene implementado en Linux de serie, así como el compilador del mismo.

Voy a añadir una serie de programas simples por si los quieres probar y usar en Linux

Guadalinex trae un compilador de C instalado de serie el gcc

Para escribir un programa en C en Gualinex puedes utilizar un Editor simple de texto como Gedit y guardar el fichero con el nombre fichero.c (es decir el nombre que quieras seguido de un punto y la letra c).

Para compilarlo y crear un ejecutable abres un xterm y escribes:

$gcc fichero.c -o fichero (fichero es el ejecutable que te va a crear el compilador)

Para hacer correr el ejecutable creado escribes en el xterm:

$./fichero

Programa para hallar todos los divisores de un número


#include <stdio.h>
#include <stdlib.h>

main()
{
unsigned long int numero,mitad,retardo,x=1;

inicio:system ("clear"); /*si estuvieses programando en el lado oscuro system ("cls")*/
printf("Introduce un numero para calcularle todos sus divisores: ");
scanf ("%d",&numero);
mitad=numero/2;

for (x=1;x<=mitad;++x)<br> {
if (numero%x==0) printf ("%d, ",x);
}
printf ("%d\n\n",numero);
printf ("Jls-Soft'2003. Powered C++\n\n");
printf ("\n\nPulsa 1 + Intro para otra vez, otro numero acaba ");
scanf ("%d",&retardo);
if (retardo==1) goto inicio;

}


-- JuanLopez - 16 Sep 2004

El pingüino ya no tiene frío

META FORM ClasificacionPaginas  
META FIELD ModeloCalculadora ModeloCalculadora  
META FIELD AreaAplicacion AreaAplicacion  
META FIELD DetallesExtra DetallesExtra ProgramacionenC
META FILEATTACHMENT logoc.jpeg attr="" comment="" date="1095364542" path="logoc.jpeg" size="9829" user="JuanLopez" version="1.1"
Revision r1.1 - 16 Sep 2004 - 19:55 - JuanLopez
Revision r1.9 - 29 May 2005 - 17:52 - JuanLopez