martes, 17 de noviembre de 2015

Planètes

Calculer la superficie et le volume d'une sphère


Le volume, en sciences physiques ou mathématiques, est une grandeur qui mesure l'extension d'un objet ou d'une partie de l'espace. La superficie d'un espace au sol ou d'une surface physique plane ou gauche est sa mesure physique exprimée avec une unité de mesure. L'unité correspondante du système international est le mètre carré1 ou l'un de ses multiples ou sous-multiples.
Dans cet exercice, nous proposons de développer un programme dont l'entrée est le rayon d'une planète et sa sortie:
  • La superficie de la planète
  • Le volumen de la planète
Les formules qui sont nécessaires:
Le volume d'une sphère est exprimé en termes de son rayon r\, comme:
V = \frac{4 \pi r^3}{3}
La superficie est 4 fois \pi \, fois son rayon au carré:
\ A = 4\pi r^2

Par exemple, si l'entrée est 6351 (le rayon moyen de la Terre en kilomètres), le programme doit fournir les résultats:
  • Superficie: 510064471.90978825
  • Volume: 1083206916845.7535

Perl Solution

#!/usr/bin/perl
use strict;
use warnings;
print "Entrez la rayon: ";
my $rayon = <stdin>;
chomp($rayon);

my $PI = 4.0 * atan2(1.0,1.0);

my $volume;
$volume = ($rayon * $rayon * $rayon * $PI * 4) / 3;
print "Le volume de la planète est $volume\n";

my $superficie;
$superficie = $rayon * $rayon * $PI * 4;
print "La superficie de la planète est $superficie\n";


Javascript Solution

var rayon= prompt('Entrez la rayon',0);
var volume;
volume = (rayon * rayon * rayon * Math.PI * 4) / 3;
alert ('Le volume de la planète est  ' + volume);
var superficie;
superficie = rayon * rayon * Math.PI * 4;
alert ('La superficie de la planète est ' + superficie);

sábado, 7 de noviembre de 2015

Conversión de temperaturas

Convertir de Grados Celsius a Fahrenheit


El grado Celsius o centígrado es la unidad termométrica que Anders Celsius definió en 1742 considerando las temperaturas de ebullición y de congelación del agua. Es muy utilizada para expresar las temperaturas de uso cotidiano. El grado Fahrenheit es una escala de temperatura propuesta por Daniel Fahrenheit en 1724 y se usa en la mayoría de los países anglosajones, aunque está siendo desplazado paulatinamente.
En este ejercicio proponemos desarrollar un programa cuya entrada sea una temperatura en grados Fahrenheit y su salida sea la temperatura en grados Celsius.
La fórmula de conversión es:
C= (F - 32) * 5/9
Por ejemplo, si la entrada es 131, el programa debe entregar el resultado 55.

Solución en Perl

#!/usr/bin/perl
use strict;
use warnings;
print "Ingrese la temperatura: ";
my $fah = <>;
chomp($fah);
my $cel;
$cel = ($fah - 32) * 5/9;
print "Temperatura de $fah grados Fahrenheit es $cel grados Celsius";

Solución en Javascript

var fah= prompt('Ingrese la temperatura',0);
var cel;
cel = (fah - 32) * 5/9;
alert ('Temperatura de ' + fah + ' grados Fahrenheit es ' + cel + ' grados Celsius');

domingo, 6 de septiembre de 2015

Convertir caracteres entre mayúsculas y minúsculas 2

Convertir el primer carácter de cada palabra del string



La función ucwords() de Php convierte el primer carácter de cada palabra a mayúscula.

// Ejemplo
<?
$foo= 'Viens, fait le pour moi!';
$bar= ucwords($foo); // Viens, Fait Le Pour Moi!
print $bar."\n";

Para hacer lo contrario, es decir, convertir a minúscula el primer carácter de cada palabra, tenemos que trabajar un poco más:


<?
/* 
    # lcwords v1.000
    # Convertir el primer carácter de cada palabra a minúscula
    # input string
    # return string
*/
function lcwords($string)
{
/* Variables temporales */
    # variable loop
    $a = 0;
    # almacenar todas las palabras en un array para luego unirlas en un string y retornarlo
    $string_new = array();
    $string_exp = explode(" ",$string);
    foreach($string_exp as $astring)
    {
        for($a=0;$a<strlen($astring);$a++)
        { 
            # chequear que el carácter es una letra
            # ejemplo: si la palabra es "100PRE" debería convertir la letra P solamente
            # chequear el carácter en la posicion $a
            if(preg_match("'\w'",$astring[$a]))
            {
                $astring[$a] = strtolower($astring[$a]);
                # conseguido! finalizar el bucle
                break;
            }
        }
        $string_new[] = $astring;
    }
    # devolver el string como la unión de las palabras separadas por un espacio
    return implode(" ",$string_new);
}

// Ejemplo 2
$foo = 'Viens, embrasse MOI!';
$bar = lcwords($foo); // viens, embrasse mOI!



