- PlayStation 5
- Előzetes élménybeszámolókon a Sand Land
- Forza sorozat (Horizon/Motorsport)
- Steam topic
- iRacing.com - a legélethűbb -online- autós szimulátor bajnokság
- Nintendo Switch
- Konzolokról KULTURÁLT módon
- Shakes&Fidget Online Szerepjáték
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Xbox Series X|S
Új hozzászólás Aktív témák
-
veterán
-
veterán
lol.
ennek meg mi baja lehet?using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace szervusz
{
class Program
{
static void Main(string[] args)
{
var a = "";
var b = "";
Console.WriteLine("Mondj egy szamot!");
Console.WriteLine(a);
Console.ReadKey();
Console.WriteLine("Mondj megegy szamot!");
Console.WriteLine(b);
Console.ReadKey();
Console.WriteLine("Osszeadtam oket");
Console.WriteLine(a + b);
Console.ReadLine();
}
}
}Mindent megcsinal, csak nem irja ki a es b erteket vagyis nem latom. Hogy tudnam megakasztani?
Udv. core2
[ Szerkesztve ]
-
Lortech
addikt
válasz Neil Watts #1702 üzenetére
Előszöris szerintem nem kéne var-t használnod ezen a szinten és konkrétan erre a feladatra.
Console.WriteLine(a);
-a változó értéke üres string, nincs mit kiírnia (egy sorvégén kívül - WriteLine).Console.ReadKey();
-[link]
Lásd a metódus dokumentációját. Ez nem azt csinálja, amit szerintem te szeretnél elérni, de amúgysem jól használod.
Ennek hatására annyit csinál a program, hogy vár 1 db leütésre. Nem kerül be "a" változóba a beírt szöveg/szám, meg semmi hasonló.
Írj a = Console.ReadLine(); -t helyette. És beolvasás után kéne kiiratni a tartalmát, hacsak nem a beolvasás előtti tartalmát akarod kiírni a változónak.Console.WriteLine(a + b);
- ez konkatenálni fogja a stringet ebben az esetben, mivel string típusok esetén a + operátor ezt jelenti, tehát ha a = "1", b = "2", akkor a + b == "12", nem pedig 3.
A stringet át kell alakítani a fent már említett módon pl. egy int vagy valamelyik szám típussá, és úgy összeadni őket.Olvass sokat az alapokról mielőtt kódot írsz szerintem, vagy nézegess meg egyszerű, működő példákat, ennek én így sok értelmét nem látom.
[ Szerkesztve ]
Thank you to god for making me an atheist
-
ArchElf
addikt
Látom, hogy Windows Service esetében van valami webszervizes lehetőség...
Properies > Services > Enable Client Application Services
Van valakinek erről anyaga, esetleg megosztható tapasztalata?De ahogy nézem ez akár egész más is lehet, mint amit én szeretnék. A lényeg, hogy kellene egy szervíz, ami RPC/XMLRPC vagy valami hasonló módon "távolról" (kliensből) vezérelhető. Az az igazság, hogy nincs kedvem egy egész TCP Listener osztályt legyártani, szívesebben használnék valami beépített lehetőséget, amit a C# / IDE alapból is támogat.
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
nagyúr
válasz Lortech #1703 üzenetére
"Előszöris szerintem nem kéne var-t használnod ezen a szinten és konkrétan erre a feladatra."
Miért ne? Mindenhol használható. Szerintem érdemes hamar megszokni - csak persze meg is kell érteni, ezért kell utánaolvasni.
A hiba pontosan az, amit írsz, hogy amikor kiírunk, akkor WriteLine, amikor beolvasunk, akkor ReadLine kell a ReadKey pedig szolgáljon csak a program megállítására, ne legyen más funkciója.
Értelme volna mórickázni, de mégsem, mert a példa nem alkalmas semmire. Az alapoktól kezdeni annyit tesz, hogy megérteni az osztályokat, interfészeket, a C# beépített dolgait, hívásait. Példának pedig olyat érdemes nézni, kitalálni, aminek haszna is van. Mondjuk egy számológép. Kicsi, könnyű, nagyon alap.
ArchElf:
Sajnos egyelőre passzolok, ilyeneket mostanában nem csináltam... de megnézem, hátha akad valami régebbről.[ Szerkesztve ]
-
Lortech
addikt
Azért ne használjon var-t (még), mert ennek a megfelelő, körültekintő használata, egyáltalán a megértése komolyabb tudást feltételez, mint ami a példából láthatólag megvan. Ha a végrehajtás sorrendje - szekvencia, vagy egy alap beolvasás, kiíratás, egyszerű típushasználat problémát okoz, "proc.", fgv. használatát keveri, akkor még ráér type inference-t használni.
Ezen a szinten konkrétan a példában azért sem szerencsés, mert kezdő számára nem biztos, hogy egyértelmű, hogy melyik változó vagy kifejezés itt milyen típusú lesz, string és numerikus érték, azok konverziója és egy rajtuk végzett művelet is van benne.
A tanulás megfelelő sorrendje is fontos szerintem, először legyen tisztában azzal, hogy hol, milyen típus várható, majd később ráér a compilerre bízni ezt.Thank you to god for making me an atheist
-
x007
tag
válasz ArchElf #1709 üzenetére
Röviden összefoglalom:
Ez egy SOA framework, a lényege, hogy kommunikációs végpontokat (Endpoint) tudsz definiálni.A végpontokat meghatározza: ABC
Address: A végpont címe (többféle URI van, a bindingtól függ, hogy milyet kell használni)
Binding: A végpontnál használt protokoll, ebből többféle gyári megvalósítás van: [link]
Contract: Ez végpont interface-e, ami meghatátozza, hogy milyen műveleteket lehet végrehajtani.Itt egy nagyon egyszerű példa, ami szerintem a Te igényeidet is fogja fedni [link]
[ Szerkesztve ]
-
pethYeti
addikt
Üdv!
Bocs lehet off.
A Visual Studio 2010-nek mennyi helyre van szüksége a C meghajtón? Valamint a 2008-nak?
Köszi előre is!
-
pethYeti
addikt
Köszi!
-
Vasinger!
nagyúr
Üdv.!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy számra 1-100 között, Találd ki!");
int a, b;
bool logika = true;
Random rnd = new Random();
a = rnd.Next(100);
do
{
b = Convert.ToInt16(Console.ReadLine());
if (a < b)
{
Console.WriteLine("A szám kisebb");
}
if (a > b)
{
Console.WriteLine("A szám nagyobb");
}
if (a == b)
{
Console.WriteLine("Eltaláltad a számot");
logika = a == b;
}
} while (true);
Console.WriteLine("Miért nem lépsz ki?");
Console.ReadLine();
}
}
}Van egy ilyen progim, de valamiért nem 100-as. A végén nem írja ki azt a szöveget "Miért nem lépsz ki?" és le is fagy. Ez az első hátultesztelős ciklusos progim, így nem nagyon értem a szintaktikáját, hogy ez miért nem tetszik neki.
A végén nem lép ki. 5let? -
j0k3r!
senior tag
válasz Vasinger! #1720 üzenetére
elejen letrehozol egy bool tipusu valtozot, amit false kezdeti ertekkel latsz el:
bool logika = false;
a logika valtozo csak akkor valt igazra (true), ha a == b, tehat amikor a ket szam megegyezik.
eppen ezert a ciklusod addig megy
amig logika nem igaz -> while(logika != true) -> while(!logika)amugy, asszem a
a = rnd.Next(100);
nem 1 es 100 kozotti szamot general, hanem 0-99 koze esot
random class[ Szerkesztve ]
some men just wanna watch the world burn...
-
RedSign
tag
válasz Vasinger! #1723 üzenetére
Annyit azért akkor írjál át a programban, hogy 0 és 99 között "gondol" a program, mert egy 0-ás randomszámnál sohasem találja ki a felhasználó... ...vagy adj hozzá 1-et...
A az mind1, hogy 1 és 100 között vagy 0 és 99 között, a lényeg, hogy random legyen.
Console.WriteLine("Gondoltam egy számra 1-100 között, Találd ki!");
http://www.redsign.hu
-
Vasinger!
nagyúr
Hogyan tudom kiíratni az angol ABC nagybetűit?
Addig eljutottam, hogy ciklussal kell (vagynem) és elég a kisbetűket kikeresni, majd utólag To.Upper paranccsal nagybetűsíteni.
De maga az a parancs, hogy ABC betűit kiíratni az nem megy. -
j0k3r!
senior tag
válasz Vasinger! #1725 üzenetére
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace abc
{
class Program
{
static void Main(string[] args)
{
string betu = "";
for (int i = 65; i <= 90; i++)
{
betu = ((char)i).ToString();
Console.WriteLine(betu+"\n");
}
}
}
}a 65 meg 90 az ascii kodja az 'A' es 'Z' karakternek.
[ Szerkesztve ]
some men just wanna watch the world burn...
-
Jester01
veterán
Azért az egy elég csúnya példaprogram volt...
1. minek is bele annyi using?
2. minek beledrótozni az ascii kódot ha egyszer a fordító is tudja?
3. minek stringgé konvertálni, ha char-t is ki lehet írni?
4. minek a WriteLine hívásba még egy enter
5. ... és azt miért string összefűzéssel kell beletenni?
6. minek kell a betu változót inicializálni
7. ... és miért nem a ciklusmagban van?
8. miért nem lehet eleve char a ciklusváltozó?Az egy dolog ha valami működik, de lehetőség szerint ne ilyeneket tanítsunk már...
using System;
namespace abc
{
class Program
{
static void Main(string[] args)
{
for (char c = 'A'; c <= 'Z'; c++)
{
Console.Write(c);
}
Console.WriteLine();
}
}
}Jester
-
Vasinger!
nagyúr
Kéne megint egy kis help.
Van ez a program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Betűtalálgatós
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy betűre az angol ABC-ből, találd ki!");
int a;
char b;
bool logika = false;
Random rnd = new Random();
a = rnd.Next(26);
a = a + 96;
do
{
b = (char)Console.Read();
int intASC2 = System.Convert.ToInt32(b);
if (a < intASC2)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
if (a > intASC2)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
if (a == intASC2)
{
Console.WriteLine("Talált!");
logika = a == intASC2;
}
} while (!logika);
Console.ReadLine();
}
}
}Nah most ha ti is elindítjátok a programot látjátok, hogy nincs vele valami rendben. Kiír +2 sort teljesen feleslegesen. Miért? Egyszerűen nem jövök rá.
Ha a bool-t átírom true-ra akkor csak egyszer dobja ki, de egyből kis is lép. Mi a megoldás? -
szabodani
csendes tag
Van egy véletlen számokból tömböm amibe vannak számok,és azokat a számokat összeadtam hogy hány db van belőle.
És a kérdés hogy tudom azt megcsinálni hogy egy másik tömböt hozok létre mibe a számok db számát tárolom? -
ArchElf
addikt
válasz szabodani #1731 üzenetére
Mármint az azonos számokat számolod össze az első tömbből?
Az első "tömb": List<int> számok
A második tömb: Dictionary<int, int> számok_száma
List<int> számok = new List<int>();
Dictionary<int, int> számok_száma
/*
számok feltöltése jön ide
*/
foreach(int szám in számok)
{
if (számok_száma.ContainsKey(szám))
számok_száma[szám].Value += 1;
else
számok_száma.Add(szám, 1);
}AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
ArchElf
addikt
válasz Vasinger! #1730 üzenetére
Kicsit finomítva:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Betűtalálgatós
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Gondoltam egy betűre az angol ABC-ből, találd ki!");
char a;
char b;
Random rnd = new Random();
a = (char)(rnd.Next('z'-'a') + 'a');
do
{
b = Console.ReadKey(true).KeyChar;
if (a < b)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
else if (a > b)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
else //if (a == b)
{
Console.WriteLine("Talált!");
break;
}
}
Console.ReadLine();
}
}
}Randomban char műveleteket használtam, hogy "látszon", mi történik.
Read helyett használj ReadChar-t, az vár egy lenyomásra, a Read-egész mást csinál (emiatt volt három "válaszod").
nem kell int-té alakítani, char is összehasonlítható
sima if-ek helyett, használj if - else if - else if - ... - else logikát.
logika helyett elég egy break.AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
FehérHolló
veterán
válasz Vasinger! #1736 üzenetére
Ha mindenképp látni akarod a betűt, akkor Console.ReadLine().
Csak akkor kicsit finomítani kell, hogy 0 hossznál ne csináljon semmit és 1-nél hosszabbnál csak az első betűt szeresse a feldolgozáskor.string b_s;
b_s = Console.ReadLine();
if(b_s.Length > 0)
{
b = b_s[0];
if (a < b)
{
Console.WriteLine("A betű előrébb van az ABC-ben");
}
else if (a > b)
{
Console.WriteLine("A betű hátrább van az ABC-ben");
}
else //if (a == b)
{
Console.WriteLine("Talált!");
break;
}
}[ Szerkesztve ]
Skynet is real. It's called Google.
-
FehérHolló
veterán
válasz FehérHolló #1737 üzenetére
Úgy tűnik, hogy nem annyira okos, hogy magától tabuláljon.
A szerkesztőd majd tabulálja, ha bemásolod.Egyébként az kimaradt, hogy ezt a while(true) cikluson belülre kell írni, de remélem, egyértelmű volt.
[ Szerkesztve ]
Skynet is real. It's called Google.
-
ArchElf
addikt
válasz FehérHolló #1737 üzenetére
Console.ReadKey(false) is elég - mondjuk akkor nem árt utána egy Console.WriteLine(), hogy ne csússzon össze a szöveg a beírt betűvel.
Persze, ha enterrel szeretné bevinni a karaktert, akkor kell a ReadLine()Amúgy befejezéshez is elég egy Console.ReadKey(true) - és akkor tényleg bármilyen gomb lenyomására vár, nem csak egy enterrel tud kilépni.
AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
sagit
addikt
sziasztok
Tényállas: idei szemeszterben Visual Studio 2010-el programozunk az egyetemen, de nem sikerült órákat felvennem, és az egyetlen gyakorlat ami nekem jó betelt. Namár most a tanár megengedte hogy laptoppal beüldögéljek, de laptopom az nincs és rohadtul nincs is szükségem rá ( otthon asztali, egyébként teló)... tehát valami olcsó megoldás után néztem.
Találtam is egy fapados eee pc-t ami arra jó lenne hogy ezt a félévet kihúzzam vele.
De a felbontása csak 800*600, az lenne a kérdés hogy ezen a felbontáson elindul a program? A többi összetevő nem lényeg.. nemgáz ha lassú lesz.. csak fusson és be tudjak járni.
előre is köszi az infót
Philips 65OLED803 || iPhone 15 Pro Max || Macbook Air M1 ||
-
ArchElf
addikt
Nem lesz egy élmény a fejlesztés ilyen kis képernyőn (rendesen el kell rejteni minden felesleget), de azért használható. Mondjuk én laptopon az 1024*768-al is rendesen megszenvedek...
AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
bod101
aktív tag
Sziasztok!
Tudna valaki ötletet adni szoftverfejlesztés párhuzamos és elosztott környezetben téma alatt esszére?
Miről lehetne irni, forrást szerezni hozzá[ Szerkesztve ]
1-es golf, 2-es golf, ... (Bëlga)
-
bod101
aktív tag
-
tototos
őstag
Sziasztok!
Olyan feladatot kaptam, hogy can buson keresztül programozzak fel egy mikrovezérlőt. A can bus kártyához van .net támogatottság. Amikor bejön egy üzenet akkor a kártya ezt jelzi és veszi majd tovább tudja adni másik osztálynak. Az lenne a kérdésem hogy to hogy oldanátok meg hogy minden üzenetet megkapjon egy másik osztály és ott feldolgozza sorba őket? Van olyan hogy egymás után bejön 5 üzenet és ezeket kellene sorba feldolgozni. Próbálkoztam delegattel meg autoreseteventtel de nem sok sikerrel. Túl sűrűn jönnek az üzenetek hogy a programban rendes feldolgozás menjen.
Szóval kb vázolom mit kell megvalósítani.
osztály 1 elküld egy üzenetet majd vár hogy jöjjön rá válasz. A kártyának is van egy kezelő osztálya ami veszi az üzenetet egy szálban folyamatosan ezt berakja egy bufferba majd egy jelzést küld hogy üzenet érkezett. Ezt a jelzést kellene érzékelni és az eseményeket sorba állítani.class vector{
rxthread{
while(true){
wait for message{
message received,
message to buffer,
received message event set
}
}
}
}
class protocol{
function1{
send message
wait answer
answer received
message handle
wait for next message
}
} -
ArchElf
addikt
válasz tototos #1748 üzenetére
Biztos van olyan eseménye az osztálynak, hogy OnReceive vagy valami hasonló és azt kell lekezelned... valahogy így:
kezelo.OnReceive += ... (tabbal beadja automatikusan, és létre is hozza a metódust)AE
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
FehérHolló
veterán
válasz tototos #1748 üzenetére
Gondolom, ez egyértelmű, de több szálon kell megoldanod.
A CAN-t figyelő thread töltsön egy puffert, ami az üzenetek leíróját tartalmazza. Miután megjött X darab (ne egyesével), szóljon a feldolgozó szálnak egy AutoResetEvent típusú példányon keresztül. A feldolgozó szál pedig pakolja ki a puffert, és az üzenet típusától függően dolgozza fel azokat.
Ehhez ami kell MSDN-ről ([link]):
- Linkedlist ([link])
- Szálkezelés ([link]) + tutorialok.
- AutoResetEvent: [link]Konkrét megoldát nem akarok, és nem is tudok mondani, esetleg csak részleteket. Ha új vagy C#-ban és többszálas programozásban, ráadásul a CAN kártya is teljesen új számodra, akkor olyan 30-40 óra körülire saccolom a feladatot.
Ha esetleg a KB monogramra hallgató cégnek csinálod ezt, vagy egy Vector cég által gyártott CAN kártyával akadt dolgod, akkor kérlek vedd fel velem a kapcsolatot privátban!
ArchElf: OnReceive csak a WinFormson alapértelmezett tudtommal. Amilyen CAN wrapperekkel eddig találkoztam, mind ipari szemét volt a Microsoft elképzeléseihez képest.
[ Szerkesztve ]
Skynet is real. It's called Google.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- MacBook Pro 14 M3 Pro, Space Black, 18 GB RAM, 512 GB SSD Bontatlan
- Lenovo ThinkPad P70 Workstation, Mobil munkaállomás, 17" FULL HD IPS, Xeon E3-1505M V5 CPU, 32GB DDR
- -65% Dell Latitude 7310 2in1: i7 10610U,16GB,256GB,13.3" Touch 100%sRGB 350nit,WWAN eSIM,Win11
- Samsung Galaxy S22 - Fekete - Független - 2025.03.05-ig garancia - Tökéletes állapot
- Endorfy Fortis 5 ARGB CPU hűtő áron alul! (3 db)