C# - výpis výrazu proč ? – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# - výpis výrazu proč ? – C / C++ – Fórum – Programujte.comC# - výpis výrazu proč ? – C / C++ – Fórum – Programujte.com

 

rainbof0
Newbie
28. 2. 2011   #1
-
0
-

proč to vypisuje
5
5

??? nemelo by to naahodou vypsat true false ? pripadne ciselnou interpretaci...


static void Main()
{
int a, b, c;
a = 2;
b = 3;


Console.WriteLine(c=a+b);
Console.WriteLine(c+1=a+b);
Console.ReadKey();
}

Nahlásit jako SPAM
IP: 89.233.145.–
m->29+6
Super člen
28. 2. 2011   #2
-
0
-

Pre porovnanie slúžia dve rovnítka:

static void Main() 

{
int a, b, c;
a = 2;
b = 3;


Console.WriteLine(c==a+b);
Console.WriteLine(c+1==a+b);
Console.ReadKey();
}
Môžem sa spýtať v čom to inak prekladáš? Prípadne čo máš nastavené aby ti to preložilo výraz c+1=a+b? Ja mám M$VS 2010 prof. a nepodarilo sa mi to.

Nahlásit jako SPAM
IP: 83.240.51.–
rainbof0
Newbie
28. 2. 2011   #3
-
0
-

Ja mam klasicky MX C# 2010 express dneska jsem ho nahodil. S touhle volovinou na nas vyrukoval ucitel ve skole. Ackoliv jeho vyklad nesleduji (tohle jsou pro mne trivialni a zname veci) ani on sam mi to nedovedl vysvetlit jinak nez ze to funguje. Proc to tak je ale nevim. Jinak, ani s C== to nevraci true/false nebo neco podobneho. Zajimal by me smysl nebo puvod toho chovani. Jeste vic mne zarazi ze c+1=a+b vypise 5 coz je v kontextu veci uplny nesmysl.

Nahlásit jako SPAM
IP: 80.250.1.–
nervak0
Věrný člen
28. 2. 2011   #4
-
0
-

Tak to bych chtěl vidět.

Nahlásit jako SPAM
IP: 213.211.51.–
nervak0
Věrný člen
28. 2. 2011   #5
-
0
-

Tak to bych chtěl vidět.

Nahlásit jako SPAM
IP: 213.211.51.–
rainbof0
Newbie
28. 2. 2011   #6
-
0
-

a co to zkusit ?

Nahlásit jako SPAM
IP: 80.250.1.–
m->29+6
Super člen
28. 2. 2011   #7
-
0
-

Takže, v prvom rade je premenná c neinicializovaná takže ani nevieš aká je tam hodnota. A za druhé, to že ti to nejaké čudo skompiluje aj s tým že "premennej" c+1 priradíš hodnotu znamená, že by si to niečo čo používaš ako kompilátor mal nahradiť za nejaký ozajstný kompilátor. Pre a == a, alebo b == a už mi to skompiluje a vypíše True, resp. False. Hento ti asi nikto nevysvetlí, pretože je to nejaké nedefinované chovanie. Alebo možno nie je a ja sa rád poučím. Každopádne, podľa môjho neodborného názoru je strata času sa nad tým vôbec zamýšľať :-D

Nahlásit jako SPAM
IP: 83.240.51.–
28. 2. 2011   #8
-
0
-

To rainbof : Pokud učitel skutečně použil C#, tak je to buď chyták nebo jsi to špatně opsal, protože to v C# podle mě nemůže fungovat.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
nervak0
Věrný člen
1. 3. 2011   #9
-
0
-

Jestli "MX C# 2010 express" znamená "MS Visual C# 2010 Express", tak to při spouštění programu po jeho neúspěšném buildu nabízí spuštění poslední úspěšně zbuildované verze (s možností dotaz dále nezobrazovat). A to je podle mě to, co se u tebe děje. Jiné vysvětlení pro to nemám a dál to řešit nebudu. A ten výklad poslouchej, znáš kulový.

Nahlásit jako SPAM
IP: 213.211.51.–
rainbof0
Newbie
1. 3. 2011   #10
-
0
-

