Начало   Софтуер   Ревюта   Статии   Дневници   Галерия   DC HuB   Уеб Чат   Форум
Новини
 GGbit.info Новини
 Комуникации
 Сигурност
 Софтуер
 Хардуер
 Игри и забава
 Работна Среда
 Спорт & Хоби
 Програмиране
 Шоу Новини
 Други Новини
GGbit.info +
   Фен Сайтове
Oth.GGbit.info
   Гейм Сървъри
CS.GGbit.info
   Frendly Url's
Дървена Дограма
Виктор Шапилов
Рекламно Каре
Tsonic OS 0.1


Здравейте, вероятно на много от вас им е писнало от масовият монопол на Майкрософт и неговият продукт Windows. В тази моя статия ще разгледам една не толкова позната операционна система, но спокойно можем да кажем че това е бъдещият заместител на известната дистрибуция на Майкрософт. rolleyes.gif




Става дума за наскоро излязлата операционна система Tsonic OS, която е разновидност на reactOS. От своя старана това е работна уредба направена така че да може да изпълнява приложения писани за windows и пожънва голям успех. Програмите, който е възможно да се стартират са доста малко, но това може да ви даде представа за тази великолепна операционна система.Голяма е около 50 мегабайта и свободно можете да я тествате. Именно в тази статия ще разгледам как се инсталира и какви са нейните особености, а също и бъдещите планове на екипът, които я поддържа свободна и достъпна за всички нас.

Горе е официалното лого на тази дистрибуцията.Екипът е взел този символ, които символизира неделимото и единството.


Ядрото на дистрибуцията не е основано на Линукс, но се води базирано на NT спецификацията, но това не означава че откраднато от някъде. Tsonic OS не съдържа никакъв код от изтеклият преди време на Майкрософт Windows 2000 и разни техни продукти. Повечето от библиотеките, които използва са взети от WINE \ това е вид емулатор за Линукс, който ви позволява да стартиране стандартни windows програми \.
Повече информация за WINE можете да намерите в официалният им сайт - http://www.winehq.org/
С Wine можете да стартирате любимите си Windows програми в Linux работна среда като самата програма е абсолютно независима от Windows, понеже е изградена на базата на код, различен от този на Microsoft, но същевременно може да използва и неговите динамични библиотеки. Едно чудесно средство за свързване на тези две операционни системи.
Но да се върнем на темата ни за Tsonic OS. Както споменахме по-горе системата използва доста от кода на известната ReactOS. Официалният сайт на ReactOS е http://www.reactos.org

Това е официалното лого на ReactOS
А сега вече ще разгледаме как се инсталира Tsonic OS, но лично аз предпочитам да тествам на виртуална машина за да съм сигурен че няма да си повредя информацията на домашният ми компютър.Силно ви препоръчвам да използвате Virtual Box \ тя е с отворен код\. Можете да си я изтеглите от






Още по темата Източник: Инсталиране, поглед и бъдеще

Във Полезни статии, От darkmaster8888, 10 Март 2008 16:03:33, 0 Коментара
Основи на C++, Част 9


Цитат
Задача 1. Да се напише програма, която въвежда малка буква от латинската азбука и извежда съответната й главна буква.
#include <iostream.h>
int main()
{char c;
cin >> c;
if (c < 'a' || c > 'z')
{cout << "Incorrect Input! \n";
return 1;
}
cout << (char)(c - 'a' + 'A') << '\n';
return 0;
}
Единият вариант е да сравнявате ASCII кодовете на двете букви, другият вариант е да ползвате наготово, че ако от една малка буква извадим "а" малко + "А" голямо получаваме голямата и буква съответствие. И променливите от тип char могат да бъдат изваждани и събирани като обикновенни числа, за удобство без да се ровим във въпросната ASCII таблица. smile.gif

