Category Archives: Computers
sql-ex.ru (част 3- от 21 до 28 )
21.зад Да се намери максималната цена на компютър за всеки производител
Колони: maker, maximal price
Отг. SELECT pro.maker , max(pc.price)
FROM product as pro INNER JOIN PC ON pc.model=pro.model
GROUP BY pro.maker
22. За всяка скорост на компютър, която надвишава 600MHz да се намери средната цена.
Колони: speed, average price.
Отг. SELECT speed, avg(price)
FROM PC
where speed>600
GROUP BY speed
23.зад. Да сенамерят всички производители произвеждащи поне и двете 1. Компютри със скорост над 750Hz 2. Лаптопи със скорост над 750Hz
Тук отново явно има два отговора
. Всъщност вероятно повечето задачи имат. Първият отговор на който стоях доста време и който виждам че не е най-правилният е с повечко писане. Обединяват се таблиците със скорости лаптопи и и PC-та в едно и след това се INNER JOIN –ват
с таблицата product. Проверява се кои производители от тази таблица произвеждат повече от един тип и воаля.
Отг.1 : SELECT DISTINCT maker FROM
(SELECT * FROM product where type=’Laptop’
UNION
SELECT * FROM product where type=’PC’) as p1
INNER JOIN
(select model from PC where speed>=750
UNION
select model from laptop where speed>=750 ) as p2
ON p1.model=p2.model
GROUP BY maker Having count(DISTINCT type)>1
Отг.2 SELECT DISTINCT maker FROM product
WHERE model IN
( SELECT model FROM pc where speed>=750)
AND model IN
(SELECT model FROM laptop where speed>=750)
group by maker HAVING count(DISTINCT type)>1
Отг.3 Както се вижда отговор 2 е доста по разбираем и кратък, но би трябвало да има и трети начин, защото като теория е посочено да се прочете Intersect and Except. Аз трето не можах да намеря. ![]()
24. Намерете номера на моделите на продуктите (PC, printer, laptop) с най-висока цена.
Колони: model
Тук ще покажа отново два отговора. Първият е много елегантен, но въпреки това в дадената помощ към упражнението не е дадено използването на TOP N затова и много хора не биха го решили по този начин.
Отг.1 select top 1 with ties model from
(select model, price from pc
union select model, price from laptop
union select model, price from printer) as tmp
order by price desc
Отг.2 Тук трудността ми беше да разбера защо не ми даваше примерно (Select * from table1) as T да се използва. Хем искаше селектираната таблица да има псевдоним със AS и хем не искаше да ми позволи да ползвам този псевдоним по нататък в изчисленията. Ето защо на помощ идва WITH T AS (SELECT ….)
WITH p AS (
SELECT model, price FROM pc
UNION
SELECT model, price FROM printer
UNION
SELECT model, price FROM laptop
)
SELECT p.model FROM p WHERE p.price = (SELECT MAX(price) FROM p)
WITH p AS (
SELECT model, price FROM pc
UNION
SELECT model, price FROM printer
UNION
SELECT model, price FROM laptop
)
SELECT p.model FROM p WHERE p.price = (SELECT MAX(price) FROM p)

25. Намерете производителите на принтери, които също произвеждат компютри с най-ниската RAM.
Колони: maker
Тази задача изключително много ме озори но в крайна сметка като видите отговора може и да помислите че не е нищо особено ![]()
Отг:
SELECT DISTINCT maker
FROM Product
WHERE type = ‘Printer’ AND maker IN (
SELECT maker
FROM Product INNER JOIN ( SELECT model
FROM PC
WHERE ram = ( SELECT MIN(ram)
FROM PC )
AND
speed = ( SELECT MAX(speed)AS max_speed
FROM PC
WHERE ram = ( SELECT MIN(ram)
FROM PC )
)
) AS c
ON Product.model = c.model
)