nervak napsal:
Jestli "MX C# 2010 express" znamená "MS Visual C# 2010 Express", tak to při spouštění programu po jeho neúspěšném buildu nabízí spuštění poslední úspěšně zbuildované verze (s možností dotaz dále nezobrazovat). A to je podle mě to, co se u tebe děje. Jiné vysvětlení pro to nemám a dál to řešit nebudu. A ten výklad poslouchej, znáš kulový.



Je videt ze tvuj nick te zcela vystihuje. Bohužel nemohu s tebou souhlasit a to ani když jsi přesvědčen že vím kulový.


Tento program LZE přeložit a spustit a dělá přesně co jsem řekl. Neověřené diskuse na téma že je to blbost apod. si prosím nechte na večer do hospody.



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main()
{
int a, b, c;
a = 2;
b = 3;

Console.WriteLine(c=a+b);
Console.ReadKey();

}
}
}


A MX opravdu znamenalo MS Visual Studio C# express. Doplním že bulid je 10.0.30319

Nahlásit jako SPAM
IP: 89.233.145.–
1. 3. 2011   #11
-
0
-

To rainbof : Ano, tohle lze spustit, ale to co jsi napsal předtím nikoliv :)

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
rainbof0
Newbie
1. 3. 2011   #12
-
0
-

Dobře, budeme slovíčkařit, řešit zda MX je MS tamto jsem psal narychlo při hodině. Uznavam že výraz c+1=a+b skutečně nejde je zvláštní že nyní ani c==a+ba nejde je špatně. Nevysvětluje to ale to co řeším primárně, a tím je proč Console.WriteLine(c=a+b); je 5 a proc to vubec funguje.

Nahlásit jako SPAM
IP: 89.233.145.–
KIIV
~ Moderátor
+43
God of flame
1. 3. 2011   #13
-
0
-

To rainbof : toto ti NEMUZE prelozit zadnej poradnej prekladac: c+1=a+b kam se to ma jako ukladat? co je za promennou c+1 ? i kdyby to byl pointer tak to nemuze projit bez dereference *(c+1) ... prirazeni hodnoty (coz je to =) MUSI vedet KAM prirazuje tu hodnotu...

c = a+b neni problem ani uvnitr console.write() .. v C-style jazycich i prirazeni vraci tu hodnotu co byla prirazena..
jde tedy udelat i c = a = a+b

ale to ze tu hodis na zacatku nejaky program, pak pouzivas neco uplne jinyho, a jeste tvrdis ze ten puvodni funguje... a jeste se navazet do lidi co ti jasne reknou ze to nemuze fungovat .. ne v C, C++ a ani C#

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
nervak0
Věrný člen
1. 3. 2011   #14
-
0
-

tohle jsou pro mne trivialni a zname veci

proč Console.WriteLine(c=a+b); je 5 a proc to vubec funguje

Je videt ze tvuj nick te zcela vystihuje... jsi přesvědčen že vím kulový

Ano, s takovými odborníky ztrácím nervy :) Nic osobního.

Neověřené diskuse na téma že je to blbost

Neověřené je jen tvoje tvrzení, že ten první program jde zkompilovat. Většina z nás je s C# dále než tvůj jeden den s MSVC# a hned pozná, že je to blbost.

Nahlásit jako SPAM
IP: 213.211.51.–
rainbof0
Newbie
1. 3. 2011   #15
-
0
-

výmluva.

Nahlásit jako SPAM
IP: 89.233.145.–
1. 3. 2011   #16
-
0
-

Tak to by myslím stačilo. Problém je vyřešen a žádám, aby se k tomu už nikdo nevracel.

Nahlásit jako SPAM
IP: 89.203.157.–
Dušan Janošík | web: djanosik.cz, @djanosik
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 118 hostů

Podobná vlákna

Umocnění výrazu — založil zdenek

Rozdílné hodnoty výrazu — založil velurex

Parsování logického výrazu — založil midnighter@centrum.cz

Vyhodnotenie prijateho vyrazu — založil Tom@sQo

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý