vineri, 14 noiembrie 2025
Platforme (biblioteci) de prompturi AI
Soluții AI pentru profesori
- https://www.eduaide.ai/app/generator - Este un instrument bazat pe inteligență artificială, conceput special pentru cadre didactice, care ajută la generarea rapidă de materiale educaționale (planuri de lecţie, fişe de lucru, instrumente de evaluare etc.). Scopul de a reduce timpul petrecut de profesori pentru pregătirea materialelor şi documentaţiei. Deoarece este un instrument orientat specific spre nevoile profesorilor, oferă o economie de timp semnificativă pentru pregătirea materialelor, bun pentru adaptarea resurselor la diferite nivele de elevi.
- https://www.magicschool.ai/ - platformă de inteligenţă artificială destinată cadrelor didactice, elevilor şi sistemului şcolar, care urmăreşte să reducă încărcătura administrativă a profesorilor şi să crească calitatea procesului educaţional. Este utilizată în peste 160 de ţări şi are peste 6 milioane de profesori abonati. Permite:
- generare rapidă de planuri de lecţie, evaluări, fişe de lucru, comunicări cu părinţii adaptate pentru diverse niveluri, discipline şi cerinţe educaţionale.
- modificarea conţinutului generat în funcţie de nevoile elevilor.
- oferă compatibilitate cu sisteme precum Google Classroom, Canvas etc.
- are și extensie de browser disponibilă pentru profesor cu acces rapid la instrumente direct în mediul de lucru digital.
- https://aischoolgenius.com/home/p/tools - platformă de inteligență artificială destinată cadrelor didactice, care oferă o gamă largă de instrumente pentru a uşura activitatea zilnică: personalizarea lecţiilor, corectarea automată a testelor, generarea de fişe de lucru, exerciţii de gramatică, generare de imagini, teste şi evaluări.
- https://tutorai.me/ - platformă de învățare alimentată de inteligență artificială. Permite utilizatorilor să introducă orice subiect (de exemplu, fizică, istorie, programare) și primește lecții personalizate, explicații, exemple și întrebări de verificare. Lecțiile generate nu sunt preînregistrate — AI-ul creează conținut „în timp real,” adaptându-se la ritmul și nevoile de învățare ale fiecărui utilizator. Are funcționalități de testare și feedback: include chestionare, întrebări și posibilitatea de a urmări progresul. Oferă și planuri de studiu, generare de conținut educațional structurat, și poate fi folosit de elevi, studenți sau de companii pentru formare internă.
- https://consensus.app/ - motor de căutare academic bazat pe inteligență artificială, special conceput pentru a analiza literatura științifică peer‑review. Accesează o bază de peste 220 de milioane de articole științifice. Oferă răspunsuri bazate pe dovezi solide, nu simple speculații: ceea ce primești este susținut de studii științifice.
- https://www.zotero.org/ - manager de referințe gratuit și open-source, creat pentru a ajuta cercetătorii să colecteze, organizeze și cita rapid surse bibliografice. El permite salvarea automată a paginilor web, articolelor științifice și altor documente în format digital. Cu ajutorul său, utilizatorii pot crea biblioteci personale și grupuri partajate pentru colaborări academice. Zotero generează automat citări și bibliografii în diverse stiluri de citare (APA, MLA, Chicago etc.). Funcționează prin extensie de browser, dar are și o aplicație desktop care sincronizează datele între dispozitive. Este o unealtă foarte utilă pentru studenți, profesori și cercetători care vor să gestioneze eficient resursele bibliografice. Zotero în sine nu se bazează pe AI. Totuși, există pluginuri și integrări externe care adaugă funcționalități AI în Zotero — de exemplu, „Zotero MCP” permite conectarea biblioteca Zotero la asistenți AI pentru sumarizare de articole sau căutare semantică.
joi, 23 octombrie 2025
Soluții web pentru crearea hărților mintale
- https://app.mindmup.com/- aplicație online de tip mind-map (hartă mentală) care permite brainstorm-ul, structurarea ideilor, crearea de prezentări sau conturarea documentelor într-un mod vizual şi colaborativ. Nu necesită cont pentru a începe — poți crea imediat o hartă mentală gratuită. Permite colaborare în timp real şi partajare uşoară, fiecare hartă având un URL unic. Versiunea gratuită are limitări (ex. dimensiunea hartilor), iar funcţii avansate sunt disponibile cu abonament (Gold). Este ideal pentru studenţi sau profesori care vor să organizeze concepte, teme sau proiecte într-o formă vizuală, profesionişti care au sesiuni de brainstorming, planifică proiecte sau creează schiţe pentru documente, echipe care lucrează de la distanţă şi au nevoie de un instrument uşor şi rapid pentru colaborare vizuală, bloggeri sau creatori de conţinut care vor să îşi prezinte ideile într-o formă grafică atractivă şi partajabilă.
luni, 29 septembrie 2025
Lecție practică. Instructiunea If
1. Votare. Se citește de la tastatură vârsta unei persoane. Elaborați un program care va afișa:
- „Are drept de vot”, dacă persoana are 18 ani sau mai mult;
- „Nu are drept de vot”, în caz contrar.
2. Admitere la facultate. Se citește de la tastatură nota unui candidat la examen.
Elaborați un program care va afișa:Elaborați un program care va afișa:
- „Admis”, dacă nota este mai mare sau egală cu 5;
- „Respins”, dacă nota este mai mică decât 5.
3. Reducere la magazin. Un client cumpără produse în valoare de X lei. Dacă suma depășește 500 lei, se acordă o reducere de 10%. Elaborați un program care va permite citirea de la tastatură a sumei de bani cheltuită după care va afișa mărimea reducerii aplicată urmată de suma finală de plată.
4. Temperatura camerei. Se citește de la tastatură temperatura camerei. Elaborați un program care:
- dacă temperatura este sub 18°C va afișa mesajul „Pornește încălzirea”.
- dacă temperatura este peste 28°C va afișa mesajul „Pornește aerul condiționat”.
- va afișa „Temperatura este confortabilă” pentru oricare altă valoare a temperaturii.
5. Semafor pietonal. Se citește de la tastatură culoarea semaforului (roșu, galben, verde).
Elaborați un program care va afișa:Elaborați un program care va afișa:
- „Așteaptă”, dacă semaforul este roșu;
- „Fii atent, urmează schimbarea”, dacă semaforul este galben;
- „Traversează strada”, dacă semaforul este verde.
6. Factura la energie electrică. Se citește de la tastatură consumul de energie electrică al unei gospodării (în kWh). Elaborați un program care va calcula și afișa costul facturii după următoarele reguli:
- Dacă consumul este până la 100 kWh, prețul unui kWh este 2 lei;
- Dacă consumul este între 101 și 300 kWh, prețul unui kWh este 3 lei;
- Dacă consumul este mai mare de 300 kWh, prețul unui kWh este 4 lei.
Programul va afișa: consumul, tariful aplicat și suma finală de plată.
7. Nota finală la un curs. Se citesc de la tastatură 3 note ale unui elev: nota la test, nota la proiect și nota la examen. Media finală se calculează astfel: 30% testul, 30% proiectul, 40% examenul. Dacă media finală este:
- ≥ 8, afișați mesajul „Rezultat excelent”;
- între 5 și 7.99, afișați mesajul „Rezultat satisfăcător”;
- < 5, afișați mesajul „Rezultat nesatisfăcător”.
8. Impozitul pe venit. Se citește de la tastatură venitul anual al unei persoane.
Impozitul se calculează progresiv, după cum urmează:
- pentru venituri de până la 20.000 lei → se aplică o taxă de 5%;
- pentru venituri între 20.001 și 50.000 lei → pentru primii 20.000 se aplică 5%, iar pentru restul 10%;
- pentru venituri de peste 50.000 lei → pentru primii 20.000 se aplică 5%, pentru următorii 30.000 se aplică 10%, iar pentru restul 15%.
Programul va afișa: venitul, valoarea impozitului și venitul net după impozitare.
9. Determinarea celei mai bune oferte de transport. O persoană dorește să cumpere un bilet de transport pentru o lună. Se citesc de la tastatură:
- prețul unui bilet per călătorie,
- numărul de călătorii planificate într-o lună,
- prețul unui abonament lunar.
Elaborați un program care va calcula costul total pentru bilete individuale și îl va compara cu abonamentul lunar. Programul va afișa:
- „Mai avantajos este abonamentul lunar”, dacă acesta e mai ieftin;
- „Mai avantajoase sunt biletele individuale”, în caz contrar;
- „Costurile sunt egale”, dacă cele două variante au același preț.
10. Sistem de notare pentru permis auto. Se citește de la tastatură viteza cu care circulă o mașină și limita de viteză pe sectorul de drum. Se calculează depășirea vitezei și se acordă penalizări astfel:
- dacă viteza este până la limita legală, afișează „Conduci regulamentar”;
- dacă depășirea este de până la 10 km/h, afișează „Avertisment”;
- dacă depășirea este între 11 și 30 km/h, afișează „Amendă 500 lei”;
- dacă depășirea este de peste 30 km/h, afișează „Suspendarea permisului pentru 30 de zile”.
11. Calculator pentru bilete la cinema. Se citesc de la tastatură vârsta spectatorului și ziua săptămânii (ex.: Luni, Marți, etc.). Prețul biletului se stabilește după reguli:
- Bilet standard = 100 lei;
- Dacă spectatorul are sub 12 ani, are reducere de 50%;
- Dacă spectatorul are peste 60 de ani, are reducere de 30%;
Programul va calcula și afișa prețul final al biletului.
Succes!
❤️
Instrucțiuni de decizie în Limbajul Java
Instrucțiunea if-else
Sintaxă:
|
if (expresie)
{ ... lista
instrucțiuni } else { ... lista
instrucțiuni } |
Semantică:
Se
evaluează expresia dintre paranteze care trebuie sa returneze o valoare
booleană. Dacă ea returnează true
atunci se execută lista de instrucțiuni din corpul if. Dacă ea returnează false se execută lista de instrucțiuni else.
Exemplu:
|
int x = 4; if( x % 2 == 0 ) x = 100; else x = 1000; |
❗ Instrucțiunea if poate avea mai multe forme:
Instrucțiunea switch-case
Sintaxă:
|
switch (expresie) { case valoare_particulara1 : <
expresie 1 > break; case valoare_particulara2 : <
expresie 2 > break; … default : < expresie > } |
Semantică:
Execuţia
instrucțiunii switch începe întotdeauna prin evaluarea expresiei
dintre parantezele rotunde. Această expresie trebuie să fie de tipul caracter,
octet, întreg scurt sau întreg. Selectorul instrucțiunii switch poate fi și de tip String începând cu versiunea Java 7.
După evaluarea
expresiei se trece la compararea valorii rezultate cu valorile particulare
specificate în etichetele case din interiorul blocului de instrucțiuni. Dacă una
dintre valorile particulare este egală cu valoarea expresiei, se execută
instrucțiunile începând de la eticheta case corespunzătoare acelei valori în jos, până
la capătul blocului. Dacă nici una dintre valorile particulare specificate nu
este egală cu valoarea expresiei, se execută instrucțiunile care încep cu
eticheta default, dacă aceasta există.
Este important ca fiecare expresie de tip case să
fie terminată cu instrucțiunea break deoarece aceasta asigura ieșirea din
structură.
Notă!
1.
Constantele
case trebuie să fie de același tip ca
și selectorul.
2.
Nu
pot exista 2 constante case cu
același nume.
3.
Cel
mult o constantă poate fi asociată unui selector.
Exemplu switch cu selector de tip int:
public class Main{
public static void main(String[] args) {
int selector = 2;
switch(selector){
case 1:
System.out.println("Valoarea este egala cu 1");
break;
case 2:
System.out.println("Valoarea este egala cu 2");
break;
case 3:
System.out.println("Valoarea este egala cu 3");
break;
case 4:
System.out.println("Valoarea este egala cu 4");
break;
default:
System.out.println("Valoarea nu aparține intervalului");
}
}}
Rezultat:
Exemplu switch cu break omis:
public class Main{
public static void main(String[] args) {
int selector = 6;
switch(selector){
case 2:
case 4:
case 6:
case 8:
System.out.println("Numar par");
break;
default:
System.out.println("Numar impar");
}
}}
Rezultat:
Notă! Într-un switch, dacă nu pui break, programul continuă să execute și instrucțiunile din cazurile următoare. Acest comportament se numește fall-through.
Poate fi util pentru a grupa cazuri similare, dar dacă uiți break din greșeală, programul poate produce rezultate neașteptate.
Exemplu switch cu selector de tip String:
public class Main{
public static void main(String[] args) {
String luna = "Iunie";
switch (luna) {
case "Iunie":
case "Iulie":
case "August":
System.out.println("E vară");
break;
default:
System.out.println("Nu e vară");
}
}}
Exemplu de expresie cu switch: Începând cu Java 12, instrucțiunea switch a fost extinsă și poate fi folosită nu doar ca o structură de control, ci și ca o expresie care returnează o valoare.
duminică, 21 septembrie 2025
Tipuri identice și tipuri compatibile. Conversia implicită și explicită
- sunt declarate cu același tip de date (ex. ambele int, ambele double, ambele String).
- atribuirea dintre ele se face direct, fără conversii.
public class TipuriIdentice {
public static void main(String[] args) {
int a = 5; // variabilă int
int b = 10; // variabilă int
a = b; // tipuri identice: corect
System.out.println("a = " + a); // afișează 10
}
}
Două variabile sunt de tipuri compatibile dacă:
- pot fi atribuite una alteia, dar este necesară o conversie de tip (implicită sau explicită).
- exemplu: int este compatibil cu double, dar nu identic.
Exemplu:
public class TipuriCompatibile {
public static void main(String[] args) {
int x = 7;
double y = x; // conversie implicită int → double
System.out.println("y = " + y); // afișează 7.0
double z = 9.8;
int w = (int) z; // conversie explicită double → int
System.out.println("w = " + w); // afișează 9
}
}
Deci:
- int → double se face automat (se mărește precizia).
- double → int necesită conversie explicită (se pierde partea zecimală).
Implicit în limbajul Java se convertesc:
- byte la short, int, long, float, double;
- short la int, long, float, double;
- int la long, float, double;
- char la int, long, float, double;
- long la float, double;
- float la double;
- byte la char;
- char la byte, short;
- short la byte, char;
- int la byte, short, char;
- long la byte, short, char, int, long;
- float la byte, short, char, int, long;
- double la byte, short, char, int, long, float.
Există cazuri unde tipurile nu sunt nici identice, nici compatibile.
Exemplu
public class Incompatibil {
public static void main(String[] args) {
int nr = 10;
String text = "Salut";
nr = text; // EROARE: int și String nu sunt compatibile
}
}
Deoarece int și String sunt tipuri complet diferite acestea nu pot fi atribuite.
Tipuri de date enumerare
În Java, un tip de date enumerare (numit și enum) este un tip de date special utilizat pentru a defini o colecție de constante cu nume.
Enum-urile sunt introduse în Java începând cu versiunea 5 și sunt utilizate pentru a reprezintă un set fix de valori, cum ar fi zilele săptămânii, lunile anului, stările unui obiect etc.
Ele oferă o modalitate sigură și clară de a lucra cu un grup de constante înrudite.
Reguli:- Un tip de date enumerare este definit folosind cuvântul cheie enum.
- Valorile definite într-un enum sunt constante și nu pot fi modificate.
- O variabilă de tip enumerare poate lua doar valorile specificate în cadrul enumerării, adică doar simbolurile definite la momentul declarării acesteia.
- Enum-urile oferă siguranță la tip, reducând erorile cauzate de utilizarea unor valori nevalide.
- Enum-urile pot avea constructori, metode și câmpuri, ceea ce le face foarte flexibile.
- Enum-urile extind implicit clasa java.lang.Enum și nu pot extinde alte clase, dar pot implementa interfețe.
Exemplu:
enum Zi {
LUNI, MARTI, MIERCURI, JOI, VINERI, SAMBATA, DUMINICA
}
public class Main{
public static void main(String[] args) {
Zi azi = Zi.LUNI;
System.out.println("Astăzi este: " + azi);
}}
De asemenea, putem crea variabile de tipuri de enumerare și pot fi utilizate în cadrul altor instrucțiuni Java cum ar fi switch.
De exemplu:
|
luni, 15 septembrie 2025
Tipuri de date. Variabile și constante
În Java există 2 tipuri generale de date:
- primitive (byte, short, int, long, float, double, char, boolean)
- referință (obiectele , vectorii, String)
Variabilele reprezintă un spațiu de memorie în care se poate stoca o valoare care poate fi schimbată pe parcursul programului. Se declară specificând tipul de date și numele variabilei. Poate fi inițializată imediat sau mai târziu.
- locale, declarate în interiorul unei metode
- de instanță, declarată în interiorul clasei dar înafara metodei. Nu este declarată folosind cuvântul rezervat static.
- de clasă (statice), declarată ca static, nu poate fi locală.
unde:
tip_variabila – unul din cele 8 tipuri primitive sau un tip definit de programator prin clase;
nume_variabila – numele variabilei definit de programator;
❗ Reguli importante!
- numele variabilei trebuie sa înceapă cu o literă, linie de subliniere (_) sau cu simbolul dolar ($);
- numele de variabilă NU poate începe cu o cifră, după primul caracter se pot folosi cifre;
- numele de variabila NU poate fi un cuvânt Java rezervat;
- variabila trebuie definită oriunde în program înainte de a fi folosită;
De exemplu:
La inițializarea unei variabile trebuie să se țină cont de tipul acesteia, deoarece în Java NU este posibil atribuirea de valori de tip diferit decât cel al variabilei. De exemplu, instrucțiunile următoare generează eroare de compilare de tipul possible loss of precision:
În cazul variabilei de tip float, c, eroare este generată deoarece valorile reale constante sunt considerate de tip double. Corect este sa pui f la sfârșitul valorii, adică 23.5f.
Reguli!
- tipul valorii trebuie sa fie identic cu tipul variabilei;
- pot fi inițializate mai multe variabile în același timp;
- în Java singurele valori posibile pentru variabile booleene sunt true sau false (în C sau C++, orice valoare numerică diferită de 0 este considerată true);
- valorile constante de tip float se definesc cu simbolul f la final deoarece, implicit, constantele reale sunt considerate de tip double;
- simbolurile de tip caracter se definesc între ' '(apostrof) și nu între " " (ghilimele);
Constantele reprezintă un spațiu de memorie al cărui conținut nu se schimbă după inițializare. Se declară folosind cuvântul cheie final. Este o valoare fixă, de obicei scrisă cu litere mari, pentru claritate.
De exemplu:
Dacă încerci să schimbi valoarea unei constante, Java va genera eroare de compilare:
PI = 3.14; // Eroare!
duminică, 7 septembrie 2025
Clase și obiecte. Sintaxă și semantică
Clasa stă de fapt la baza programării orientate e obiecte, pe ea este construit întregul limbaj Java, deoarece clasa definește obiectul.
O clasă reprezintă un șablon sau un tip de bază pentru crearea obiectelor. Este un tip abstract de date definit de programator. Atunci când definim o clasă nouă creăm un nou tip de date.O clasă descrie un set de caracteristici (date, atribute sau variabile de instanță) și comportamente (funcționalitate, metode sau funcții) pe care obiectele create din acea clasă le vor avea. Clasa în POO întrunește toate obiectele de una şi aceeași natură, ceea ce înseamnă că obiectele care aparțin uneia și aceleiași clase au una şi aceeași structură şi comportament.
Sintaxa de definire a unei clase este:
Prima parte din declarația unei clase o constituie modificatorii de acces care sunt opționali. După numele clasei putem specifica, dacă este cazul, faptul că respectiva clasă este subclasă a unei alte clase cu numele nume_super_clasă, sau/şi că implementează una sau mai multe interfeţe ale căror nume trebuie separate prin virgulă.
Corpul unei clase este cuprins între { } şi are ca conţinut:
- declararea şi inițializarea variabilelor de instanţă şi de clasă;
- declararea şi implementarea constructorilor;
- declararea şi implementarea metodelor de instanţă şi de clasă;
- declararea unor clase interne.
- într-un fișier Java pot fi definite mai multe clase;
- într-un fișier Java numai o clasă poate avea modificatorul public;
- fișierul Java ce conține o clasă publică trebuie să fie cu același nume ca și clasa publică.
Exemplu de declarație de clasă:
În Java orice clasă conţine 2 tipuri de elemente : atribute (variabilele) şi metode. Variabilele unei clase se declară înaintea metodelor, (deşi nu este impus de compilator acest lucru), şi sunt vizibile în toate metodele respectivei clase.
Variabilele declarate în cadrul unei metode sunt locale metodei respectivei.
O variabilă de declară respectând sintaxa :
Modificatorii pot fi :
1) modificatori de acces:
2) unul din cuvintele rezervate:
- static: indică că variabila este variabilă de clasă şi nu de instanță;De exemplu: static int varClasa; int varInstanta;- final: indică faptul că valoarea variabile nu poate fi modificată, declararea constantelor;De exemplu: final double PI = 3.14;- transient – folosit pentru a specifica dacă variabila membră participă în procesul de serializare sau nu (detalii tema ,,Serializarea obiectelor’’)
Exemplu:
class Exemplu {
double x; //variabila vizibila in clasa data si pachetul din care face parte clasa
protected static int n; //vizibila in clasa data si in subclasele același pachet cu clasa data
public String s="abc"; // variabila s de tip șir de caractere fi vizibila oriunde
final int MAX=1000; // constanta de tip întreg
}
O metodă se declară respectând sintaxa:
[modificatori] tipReturnat numeMetoda ([lista_argumente])
[throws tipExceptie1, tipExceptie2,...]{
// corpul metodei
}
Modificatorii pot fi
1) un specificator de acces: public, protected, private;
2) unul din cuvintele rezervate :
- static: semnifică că metoda este de clasă şi nu de instanţă.
De exemplu: void metodaInstanta();
- abstract: semnifică că o metodă este abstractă,adică nu are implementare şi obligatoriu face parte dintr-o clasă abstractă. (tema Clase şi metode abstracte)
- final: indică că metoda nu mai poate fi supradefinită în subclasele clasei în care ea este definită ca fiind finală. Se folosești atunci când nu dorim ca metoda să fie modificată în subclasele clasei date;
- synchronized: este folosit în cazul în care se lucrează cu mai multe fire de execuție.
O metodă poate sau nu să returneze o valoare la finisarea execuției. Tipul returnat poate fi un tip primitiv de date sau o referință la un obiect al unei clase.
De exemplu:
public void afisare(){
Dacă o metodă trebuie să returneze o valoare, la terminarea funcției trebuie să apară obligatoriu instrucțiunea return urmată de rezultat compatibil cu tipul metodei.
De exemplu:
int metoda(){ return 1; // corect
}int metoda(){ return 1.5; //eroare
}int metoda(){ return (int)1.5;
}
Dacă valoarea returnată este o referință la un obiect al unei clase atunci clasa obiectului returnat trebuie să coincidă sau să fie o subclasă a clasei specificate la declararea metodei.
De exemplu, fie clasa Poligon şi subclasa ei Patrat:
a) Poligon metoda1(){
Poligon p=new Poligon();
Patrat t=new Patrat();
if (...) return p;
b) Patrat metoda2(){
Poligon p=new Poligon();
Patrat t=new Patrat();
if (...) return p;//ilegal
else t;
Parametri formali sunt acei parametri care apar la definirea metodei. La apelarea metodei sunt parametri actuali, iar valorile acestora se transmite parametrilor formali.
Nu este posibil ca doi parametri formali să conțină același nume.
Odată creat obiectul poate fi folosit pentru a: afla informații despre obiect, schimba starea obiectului, executa unele acțiuni.
Obiectul accesează metodele şi datele clasei sale prin intermediul operatorului ,, .’’ folosind sintaxa:
denumire_Obiect.variabilă;denumire_Obiect.numeMetoda();
Exemple:
elev1.nume="Ion";elev1.virsta=20;elev1.bursa();elev1.setNume("Ion");
Deci procesul prin care creăm obiecte pentru o clasă, de fapt în POO poartă denumirea de instanțierea unei clase și de fapt implică următoarele:
1) declararea variabilei de tipul clasei care va referi un obiect:
2) instanţiere – se realizează cu operatorul new() şi are ca efect crearea obiectului cu alocarea spaţiului de memorie corespunzător:
De exemplu: elev1 = new Elev();
3) iniţializare – se realizează prin intermediul constructorilor clasei respective, are loc de fapt împreună cu instanţierea, urmează imediat după operatorul new.
Parantezele rotunde de după identificatorul numeClasa(); indică că acolo este de fapt un apel la unul din constructorii clasei. Deci instanţierea şi iniţializarea au forma:
De exemplu: elev1 = new Elev("Ion",20);
Sintaxa de declarare și instanțiere pot fi scrise în codul sursă atât separat, cât și împreună printr-o singură construcție de forma:
De exemplu: Elev elev1 = new Elev("Ion",20);
