Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Bash script

Főoldal » Felsőoktatás » Informatika
599
Sziasztok!
Egy shell scriptet szeretnék írni, alapvető számítási funkciókkal (összeadás, kivonás, szorzás, osztás, hatványozás)

Viszont:
- nem menüs megoldás kell, hanem olyat amit szimplán a beírt adatot dolgozza fel (pl : (3^2)*5)
- képesnek kell lennie értelmezni a zárójeles kifejezéseket
Jelenleg 1 felhasználó nézi ezt a kérdést.
informatika, script, Bash, shell
0
Felsőoktatás / Informatika

Válaszok

1
(Sajnálom, ez nem válasz, csak hozzászólás a kérdéshez, amit az oldal motor sajnos nem támogat.)

„szeretnék írni” — ezt értsük úgy, hogy magánszorgalomból gyakorlásként? Mert a shell nem éppen alkalmas a célra.
    • Kizárólag egész számokkal képesek dolgozni
    • A függvényeik nem kaphatnak és nem adhatnak vissza tömböt
    • A tömbjeik 1 dimenziósak
Ez utóbbiak megnehezítik a zárójelek közti részek rekurzív kiértékelését.

Szóval hacsak nem kötelező, akkor nem feltétlenül ez a legjobb shell szkript feladat.

Ami a példád kiértékelését illeti, annyival még elboldogulnak a shellek (feltételezve, hogy a „^” hatványozást hivatott jelölni):

bash-5.1$ echo $(( (3**2)*5 ))
45

De ez csak addig ad kielégítő eredményt amíg el nem kezdesz osztani. Olyankor szoktak átállni az emberek a bc használatára (ott már „^” a hatványozás):

bash-5.1$ echo '(3^2)*5' | bc -l
45

═════[ frissítés ]═════════════════════════

Egy ilyen mennyire volna rossz kiindulási pont? https://pastebin.com/Cy2KKkpF

    • Reguláris kifejezéseket használ a kifejezés egyes részeinek a kiértékelésére
    • Minden elsőbbségi csoportot külön kezel
    • Az elemi műveletek elvégzését a Bash képességeire bízza
    • Betettem még az osztási maradékot, mert nem kér enni
    • Továbbra sincs valós szám támogatás
    • Előjelként használt + és - szintén nem támogatott
    • Szintaktikai ellenőrzés nincs, amit nem ért meg azt úgy hagyja
Módosítva: 3 éve
0