Változók a programozásban

Változók a programozásban

Ebben a témában: Alapok, C Programozas, Java Programozas

Vannak a programozásban általánosan használt eszközök, fogalmak, amik minden programozási nyelvben megjelennek. Most a Változókról és azok használatáról szeretnék egy kicsit beszélni és egy konkrét példán keresztül megnézni, hogy miért is van szükség változókra és hogyan is működnek pontosan.

 

Mik azok a Változók?

Egy programban adatokkal dolgozunk. Legtöbbször ezekre az adatokra nem csak egyszer van szükségünk a programunkon belül (például arra, hogy kiírjuk a képernyőre a felhasználónak), hanem további műveleteket, feladatokat szeretnénk velük végezni. Annak érdekében, hogy ezek az adatok a programunkon belül több helyen is elérhetőek legyenek, el kell azokat tárolnunk valahol, hogy később használhassuk őket. Az adatokat pedig a Változókba tudjuk eltárolni.

Úgy is megfogalmazhatjuk, hogy egy Változó olyan, mint egy Doboz. Bele tudunk tenni valamilyen értéket ebbe a dobozba és ha valamikor később szükségünk lesz rá, akkor csak kinyitjuk a dobozt és kiolvassuk belőle. Ezen felül még extra tulajdonság, hogy a dobozba (vagyis a változóba) bármikor új adatot is tudunk tenni. Ilyenkor vigyázni kell, mert a régi adat törlődik belőle, felülíródik az új adattal.

 

Változók típusai

Az előbb tárgyalt mechanizmus már csak annyiban fog bonyolódni, hogy minden Változónak meg kell adnunk egy típust is. Ez a típus fogja meghatározni, hogy milyen fajta adatot lesz képes tárolni a Változónk. A típusokat alapvetően két nagy csoportra oszthatjuk: Szám és Szöveg típusok. A szám típusú változók csak számokat, míg a szöveg típusú változók csak szövegeket képesek tárolni. Ha pedig egyszer definiáltuk a változónk típusát, akkor azt később már nem tudjuk megváltoztatni (a legtöbb programozási nyelvben).

Nézzünk meg egy-egy példát Java nyelvből:

Típus neve

Formátum

Példa

String

szöveg

“Hello World”

int

egész szám

12

 

 

Miért van erre szükség?

Felmerülhet, hogy miért kell adatokat eltárolnunk egy programon belül egy változóba? Hiszen láttuk az első programunkban, hogy képesek vagyunk kiíratni az adatokat a képernyőre, akkor meg minek ezt tovább bonyolítani?

Egy program célja legtöbbször nem csak annyi, hogy csak megjelenítjük az információkat a képernyőn és kész. Ettől jóval többről van szó és ez miatt nem csak egy adott pillanatban van szükség az információra, hanem később is, amikor valamilyen összetett logikát valósítok meg. A változók használata tehát nagyon fontos része a programoknak.

 

 

Technikai megvalósítás

Az elméleti rész elsajátítása után nézzük meg, hogy hogyan kell használni a változókat a gyakorlatban.

(more…)
Adatok bekérése Java nyelven

Adatok bekérése Java nyelven

Ebben a témában: Java Programozas

Szinte minden program kér be adatokat a felhasználótól a működése során. Néha elképzelhető, hogy nincs adatbekérés, ekkor a program minden elindításkor pontosan ugyanazt az eredményt fogja előállítani. Ezek a programok inkább gyakorlás, tanulás során fordulnak elő. Az adatok bekérésével sokkal interaktívabb és érdekesebb programokat lehet készíteni, épp ezért most ezt szeretném megmutatni Java nyelvben.

 

 

Kezdjük talán ott, hogy honnan tud egy program adatokat beolvasni

A legtipikusabb eset, hogy használunk egy alkalmazást vagy egy weboldalt és a megfelelő helyekre beírjuk az adatokat, például egy keresett szöveget, email címet, jelszót, stb… Egy másik lehetséges megoldás, amikor a szükséges adatokat a program különböző fájlokból olvassa ki. Az első eset tipikusan felhasználói adatok bekérésére vonatkozik, míg a fájlokban lévő adatokat inkább maguk a programok állítják elő és olvassák.

