arnold2008
-
21 oct. 2008 à 11:38
bizu53
Messages postés1274Date d'inscriptionsamedi 30 août 2008StatutMembreDernière intervention21 juin 2015
-
21 oct. 2008 à 19:45
Bonjour,
Je voudrai qu'on m'aide à convertir le mini programme suivant qui est en javascript en matlab. Merci d'avance et bonne journée à vous.
Le code set le suivant:
<script language="JavaScript" type="text/javascript">
// global variables
var mw; // milliwatts
var w; // watts
var dbm; // dBm
var dbw; // dBW
var num; // intermediate results
var f; // frequency
var d; // distance
var ktm = .621; // km to miles
var mtk = 1.609; // miles to klics
var ftm = 3.28; // meters to feet
var mtf = .3048 // feet to meters
var db; // work variable
function round(number,places) {
// rounding numbers default = 3
places = (!places ? 3 : places);
return Math.round(number*Math.pow(10,places))/Math.pow(10,places);
}
f = parseFloat(u_freq);
if ((d = check_m(u_km,u_miles,"Distance")) == "Error")
{
return("Error");
}
// validate frequency
if ((isNaN(f)) || (f < 100) || (f > 60000))
{
window.alert("Frequency (in MHz) range = 100 to 60,000");
return("Error");
}
f = log10(f) / log10(10);
d = log10(d) / log10(10);
return(round((20 * f) + (20 * d) + 36.56,3));
}
function check_dbm(u_dbm, u_mw)
{
// normalise power to dbm
if(u_dbm == "")
{
dbm = to_dbm(u_mw);
}
else
{
dbm = parseFloat(u_dbm);
}
//validate dbm range
if ((isNaN(dbm)) || (dbm < -110) || (dbm > 100))
{
window.alert("dBm range from -110 to 100");
return("Error");
}
return(dbm);
}
function check_km(k,m,e) // returns KM
{
if(k == ""){
if(m == ""){ // must have a mile measure
alert(e+" not supplied");// error
return -1;
}
else{
if(isNaN(m) || m < 0.1 || m > 100){
alert(e+" (Miles) not numeric or not in range .1 to 100");
return -1;
}
tm = parseFloat(m);
return (tm * mtk);
}
}
else{
if(isNaN(k) || k < 0.1 || k > 160){
alert(e+" (Km) not numeric or not in range .1 to 160");
return -1;
}
return parseFloat(k);
}
}
function check_m(u_km, u_miles, err) // returns MILES
{
if(u_km == "")
{
// must be miles
d = parseFloat(u_miles);
if(isNaN(d) || d < 0.1 || d > 100)
{
window.alert(err+" range is .1 to 100 MILES");
return("Error");
}
}
else
{
d = parseFloat(u_km);
if(isNaN(d) || d < 0.1 || d > 160)
{
window.alert("Distance range is .1 to 160 KM");
return("Error");
}
d = d * ktm;
}
return(d);
}
tn = parseInt(num);
if(isNaN(tn) || tn < lo || tn > hi)
{
alert(err+" must be in range "+lo+" to "+hi);
return("Error");
}
return tn;
}
function fres_zone()
{
// note: uses explicit names in form which must be unique on page
if((tl = check_km(document.getElementById("fltk").value,document.getElementById("fltm").value,"Total Link distance")) == -1)
{
return;
}
// tl valid numeric in Km check for obstacle - if not present = link/2
tok = document.getElementById("flok").value;
tom = document.getElementById("flom").value;
if (tok == "" && tom == ""){
// default in km link/2
if (document.getElementById("fltk").value != ""){
document.getElementById("flok").value = round(tl/2,3);
}else{
document.getElementById("flom").value = round((tl/2)*ktm,3);
}
}
if((d1 = check_km(document.getElementById("flok").value, document.getElementById("flom").value, "Obstacle Distance")) == -1)
{
return;
}
d2 = tl - d1;
// check frequency present and numeric
flf = document.getElementById("flf").value;
if(flf == "")
{
alert("Frequency not specified");
return;
}
if(isNaN(flf ))
{
alert("Frequency not numeric");
return;
}
freq = parseFloat(flf);
bizu53
Messages postés1274Date d'inscriptionsamedi 30 août 2008StatutMembreDernière intervention21 juin 2015860 21 oct. 2008 à 19:45
Sans vouloir être méchant, je pense que tu rêves un peu...
1) Sur le forum, l'aide provient de façon bénévole... et vu la longueur de ton javascript ça m'étonnerait que qqu'un veuille bien se taper tout ce boulot à ta place.
2) Je n'ai jamais vu nulle part une quelconque utilité à passer d'un code à un autre. Je me trompe peut-être mais mon nez me dit que c'est un travail que t'as à faire, que t'as trouvé tout fait en javascript, et que t'as plus qu'à transcoder en matlab : on en revient au même point que la fin de ma phrase du 1).