Премини към съдържанието

Препоръчан отговор


Здравейте искам да попитам на тези 2 въпроса дали е така решението:
 
1. Дефинирайте променливи h, q от реален тип с двойна точност: 
 
double = h , q;
 
 
2. Дефинирайте константи K със стойност 10 и L със стойност 0.5
Типът на константата K e ………….. ..Типът на константата L e ……………. 
 
 
const int K = 10;
const float L = 0.5;

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

1. Дефинирайте променливи h, q от реален тип с двойна точност: 

 

double = h , q;

Знакът "равно" не трябва да го има.

 double h, q;
Редактирано от flare (преглед на промените)
  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Знакът "равно" не трябва да го има.

 double h, q;

Ами втората задача така ли е или пак трябва да е без равно ?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ами втората задача така ли е или пак трябва да е без равно ?

Във втората присвоявате на променливите стойност т.е. трябва да има знака за равенство

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Във втората присвоявате на променливите стойност т.е. трябва да има знака за равенство

Както съм я написал ли трябва да е ?


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Както съм я написал ли трябва да е ?

Да

Може да се дефинират и като константи за препорцесора, нещо от рода:

#define  K 10
#define  L 0.5

и тогава не се иска знака за равно

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Да

Може да се дефинират и като константи за препорцесора, нещо от рода:

#define  K 10
#define  L 0.5

и тогава не се иска знака за равно

 

#define K 10

#define  L 0.5

 

Ами ако съм го направил по този начин който си го написал без типа става ли, или то си го разбира типа автоматично .

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

#define K 10

#define  L 0.5

 

Ами ако съм го направил по този начин който си го написал без типа става ли, или то си го разбира типа автоматично .

При такова дефиниране не се задава тип, защото препроцесора обхожда тези дефиниции и замества навсякъде из кода "променливата" с числовата й стойност

Редактирано от capnemo (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

При такова дефиниране не се задава тип, защото препроцесора обхожда тези дефиниции и замества навсякъде из кода "променливата" с числовата й стойност

Ясно. Благодаря за информацията и за помощта. 

Редактирано от stambeto2013 (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Препроцесора си го представям да е текстообработваща програма. 

 

Или константите декларирани с const, всъщност са константи като променливи, само че не могат да се променят. А константите декларирани с #define, са константи като макроси. Всъщност са истински макроси.

 

Би следвало, навсякъде след директивата #define ккк 555 - препроцесора при текстообработката да замести символите ккк със символите 555, и тъй като символите 555 се използват в кода за записване на числото 555, се получава ефекта, че все едно макроса ккк е константа.

 

На български език може да се преведе така. Като напиша ккк, ти винаги чети 555 и компилирай все едно че съм написал 555.

 

А константа дефинирана с const int kkk = 555; - означава, че в адрес от паметта &kkk, достъпен само за четене при изпълнение, записваме стойността 555 при компилиране.

Редактирано от Реджеп Иведик (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Препроцесора си го представям да е текстообработваща програма. 

 

Или константите декларирани с const, всъщност са константи като променливи, само че не могат да се променят. А константите декларирани с #define, са константи като макроси. Всъщност са истински макроси.

 

Би следвало, навсякъде след директивата #define ккк 555 - препроцесора при текстообработката да замести символите ккк със символите 555, и тъй като символите 555 се използват в кода за записване на числото 555, се получава ефекта, че все едно макроса ккк е константа.

 

На български език може да се преведе така. Като напиша ккк, ти винаги чети 555 и компилирай все едно че съм написал 555.

 

А константа дефинирана с const int kkk = 555; - означава, че в адрес от паметта &kkk, достъпен само за четене при изпълнение, записваме стойността 555 при компилиране.

Ако трябва да сме по-прецизни подмяната става още преди лексикалния анализатор. И компилатора и идея си няма че там е имало нещо друго, той вижда само 555 :)

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

А константа дефинирана с const int kkk = 555; - означава, че в адрес от паметта &kkk, достъпен само за четене при изпълнение, записваме стойността 555 при компилиране.

Ако трябва да сме по-прецизни подмяната става още преди лексикалния анализатор. И компилатора и идея си няма че там е имало нещо друго, той вижда само 555 :)

Всъщност не е много смислено тези неща да се разглеждат така.

Всички тези инструменти са направени за удобство и функционалност и трябва да се прилагат от тази гледна точка.

Щото ако ползвате една константа само в един файл е изключително вероятно да получите еднакъв машинен код независимо дали ползвате const или define, особено с включени оптимизации. Разликата много често е в човешкия фактор. И както сме казвали и друг път обикновено е правилно да се ползва const. Обаче, на адски много места, в реален код се ползва и define.

  • Харесва ми 2

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.