Amit mi most meg fogunk nézni, az az első eset lesz, de ebben a blogcikkben nincs lehetőségünk egy teljes weboldalt felépíteni. Épp ezért a mi programunk a fejlesztői környezeten (Eclipse, IntelliJ, NetBeans, …) keresztül fog bekérni adatokat. Ha még nem találkoztál a fejlesztő környezet kifejezéssel, akkor előbb érdemes egy könnyebb feladattal kezdeni, én a Hello World alkalmazást javaslom.

 

Hogyan tudunk adatokat bekérni?

Szerencsére, mint oly sok mindenre, a Java-ban erre is létezik egy előre elkészített lehetőség, amit nekünk „már csak” használni kell. Sőt, nem is csak egy fajta módszer létezik adatok beolvasásra, hanem több és mindegyiknek megvan az előnye, hátránya. Így több fajta lehetőség közül is tudunk választani.

A bemutatott megoldás a Scanner nevű könyvtár alapszintű használata lesz. A Scanner több helyről is tud adatokat beolvasni, így egy sokrétű megoldás, bár van néhány gyengepontja.

Amit még szeretnék kiemelni, hogy most nem nézünk meg minden részletet aprólékosan, mert feltételezem, hogy inkább még csak ismerkedsz a programozással, ezért néhány dolgot lehetetlen lenne most írásban elmagyarázni. Próbáljunk meg fókuszálni a mechanizmusra, a fontos kódsorokra és megérteni, hogy pontosan milyen utasításokkal tudunk adatokat beolvasni. Viszont a feladat teljes körű megértéséhez érdemes ismerni a Függvények fogalmát és a Programok alapvető működését. Ha ezekkel tisztában vagy, akkor viszont vágjunk bele!

 

A feladat

A feladat legyen az, hogy kérjük be a felhasználó nevét, születési évét, hónapot és napot majd jelenítsük meg ezeket az értékeket a megfelelő formátumban.

 

A megoldás

Először megmutatom a teljes megoldást, utána pedig megpróbálom soronként elmagyarázni.

(more…)

Java Tanfolyam 2.2: Elindult a jelentkezés!

Ebben a témában: Java Programozas, Onfejlesztes

 

Az első kedvezményes jegyet már meg is szerezték, ezért ha Te is szeretnél csatlakozni, akkor csekkold a részleteket a Java Tanfolyam oldalán!

Ha pedig belevágnál, akkor kattints a JELENTKEZÉS Gombra és vesd bele magad a Tanulásba!

 

Viszont ne felejtsd el, hogy jelentkezés CSAK EZEN A HÉTEN van, ezért legkésőbb Szombaton 23:59-ig tudsz csatlakozni!

Java Tanfolyam 2.2

Ebben a témában: Java Programozas, Onfejlesztes

Azt hiszem bátran kijelenthetem, hogy egy mozgalmas évnek a vége felé közeledünk lassan, de még nem szeretnék hátradőlni…

 

Az előző Java Tanfolyam, mind a diákjaim, mind számomra sikeres volt és pont a héten fog véget érni. A 2.1-es Java Tanfolyamon kiugró eredmény született, ugyanis majdnem 50%, azaz 4 ember érte el azt a szintet, hogy már az állásokat tudják nézegetni. Persze még vár rájuk feladat az álláskereséssel és az interjúkkal kapcsolatban, de ebben is fogom őket támogatni. Ezen felül pedig közkívánatra néhány korábbi hallgatómmal el fog indulni egy haladó Tanfolyam is, aminek nagyon örülök, itt még egyelőre tervezési fázisban vagyunk.

Az elmúlt pár hétben sokat beszéltem egy új irányvonalról, a WordPress Tanfolyamról, viszont többen is kérdeztétek, hogy indul-e még idén Java Tanfolyam?

 

