| Nahlásit

Javascript, úloha

Už jsem sem psala jednou, ale nějak mi to pořád nefunguje. Pomůže mi někdo prosím? Potřebuju to opravdu nutně do školy. Neumím to prostě sestavit dohromady. Nemohl by mi to někdo napsat jak to mám být od začátku až do konce? Celé to tělo? Já jsem už vážně zoufalá a tohle je snad moje poslední šance.
Text vložený uživatelem do TEXTAREA zašifrujte do druhé TEXTAREA tak, že znaky A-Z nahradíte znaky Z-A a znaky a-z znaky z-a, ostatní znaky nechte beze změny. Teprve v okamžiku zobrazení zakodovaného textu zpřístupníte uživateli další push-button, po jehož stisknutí zašifrovaný text rozšifrujete do třetí TEXTAREA.
Témata: JavaScript

14 reakcí

| Nahlásit
Jsem fakt zoufalá, nebudu klasifikována, pokud to neudělám.
| Nahlásit
<html>
<head>
<script>
function prevest () {
retezec = document.all.text1.value;
while (retezec.search("z")!=-1) {
retezec = retezec.replace("z", "#");
}
while (retezec.search("a")!=-1) {
retezec = retezec.replace("a", "z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "a");
}
while (retezec.search("Z")!=-1) {
retezec = retezec.replace("Z", "#");
}
while (retezec.search("A")!=-1) {
retezec = retezec.replace("A", "Z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "A");
}
document.all.text2.value = retezec;
}
function zpet () {
retezec = document.all.text2.value;
while (retezec.search("z")!=-1) {
retezec = retezec.replace("z", "#");
}
while (retezec.search("a")!=-1) {
retezec = retezec.replace("a", "z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "a");
}
while (retezec.search("Z")!=-1) {
retezec = retezec.replace("Z", "#");
}
while (retezec.search("A")!=-1) {
retezec = retezec.replace("A", "Z");
}
while (retezec.search("#")!=-1) {
retezec = retezec.replace("#", "A");
}
document.all.text3.value = retezec;
}
</script>
</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>
| Nahlásit
Tak, včera sem to nenapsal uplně správně, za to se omlouvam, nedefinoval jsem řetězec na kterém se vykonávala funkce search() ... tohle funguje určitě, sám sem to ověřoval, stačí skopírovat
| Nahlásit
tyhrodlaku respect...
| Nahlásit
Vážně se omlouvám že jsem takhle otravovala, ale bylo to urgentní, ještě jednou moc děkuji.
| Nahlásit
Převádí to ale jen písmenka a,A,z,Z - ne jak je v zadání "a" až "z".
Rozepisovat to by asi nebylo vnímáno při hodnocení dobře, elegantnější by bylo pro převod používat nějaká indexovaná pole, či jak se tomu říká.
| Nahlásit
Do kdy to je urgentní?
| Nahlásit
Předělam, omlouvam se, nepochopil sem zadání
| Nahlásit
Takže jestli sem to správně pochopil teď, tak a, protože je první od začátku se nahradí za ž, protože je první od konce, á, protože je druhý od začátku se nahradí za z, protože je druhý od konce. Takže:
<html>
<head>
<script>
function prevest () {
retezec = document.all.text1.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena[malaPismena.length-malaPismena.search(znak)-1];
}
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena[velkaPismena.length-velkaPismena.search(znak)-1];
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text2.value = novyRetezec;
}
function zpet () {
retezec = document.all.text2.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena[malaPismena.length-malaPismena.search(znak)-1];
}
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena[velkaPismena.length-velkaPismena.search(znak)-1];
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text3.value = novyRetezec;
}
</script>
</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>

Omlouvam se, že sem napoprvé nepochopil zadání, tohle už by ti snad mohlo vyhovovat
| Nahlásit
Ještě jsem upravila:

<html>
<head>
<script>

function prevest () {
retezec = document.all.text1.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena.charAt(malaPismena.length-malaPismena.search(znak)-1);
}
else {
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena.charAt(velkaPismena.length-velkaPismena.search(znak)-1);
}
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text2.value = novyRetezec;
}

function zpet () {
retezec = document.all.text2.value;
novyRetezec = ""
malaPismena = "aábcčdďeéfghiíjklmnoópqrřsštťuúůvwxyýzž";
velkaPismena = "AÁBCČDĎEÉFGHIÍJKLMNOÓPQRŘSŠTŤUÚŮVWXYÝZŽ";
while (retezec.length>0) {
znak = retezec.slice(0,1);
if (malaPismena.search(znak)!=-1) {
znak = malaPismena.charAt(malaPismena.length-malaPismena.search(znak)-1);
}
else {
if (velkaPismena.search(znak)!=-1) {
znak = velkaPismena.charAt(velkaPismena.length-velkaPismena.search(znak)-1);
}
}
novyRetezec += znak;
retezec = retezec.slice(1, retezec.length);
}
document.all.text3.value = novyRetezec;
}
</script>

</head>
<body>
<textarea name="text1">Sem vepište text, který chcete převést</textarea>
<textarea name="text2">Sem se text převede</textarea>
<textarea name="text3">Zde se objeví opět dekódovaný text</textarea>
<input type="button" onclick="prevest()" value="Převeď">
<input type="button" onclick="zpet()" value="Dekoduj">
</body>
</html>
| Nahlásit
Případně v těch písmenech bez diakritiky, když zadání bylo a-z, A-Z, ale takhle se mi to líbí více
| Nahlásit
nevadí, stačí přepsat proměné malaPismena a velkaPismena, jejich délky si script sám zjišťuje, takže žádné další úpravy nejsou potřeba
| Nahlásit
☺ Jsem zvědavá, jestli se k tomu Anonym210878 ještě vrátí. Líbilo se mi použití toho samého řetězce pro šifrování i dešifrování. ☺
| Nahlásit
ještě by to šlo udělat přes jednu jedinou funkci, která by dostala hodnotu například 1,2, podle které by se určil směr převodu text1->text2 nebo text2->text3, ale tak to si může anonym sám doladit, jenom to skrip o trochu zkrátí
 Anonym
Odpovídat lze i bez registrace. Dodržujte pravidla Ontoly
Vložit: Obrázek