C, PHP, VB, .NET

Дневникът на Филип Петров


Категория ‘С/С++’

* Побитови операции

Публикувано на 24 октомври 2008 в раздел С/С++.

Езикът С притежава част от качествата на асемблерните езици. Той разполага с пълен набор от операции за работа с отделни битове на числените стойности - поразредни операции. Тези операции позволяват проверяване, установяване или преместване на отделни битове на променливи от тип int или char. Поразредните операции се използват много често при писането на драйвери за устройства.

Прочети още...

.

 


* Класове Памет, Разделно Компилиране

Публикувано на 24 октомври 2008 в раздел С/С++.

Класове Памет, Разделно Компилиране

Всяка променлива в С се характеризира с три атрибута:
1. Тип на променливата - определя стойностите, които променливата може да приема и съответно необходимото количество памет, което трябва да се задели
2. Област на действие - мястото в програмата, където тя е "видима", например разгледаните вече глобални променливи имат по-широка област на действие от локалните
3. Период на активност - част от времето за изпълнение на програмата, през което ще се съхранява последната текуща стойност Прочети още...

.

 


* Преобразуване на типове, размер на данни

Публикувано на 24 октомври 2008 в раздел С/С++.

I. Преобразуване на типове:

Гъвкавостта на езика С се подсилва от възможността за преобразуване на един тип данни в друг:

	(тип) операнд

Пример:

	double x = 15.5;
	// Следното ще доведе до:
	// warning C4244: 'initializing' : conversion from 
	// 'double' to 'int', possible loss of data
	int y = x;
	// Когато укажем преобразуването явно този warning изчезва:
	int z = (int)x;
 Прочети още...

.

 


* Предпроцесор

Публикувано на 24 октомври 2008 в раздел С/С++.

Езикът за програмиране С има едно рядко срещано при езиците от високо ниво преимущество - възможност за управление на процеса на компилация. Предпроцесорът дава на програмиста следните допълнителни средства:
- Използуване на макроопределения
- Включване на първични файлове към програмата
- Условно компилиране Прочети още...

.

 


* Допълнителни задачи към упражнение №1

Публикувано на 14 октомври 2008 в раздел С/С++.

Задача 1.  Компютърът си “намисля” едно число в даден интервал. От потребителят се изисква да “познае намисленото” число. За да бъде сходяща играта, всеки път се намалява интервала, в който трябва да се намира намисленото число (компютърът ще "казва" дали числото е по-голямо или по-малко от предположеното). Накрая се разпечатва оригинала и броя пъти, необходими за познаването му.

* Произволно число "randomNumber" в интервала [0, 100] може да зададете по следния начин:

srand( (unsigned) time (NULL) );
int randomNumber = (int) ( 101.0 * (double) rand() / ( (double) RAND_MAX+1.0) );
Прочети още...

.

 


* Указатели, Адресна аритметика

Публикувано на 11 октомври 2008 в раздел С/С++.

Всеки обект в езика (променлива, константа, масив, елемент на масив, структура, ...) се съхранява в определени клетки на паметта. Прието е да се казва, че тези клетки се намират на определен "адрес". Променлива, чиято стойност е адрес в паметта, се нарича указател. Стойността на указателя посочва местоположението на дадена променлива и позволява косвен достъп до стойността й. Прочети още...

.

 


* Структури

Публикувано на 11 октомври 2008 в раздел С/С++.

Като първа стъпка при структуриране на информация в дадена програма ние се стремим да групираме логически свързаните данни в едно цяло. Пример за такова групиране са масивите. При тях обаче има едно съществено ограничение: всички елементи трябва да са от един и същи тип. Когато се налага да групираме данни от различни типове можем да използваме специалния тип данни struct:

	struct име
	{
		описание на първия елемент;
		...
		описание на последния елемент;
	};

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

.

 


* Функции, Глобални променливи

Публикувано на 11 октомври 2008 в раздел С/С++.

Функцията е основната програмна единица. Можем да разглеждаме функциите като логическа част от по-голяма програма. Този фрагмент може да се изпълнява многократно в различни части на програмата.

Функциите се дефинират по следият начин:

	тип_на_функцията име(входни_параметри)
	{
		оператори;
		return резултат;
	}

Типа на връщания резултат трябва да съвпада с типа на самата функция. Когато няма нужда от връщане на резултат се използва тип на функцията void. Прочети още...

.

 


* Опрератор за цикъл for

Публикувано на 28 септември 2008 в раздел С/С++.

Това е най-сложният като синтаксис оператор:

    for(<израз1>; <израз2>; <израз3>)
    {
        оператори;
    }

Тук изразите в условието на цикъла са следните:

- израз1 се нарича "начално условие" или "израз за инициализация. Изпълнява се само веднъж преди започването на цикъла.

- израз2 е "условие за проверка". Цикъла ще бъде изпълняван дотогава, докогато това условие връща резултат различен от нула.

- израз3 изменя текущите стойности на параметрите на цикъла. Прочети още...

.

 


* Цикли while и do-while

Публикувано на 25 септември 2008 в раздел С/С++.

Условните оператори за цикли позволяват многократното повторение на един или група от оператори, т.е да се организира цикъл. Пролжителността на цикъла се управлява от "условие за цикъл". Условието е доустим за езика израз. Когато условието даде резултат 0 цикъла се прекратява.
Цикъла while има следния синтаксис:

	while(<условие>)
	{
		оператори;
	}

Операторът do-wile има анарлогичен синтаксис:

	do
	{
		оператори;
	}
	while(<условие>); Прочети още...

.