-
Fototrend
Új hozzászólás Aktív témák
-
corm
senior tag
Huh, ha jól emléxek akkor úgy lehet leggyorsabban megállapítani, hogy valami prímszám-e , hogy elkezded egyesével nézni a számokat egy ciklusban, ahol a ciklusváltozó lehet maga a szám amivel osztod a keresett számot. egészen gyök n-ig kell ezt csinálni (n az amiről megakarod álalpítani). és ha valamelyikkel osztható, akkor ugye nem prím-> vége a ciklusnak. Ha peig a ciklus végig fut, és az utolsó elem sem osztója n-nek, akkor prímet adtál meg.
unixban lekódolni pedig nem nehéz, itt egy példa(azért unixban énis kezdő vok, nem szidni a kódért )
a=$1
i=2
l=0 -- egy logikai változó, ami azt mondja, meg hogy osztója-e vagy sem
gyoka=(gyök a - nem tudom a gyök parancsot... )
while [ i -le gyoka ]
do
if [ `expr a % i` -eq 0 ]
then
l=1
fi
i=`expr i+1`
done
if [ l -eq 1 ]
then
echo ''Prím!''
else
echo ''Nem prím!''
fi
Na kb ennyi, de gondolom az okosabbak találnak majd benne ezer hibátY N W A
-
corm
senior tag
ez annyit tesz, hogy ha az elsőként megadott paraméter nem -p, akkor fog belemenni az elágazásba. Meglehjetősen gyanús ez a sor nekem. egy Elte-n feladott unix beadandó feladathoz hasonlít... Ha így van, és tényleg oda kell, akkor spec itt azt jelentia -p, hogy pünkösdöt kell-e kiszámolni. Tehát akkor fog belemenni az elágazásba, ha húsvétot kell.
Y N W A
-
corm
senior tag
./unix1: line 2: `n ='expr $1 - 19*($1/19),'
Van benne néhány
először is: az expr -nek úgy kell megadni hogy az operandusok és az opertáor közt kell hagyni szünetet
aztán szerintem a ()-t nem kezeli le, szóval ezzel is baja lehet(ebben nem vagyok biztos nem próbáltam), csinálhatod ehelyett azt, hogy a $1 / 19-et beteszed egy segéd változóba, vagy ami logikusabb, mivel a szorzás kommutatív: $1 / 19 \* $19 - bár ennek így megnézve semmi ételme, nyílván $1et kapsz vissza...
aztán hiba még, hogy a *-ot nem tudod így használni, le kell védened egy \-el s mindig amikor szorzást akarsz írni ezt irod: \*
aztán végül nemtom miaz a , a legvégén, szerintem az nem kell oda
ui. jól állhatsz, ha egy sorban ennyi hibád van - de azért csak kérdezz nyugodtan, ha tudok segítekY N W A
-
corm
senior tag
n =`expr $1 - 19 \* $1 / 19` , de nem teljese értem, hogy ez miért van így. Szerintem elnéztél valamit, mert ez így nagyon 0-t fog visszaadni
Esetleg ha ez vmi maradékképzés akar lenni, akkor arra ottvan a %, a maradékos osztás
hazsnálata: pl. p=6 % 4 és ez 2-t fog visszadni
[Szerkesztve]Y N W A
-
emitter
őstag
ha tudsz angolul:
Bővebben: link
Bővebben: link
egyébként gugli 1-2 találata a ''unix script sed''-re -
OddMan
őstag
Linux scriptek írásának megtanulásához egy jó magyar nyelvű könyv: Bővebben: link
''A szíved szabad! Légy bátor és kövesd!''
-
Orc
senior tag
-
Miracle
senior tag
falu mondja:
echo -n '' ''
És az ötletért kérek jogdíjjat,mert én is így csináltam(és én már kipipáltam a tárgyat szal kérhetek)és nem kaptam a 46 teljesített kreditemre ösztöndíjjat és éhen fogok halni,ha nem kapok jutalékot
értelmező késziszótár :: rekurzió --> lásd : rekurzió
-
QuarK
senior tag
-
Tyrael
senior tag
exit-nek nem lehet megadni, hogy hany szintet lepjen vissza?
mintha olvastam volna valami ilyesmi lehetoseget
illetve be lehetne vezetni egy talal valtozot is.
te esetedben mikor kiirja alma-t, akkor beallitja a talal valtozot mondjuk 1-re, es mikor kiirna a mogyorot, akkor megvizsgalod, hogy talalnak mi az erteke, es ha 1, akkor nem lep bele.
vagy ilyesmi
Tyrael -
Tyrael
senior tag
nemtom konkretan melyik programnyelvrol beszelunk(mar latom, hogy unix shell script), nem is vagyok programozo, de:
php-ban ugy mukodik, hogy fuggveny futasa kozben definialt valtozok nem lesznek globalisak.
szal ha definialod talal-t 0-ra, majd meghivsz egy sajat function-t, ott csinalsz valamit, es talal-t atallitod 0-ra, akkor miutan viszatersz a fuggvenyhivas helyere talal meg mindig 0 lesz, mert te a fuggvenyen beluli talal valtozot valtoztattad meg.
hogy jol mukodjon, a function-on belul szukseg van a
global $talal;
sorra, utana mar nyugodtan valtoztathatod a $global erteket, es globalisan is valtozni fog.
sorry, ha nagy hulyeseget irtam, de lehet hogy nalad is valami ilyesmi a baj, nezz utana az adott programnyelv leirasaban a valtozok hataskore hogy van megszabva.
Tyrael
[Szerkesztve] -
Jester01
veterán
Vegyük észre, hogy itt a jó öreg subshell problémával állunk szemben.
A ctrl+c múködését pedig (bunkó módon) egy kill -INT $$ utasítással lehet szimulálni
MOD: ez sem jó, mert a $$ nem az aktuális shell pidje
Tyrael: A break-nek lehet megmondani, hány szintet ugorjon.
[Szerkesztve]Jester
-
Jester01
veterán
1. mi nem jó? Nekem szépen kilép az összes egymásbaágyazott shellbõl. Amúgy meg természetesen magadnak is ellenõrizheted a subshell visszatérési értékét ($?)
2. már írtam, hogy nem a ciklussal van a baj. Példa:
global=0
for((i=0;i<10;i++))
do
echo -n ''$i ''
global=$i
done
echo ''global=$global''
$ ./t.sh
0 1 2 3 4 5 6 7 8 9 global=9
CSAK akkor nem jó, ha valami oknál fogva másik shellben fut.Jester
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Milyen CPU léghűtést vegyek?
- Háztartási gépek
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Az NVIDIA szerint a partnereik prémium AI PC-ket kínálnak
- Ukrajnai háború
- WLAN, WiFi, vezeték nélküli hálózat
- Kormányok / autós szimulátorok topicja
- Helldivers 2 (PC, PS5)
- iPhone topik
- Megjelent az iOS 17.4, minden idők egyik legfontosabb iPhone-frissítése
- További aktív témák...