A jó hírem, hogy igen, indul még egy idei utolsó Java Tanfolyam! 🙂

 

 

A Java Tanfolyam oldalát még csinálom a háttérben, itt még egy pár nap türelmeteket szeretném kérni, de nagyobb változások nem várhatóak az előző verzióhoz képest.

Sőt, még egy jó hír, hogy árváltozás sem lesz!

A 2021-ben induló Java Tanfolyamoknál mindenképp lesz áremelkedés, így ez az utolsó Java Tanfolyam, amin még alacsonyabb áron tudtok részt venni.

 

 

Ezek most talán a legfontosabbak, a Java Tanfolyam oldala pedig pár napon belül újra elérhető lesz! Remélem, hogy nemsokára találkozunk!

Java Tanfolyam 2.1: Bónuszok

Ebben a témában: Java Programozas, Onfejlesztes

Múlt héten megismerted a Java Tanfolyamom következő, 2.1-es verzióját. Láthattad, hogy maga a Tanfolyam egy sajátos rendszerben épül fel, hiszen nem várom el tőled, hogy egész nap az iskolapadban (vagy mostanában egy chatszobában) ülj, inkább az önálló feladatmegoldásra, önálló gondolkodásra ösztönözlek. A személyes oktatás pedig inkább többször, de rövidebb, 1,5-2 órás alkalmakon történik. Ennek oka, hogy a programozási képességek legjobban az önálló gyakorlás által tudnak rögzülni. Ez mellett persze én is aktívan segítek a fejlődésben, hiszen nem csak akkor találkozunk, ha új anyagokat kell venni, bármikor elérsz az órákon kívül is (Skype, email, Facebook, telefon), lesznek közös feladatmegoldások, sőt csoportos feladatok is! Ezek mellett pedig összeállítottam egy egyedi ajándékcsomagot is a Tanfolyam mellé, ami nagyon nagy segítségedre lesz…


  1. A saját Tanulásom és karrierem története

Igen, velem is előfordult, nem egyszer, nem kétszer, hogy semmit sem értettem abból, ami éppen a képernyőn történik, vagy épp nem történik. De hogyan jutottam el a Programozás segítségével ebből az állapotból egészen odáig, hogy több kisebb, 5-7 fős csapatot vezettem egy nagyobb SW projekten belül, mint technikai vezető majd megalapítottam a saját cégemet?

Bizony nem volt mindig könnyű, főleg az elején. Sok kétségem volt afelől, hogy a tudásom mennyire megbízható, mennyire lehet értékes egy cég számára. Rengeteget segített, amikor megkaptam az első állásomat. Emlékszem, mikor felhívott a HR-es hölgy, hogy szeretnének felajánlani egy pozíciót. Leírhatatlan örömet éreztem, éreztem a megkönnyebbülést, hogy akkor most már jó irányba tart a karrierem. Tudtam, hogy még innen is rengeteget kell tanulnom, de szerencsére nagyon jó mentorom volt és nagyon jó csapatba is kerültem, ezért nem szenvedésnek éltem meg a munkám, sokkal inkább fejlődési lehetőségnek és kihívásnak. Bizonyítani akartam…

Az első Bónuszban a saját fejlődésemet és karrierutamat fogod részletesen megismerni. De ami ennél is jobb és tudom, hogy ez fog a legjobban érdekelni, konkrét számokat is láthatsz majd a céges fizetéseimről.


  1. Produktivitási és Mindset Tréning

Beszéltünk már róla, hogy egy Tanfolyamot elkezdeni könnyű, sikeresen befejezni viszont életed talán legnehezebb feladata lesz. Ennek számos oka van: Egyrészről maga a Tanfolyam hossza is olyan, hogy történhetnek váratlan események, megbetegedések vagy bármi olyan, amire most talán még nem is gondolsz. Ezek ellen nehéz védekezni, de van egy másik aspektus is, amire viszont lehet készülni!