En Javascript no hay una función ucwords() como en Php para convertir en mayúsculas la primera letra de cada palabra en un string, pero podemos crear una:

function ucwords(str){
return str.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g,
        function($1){
            return $1.toUpperCase();
        });
}
//Ejemplo
str= "Tout ce qui nous a unis";
console.log(ucwords(str)); // Tout Ce Qui Nous A Unis

Para convertir a minúsculas la primera letra de cada palabra en un string en Javascript, podemos armar esta función lcwords:

function lcwords(str){
return str.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g,
        function($1){
            return $1.toLowerCase();
        });
}
//Ejemplo
str= "Tout ce Qui NOUS a Unis";
console.log(lcwords(str)); // tout ce qui nOUS a unis

Para convertir el primer carácter de cada palabra de un string a mayúsculas o minúsculas en Perl tampoco existe una función ucwords() o lcwords(). Pero podemos usar split, map y join en conjunto para lograr ese efecto. Con split separamos el string en palabras, con map aplicamos una función a cada palabra, en este caso ucfirst o lcfirst, y luego con join volvemos a juntar el string. Veamos el ejemplo:

# Ejemplo 1
$texto = "CES TRaces quE Tu as laisse à Paris";
$texto = join '', map { ucfirst } split /(\s+)/, $texto;
# CES TRaces QuE Tu As Laisse à Paris
print "Texto: " . $texto;
# Ejemplo 2
$texto = "CES TRaces quE Tu as laisse à Paris";
$texto = join '', map { lcfirst } split /(\s+)/, $texto;
# cES tRaces quE tu as laisse à paris
print "Texto: " . $texto;

Un tercer ejemplo

Si además de pasar la primera letra a mayúsculas, queremos las demás en minúsculas, prueba agregar otra función en map, en este orden: ucfirst lc

# Ejemplo 3
$texto = "CES TRaces quE Tu as laisse à Paris";
$texto = join '', map { ucfirst lc } split /(\s+)/, $texto;
# Ces Traces Que Tu As Laisse à Paris
print "Texto: " . $texto;


martes, 1 de septiembre de 2015

Convertir caracteres entre mayúsculas y minúsculas


Convertir todos los caracteres del string


La función de Perl lc() regresa el string pasado como parámetro con todos sus caracteres en minúsculas. En cambio la función uc() regresa el string pasado como parámetro a mayúsculas.

my $s = "La comunidad de compra y venta OnLine de Europa\n";
print("Todo en mayúsculas:\n");
print(uc($s),"\n");
print("Todo en minúsculas:\n");
print(lc($s),"\n");

La función de Javascript toLowerCase() regresa el string pasado como parámetro con todos sus caracteres en minúsculas. En cambio la función toUpperCase() regresa el string pasado como parámetro a mayúsculas.

// Ejemplo 1
var str = "Hola Mundo!";
var res = str.toLowerCase(); 
// Ejemplo 2
var str = "Hola Mundo!";
var res = str.tUpperCase(); 

La función de Php strtolower() regresa el string pasado como parámetro con todos sus caracteres en minúsculas. En cambio la función strtoupper() regresa el string pasado como parámetro a mayúsculas.

$str = "SiguE a tus FavoritoS dESDe aQuí";
$str = strtoupper($str);
// muestra:  SIGUE A TUS FAVORITOS DESDE AQUÍ
echo $str; 
$str = "SiguE a tus FavoritoS dESDe aQuí";
$str = strtolower($str);
// muestra  sigue a tus favoritos desde aquí
echo $str; 

 

Convertir el primer carácter de un string


La función lcfirst() de Perl devuelve el string pasado como parámetro pero con la primera letra cambiada a minúsculas. La función ucfirst() de Perl devuelve el mismo string pero con la primera letra cambiada a mayúsculas.

print lcfirst $str;  // Muestra la primera letra en minúsculas
print ucfirst $str;  // Muestra la primera letra en mayúsculas

La función lcfirst() de Php devuelve el string pasado como parámetro pero con la primera letra cambiada a minúsculas. La función ucfirst() de Php devuelve el mismo string pero con la primera letra cambiada a mayúsculas.

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = ucfirst($bar);             // HELLO WORLD!

En Javascript no existen la función lcfirst o ucfirst, pero se puede usar la función charAt() con 0 como argumento para que devuelva el carácter ubicado en la posición 0. A éste carácter le aplicamos la funcion toUpperCase() o toLowerCase() según corresponda. Luego lo concatenamos con el resto del string y así nos queda la respuesta que esperamos.

// ejemplo de un ucfirst simulado
var cadena= "hola mundo!";
var respuesta= cadena.charAt(0).toUpperCase() + cadena.substr(1);
// nos queda "Hola mundo!"

// ejemplo de un lcfirst simulado
var cadena= "Hola Mundo!";
var respuesta= cadena.charAt(0).toLowerCase() + cadena.substr(1);
// nos queda "hola Mundo!"