Цитат
Задача 2. Да се напише програма, която извежда цифрите, главните и малките букви на латинската азбука и ASCII кодовете им. Всеки символ и кодът му да са на един и същ ред. За разделител между символ и код да служи знакът за хоризонтална табулация.
#include <iostream.h>
int main()
{for(char ch = '0'; ch <= '9'; ch++)
cout << ch << '\t' << (int)ch << '\n';
for(ch = 'A'; ch <= 'Z'; ch++)
cout << ch << '\t' << (int)ch << '\n';
for(ch = 'a'; ch <= 'z'; ch++)
cout << ch << '\t' << (int)ch << '\n';
return 0;
}

Нищо особенно сложно, посредством табулацията "\t" извеждаме на екрана празно пространство все едно сме натиснали табулацията. За да изведем десетичната им и знаковата им стойност, просто уточняваме преди променливите какъв е типа им.

Цитат
Задача 3. Да се напише програма, която извежда върху екрана следната таблица:
A B C D E
B C D E F
C D E F G
D E F G H
E F G H I

#include <iostream.h>
int main()
{
for(int i = 0; i<5; i++)
{
for(ch = chr(65+i); ch <= chr(65+i+5); ch++)
cout << ch << ' ‘;
cout << endl;
}
return 0;
}
Основното в конкретният пример е, че символа "A" има числена стойност 65. Оператора chr() връща знаковата стойност на числата. В примера се ползват вожени цикли от вид for, не забравяйте да гледате управляващите променливи да са различни! Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 06 Февруари 2008 18:02:40, 0 Коментара
Основи на C++, Част 8