26.зад. Да се намери средната цена на лаптопи и PC-та произведени от производител A.
Колона: само кутийката с резултата
Отг.:
Select avg(price) from
(Select model,price from PC
Union ALL
Select model,price from laptop) as p1
INNER JOIN product as pr
ON
pr.model=p1.model
WHERE maker=’A’
Използвайки UNION ALL съединяваме таблиците като повторенията остават

27. Намерете средният размер на компютърни хард дискове за производителите, които също произвеждат и принтери.
Отг:
SELECT pro.maker, avg(pc.hd) from
product as pro INNER JOIN PC ON pc.model=pro.model
where maker IN
(
SELECT maker from product where type=’printer’
)
GROUP by maker

28. Намерете седният размер на компютърни хард дискове (единична стойност за всеки прозиводител) , произведени от тези производители, които също произвеждат и принтери.
Отг. SELECT avg(pc.hd) from
product as pro INNER JOIN PC ON pc.model=pro.model
where maker IN
(
SELECT maker from product where type=’printer’
)

sql-ex.ru (част 2- от 11 до 20 )
11.зад. Да се намери средната скорост на PC-тата
Отг. Select avg(speed) as speed FROM PC
12. Намерете средната скорост на Лаптопите които струват повече от 1000 долар.
Отг. SELECT avg(speed) as avg_speed FROM Laptop WHERE price>1000
13. Намерете средната скорост на PC-тата произведени от А
Отг.SELECT avg(PC.speed) as avg_speed FROM PC INNER JOIN Product ON PC.model=Product.model WHERE maker=’A’
14. Намерете само maker-ите, които произвеждат само модели от един и същи тип и броя на тези модели е повече от един.
Колони: maker, type
Тази задача определено доста ме затрудни. Може би от всичко GROUP BY ми е бил винаги най-труден за използване. Голямата трудност е да се намерят производителите произвеждащи само един и същи тип продукти и никога нямаше да се сетя да ползвам DISTINCT по този начин ако не го бях видял в интернет:
Select maker FROM product
group by maker
having count(DISTINCT type)=1
След като вече знаем кои са производителите селектираме само тези производители които имат повече от един модел или:
SELECT maker,type FROM Product
GROUP BY maker,type
HAVING
maker IN
(SELECT maker FROM product GROUP BY maker HAVING count( DISTINCT TYPE ) =1)
AND
count( * ) >1
Трябва да се запомни че HAVING СЕ ИЗПОЛЗВА ЗА ДА СЕ ФИЛТРИРАТ СТОЙНОСТИТЕ ПО ГРУПИ ИЛИ СТРОГО ПОГЛЕДНАТО ПО КОЛОНИ, ДОКАТО WHERE СЕ ИЗПОЛЗВА ЗА ФИЛТРИРАНЕ НА СТОЙНОСТИТЕ ПО РЕДОВЕ. Самата GROUP BY клауза извършва групиране на колоните по зададената стойност като визуалният резултат е първият ред от всеки срещнат тип, като зад този ред можем виртуално да си представим че стоят останалите срещания на този като редове.
15. Намерете размера на хард дисковете, който е еднакъв за два и повече компютъра.
Колони: hd
Отг:
Select hd From PC Group by hd Having count(hd)>=2
16.зад.Намерете двойките компютри имащи същата скорост и RAM. Като резултат всяка двойка трябва да се покаже само веднъж , с други думи (х,у), но не (у,х).
Отг. SELECT DISTINCT p1.model, p2.model, p1.speed, p1.ram
FROM PC p1, PC p2
WHERE p1.speed=p2.speed AND p1.ram=p2.ram AND p1.model>p2.model
order by p1.model ASC
Тук главното е че за да използваме една и съща таблица за сравнение и от двете страни на условние то трябва тя да съществува два пъти в паметта и това става като се използват превдоними.