Sokan már elfelejtették mit is jelent tanulni: Legtöbb embernek a tanulásról rögtön az út vége jut az eszébe, amikor már csak le kell aratni a babérokat (ez leginkább a média által kialakított hamis képnek köszönhető, amiben csak a sikeres, győztes embereket mutatják). De idáig el is kell ám jutni, ami mentálisan nagyon fárasztó és ha nincs meg hozzá a megfelelő környezet, a megfelelő rendszer, akkor sokszor lehetetlen.

A következő Bónuszban ezt a kérdéskört fogjuk körüljárni. Hasznos tanácsokat fogsz kapni azzal kapcsolatban, hogy mit tehetünk azért, hogy egy adott feladat ne 4-6 órát, hanem csak 1-2 órát tartson. Ezzel kilőjük a produktivitást az ég felé, növelve az esélyét, hogy nem csak elkezded, de sikeresen be is fejezed a Tanfolyamot. Hogyan tudsz kialakítani egy működő Rendszert, aminek köszönhetően a Tanfolyam teljes ideje alatt fent tudod tartani a fókuszt és hogyan kell átalakítani a gondolkodásmódod, hogy ne a kifogásokat, hanem a megoldásokat keresd?

Ezeket az extra előadásokat egy régi barátom, Széphegyi Csaba fogja tartani, körülbelül havonta 1 alkalommal a szerdai napokon (a konkrét időpont jóval előre be lesz jelentve). Ő profi pókerjátékos vonalon kezdte el felépíteni magát (ahol a hatékonyság központi kérdés, nem csak a tanulás, de a napi munka során is), majd ebből váltott tanácsadói irányvonalra. Ennek már közel 10 éve, így rengeteg tapasztalat áll mögötte, amiből a legjobbakat fogja veletek is megosztani.


  1. Java KisOkos – Állásinterjú feladatok és megoldások

Egy tipikus programozói állásinterjú általában két részből áll: Először egy beszélgetés történik, ahol lehetőség van megismerni, meghallgatni a jelöltet és a cég is be tudja magát mutatni. A második rész pedig általában teszt jellegű, aminek a célja, hogy a cég felmérje a potenciális munkavállaló technikai képességét. Ez többféleképpen is történhet, általában több kérdésből álló feladatsor van, ami rövid logikai és programozási feladatokat tartalmaz. Ezek azonban közel sem olyan változatosak, mint a legtöbb ember hinné…

Még az egyetem ideje alatt nekem is volt egy olyan időszakom, amikor 2-3 hónapig rendszeresen, heti szinten jártam állásinterjúkra. A kezdetben ezek nem sikerültek túl jól, de minden interjúból tanultam valamit, levontam a következtetéseket. A következő alkalmakra pedig egyre több tapasztalattal mentem, így egy idő után elkezdtek ismétlődni a kérdések. Ezen időszak végére több lehetőség közül is választhattam, bár irónikus módon rá is jöttem, hogy még túl korai heti 40 órában dolgoznom, előbb az egyetemet szeretném befejezni.

Ezzel csak azt szeretném érzékeltetni, hogy a technikai kérdéseket be lehet gyakorolni és a 3. Bónusz pontosan ehhez nyújt segítséget. Összeszedtem 10 oldalban a tipikus technikai interjúkérdéseket és a hozzájuk tartozó részletes leírást, amik mellé természetesen a forráskódot is mellékelem. Valószínűleg nem pontosan ezeket a kérdéseket fogod megkapni, de ha ezeket megnézed és 100%-osan megérted, akkor jó esélyekkel fogsz indulni.


  1. algoexpert.io: Interjú felkészítő oldal

(more…)

Ha már eldöntötted: Java Tanfolyam 2.1

Ebben a témában: Java Programozas, Onfejlesztes

A világ épp átalakulóban van: Lehet, hogy nem akarod vagy nem tudod már folytatni azt a munkát, amit eddig. Talán épp most jött el az idő, hogy alakíts a dolgok menetén! Azt már bemutattam neked, hogy milyen lehetőségek és milyen tendenciák vannak most a Programozásban, de miért vagy itt ezen az oldalon és hogyan tudok neked Én segíteni?


