• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed operandy w c++ ,c++ szkoła programowania IV

0 głosów
765 wizyt
pytanie zadane 4 maja 2017 w C i C++ przez Jakub 0 Stary wyjadacz (13,480 p.)
zamknięte 4 maja 2017 przez Jakub 0

Hej ,dziś mam bardzo krótkie pytanie do którego odpowiedzi nie znalazłem w internecie . Mianowicie czym są w c++ operandy wyższego porządku a czym niższego porządku ? (książka jak w temacie str 114) . ogólnie wiem czym są operandy :) . Dziękuje serdecznie za pomoc , pozdrawiam laugh

komentarz zamknięcia: już znam odpowiedź

1 odpowiedź

+1 głos
odpowiedź 4 maja 2017 przez QizmoPL Stary wyjadacz (11,500 p.)
wybrane 4 maja 2017 przez Jakub 0
 
Najlepsza

Operand – w matematyce argument operatora, tj. funkcji danej przestrzeni w siebie (tzw. endomorfizm). Przykładowo dla działaniadodawania {\displaystyle +,}+, będącego operatorem w ustalonym ciele (np. liczb rzeczywistych) postaci

{\displaystyle 3+6=9}3 + 6 = 9

operandami są liczby {\displaystyle 3}3 oraz {\displaystyle 6.}6.

Operand – w cybernetyce zbiór obiektów (osób, przedmiotów, procesów), na których wykonywane jest pewne działanie. Wynikiem przekształcenia operandu jest transformata; zbiór operandów jest zamknięty względem danej transformacji, gdy w zbiorze transformat nie występują elementy spoza zbioru operandów.

https://pl.wikipedia.org/wiki/Operator_(programowanie)#Pierwsze.C5.84stwo.2C_priorytet

komentarz 4 maja 2017 przez Jakub 0 Stary wyjadacz (13,480 p.)
dzięki , miałem już zamknąć pytanie bo zrozumiałem temat . ale dzięki za odpowiedź
komentarz 4 maja 2017 przez Jakub 0 Stary wyjadacz (13,480 p.)

co prawda już zamknąłem pytanie ale nie wiem jak zrozumieć to zdanie z książki o algorytmie konwersji w c++ 11 :

W przeciwnym razie jeden operand jest typu ze znakiem, a drugi bez znaku . Jeśli operand bez znaku jest typu wyższego porządku niż operand ze znakiem , ten ostatni jest konwertowany na typ ze znakiem.

wiem że pewnie źle to rozumiem ale czy według tego zdania kompilator może tak sam od siebie po prostu usunąć znak ? Przecież np -5+10 da inny wynik niż 5+10 . Wiem że tu chodzi pewnie o coś innego ale słabo rozumiem temat

1
komentarz 4 maja 2017 przez QizmoPL Stary wyjadacz (11,500 p.)

Wiele operatorów binarnych (omówionych w wyrażenia z operatorami Dwuargumentowymi) powoduje konwersje operandów i daje wyniki w taki sam sposób. Sposób, w jaki te operatory powodują konwersje jest nazywany "typowe konwersje arytmetyczne". Konwersje arytmetyczne operandów o różnych typach natywnych są wykonywane jak pokazano w poniższej tabeli. Typy TypeDef zachowują się zgodnie z ich podstawowymi typami natywnymi.

Warunki dotyczące konwersji typów

Warunki są spełnione Konwersja
Jeden z operandów jest typu long double. Drugi operand jest konwertowany na typ long double.
Poprzedni warunek nie jest spełniony i jeden z operandów jest typu double. Drugi operand jest konwertowany na typ double.
Poprzedni warunki nie są spełnione i jeden z operandów jest typu float. Drugi operand jest konwertowany na typ float.
Powyższe warunki nie zostały spełnione (żaden z operandów nie jest typu zmiennoprzecinkowego). Promocje typów całkowitych są wykonywane na operandach w następujący sposób:

- Jeśli jeden z operandów jest typu unsigned long, drugi operand jest konwertowany na typ unsigned long.
- Jeśli powyższy warunek nie zostały spełnione i jeden z operandów jest typu long i innych typu unsigned int, oba operandy są konwertowane na typ unsigned long.
- Jeśli dwa powyższe warunki nie są spełnione i jeden z operandów jest typu long, drugi operand jest konwertowany na typ long.
- Jeśli trzy powyższe warunki nie są spełnione i jeden z operandów jest typu unsigned int, drugi operand jest konwertowany na typ unsigned int.
- Jeśli żadne z powyższych warunków nie zostaną osiągnięte, oba operandy są konwertowane na typ int.

Poniższy kod ilustruje reguły konwersji opisane w tabeli:

  
double dVal;  
float fVal;  
int iVal;  
unsigned long ulVal;  
  
int main() {  
   // iVal converted to unsigned long  
   // result of multiplication converted to double  
   dVal = iVal * ulVal;  
  
   // ulVal converted to float  
   // result of addition converted to double  
   dVal = ulVal + fVal;  
}  

Pierwsza instrukcja w powyższym przykładzie pokazuje mnożenie dwóch typów całkowitych iVal i ulVal. Spełniony jest warunek, że żaden z operandów jest typu zmiennoprzecinkowego i jeden argument jest typu unsigned int. Z tego powodu, drugi operand iVal, jest konwertowany na typ unsigned int. Wynik jest przypisany do dVal. Spełniony jest warunek, że jeden z operandów jest typu doublei dlatego unsigned int wynik mnożenia jest konwertowany na typ double.

Druga instrukcja w powyższym przykładzie pokazuje Dodawanie float i typu całkowitego fVal i ulVal.ulVal Zmiennej jest konwertowany na typ float (trzeci warunek określony w tabeli). Wynik dodawania jest konwertowany na typ double (drugi warunek określony w tabeli) i przypisane do dVal.

https://msdn.microsoft.com/pl-pl/library/aetzh118.aspx

komentarz 4 maja 2017 przez Jakub 0 Stary wyjadacz (13,480 p.)
dzięki

Podobne pytania

0 głosów
2 odpowiedzi 355 wizyt
0 głosów
2 odpowiedzi 170 wizyt
pytanie zadane 2 września 2018 w C i C++ przez vog Początkujący (280 p.)
0 głosów
1 odpowiedź 141 wizyt
pytanie zadane 3 września 2017 w C i C++ przez Sic Mądrala (7,330 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

66,991 zapytań

113,896 odpowiedzi

241,351 komentarzy

46,948 pasjonatów

Przeglądających: 222
Pasjonatów: 16 Gości: 206

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...