17. Намерете моделите на лаптопи, които имат скорост по-малка от на всички PC-тa.
Колони:type, model , speed
Отг:Select DISTINCT p.type ,l.model, l.speed
from laptop as l INNER JOIN product as p ON l.model=p.model
WHERE l.speed< ALL (SELECT speed FROM PC)
18. зад. Да се намерят производителите на най евтиният цветен принтер
Колони:maker, price
Отг:SELECT DISTINCT pro.maker, pri.price
FROM product as pro INNER JOIN printer as pri ON pri.model=pro.model
where pri.price= ANY (SELECT min(price) from printer Group by color having color=’y') and color=’y’
19. зад. За вски производител намерете средният размер на екраните на лаптопи, които се произвеждат от него.
Колони: maker, average screen size
SELECT p.maker, avg(l.screen)
FROM product as p INNER JOIN laptop as l ON l.model=p.model
GROUP by p.maker
20. да се намерят производителите на PC -та с поне три различни модела компютри
Колониt: maker, number of models.
SELECT maker , count(model)
FROM product
where type=’PC’
group by maker
having count(DISTINCT model)>2

sql-ex.ru (част 1- от 1 до 10 )
В този сайт може да се научи малко по-подробно как да използваме SQL Select командата. Има си класиране…, има си теория която в едни случаи е достатъчна да се реши определена задача, а в други се иска и малко креативност. Първата база с данни която ни представят е следната:
Product(maker, model, type)
PC(code, model, speed, ram, hd, cd, price)
Laptop(code, model, speed, ram, hd, screen, price)
Printer(code, model, color, type, price)
Колоната type съдържа съответно PC, Laptop, Printer.
Колоната color съдържа y или n според това дали принтера е yes цветен, или no чернобял.
На графиката по горе може да стане ясно че основната таблица PC съдържа Primary_key за колоната model, към който ключ сочат колоните model на останалите таблици и тези колони се явяват foreign ключове.
1. зад. Намерете номера на модел, скоростта и капацитета на хард диска за всички компютри с цена под 500$
Колони на резултата: model, speed, hd.
Отг:
SELECT model, speed, hd FROM pc WHERE price<500;

Тук след Select командата се изписват разделени със запетая колоните, които искаме да включим в резултата който искаме да извлечем. След FROM записваме таблицата в която се намират тези колони и след WHERE записваме условието което трябва да се изпълнява за някой от редовете на таблицата, за да може резултата от този ред за определена колона за която не се изпълнява условието да се махне от резултата.
2.зад Намерете производителите на принтери
Колони на резултата: maker
Отг:Тук има два отговора:
1. SELECT DISTINCT maker FROM Product WHERE type=’Printer’ е по логичният, тъй като се обръщаме само към една таблица. Избираме всички редове от таблицата Product, които имат тип Printer. Може обаче да имаме един и същ производител за няколко реда поради което се налага да използваме DISTINCT за да премахнем повторенията от колоната maker.
2. SELECT DISTINCT maker FROM product,printer where printer.model=product.model; второто решение е по-бавно като заявка защото използва две таблици. Използва се това, че всеки номер на модел записан в таблицата Printer отговаря на номер на модел в таблицата Product , който продукт е произведен от maker на принтери. Пак не трябва да има повторения и се използва DISTINCT

3.зад Намерете модела, рамта и размера на екрана за лаптопи с цена над 1000$.
Отг: SELECT model, ram, screen FROM Laptop WHERE price>1000;

4.зад. Да се намерят всички записи от таблицата Printer за цветни таблици.
Отг. SELECT * FROM Printer WHERE color=’y';
5.зад. Да се намерят номера на модела, скоростта, капацитета на хард диска на всички PC-та които имат CD на “12x” и price<600$ или със “24x” CD и price<600$
Отг. SELECT model, speed,hd FROM PC WHERE (cd=’12x’ and price<600) OR (cd=’24x’ AND price<600)
6.зад Да се намерят производителите(maker) и скоростта на лаптопите имащи капацитет на хард диска по-голям или равен на 10GB.
Трябва да се спомене че задачата се решава с JOIN. Съществуват два вида INNER и OUTER съединявания на таблици. OUTER бива съответно LEFT, RIGHT, FULL .
_____CROSS JOIN, който е по подразбиране (FROM table1 , table2) и двете таблици се разделят само със запетая комбинира всеки ред от първата таблица с всеки ред от втората таблица.
_____INNER JOIN, който е по подразбиране (FROM table1 , table2) e като CROSS JOIN само че с добавено условие. Сравнява първата стойност, ако не намери съвпадение преминава към следващата от таблица2. Ако намери записва стоността и продължава да търси за още съвпадения за същият ред на таблица1.

Всъщност (като изключим условието) са еднакви, но е по лесно да се прави разлика между двете по тоя начин.
При LEFT JOIN се слепват двете таблици като се приравнява дадена колона и там където липсват стойностите от дясната колона се поставя NULL. Аналогично RIGHT JOIN – лявата таблица получава ред с нули ако при слепване няма стойността в сравняваните колони.
Отг: SELECT P.maker , L.speed FROM Laptop as L INNER JOIN Product as P
ON L.model=P.model
WHERE L.hd>=10
7.зад. Да се намери модела и цената за всички продукти (от всички типове: лаптопи, компютри и принтери), които са произведени от maker B.
UNION обединява две таблици С ЕДНАКЪВ БРОЙ КОЛОНИ в една най-грубо казано една под друга.
Отг:SELECT DISTINCT Product.model,PC.price FROM Product INNER JOIN PC ON PC.model=Product.model WHERE maker=’B’
UNION
SELECT DISTINCT Product.model,Laptop.price FROM Product INNER JOIN Laptop ON Laptop.model=Product.model WHERE maker=’B’
UNION
SELECT DISTINCT Product.model,Printer.price FROM Product INNER JOIN Printer ON Printer.model=Product.model WHERE maker=’B’
8. зад. Да се намерят производителите, които продават PC-та, но не продават Laptop -и.
Тук се използва IN и NOT IN условията. Пример: SELECT model, speed, hd FROM PC WHERE hd IN (10, 20);
Отг. SELECT DISTINCT maker FROM Product WHERE type=’PC’ and maker NOT IN (SELECT maker FROM Product WHERE type=’Laptop’)
9.зад. Намерете производитлите на PC-та със скорост не по-малка от 450МHz
Колони: Maker
Отг. SELECT DISTINCT maker FROM Product INNER JOIN PC ON Product.model=PC.model WHERE speed>=450

10.зад Намерете моделите на принтери имащи най висока цена.
Това което се използва като теория за тази задача е подзаявки и извличане на максимална стойност от колона, сумата и подобни представени в табличката по-долу.
| COUNT(*) | Returns the number of rows of the table. |
| COUNT | Returns the number of values in the specified column. |
| SUM | Returns the sum of values in the specified column. |
| AVG | Returns the average value in the specified column. |
| MIN | Returns the minimum value in the specified column. |
| MAX | Returns the maximum value in the specified column. |
Отг. SELECT model,price FROM Printer WHERE price=(SELECT max(price) FROM Printer)

Търсене, вмъкване и сортиране на числов масив
Най- простите начини за търсене са:
1.да се обходи целият масив и да се провери всяка от стойностите.
for(int i=0;i<n;i++){
if(arr[i]==value) return i;
return -1;
}
//Връща се или индекса от масива за който имаме съвпадение, или се връща -1 ако нямаме никакво съвпадение
2.Вторият начин , приложим само ако елементите в масива са подредени в нарастващ или намаляващ ред е метода на двоичното търсене
public class Test{
public static void main (String blabla[]){
int array[]=new int[100];
for (int i=0;i<100;i++){
array[i]=i;
}
int val=6;
if(binSearch(array,val)>=0) System.out.println(“Стойността “+val+” e намерена”);
else System.out.println(“Стойността “+val+” не e намерена”);
}
static int binSearch(int arr[], int value){
int low=0;
int high=arr.length-1;
int mid;
while(low<=high){
mid=(low+high)/2;
System.out.println(mid);
if (arr[mid]==value)return value;
if (value<arr[mid]) high=mid-1; //средната е вече търсена и
else low=mid+1; //не я включена в следващата половина
}
return -1;
}
Вмъкване
1. За да вмъкнем първо намираме позицията на вмъкваното число
int linearPos(int arr[], int value){
for(int i=0;i<n;i++)
if(arr[i]>val) return i;
return -1;
}
2. Самото вмъкване ако върната стойност от горната функция е присвоена на ind
if (ind==-1)arr[n]=value;
else{
for(int i=n; i>ind;i–){
arr[i]=arr[i-1]
}
arr[ind]=n;
}
Сортиране
Поне най-често използваният метод, който съм виждал е използване на метода на мехурчетата
int i,j;
for(i=0;i<arr.lenght;i++)
for(j=i+1;j<arr.lenght;j++)
if (arr[i]>arr[j]){
arr[i]=arr[i]+arr[j];//размяна
arr[j]=arr[i]-arr[j];//на
arr[i]=arr[i]-arr[j];//стойностите
}
}
Инсталиране на windows през usb
Е направих една флашчица, инсталнах я и се получи доста добре и не беше трудно. Да ама сега не е. Иначе докато търсех как става малко се поозорих. Изглежда все пак на това ниво знам един начин. Първо си сваляте един windows , казвали че е хубаво да е платен. Аз не съм чувал такива неща. Та след като го свалите , маунтвате iso файла със свободната версия на daemon tools и копирате всички файлове на windows-a в някаква папка да кажем WINXPCD1 . След това си дръпвате стабилната версия 0.23 на WinSetupFromUSB и я инсталвате. Пускате програмката на windows source си избирате копната вече папка на windows на флашка може би ви пише името на флашката ако сте я сложили, а може би ви пише че не намира устройството. Странно но на мен не ми намираше сутройството и замалко това нещо да ме откаже, но след като дадо бутона за форматиране, той е един единствен в тая версия, тогава се оказа че знае що е то флашка и как се казва. Та форматнах си я като Windows XP буутваща флашка, на FAT 16 за флашка до 2 гига байта и опция Boot as HDD. След като се форматне се ичаква малко за да разпознае флашката и в самата програмка. Поне на мен ми трябваше малко време.
След като приключи даваме напред с GO бутона и всичко е готово.
Как става инсталирането. Ами гласим си BIOS-a да ни буутва от флаш. Първият път като се буутне ни се появява един надпис и вървят десет секунди. Може и да изчакаме десетте секунди или да дадем ентър. След това се появяват два реда. Единият е за Първа част на инсталация, другият е за втора част на инсталацията. Избираме първата, влизаме в познатите сини екрани да си копираме файловете , да си форматнем и разделим хардовете и продължаваме с инсталацията. След като приключи и се рестартира продължаваме с втората част. Сиреч пак буутваме от флаша, като през цялото това време не сме го вадили от usb-то и пак се появява един ред, пак се дава ентер, но тоя път избираме вторият ред или втората част на инсталацията. Инсталираме рестартваме и там каквото има да се гласи по win-a се гласи и воаля.
Та понеже изтеглих някаква версия чиито автор си беше натикал всякакви програми като directx 9 и всичките net framework дерто се инсталират по 100 часа, та те дойдоха направо с инсталацияа. И се зачудих как може да си направя и аз една собствена дистрибуцийка и се оказа че има начин с някаква си програма nLite. Не съм я пробвал още, но благодарение на не + нейната добавка може човек да си сложи всякакви програми и те да се инсталват направо с инсталацията на windows-a.
Малко сoфтуер от последният петък
SA Dictionary 2012 Beta
http://www.kaldata.com/comments.php?catid=1&id=50013
SA Dictionary е най-популярният речник в България за превод на думи от английски на български и обратно.
Free PDF Converter 5.07
http://www.kaldata.com/comments.php?catid=1&id=64032
Free PDF Converter е програма, с която можете бързо и лесно да конвертирате 149 файлови формати в популярния и превърнал се вече в стандарт формат PDF, като можете да защитите с парола един или всички конвертирани файлове.
Process Hacker 2.24
лиценз:Безплатен
Process Hacker е многофункционален инструмент, който служи за управление и контрол на процесите и услугите, стартирани под Windows.
Dexpot 1.5.14 Build 1777 Final
Лиценз:безплатен
Dexpot позволява да си създадете виртуални десктопи, така че да увеличите работното си пространство до 20 пъти.
doPDF 7.2 Build 376
лиценз:безплатен
doPDF премахва нуждата от закупуване на скъпи програми за създаване на PDF файлове.
CPU-Z 1.59 Final
лиценз:безплатен
CPU-Z е малка и безплатна програмка, която ще събере информация за основните компоненти на системата ви и ще я покаже в подреден и удобен вид.
Picture Cutout Guide 2.7.2
лиценз:платен , страница: http://tintguide.com/en/picturecutout.html
Picture Cutout Guide е програма за отделяне на обекти от фон на избрано изображение и създаване на фотомонтаж.
XnView 1.98.5 Final
Лиценз: Безплатен за некомерсиална употреба
Ако попаднете на графичен файл, който нямате с какво да разгледате, то тази програма ще бъде вашият спасителен пояс. XnView чете над 400 файлови формата, и с това е може би най-универсалната програма за преглед на графики. Може да експортира графиките в над 50 формата.
Platinum Hide IP 3.1.4.2
Лиценз:Платен страница: http://www.platinumhideip.com/
Platinum Hide IP ще Ви помогне да сърфирате анонимно, да скриете от нежелани погледи онлайн активността си, да се предпазите от кражба на самоличността в интернет, да изпращате анонимни email-и или да получите достъп до ограничени сайтове и форуми
Speccy 1.14.288
Лиценз:безплатен страница:http://www.piriform.com/speccy
Speccy е много добра безплатна програма която дава информация с какъв хардуер разполагате, операционна система, температури на хардуерни компоненти-дънна платка, процесори, видео карта, хард диск.
що е то точица
След като си играх цял безсмислен след обяд да направя 300dpi в един пиксел накрая се отказах срещайки явната съпротива на Coral draw да ми реши проблема.
Излиза че всички точки съставят картинка. Точките в картинка обаче се наричат пиксели. Дали е това само за изображение върху монитор или пък не , не знам?! Дали има други видове точки отново не знам.
Разделителна способност - плътността на разположение на точките(пикселите) на инч. Обаче дали всъщност може да се каже не само точки на инч, ами и пиксел на инч?
Екранната разделителна способност е 72 точки на инч.
Печатарската разделителна способност е от 300 dpi до 600 dpi.
Пикселизация - ефект при който пикселите на изображението стават видими. Това се получава при увеличаване на растерно изображение.
На какво всъщност е равна една точка(Postscript е стандарта на Адобе):
* 1 point (Truchet) = 0.188 mm (днес не се използва)
* 1 point (Didot) = 0.3759 mm = 1/72 от френския кралски инч (27.07 mm) = около 1/68 inch
* 1 point (ATA) = 0.3514598 mm = 1/(72.272) inch = 0.0138366 inch
* 1 point (TeX) = 0.3514598035 mm = 1/(72.27) inch
* 1 point (Postscript) = 0.3527777778 mm = 1/72 inch
* 1 point (l’Imprimerie nationale, IN) = 0.4 mm
Най-използваните са ATA и Didot .
Разделителна способност на изображението – pixel per inch
Разделителна способнoст на монитора – dot per inch
Разделителна способност на принтера – point per inch
Не бива да се бъркат понятията DPI/PPI и резолюция. Резолюцията е абсолютната стойност на изображетието, общият брой точки, които то съдържа. DPI и PPI са относителни стойности, означения, свързани с гъстотата на тези точки (както се вижда от съкращенията – Dots Per Inch и Pixels Per Inch – брой точки на инч и брой пиксели на инч). Всяко изображение може да бъде конвертирано до произволен брой точки на инч, като от това се променят или размерите му или качеството му.
И накрая едно примерче:
100 на 100 пиксела изображение. със 100 dpi
Такова изображение има:
100 pixesl – имаме 100 Pixels защото размерите са такива.
Ако му зададем изображение , което е 100 pixels със 200 dpi то изображението е голямо 0,5 инча
1 inch – в случая изображението обаче е голямо 1 инч , защото един инч по задание съдържа точно 100 pixels
2.54 см – 2.54 см са равни на 1 inch
72 points – един инч от всеки монитор съдържа 72 points
Сиреч дали задаваме 72 точки на инч за монитора или задаваме 1 инч това е едно и също.
Отговори на въпросите:
1. Не , на 300 на 220 пиксела не можем да съберем повече от 300 на 220 точки, защото точките за принтера и пикселите на монитора отговарят на едно и също нещо или pixel pi = dot pi
2. Явно има два вида точки. Едните представляват тези на монитора и регулират всъщност колко голямо е едно изображение върху него. Ако при монитор който е 72 ppi (dpi) сложим картинка със 144 dpi (pixel pi) ще виждаме двойно по голяма картинка на нашият монитор. Другите точки които са пиксели и точки за принтера и са едно и също нещо, ни представят съответно колко е голяма реалната матрица на изображението и колко голямо то ще излезе при отпечатване.
Малко разследване за CLASSPATH
$ sudo nano /etc/environment
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games”
LANGUAGE=”en_US”
LANG=”en_US.utf8″
$ whereis java
java: /usr/bin/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz
$ ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 2011-02-03 16:14 /usr/bin/java -> /etc/alternatives/java
$ ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2011-02-03 16:14 /etc/alternatives/java -> /usr/lib/jvm/java-6-openjdk/jre/bin/java
$ ls -l /usr/lib/jvm/java-6-openjdk/jre/bin/java
-rwxr-xr-x 1 root root 38524 2011-10-04 17:58 /usr/lib/jvm/java-6-openjdk/jre/bin/java
Какъв трябва да бъде следващият ми лаптоп
Тук ще си обновявам информацията за да не забравя какво съм си намислил.
1. Видеокарта >= 1GB NVidia – и останалите характеристики да бъдат добри
2. Клавиатура без NumPad
3. Да има блутут
4. Копче за изключване на тъч пада
5. Да няма вградена камера
6. Мрежова карта която не дава проблеми и се поддържа добре като драйвери
7. Да няма вътрешна или процесорна видеокарта.
Друг начин за намиране на вампирските числа
При този начин се тръгва не от числото а от множителите. Изреждайки тях в два вложени цикъла. Първия начин е по-добър защото избягва излишните повторения.
int[] startDigit = new int[4];
int[] productDigit = new int[4];
for(int num1 = 10; num1 <= 99; num1++)
for(int num2 = 10; num2 <= 99; num2++) {
int product = num1 * num2;
startDigit[0] = num1 / 10;
startDigit[1] = num1 % 10;
startDigit[2] = num2 / 10;
startDigit[3] = num2 % 10;
productDigit[0] = product / 1000;
productDigit[1] = (product % 1000) / 100;
productDigit[2] = product % 1000 % 100 / 10;
productDigit[3] = product % 1000 % 100 % 10;
int count = 0;
for(int x = 0; x < 4; x++)
for(int y = 0; y < 4; y++) {
if(productDigit[x] == startDigit[y]) {
count++;
productDigit[x] = -1;
startDigit[y] = -2;
if(count == 4)
System.out.println(num1 + ” * ” + num2 + ” : ” + product);
}
}
}