Az elmúlt 1,5 hétben számos kérdést megnéztünk.

Az első részben megnéztük, hogy mi okozza a gazdasági nehézségeket. Azt is leírtam, hogy a kialakult helyzet természetesen borzasztó, de legtöbbet akkor tehetsz, ha megpróbálsz előre tekinteni. Megpróbálsz előre tekinteni és nyertesként kijönni ebből a helyzetből. Ezt persze leírni sokkal könnyebb, mint megvalósítani, de ha fókuszált tudsz maradni és ki tudod használni a leállás előnyeit, akkor minden esélyed megvan.

A második részben bemutattam, hogy a programozást hogyan lehet átültetni az irodai környezetből az otthoni munkavégzésbe. Ezen felül a klasszikus munkamodell mellett akár szabadúszóként is el tudsz kezdeni dolgozni, ami egy extra biztonságot jelentő harmadik lábnak is tekinthető.

A harmadik részben pedig az induláshoz szükséges segítséget adtam meg neked. Hogyan érdemes megközelíteni a karrierváltást, hol lehet hiteles információkat kapni a programozásról és mit jelent a programozás technikai szinten? Hogyan érdemes mentálisan készülni egy ilyen képzésre és milyen kialakított Rendszerben lehet sikeresen elvégezni egy ilyen képzést? Ha pedig egy alapos körüljárás után véglegesen eldöntötted, hogy belevágsz, akkor milyen képzések közül választhatsz?

Én is évek óta tartok hasonló tréningeket, oktatásokat. Az általam kidolgozott oktatási modell mindig is az Online tanulásra épült és évek óta finomítom, most pedig elhoztam neked a következő verzióját. A nemsokára induló új, 2.1-es Tanfolyam közel azonos az előző, idén Januárban indult verzióval, de mégis készültem néhány fontos változással.


Az előző verzió: Java Tanfolyam 2.0

Mikor az előző Tanfolyamra készültem, akkor még két programozási nyelvvel szerettem volna elindulni: Java és C. Ez két különböző irány lett volna, de mind a kettőre megvoltak a kellő előkészületek így izgatottan vártam az indulást. Sok mindent befolyásolt, hogy nem 1 nyelvet oktatok 2 csoportnak, hanem 2 nyelvet 1-1 csoportnak. Számos olyan lehetőségről le kellett mondanom, amit egyértelműen ki tudtam volna használni, ha két csoport fut párhuzamosan.

Ezek után nagyon szomorú voltam, hogy a C nyelvű képzésemre nagyon alacsony volt az érdeklődés. Ezzel ellentétben a Java nyelvű Tanfolyamom 1 ember hijján teltházzal indult. Le kellett vonjam a következtetést, hogy bár nagyon szerettem volna, de a piaci igények nem engedték meg a C nyelvű Tanfolyam elindulását.

Megtanultam a leckét és idén Májusban már másképp tervezem az indulást!


Programozz Te Is – Online Java Tanfolyam 2.1!

Most pedig elérkezett az idő, végre itt van a Java Tanfolyam 2.1! Íme a legfőbb pontok röviden:

(more…)

Egy ismeretlen Feladat megoldása

Ebben a témában: C Programozas, Java Programozas

Szeretném nektek megmutatni, hogyan érdemes nekiállni egy ismeretlen feladatnak. A legfontosabb, hogy nem szabad megijedni a feladat elolvasása után, mert általában ezeknek a leírásoknak nagyobb a füstje mint a lángja, azaz könnyebb őket megoldani mint gondolnánk. Általában egy vizsga vagy egy állásinterjú során nincs idő hosszabb programok készítésére, ezért ha már több mint 10-15 sort írtál és még messze a vége, akkor érdemes lehet elgondolkoznod, hogy nincs-e egy rövidebb megoldás.

 

 

A Feladat

