- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Vivo X200 Pro - a kétszázát!
- Milyen okostelefont vegyek?
- iPhone topik
- Poco X5 Pro - ránézésre jó
- Szinte játékpénzért megvehető a Honor Play 10C
- Google Pixel topik
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Azonnali navigációs kérdések órája
- Mindenki Z Fold7-et akar
Hirdetés
Új hozzászólás Aktív témák
-
Gülredy
tag
Sziasztok!
Arra kérnék tőletek ötleteket, hogy c#-ban, hogyan oldanátok meg egy olyan programot, amely előállítana több száz olyan random számsorozatot 1-90-ig (tömbben vagy bármi másban), amelynek van legalább 5 eleme, és minden elem különböző egymástól (egy számsorozatban). De mondjuk az n-edik és k-adik számsorozatban lehet két, vagy több elem is ugyan olyan, arra nincs megkötés!
Például:
első számsorozat: 2,21,43,67,82
Második számsorozat: 4,7,43,36,90
...
így tovább míg nincs neki legalább száz vagy akár több ilyen sorozata.De most jönne a program lényege:
Ezekre a sorozatokra, generáljon EGY olyan sorozatot, amelynek elemei a legkevesebbszer vagy egyáltalán nem fordulnak elő, az előző sorozatokban. -
Gülredy
tag
válasz
ArchElf #3256 üzenetére
Köszönöm a gyors választ!
Azt hittem, bonyolultabb megoldása lesz!
Legalábbis ha jól értelmezem, úgy működik, hogy a bekért string-et a bemeneti StringBuilder-be rakom, majd for ciklussal a szöveg hossza-tól az elejéig végigmegyek, majd a ciklusban generálok egy random számot, amely szám, a szöveg-edik karakterének felel meg, és aminek az értékét hozzáfűzi a kimeneti StringBuilder-hez, közben a bemenetiből pedig kivonja?Annyi kérdésem lenne, hogy a for ciklust miért a végéről az elejére megy miért nem fordítva? (úgy látom fordítva system out of range exeption-t kap de miért?)
-
Gülredy
tag
Sziasztok!
Volna egy feladatom, amire van is megoldásom, de szerintem túl van bonyolítva, és megoldható lenne könnyebben(rövidebben) is. Erre kérném a segítségeteket:A feladat:
"Írjon olyan függvényt vagy metódust, amely egy karakterláncban vagy sztringben
véletlenszerűen összekeveri a karaktereket (véletlenszám–generátor használható)!"
Kikötés, hogy "Tilos olyan függvényt/metódust használni, mely közvetlenül a megoldást adja!"Szóval van nekem 3 féle programnyelvben is megoldás, egy c, java, meg c#-os is.
A c#-osat bemásolom ide, mert abban érdekelne egy rövidebb megoldás, ha ti tudtok rá egyet. Személy szerint egy StringBuilder + Random szám generátorban gondolkoztam, de igazából StringBuilderrel még nem sokat foglalkoztam így nem tudom hogy is nézzen ki a megoldás.class Program
{
static void keveres(string szoveg)
{
Random szam = new Random();
int hossz= szoveg.Length;
int[] szamok = new int[hossz];
bool voltmar;for (int i = 0; i < hossz; i++)
{
do{
voltmar = false;
szamok = szam.Next(0,hossz);
for (int j = 0; j < i; j++)
{
if (szamok(i)==szamok[j])
{
voltmar=true;
}
}
} while (voltmar==true);
}
char[] kevert = new char[hossz];
for (int i = 0; i < hossz; i++)
{
kevert(i)=szoveg[szamok(i)];
}
for (int i = 0; i < hossz; i++)
{
Console.Write(kevert(i));
}}
static void Main(string[] args)
{
Console.WriteLine( "Adjon meg egy karakterláncot majd véletlenszerűen összekeverve megkapja:");
string szo = Console.ReadLine();
keveres(szo);
Console.ReadKey();
}Létezik rá egy rövidebb megoldás amely ugyan ezt a funkciót elvégzi?
Előre is köszönöm a válaszokat!
-
Gülredy
tag
ubid kérdéseire a válaszok engem is érdekelnének.
ArchElf:
"Amúgy mivel a kód többi része nem is látható, nem is tudom elképzelni, hogy volt többször lefuttatható a switch rész."goto címke paranncsal
Tehát ha azt választja a felhasználó hogy igen újra akar választani a termékek közül akkor arra van egy switch i vagy n elágazás és ha i-t nyom akkor goto címkét használok.A hibát egyébként megoldottam, tényleg rossz helyen volt a változó deklarálva, csak nem vettem észre. Pedig szinte mindig szoktam használni a debugot de ez esetben ez kimaradt a használata.
Még lenn még egy kérdésem, ha már ezt így megoldottuk:
int valasztas;
valasztas = int.Parse(Console.ReadLine());Itt kérem be azt a számot ami a termékek száma. Magyarul amit választani akarok.
Az lenne kérdésem, hogy itt szükséges parse-olni vagy megoldhatnám parse nélkül?
A fontosabb dolog amire a választ kérném, mivel nem használtam még sok kivételkezelést, így nem igazán vagyok otthonos benne.
Szóval a fenti int.Parse-os sornál szeretném lekezelni a kivételt mivel ha beírom neki hogy 100 az oké arra van egy if utasítás de ha beírok neki mondjuk 50 db 9est akkor dob egy overflow exception-t. Ebből azt akarnám kihozni hogy ha ilyen nagy számot ír be akkor ne exceptiont dobjon hanem csak egy üzenetet hogy "túl nagy a megadott szám".Mindenképp kivételkezeléssel szeretném megoldani hogy ennek a használatával is jobban tisztában legyek!
Ja és köszönöm mindenkinek aki eddig válaszolt!!
-
Gülredy
tag
Sziasztok!
Nem túl régóta foglalkozom a c#-al így gyakorlásképp kitaláltam magamnak egy feladatot amit konzolon akarok kivitelezni.
Egy nagyon egyszerű bevásárló program lenne, van 4 darab termék amit a kosárba lehet pakolni, minden kiválasztás után lehetőségünk van új termék hozzáadásához, és dönthetünk arról hogy befejezzük-e a vásárlást vagy sem.
Röviden ennyi, de amivel gondom van az a következő:
A termékek előtt egy szám áll (1-4) és egy switch case szerkezettel adom meg hogy mit választok. A probléma az, hogy készítettem egy kosár nevű string-et, amibe beírja a választott terméket, ez működik is egy terméknél, de ha választok egy másik terméket is, akkor az nem hozzáadja, hanem felülírja az előzőt.Itt a kód részlet, ha ez nem elég bemásolhatom az egész kódot is de hosszú lenne:
string kosar= "Termékekek: ";
switch (valasztas)
{
case 1: kosar += "Egér, ";
break;
case 2: kosar += "Hangfal, ";
break;
case 3: kosar += "Billentyűzet, ";
break;
case 4: kosar += "Monitor, ";
break;}
A "valasztas" változóba kérem be a számot 1-4 ig és azt szeretném, hogy a kosár nevű stringhez minden egyes alkalommal fűzze hozzá az aktuálisan választott elemet, de csak felülírja a már kiválasztott elemet.
Nem tudom ezt meg lehet-e oldani így switch case-ben vagy sem, de ha igen akkor megköszönnék egy kódrészletet vagy magyarázatot!
-
Gülredy
tag
Tehát ha mondjuk nem a második hanem az első vagy a harmadik bitjére lennék kíváncsi azt hogyan íratnám ki?
-
Gülredy
tag
Tehát akkor ha bináris alakban nézzük, megadok az x-nek mondjuk a 37-et, (100101) elosztom kettővel 18 (10010) itt kiesett a legszélső bitje, ahogy mondtad majd a 18-nak a maradékos osztásának értéke 0 lesz azaz rendes osztásban 9 (1001) és azért 0 a megoldás mert 9 maradék nélkül megvan 2* a 18-ban?
-
Gülredy
tag
Sziasztok!
Egy kis magyarázat kellene egy meglévő programra.
Szóval a feladat a következő volt:
Írjon olyan függvényt vagy metódust, amely egy természetes számról eldönti, hogy a kettes számrendszerbeli felírásában a jobbról második bitje 1 vagy 0 (ne alakítsa át sztringgé/karaktertömbbé)Van is megoldásom a feladatra és 100%ig jó is, de nem értem hogy kapom vissza pont a második bitjét így.
A megoldás
static int masodikbit(int x);
{
x/=2;
return x%2;
}Az én logikám szerint ha az 'x'-nek megadom mondjuk hogy 110, azt osztom 2-vel akkor az 55, majd a maradékos osztásnál pedig 27,5 amiből a 0,5 a maradék. Szóval az lenne az értéke hogy 0,5 azaz 0 mert int típust kapunk vissza..
Mégis 1 lesz az eredmény, és pont 1 a jobbról második bitje is.
Előre is köszönöm a válaszokat!
-
Gülredy
tag
Na és a TryParse-t hogy használjam jelen esetbe mert ha csak átírom a Parse-t TryParse-re akkor azt mondja hogy:
No overload for method 'TryParse' takes 1 arguments
Tehát kell neki egy argumentum de ha beírom a zárójelbe az x-et akkor sem jó neki. PL így:
x = int.TryParse(Console.ReadLine(x));Még nem használtam ezt a tryparse-t és a könyv amiből tanulok ott is csak enum típusoknál használják!
-
Gülredy
tag
válasz
WonderCSabo #2462 üzenetére
Tehát akkor, nekem kellene mondjuk egy for ciklus, amiben megvizsgálom, hogy az adott számnak hány osztója van, és ha az csak 2 akkor kiírom, hogy prím, ha több akkor nem prím?
-
Gülredy
tag
Sziasztok!
Egy nagyon egyszerű program írásába kezdtem bele. Egy olyan programot írok ami kiírja egy bekért számról hogy prím-e vagy sem. (kezdő vagyok)
A gond csak az hogy nem tudom milyen kikötést adhatnék meg. Mert amit én megadtam az minden számra igaz, így a program szerint minden szám prím amit csak beírok. (x % x == 1 && x%1 == x)
Mert végül is ez a prím szám, hogy ha önmagával osztom akkor az 1, ha 1 el osztom akkor önmaga, de azt nem tudom, hogy azt hogy adthatnám meg hogy mással ne legyen osztható csak ezzel a két kikötéssel és akkor írja ki hogy prím. Valószínűleg nem jó irányból közelítem meg ezért kérném a segítségeteket, mert a neten csak olyat találok ami kiír egy megadott számú prímszámot.Így néz ki a program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace primszam_e
{
class Program
{
static void Main(string[] args)
{
int x;
Console.WriteLine("Adjon meg egy természetes számot:");
x=int.Parse(Console.ReadLine());
if (x==1 || x==0)
{
Console.WriteLine("Az 1 és a 0 nem prím szám");
}
else if (x % x == 1 && x%1 == x)
{
Console.WriteLine("Prím szám");
}
else
{
Console.WriteLine("nem prím szám!");
}
Console.ReadKey();
}
}
} -
Gülredy
tag
válasz
Jester01 #2412 üzenetére
Volt egy feladat előtte de azzal sem mentem többre (más programozási feladat nem volt)
Itt a feltételezett előzmény:
A program inputja egyetlenegy kezdőállapot, outputja pedig a 10 lépés során az ágens által választott akciók, és mellé a világ aktuális állapotainak leírása. Pl.
Input: pozíció:A A: koszos B:tiszta
Output:
1 -- akció:szív pozíció:A A:tiszta B:tiszta
2 -- akció:jobbra pozícióA:tiszta B:tiszta akció:
3 -- akció:balra pozíció:A A:tiszta B:tiszta
4 -- ...........Tehát az lenne a lényege, hogy egy porszívó robotot kell készíteni, amely először bekér egy kezdőállapotot , majd a 10. lépés után kiírja hogy milyen lépést választott(?), és ha jól veszem ki akkor mind a 10et kiírja.
Ennyi volt az előzménye.Elég kezdő vagyok c#-ban így valószínűleg csak ezért okoz gondot ez, bár a tanár magyarázása is elég össze vissza. Tudnál segíteni hogy induljak el?
-
Gülredy
tag
Sziasztok, volna egy igen érdekes kérdésem.
Kiadtak egy feladatot (szorgalmi) amit plussz pontért lehetne megcsinálni. A gond csak az hogy nem igazán értem, hogy hogy is kezdjek neki, részben a szöveg érthetetlenségén, részben pedig bizonyára a saját tudatlanságom végett.
A feladat ez lenne:Fejlettebb porszívó-ágens:
Továbbra is két szoba van, de a szobák a 100 egységnyi élettartam alatt
véletlenszerűen bekoszolódnak, minden időpillanatban bármelyik szoba 1:100
valószínűséggel. teljesítménymérték: minden 10-ik időpillanatban a tiszta szobáért +2p, a koszosért -4p, minden mozgás -1p, minden szívás -2p.
Adjon egy ágensfüggvényt papíron és implementálja is programban. 1000-szer futtassa és közölje outputban, hogy melyik futásnál mennyi pontot ért el. Egy futást úgy dokumentáljon, ahogy az előző feladatban, csak tegyen a bekoszolódott szoba mellé egy felkiáltójelet, pl ha. a 72. lépésben bekoszolódott a B szoba:72 -- pozíció:A A:tiszta B:koszos!
Le tudná valaki írni hogy hogyan is programozná ezt meg c#-ban?
Nem a 100%os megoldást várom bár azért sem haragudnék meg, hanem olyanokat hogy ezt meg ezt felvenném változónak, kellene hozzá egy for ciklus ami vizsgálná ezt meg ezt ...
Például ezt a 1:100-hoz valószínűségű dolgot se tudom, hogy lehetne kivtelezni, mert jelenleg csak ezt ismerem Random r = newRandom(); number = r.Next(100); de ez csak 0-100 ig kiválaszt egy random számot az meg ide nem lenne jó.
Valakinek valami ötlete az egészre? -
Gülredy
tag
Sziasztok!
Most tanulom a c#-ot így lenne egy alapvető kérdésem!
A {0} mit jelent? Az első elemet? Vagy hogy van ez? Beírok két példakódot (main-től) amiben találkozni lehet vele, leírnátok hogy a két esetben mit csinál a {0} ??Első:
Itt a Console.Write("{0}",(char)1); sor most a karaktertáblázatból kiszedi az első karaktert nem? De mire van a {0}? Mert jelen esetben ha kitörlöm is ugyan úgy kiírja a megadott karaktereket!int x, y;
for (x = 0; x < 10; x++,
System.Console.Write("\n"))
for (y = 0; y < 10; y++)
Console.Write("{0} ", (char)1);
Console.ReadKey();Második:
Itt meg pont ellenkezőleg van, ha kitörlöm a {0}-át, akkor nem ír ki semmit, hiába ott van a ,circum meg a ,areaint radius = 4;
const double PI = 3.14159;
double circum, area;area = PI * radius * radius;
circum = 2 * PI * radius;Console.WriteLine(" Radius = {0}, PI={1}",radius,PI);
Console.WriteLine("The area is {0}", area);
Console.WriteLine("The circum is {0}", circum);
Console.ReadKey();Sehol sem találtam rá egy értelmes választ, szóval várom a válaszokat!
Előre is köszi!!
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- sziku69: Szólánc.
- Alkoholista nevelde
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Vivo X200 Pro - a kétszázát!
- Battlefield 6
- Milyen okostelefont vegyek?
- OLED monitor topic
- Sorozatok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- További aktív témák...
- Microsoft Surface Pro 9 i5-1245U 16GB 512GB 1év garancia
- HIBÁTLAN iPhone 13 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3104
- AKCIÓ! Apple iPad Pro 13 2024 M4 512GB Cellular tablet garanciával hibátlan működéssel
- BESZÁMÍTÁS! ASRock B550M R5 5600 32GB DDR4 512GB SSD RTX 4060 TI 16GB Zalman N5 Chieftec 700W
- Új monitor állvány - csak össze lett szerelve
Állásajánlatok
Cég: FOTC
Város: Budapest