Kam įdomu, šio dalyko panaudojimas yra žymiai platesnis, nei tik ginklų gamyba. Turbūt visi girdėję apie super greitus traukinius Japonijoje. Taip pat šį principą bandoma taikyti paleidžiant įvairaus dydžio objektus į kosmosą. Prie vieno iš NASA finansuojamų projektų teko dirbti ir paskaitą vedusiam dėstytojui. Jis paminėjo keletą labai įspudingų skaičių:
Reikalinga elektros srovė: 6.6 MA
Tako ilgis: 1.6 km
Pagreitis: 2000 g
Paleidimo laikas: 400 ms
Energijos sąnaudos: 11 000 kWh
Kam neaišku, galiu pasakyti, jog nenuostabu, kad toks objektų paleidimas į kosmosą vis dar lieka tik koncepcija :)
DĖMESIO! Turiu atsiprašyti žmonių, atėjusių iš paieškos svetainių, norinčių sužinoti apie programavimą Java kalba. Čia tokios informacijos nėra. Esu įsitikinęs, kad daugiausiai atklystančių žmonių yra pradedantieji programuotojai, todėl galiu jums pasiūlyti įvadą į programavimą, kuris palengvins jūsų dalią su Java ir ne tik.
Turiu draugą, studijuojantį KTU. Kadangi pas juos yra tokia taktika - mokyti tai, kas nelabai į temą, tai jam prisireikė mano pagalbos. Žmogus studijuoja humanitarinius mokslus, gyvenime su programavimu nesusidūręs, o univieras verčia jį programinti su java. Nepasakyčiau, kad geras sprendimas, juolab, kad "pradmenys" pas juos yra oop ir susiję dalykai.
Užduotis: Duotas sakinys. Surasti simbolių skaičių, tarp pirmo ir antro kablelių. Dalį kodo jam padėjo parašyti kursiokė, bet jis iki galo neveikė. Pradinis sprendimas buvo verstis eilutę į char tipo masyvą ir einant pro kiekvieną simbolį tikrinti. Na pradžiai labai daug vargom, kadangi su java sintakse nebuvau pažįstamas visiškai, bet galiausiai priėjom paprastą sprendimą:
int pirmasKablelis()
{
for (int i=0; i<mas.length;i++)
{
if ( mas[i] == ',' )
return i+1;
}
return -1;
}
int antrasKablelis()
{
boolean pirmasKablelis=false;
for (int i=0; i<mas.length;i++)
{
if ( mas[i] == ',' )
{
if (pirmasKablelis==false)
{
pirmasKablelis=true;
}
else
return i+1;
}
}
return -1;
}
Tačiau tai dar nebuvo pabaiga. Bėda atsirado main() metode, kur vėlgi kažkas nesiderino su sintakse. Draugė peržiurėjo mano pasiūlytą variantą, ir privertė jį veikti. Turbūt būtų viskas gerai, jei ne mano programuotojo charakteris. Nusprendžiau patobulinti kodą iki galo. Nežinau ar reikėjo viską talpinti į atskirą klasę, bet mano sintaksės žinios neleido to padaryti, tai tiesiog sukišau viską į main metodą. Po šiokio tokio googlinimo, ir karo su Eclipse (taip, netgi IDE instaliavau šiam darbui :D) pavyko sukurti "šedevrą":
public class pirmasLab
{
public pirmasLab()
{
}
public static void main(String[] args)
{
String t = "Ba,ndymas";
int k = t.indexOf( ',' );
int l = t.indexOf(',', k+1);
if (k==-1)
System.out.println("Kableliu nera, eilutes ilgis: " + t.length());
else
{
System.out.println("Pirmas kablelis yra " +k+ " -as");
if (l==-1)
System.out.println("Antro kablelio nera. Nuo pirmo kablelio, iki galo yra " + (t.length()-k-1) + " simboliai/-iu");
else
System.out.println("Antras kablelis yra " +l+ " -as");
}
if (k!=-1 & l!=-1)
System.out.println("Tarp pirmo kablelio ir antro kablelio yra " + (l-k-1) + " simboliai/-iu");
}
}
Išvada: svarbiausia ne kalba/sintaksė, o bendros žinios ir mąstymas (ir mokėjimas naudotis Google :D).
Šiandien turėjom pirmą (Digital Systems) laboratorinį, trukusį 3 valandas. Veiksmas sukosi apie logic gates, loginių operatorių hardwarinis atitikmuo. Turbūt visi, susidurę su programavimu, žino kas tie AND, OR, NOT. Nors šių trijų pilnai pakanka bet kokioms variacijoms, tačiau patogumui yra sukurti dar 4: NAND, NOR, XOR, XNOR. Ir ką gi mes su jais veikėme? Ogi statėme elektros grandines dvejetainių skaičių sumavimui. Pati logika nėra sudėtinga, bet kaip galite matyti iš nuotraukų, grandinės gaunasi ganpainios.
Lentelėje pateikiami gaunami duomenys, sudedant du bitus:
A
B
Cary Out1
Sum
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1a
0b
1 -tai kas lieka minty ir turi būti pridedama prie sekančio skaičiaus. a - šis skaičius būtų keliamas ir gautumėm 00102, kas yra lygu 210. b - nulis, nes bendra suma viršija limitą (1 bitas).
Tokiu pačiu sumavimo principu yra sukurtas šis medinis skaičiuotuvas. Video turėtų šiek tiek praskaidrinti reikalą, anksčiau nesusidūrusiems su dvejetaine sistema :)
Dabar lauksiu laboratorinio iš kito kurso (Circuits & Electronics), kuriame tikriausiai lituosime rezistorius & stuff ant PCB.
Šiandien per "Digital Systems" paskaitą pasakojo apie skaičiavimo sistemas - binary, octal, denary ir t.t. Man viskas buvo žinoma, todėl tiesiog klausiausi neužsirašinėdamas. Bet vienas dalykas buvo man nežinomas. Skambėjo maždaug taip:
Some people in Africa count like birds: one, two, many. For example: if you and your friend went in a cave, and then one of you came out, they would know, that there is someone left in the cave. But if five people went in and then four of them came out, they wouldn't know if there is anyone left.