Keresse meg a legkisebb közös többszörösét a 81 és 12-nek.

 

Ezt a feladatot az oktatásom során is fel szoktam adni, mikor már vettünk minden olyan részt, amivel meg lehet oldani. A kezdeti sokk után azonban csak kevés embernek sikerül egy jó megoldást készítenie. Nézzük meg tehát most lépésről-lépésre hogyan érdemes nekiállni ennek a feladatnak.

 

  1. Az első lépés, mi a feladat?

A feladat, hogy megtaláljuk két szám legkisebb közös többszörösét (LKKT), jelen esetben a 81-nek és a 12-nek. Mivel azonban mi egy jó programot akarunk csinálni, ezért egy olyan megoldást készítünk, ami minden számra működni fog!

 

  1. Mi az a legkisebb közös többszörös?

Általában a legtöbb vizsga vagy állásinterjú kérdésnek van egy központi része, amit ha nem tudunk, akkor szinte kizárt, hogy megoldjuk a feladatot. Ennek a valószínűségét sok gyakorlással tudjuk csökkenteni. Ha azonban valamit mégsem tudunk, akkor annak könnyen utána tudunk nézni (legalábbis otthon), de legrosszabb esetben ne féljünk egy kis segítséget kérni a velünk szembeülőtől. Ebből a szituációból hiszed vagy sem, de akár még jól is ki tudsz jönni. Ha a felvételiztető látja, hogy hogyan reagálsz egy ismeretlen helyzetre az nagyon pozitív is tud lenni, mivel a munkád elején valószínűleg több dolog lesz ismeretlen, mint amennyit már tudsz.

 

Hogyan tudunk utánanézni valaminek magunktól?

Használjuk a Google-t, keressünk rá arra a konkrét kifejezésre, amit keresünk, esetleg írjuk is be mellé a programozási nyelvet, amit használni szeretnénk és nézzük meg az első 3 találatot. Íme az eredmény: Google Találatok

Két szám legkisebb közös többszöröse az a legkisebb egész szám, amelyet mindegyik szám maradék nélkül oszt.

Például 2 és 3 esetében a legkisebb közös többszörös a 6, mert azt a 2 és a 3 is osztja. Azért nem a 12 a legkisebb közös többszörös, mert a 6 kisebb mint a 12.

 

  1. Programtervezés

Mielőtt vadul elkezdjük írni a forráskódot, előtte próbáljunk meg felállítani egy tervet, készítsünk egy tervrajzot a programunkhoz.

Ha általánosan gondolkozunk, akkor mi lehet tetszőleges két számnak az Elméleti legkisebb közös többszöröse? => Az 1, de csak akkor ha az 1-nek és az 1-nek keressük a legkisebb közös többszörösét.

Mi lehet a lehető Legnagyobb legkisebb közös többszöröse két számnak? => Ez a két szám szorzata, mert annak eredményét biztosan mind a két szám osztja maradék nélkül.

Rendben, van tehát egy programunk, ami bemenetként vár két egész számot, A-t és B-t, kimenetként pedig kiad egy 1 és A*B között egy számot, nevezzük C-nek. A definícióból tudjuk, hogy C-t osztva A-val a maradék 0 és C-t osztva B-vel a maradék szintén 0. Meghatároztuk tehát a programunk bemenetét, a programunk kilépési pontját és egy algoritmust, ami képes megtalálni az elvárt kimenetet.

 

  1. Programváz felépítése

Most, hogy megvan a tervrajzunk a megoldáshoz, kezdjük el felépíteni az alapokat. Először csináljunk egy dedikált függvényt a feladathoz, de csak a vázát írjuk le:

„… van tehát egy programunk, ami bemenetként vár két egész számot, A-t és B-t, kimenetként pedig kiad egy 1 és A*B között egy számot, nevezzük C-nek.”

int getLKKT(int numberA, int numberB)
{

/** Local variables, Always Initialize */
int numberC = 0;

/** Program Code */

/** Return */
return numberC;

}

(more…)