Цитат
Задача 1. Да се напише програма, която намира произведението на целите числа от m до n, където m и n са дадени естествени числа и m ≤ n. За целта да се използва операторът do/while.
#include <iostream.h>
int main()
{cout << "m= ";
int m;
cin >> m;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (m <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
if (m > n)
{cout << "Incorrect Input! \n";
return 1;
}
int prod = 1;
int i = m;
do
{prod = prod * i;
i++;
} while (i <= n);

cout << prod << "\n";
return 0;
}
В случая независимо от условието длаи е изпълнено или не при do/while е характерно че тялото на цикъла тоест операторите в рамките на фигурните скоби се изпълняват поне веднъж. Ако вече условието е не е изпълнено и повече пъти. Не взимането в предвид на това води доста често до трудно откриваеми грешки.


Цитат
Задача 2. Нека a е неотрицателно реално число. Да се напише програма, която приближено пресмята квадратен корен от a по метода на Нютон.
Упътване: (метод на Нютон) Дефинира се редица от реални числа x0, x1, x2, x3, … по следния начин:

X0=1,
Xi+1 = 1/2(Xi + A/Xi),
i = 0 , 1, 2...

Сумирането продължава докато абсолютната стойност на разликата на последните два констуирани елемента на редицата стане по-малка от ε, ε>0, е дадено достатъчно малко реално число.

#include <iostream.h>
#include <iomanip.h>
#include <math.h>
int main()
{cout << "a= ";
double a;
cin >> a;
if (!cin)
{cout << "Error! Bad Input! \n";
return 1;
}
if (a < 0)
{cout << "Incorrect Input! \n";
return 1;
}
cout << "eps= ";
double eps;
cin >> eps;
if (!cin)
{cout << "Error! Bad Input! \n";
return 1;
}
if (eps <= 0 || eps > 0.5)
{cout << "Incorrect Input! \n";
return 1;
}
double x0;
double x1 = 1;
do
{x0 = x1;
x1 = 0.5*(x0 + a/x0);
} while (fabs (x1-x0) >= eps);
cout







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 06 Февруари 2008 18:02:05, 1 Коментара
Основи на C++, Част 7


Цитат
Задача 1. Да се напише програма, която по дадени реални числа x и ε (ε > 0), приближено пресмята сумата. Сумирането да продължи докато абсолютната стойност на последното добавено събираемо стане по-малка от ε.
#include <iostream.h>
#include <math.h>
int main()
{cout << "x= ";
double x;
cin >> x;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
cout << "eps= ";
double eps;
cin >> eps;
if (!cin)
{cout << "Error. Bad input! \n";
return 1;
}
if (eps <= 0)
{cout << "Incorrect input! \n";
return 1;
}
double x1 = 1;
double s = 1;
int i = 1;
while (fabs(x1) >= eps)
{x1 = x1 * x / i;
s = s + x1;
i++;
}

cout << "s=" << s << "\n";
return 0;
}

При while имаме само условие в скобите. От него зависи дали тялото на цикъла ще се изпълни и колко пъти. Работи подобно на for. Инициализацията на броящата променлива е преди цикъла, а инкрементиращата е в тялото му.


Цитат
Задача 2. Да се напише програма, която намира факториела на дадено естествено число. За целта да се използва операторът while.
#include <iostream.h>
int main()
{cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
int fact = 1;
int i = 1;
while (i <= n)
{fact = fact * i;
i++;
}

cout << n << "! = " << fact << "\n";
return 0;
}
Идентична със първата, може да се ползва за упражнение. smile.gif


Цитат
Задача 3. Да се напише програма, която въвежда от клавиатурата редица от цели числа и намира средноаритметичното им. Въвеждането да продължава до въвеждане на 0.
#include <iostream.h>
int main()
{int count = 0;
double average = 0;
cout << "> ";
int number;
cin >> number;
while (number != 0)
{count++;
average = average + number;
cout << "> ";
cin >> number;
}
if (count != 0) average = average/count;







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 06 Февруари 2008 17:02:04, 0 Коментара
Основи на C++, Част 6


Цитат
Задача 1. Да се напише програма, която по дадено естествено число n, намира факториела му.
#include <iostream.h>
int main()
{cout << "n= ";
int n;
cin >> n;
if (!cin)
{cout << "Error. Bad Input! \n";
return 1;
}
if (n <= 0)
{cout << "Incorrect Input! \n";
return 1;
}
int fact = 1;
for (int i = 1; i <= n; i++)
fact = fact * i;
cout << n << "! = " << fact << "\n";
return 0;
}
Едно от новите неща в този пример е, че правим проверка, дали потребителя е въвел коректни данни, както и че вместо void ползвам int. Разликата между двата метода ще бъде предмет на понататъшните лекции.
Съществената новост и предмет на конкретният пример е и цикличният оператор for. В началните скобки имаме 3 важни части разделени със точка и запетая. С първият задаваме начална стойност на i, със вторият задаваме условието за изпълнения на цикъла, а третото е дадена операция която ще се изпълнява всеки път. В случая това е инкрементиране на i със единица. Така тялото на цикъла ще се изпълнява докато i от нула не стане по-малко или рано на n.


*Останалите примери не са разгледани, могат да се ползват за упражнения. smile.gif Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 06 Февруари 2008 17:02:44, 0 Коментара
Как да измерим интернет скоростта си?


В момента безспорно най-популярният начин за измерване на интернет скоростите е чрез сайта www.speedtest.net. Цялата процедура е интуативна и лесна, след като се влезе в сайта, на картата се появяват различни точки на тестовите сървъри, до които може да се измери скоростта, автоматично се препоръчва най-близкия до вас сървър, който и е отбелязан с отличаващ се жълт цвят. При кликване върху него или върху друг, теста започва автоматично, като прогреса може да се следи благодарение на приятният интерфейс на теста, наподобяващ километраж на автомобил. След като теста приключи почти веднага се появява и резултата в съответната мерна единица, по-подразбиране се ползва kbp/s - килобита за секунда. При желание може да се изберат и други мерни единици, като mbp/s - мегабита за секунда, KB/s - килобайта за секунда и MB/s - мегабайта за секунда. Промяната им става от www.speedtest.net/results.php като от там може да се променят и мерните единица за растояние съответно километри или мили, както и часовата зона, в която се намирате и предпочитаният от вас сървър по-подразбиране. На същата страница достъпна от менюто - MY RESULTS се пази и подробна статистика за всички изминали тестове, които сте направили чрез сайта, заедно с удобни графики и допълнителни статистики.

Но как всъщност се прави теста, след като сте избрали предпочитаните мерни единици и сте ги запазили се върнете в началната страница, преди да започнете теста спрете всички приложения, които ползват интернет връзката ви, skype и други месенджери, torrent клиенти, даунлоад клиенти, уеб и други сървъри, всичко без браузера ви разбира се. Сега изберете сървър и кликнете върху него, по време на теста не правете нищо. За да добиете реална представа за връзката си, по-добре е да направите няколко теста един след друг през 5-10 минутки време до една и съща дестинация. Ако искате да измерите българската си скорост на така наречиният BG Peering, изберете български град, за момента има три - София, Пловдив и Хасково, като софийският тест сървър се хоства от Megalan, пловдивският от DCC, а хасковският от Aida. Ако сте на един от тези доставчици ще получите резултати на локалната си скорост, която не е реалната скорост на bg пиъринга, затова в такъв случай изберете друг български град. Тук има една забележка, поради Пловдивският пиъринг и други доставчици освен DCC получават локални резултати от теста до Пловдив, като Visio, FilibeNet (Angelsoft, Netgroup, Winetbg, Asilan) и други. За София и Хасково нямам информация за такова нещо. В крайна сметка за да добием предста за българските си скорости, трябва да тестваме поне с два български града. За да разберем истинската си интернет свързаност, трябва да тестваме с градове извън България, препор







Още по темата Източник: GgBiT.InFo

Във Полезни статии, От FrAgMaKeR, 22 Януари 2008 21:01:39, 9 Коментара
Основи на C++, Част 5


Цитат
Задача 1. Да се напише програма, която демонстрира оператора за избор на варианти.
#include<iostream.h>
void main()
{char figura;
double a,b,r,h,S;
cout<<"Vuvedete kod na figura O-okraj;T-triag;P-prav;K-kvadr:";
cin>>figura;
switch(figura){
case'O':cout<<"Vuvedete radius r=";cin>>r;S=3.14*r*r;cout<<"Liceto na okraj. e S="<<S<<endl;break;
case'T':cout<<"Vuvedete strana a=";cin>>a;cout<<"Vuvedete visochina h=";cin>>h;S=(a*h)/2;cout<<"Liceto na triag. e S="<<S<<endl;break;
case'P':cout<<"Vuvedete strana a=";cin>>a;cout<<"Vuvedete strana b=";cin>>b;S=a*b;cout<<"Liceto na pravoag. e S="<<S<<endl;break;
case'K':cout<<"Vuvedete strana a=";cin>>a;S=a*a;cout<<"Liceto na kvadr. e S="<<S<<endl;break;
default:cout<<"Greshen kod!"<<endl;
}
}
Тук вметваме и за стринговият тип данни. На променлива от вид char можем да присвойм почти всякакъв вид данни. Демонстрирана е и работата посредством Swich(). Много важно е ако компилирате програмката всеки от редовете на кейса да са на един ред иначе връща грешка. Много е важно също така да не пропускате Break-а освен след default: варианта де. smile.gif


Цитат
Задача 2. Да се напише програма, която по зададено реално число x намира стойността на един от следните изрази:
y = x - 5
y = sin(x)
y = cos(x)
y = exp(x).
#include <iostream.h>
#include <math.h>
void main()
{cout << "=================================\n";
cout << "| y = x-5 -> 1 |\n";
cout << "| y = sin(x) -> 2 |\n ";
cout << "| y = cos(x) -> 3 |\n";
cout << "| y = exp(x) -> 4 |\n";
cout << "=================================\n";
cout << " 1, 2, 3 or 4? \n";
int i;
cin >> i;
if (i == 1 || i == 2 || i == 3 || i == 4)
{cout << "x= ";
double x;
cin >> x;
double y;
switch (i)
{case 1: y = x - 5; break;
case 2: y = sin(x); break;
case 3: y = cos(x); break;
case 4: y = exp(x); break;
}
cout << "y= " << y << "\n";
}
else
cout << "Greshen







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 16 Януари 2008 15:01:10, 0 Коментара
Основи на C++, Част 4


Цитат
Задача 1. Да се напише програма, която определя дали дадено число въведено от клавиатурата е четно или нечетно.
#include<iostream.h>
void main()
{int a;
cout<<"Vavedete chislo:";cin>>a;
if(a%2==0)
cout<<"Chisloto e chetno!"<<endl;
else
cout<<"Chisloto e nechetno!"<<endl;
}
И така време е да въведем условният оператор if. С него проверяваме истинноста на дадено твърдение и ако е истина изпълняваме дадена операция, а ако не е истина друга. В случая можем да си го преведем "Ако резултатът от a%2 е равен на нула изведи 'Числото е четно', в противен случай изведи 'Числото е нечетно'". В повечето случаи проверяваме дали дадено условие е вярно, за целта ето няколко примера:
"==" - Означава равенство между двете страни. Единичното "=" си е присвояване!
">=" - Означава, че лявото е по-голямо или равно на дясното.
"<=" - Означава, че лявото е по-малко или равно на дясното.
"!=" - Означава, че лявото не е равно на дясното.
">" - Означава, че лявото е по-голямо от дясното.
"< - Означава, че лявото е по-малко отдясното.
и т.н.


Цитат
Задача 2. Да се напише програма, която при число въведено от клавиатурата го увеличава с 3 ако е положително и увеличава с 2 ако е отрицателно.
#include<iostream.h>
void main()
{int a;
cout<<"Vavedete chislo:";cin>>a;
if(a>0)
{cout<<"Chisloto e polojitelno!"<<endl;a+=3;cout<<"New a:"<<a<<endl;}
else
{cout<<"Chisloto e otricatelno!"<<endl;a+=2;cout<<"New a:"<<a<<endl;}
}
Когато има няколко оператора за изпълнение, примерно, ако освен "cout<<"Chisloto e polojitelno!"<<endl;" трябва да има още някаква друга команда, те се огражда с фигурни скобки {}.


Цитат
Задача 3. Да се напише програма, която намира най-голямото от три числа въведени от клавиатурата.
#include<iostream.h>
void main()
{int a,b,c;
cout<<"vavedete a=";cin>>a;
cout<<"vavedete b=";cin>>b;
cout<<"vavedete c=";cin>>c;
if(a>b && a>c)
cout<<"A is maximum!"<<endl;
else if(b>a && b>c)
cout<<"B is maximum!"<<endl;
else
cout<<"C is maxi







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 16 Януари 2008 15:01:19, 0 Коментара
Основи на C++, Част 3


Цитат
Задача 1. Да се напише програма, която прочита трицифрено число въведено от клавиатурата и извежда на отделни редове цифрите на стотиците, десетиците и единиците.
#include<iostream.h>
void main()
{int a;
cout<<"vavedete tricifreno chislo:";cin>>a;
int b,c,d;
b=a/100;
c=a/10%10;
d=a%10;
cout<<"Stotici:"<<b<<endl;
cout<<"Desetici:"<<c<<endl;
cout<<"Edinici:"<<d<<endl;
}
Тук при входа се загатва, за това, че стига да са разделени със точка и запетая, 2 операции може да се намират и на един ред за по-голяма пригледност и удобство.
Основната част на тази задача е да покаже как да разчленим едно 3 цифрено число...
b = a/100 => Тъй като b е целочислено то игнорира остатъка. Примерно 345/100 = 3,45 но тъй като е цяло число остава само 3.
c=a/10%10 => Първо делим примерно 345 на 10 и получаваме 34,5 което е 34 тъй като c е цяло число. Имаме обаче знак % тоест процент. С него се намира остатъка от деление. В случая 34 не може да се раздели на 10. Най-голямото число по-малко от 34 делящо се на 10 е 30, съответно 34 - 30 = 4. Остатъка от делението е 4, той е и цифрата на десетиците.
d=a%10 => По същият начин примерно 345 % 10 = 5 защото 340 е най-голямото число което може да се раздели на точно на 10 и остатъка от 340 до 345 е 5.

Важна забележка! В оригиналната задача на Касъклиев има грешка там единиците се намират с d=a%100 а се дели по модул на 10 иначе резултата е 34. Вероятно е просто техническа грешчица.


Цитат
Задача 2. Да се напише програма, която прочита от клавиатурата две цели числа и извежда на екрана резултата от делението им.
#include<iostream.h>
void main()
{int a;
cout<<"vavedete chislo:";cin>>a;
int b;
cout<<"vavedete chislo:";cin>>b;
float c=(float)a/b;
cout<<"Rezultat:"<<c<<endl;
}
Важното в тази задача е, че посредством скобички, може да бъде определян типа на резултт от дадено умножение, деления събиране и т.н.


Цитат
Задача 3. Да се напише която, при въведено от клавиатурата число за ден от седмицата определя дали е понеделник или не.
#include <iostream.h>
enum Days
{
saturday,
sunday = 0,
monday,
tuesday,
wednesday,
thursday,
friday
};
void main() {
enum Days today = sunday;
sw







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 16 Януари 2008 14:01:25, 0 Коментара
Основи на C++, Част 2


Цитат
Задача 1. Да се напише програма, в която се декларира целочислена променлива с име А инициализира се А със стойност 2 и се извежда на екрана стойността на А.
Код
#include <iostream.h>
void main()
{
int A=2;
cout << "A="<<A<<”\n”;
}
За да декларираме дадена променлива трябва да упоменем нейният вид, име и стойност която носи. В случая за Целочислени числа ползваме int и със "int A=2" указваме че променливата A е целочислена и има стойност "2".
При извеждането променливите не се ограждат със кавички, за дам оже да бъде изведена тяхната стойност, иначе примерно ще изведе само буквата "А" вместо стойноста й "2".

Цитат
Задача 2. Да се напише програма, която намира лицето на окръжност с радиус 2см.
Код
#include <iostream.h>
void main()
{
float pi=3.14;
int r=2;
cout << "Liceto na okrujnostta e s="<<pi*r*r<<”\n”;
}
Тъй като числото "Пи" е нецяло и има дробна част, вида на променливата е float тоест не е задължително да е цяло число както при int.
Освен че дадени променливи могат да бъдат извеждани на екрана, могат и да бъдат извършвани действия със тях, както във горният пример е изчислено лицето на окръжноста. За прегледност можете да си ползвате скобки както в математиката, но не са задължителни.


Цитат
Задача 3. Да се напише програма, която намира периметъра и лицето на правоъгълник със страни 2,3 и 3,7.
Код
#include <iostream.h>
void main()
{double a = 2.3;
double b = 3.7;
double p, s;
p = 2*(a+B);
s = a*b;
cout << "p= " << p << "\n";
cout << "s= " << s << "\n";
}
double е същото като float, единственото му предимство е, че могат да се записват в него много големи числа, но това не е от особено значение, тъй като и "float" за 99.99% от случаите е предостатъчен. smile.gif
При задаването на типа не винаги е нужно да му бъде задавана стойност от самото начало, може и







Още по темата Източник: Решение на задачите на Гл. Ас. Н. Касъклиев

Във Полезни статии, От vIkToRsHeFa, 16 Януари 2008 14:01:31, 0 Коментара
  Предишна     1     2     3     4     5     6     7     Следваща  
Календар
Температура
Валута
Телевизия
Кинопрограма
Информация

Valid XHTML 1.0 Transitional