Начало   Софтуер   Ревюта   Статии   Дневници   Галерия   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 можете да намери







: Инсталиране, поглед и бъдеще

Полезни статии, darkmaster8888, 10 2008 14: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" извеждаме на екрана празно пространство все едно сме натиснали табулацията. За да изведем десетичната им и знаковата им стойност, просто уточняваме преди променливите какъв е типа им.








: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 06 2008 16: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=







: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 06 2008 16: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. Да се напише програм







: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 06 2008 15: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 15:02:44, 0
Как да измерим интернет скоростта си?


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

Но как всъщност се прави теста, след като сте избрали предпочитаните мерни единици и сте ги запазили се върнете в началната страница, преди да започнете теста спрете всички приложения, които ползват интернет връзката ви, skype и други месенджери, torrent клиенти, даунлоад клиенти, уеб и друг







: GgBiT.InFo

Полезни статии, FrAgMaKeR, 22 2008 19: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







: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 16 2008 13: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;}
}
Когато има няколко оператора за изпълнение, примерно, ако ос







: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 16 2008 13: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. Да се напише програма, която прочита от клавиатурата две цели числа и извежда на ек







: Решение на задачите на Гл. Ас. Н. Касъклиев

Полезни статии, vIkToRsHeFa, 16 2008 12: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.

Valid XHTML 1.0 Transitional