Hirdetés
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- Brogyi: CTEK akkumulátor töltő és másolatai
- weiss: Lakodalom van a mi utcánkban...
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- GoodSpeed: Kell-e manapság egérpad vagy sem?
-
LOGOUT

Új hozzászólás Aktív témák
-
bandi0000
nagyúr
Elég béna példakód, de nagyjából ez a logika:
Kiinduló a main metódus, observableList minden egyes elemére megakarom hívni a doSometing() metódust, ami hívja a következőt és következőt
Arra akarok felíratkozni, amikor az összes elemen végrehajtotta az összes metódust
Sajnos az eredeti kódot nem tudom berakni, igazából ott annyi a különbség, hogy a 3. metódus tér vissza valami eredménnyel, és az lesz a fenti 2 metódusnak is a visszatérési értéke. Itt most ugye ez el van rontva
fun main(){
val list = listOf(
"1",
"2",
"3"
)
val observableList = Observable.fromIterable(list)
}
fun doSomething(input: String) =
Single.create<Int> {
doSomething2(input).map {
Log.d("1",it.toString())
}
}
fun doSomething2(input: String) =
Single.create<Boolean>{
doSomething3(input).map {
Log.d("1",it.toString())
}
}
fun doSomething3(input: String) =
Single.create<String> {
"FinalResult"
} -
coco2
őstag
Nem tudom, mit látsz benne félreinformálásnak. Kisebb csapatokban például aligha vannak juniorok, mert pici cégeknél első naptól mélyvízbe dobnak, és ha nem tudsz promptra úszni, akkor szia. A junior fogalma ott azért sem létezik. Nagyobb csapatokban meg megnézném melyik az a cég, amelyik például tervezési kérdéseket juniorokra merne bízni. De ha te azt látod magad körül, esetleg a cég nevét elkérném privát üzenetben.
-
cucka
addikt
Na hát akkor a kedvenc interjú-témámon te is elvéreznél
. Szóval a komplexitás nem azt jelenti, hogy te épp mit gondolsz, hanem elég jól definiált fogalomhalmaz - érthető, a nagy komplexitás termelékenység-csökkenést okoz, a fejlesztők pedig nagyon drágák.Szóval mivel épp ráérek, némi támpont, hogy pongyolán megfogalmazva. (nem mindenre tudok magyar kifejezést)
essential complexity - az a komplexitás, ami nélkülözhetetlen. más szóval a megrendelő üzleti igényei. Ha a webshop 16 féle fizetést támogat, akkor az annyi.
accidental complexity - minden, ami nem essential.
ciklomatikus komplexitás - számolt érték, nagyjából a kód futás közben bejárható útvonalainak a száma. Tesztelhetőség szempontjából fontos.
kognitív komplexitás - számolt érték, azt akarja reprezentálni, hogy mennyire nehezen érthető a kód egy ember számára.
loc - ez a függvény sorainak száma, amiről beszéltél. Ha túl magas, az gyanús.
space and time - ez van valahogy magyarul is, de nem ugrik be. ez az amit az iskolában tanítanak, n-es, négyzetes, exponenciális, stb.És ezeken kívül még van a szubjektív komplexitás érzés. Van olyan kód, amit úgy olvasol, mint az újságot, és van olyan, amivel szenvedsz.
Hiába jók a metrikák a Sonárban, ha szembejön egy ProductFactoryProviderManager nevű osztály. Ilyenek még - rossz nevezéktan, inkonzisztens struktúrák, nevek, stb. -
Ez butasag. A komplex koddal akkor van baj, ha komplexebb, mint amire szukseg van. Komplex problemara komplex lesz a megoldas is, jo esellyel.
Eleve ugy kene review-zni, hogy az atnezendo kodrol el lehessen donteni, hogy valojaban megoldja-e a problemat, vagy sem. Ennel fogva atlagos/normalis esetben 1 user story-hoz 1 review tartozik, ahol az atnezendo kod tartalmazza 1) az implementaciot 2) a teszteket, amik bizonyitjak, hogy az implementacio tenyleg megvalositja az user story-t. A review meg ugy megy, hogy
- atnezed, h milyen tesztek vannak, azok megfelelnek-e az user story-nak
- ha a tesztek nem fedik le az user story-t, akkor veget is er a review
- utana megnezzuk, hogy a design megfelelo-e (skalazodik-e, stb.)
- vegul coding style, stb.Szerintem ez egy jol mukodo megkozelites.
> Amennyire látom, a fejlődés pont abba az irányba megy, hogy minél kevésbé legyen komplex a kód.
Nem. Ez csak egy inga, ami ide-oda leng.
Valojaban az van, hogy a komplexitast csokkenteni kell, de ez alapvetoen az architekturanal erdekes, hiszen egy elbonyolitott 100 soros fuggvenyt kb. barki ki tud takaritani, az nem kihivas. Nem szeretjuk a tulbonyolitott fuggvenyeket, de ha szembejon egy, akkor max. refaktoraljuk. Architekturat refaktoralni sajnos legtobbszor lehetetlen (mert az uzleti oldal nem viseli el a koltseget).
Szoval az van, hogy ha egy problema komplex megoldast igenyel, akkor az a komplexitas valahol meglesz. Vagy a fuggvenyek lesznek komplexek (C++/Haskell/Clojure hackerek, szevasztok!), vagy a kepernyodon levo kod trivialisan olvashato, de 3000 osztaly, amik ugy vannak osszehuzalozva, hogy azon kell atragnod magad (Enterprise Java/Spring hekkerek, szevasztok!).
Ergo a lenyeg sose az, szerintem, hogy szep fasza fuggvenyeink legyenek, hanem hogy a szoftver koncepcionalisan a leheto legelegansabban legyen kitalalva.
Mondok par peldat: peldaul az LMAX elegans. Kitalaltak, h hogy lehet nagy sebesseggel streaming adatokat feldolgozni, szep. Tokmindegy, hogy vannak a fuggvenyek lekodolva, onnan, hogy erted a nagy kepet, mar ki lehet silabizalni. A Datomic elegans. Rich Hickey ravilagitott, hogy az objektumorientalt vilag oriasi tevedese, hogy osszemossa az identitast az ertekkel, es tervezett egy adatbazist, ahol ez szetvalik -- gyonyoru.
> szerintem a programozás lényege a legegyszerűbb működő megoldás
Ebben majdnem igazad van.
1) fontos, hogy a legegyszerubb nem egyenlo azzal, amit az adott pillanatban legkonnyebb osszetakolni -- nagyon ajanlom: https://github.com/matthiasn/talk-transcripts/blob/master/Hickey_Rich/SimpleMadeEasy.md
2) sokszor az elvarasoknak resze, hogy reagalni tudjunk a jovobeli valtoztatasokra is -- szoval valami egyensuly kell a YAGNI meg az overengineering kozott -
pmonitor
aktív tag
>Felesleges személyeskedésbe kezdtél, amit fejezz be.
Utolsó hozzászólásom:
#17607 pmonitor dabadab #17604 Új Válasz 2022-07-20 15:38:24Azóta nem szóltam hozzá. A Te hozzászólásod:
#17608 mobal pmonitor #17607 Új Válasz 2022-07-30 19:18:21Végül is csak 10 nappal később szólítottál fel, hogy fejezzem be...
Objektivitás az van... Főleg időben... De mind1. Befejeztem ezt a témát(legalábbis itt...).
-
coco2
őstag
Pedig a telepítők kedvenc adattárolási célpontja registry kulcsokba rakni konfig adatokat, amiket a lúzer install közben beállít, legyenek azok működés szabályozó paraméterek / korlátok / de akár mappák elérési útjai a helyi drive-okon.
Linux alatt ofc nem történik olyan. Nem mintha a Win-es fejlesztési gyakorlat valaha figyelt volna a Linux-kompatibilitásra.
-
coco2
őstag
>vagy alkalmatlan vagy rá (no offense..
None taken. Minden játéknak több oldala van. Ha valaki nyerni akar az egyiken, valaki másnak veszítenie kell hozzá a másikon. Én elég gyakran a vesztesek oldalán vagyok. Én legalább megbírom. Amilyen harmatos népek érkeznek ma az informatikába, ők valószínűleg alkalmatlanok lennének rá. -
cucka
addikt
Igen, az teljesen életszerű, hogy hálózat nélkül futtatod a javascript alkalmazásodat.
#17296sztanozs
Az ökoszisztémát érintő problémák általában fejlesztés közben jönnek elő, pl. 1 napig turkálod, hogy az npm install most miért dob hibát és korábban miért volt jó. És ezt az 1 napot valaki neked kifizeti, aki ha tudná, nem örülne. A maradék probléma meg leginkább élesben, pl. memory leak-ek.UAT arra van, hogy az ügyfél átvegye és jóváhagyja azt, amit fejlesztettél. Ha itt derülnek ki hibák, akkor valamit rosszul csináltok.
-
pmonitor
aktív tag
>A fórumról több kolléga is olyan dolgokan dolgozik / dolgozott mint valamilyen nagy magyar vállalat webshopja vagy valamelyik mobilbank applikáció és hozzá tartozó backend.
És ezt miért kell titkolni? Ők pl. titkolják, hogy hol dolgoznak?
Horpácsi Illés: Senior szoftvermérnök Evosoft
Deák Gergely: Senior developer Accenture
Romhányi Ármin: Full Stack developer En-Co Software Zrt.
Ruzsinszki Gábor: Software architect EvosoftŐk vajon miért is nem titkolják, hogy hol dolgoznak? Sztem. aki olyan helyen dolgozik/dolgozott, azt nyugodtan felvállalhatnák itt a fórumon is. Vagy vaj van a fülük mögött(rossz úton járnak), hogy nem merik megtenni? Vagy, vagy, vagy...
Én Rád teljesen másképp nézek, mint a többiekre, mióta felvállaltad magad. Mondjuk attól még nagy szakadék van a felfogásunk között, de ennek ellenére is... Mert tudom, hogy van önálló munkád, nem csak a levegőbe beszélsz(illetve írsz). Egyrészt ezért is hallgatok Rád, hogy ne kezdjünk új loopba. Na meg azért is, mert én a szubjektív véleményem le tudom írni a saját oldalamon. Bár ezt meg olyan "az emberek háta mögötti dolognak érzem", de ha szemtől-szembe nem megy, akkor más nem marad... -
pmonitor
aktív tag
-
pmonitor
aktív tag
Megkövetlek. És nem fikázlak.
Ugyanakkor csak legalább ennyit "várnék" el az olyanoktól, aki programozónak állítja be magát. Ugye, hogy nem is volt olyan nehéz ezt megtenni?#16912:
>milyen módon minősíted azt a sok mérnököt aki ezzel foglalkozikMár ha ugyebár mérnökök(ráadásul így többes számban).
-
pmonitor
aktív tag
>Nem vagy szakmabeli és ami itt folyik demagóg
Neked pl. hol vannak a referenciáid? Mert nem vettem észre, hogy vmit. is közzé tettél volna. Én legalább valamiket letettem az asztalra. Hogy értékelhető-e, vagy nem, ahhoz nem tudok hozzászólni, de sokkal több dolgot tettem le az asztalra. Az oldalam gyakorlatilag a "Cutter" nevezetű programom végett hoztam létre. A többi csak úgy jött köré. Elsősorban régebbi programok vannak ott(amiket made in hirtelen csinosítottam). Pont az a bajom, hogy itt bárki mondhatja magát szakmabelinek, anélkül, hogy bármit is letett volna az asztalra(akár értékelhetőt, akár nem). Egyébként, ahogy látom, a programjaim töltögetik "lefelé", és nagyon bízom benne, hogy valaki(k)nek megmozgatják a szürkeállományát, és valami eszükbe jut a programjaim nézegetése közben. Valami ihletet adok Nekik. Ezért hálás köszönetem, azoknak, akik letöltötték/letöltik a programjaimat. Őket légyszíves ne s...d már le, ha megkérhetlek.
-
A kess logikailag nem jó itt, mert nem tudod elkülöníteni az ügyfelek olyan csoportját, amelyet nagy valószínűséggel fogsz lekérdezni. Innentől pedig az van, hogy az egész DB-t memóriában kéne tartanod. Persze ez sem lehetetlen, de nyilván te is tudod, hogy nem tipikus.
#16832nevemfel
Majd leírom, hogy mire jutottak az architekt urak, én csak a partvonalról szemlélem a dolgokat. -
pmonitor
aktív tag
Itt sztanozs nagyon jól összefoglalta a programozók általános álláspontját. Amivel nem tudok egyetérteni. Hosszabb futásidő -> több energiafogyasztás. Főleg (alkalmazás/web)szerveren.
Valóban nem tudom a leggyorsabb kódomat, hogy jól is és hibamentesen is működik. Kovisoft(aki egyébként az egyetlen konstruktív/kritikus hozzászóló volt - ezúton is köszönöm Neki) sem tudta bizonyítani az ellenkezőjét. De tettem konkrét lépést a bizonyítás felé. 200000000000-ig biztosan detektál minden túlcsordulást -> ez azért nem kis dolog. De tegyük fel, hogy ez az algó nem működik. Ez az algó biztosan működik(hiszen ha egy számot szorzunk, akkor az eredményt visszaosztva ugyanazt a számot kell visszakapnunk), és ez is gyorsabb a beépített függvénynél. Legalábbis C-ben. Mert mint írtam, a "rajzom" még nincs teljesen kész(pl. ezt C#-ban még nem próbáltam). De kovisoft valós hibákat/bug-okat írt(a legutolsó hsz-e kivételével), Veled ellentétben. Én is "rizsázom", de ezzel párhuzamosan azért valamit próbálok megcsinálni is.
Egyébként még a programozók sem értenek egyet még a stringet int-re konvertáló függvény szignatúrájában sem. C-ben ha túlcsordulás van, akkor az int-et INT_MIN/INT_MAX értékére állítja be(vagy meghatározatlan értéket ad vissza). C#-ban 0-t ír bele, és false-ot ad vissza. Sztem ez utóbbi jobb, mert a 0-nak "általában" invalid értelme van(darabszám/pénz/akármicsoda esetén). De mondjuk a programozóknak kellene "dűlőre" jutni ilyen témákban.@martonx, @Silεncε: A fejlesztők úgyis elkergetnének, hiszen a programozókat nem érdekli a sebesség, és a méret/helypazarlás(lásd az elején belinkelt sztanozs hozzászólást -- is).
-
pmonitor
aktív tag
De az itoa(...) esetén sikerült ~ harmadára csökkentenem a futási időt(még úgy is, hogy + funkciót tettem bele).
Mondjuk tény, hogy az atoi(..)-t többször kell használni, mint az itoa(..)-t. Ezért érthető, hogy erre sokkal jobban odafigyeltek a fejlesztők. De jobb kódot biztos, hogy nem egyszerű csinálni. Csak ki tudja, hogy az STL melyikből tartalmaz többet: olyan lassúból, mint az itoa(), vagy olyan gyorsból, mint az atoi()? Ezt ki tudja megmondani? Arról nem is beszélve, hogy én csak win-en VS-ben teszteltem ezt a 2 függvényt is.
-
pmonitor
aktív tag
Igaz.
De azért implementálni tudtam az ugyanakkora sebességet, mint az atoi(...). A kovisoft által felsorolt hibák:
1.: általánosságban nem csökkentik a sebességét a kódomnak
2.: a kódom végén található if-ekkel, és az azokban lévő tartalom módosításával orvosolhatók. Ezek csak igen speciális esetekben lassítják a kódom. INT_MIN, kisebb, mint INT_MIN, INT_MAX, nagyobb, mint INT_MAX. Tehát nem sok ilyen eset van.De aki megérti a működési elvet, Ő már tudja, hogy miért szoktam mondani, hogy "81236" == "000081236"-al, ha számokról beszélünk.
-
martonx
veterán
Azért ez így erős. A Mac BSD-re épül, ami meg unix-ra, amire a Linux is. Szóval igen, a Mac nagyon nem egy linux, de valahogy nekem is ugyanaz volt az érzésem, mint @opr-nek, hogy de végülis ez egy linux, mert rögtön mindenhez terminalt kellett nyitni, csak épp ügyesebb, mint egy linux, mert annyi mindenhez mégse kell terminal-ban bohóckodni a google legmélyebb bugyraiból előszedve parancsokat.
De ahogy fentebb jeleztem, ez már nagyon flame kategória, szóval én nem mennék bele komolyabban, a többieknek is ezt tanácsolom, hogy hagyjuk a kinek milyen OS-t témát a programozás topikban. -
Ispy
nagyúr
Honnan tudod, hogy le akarja fedni az összes gépet? Irodai környezetben ma Mo-on 99% win fut. Meg hát az is lehet, hogy van már neki meglévő rendszere, ügyfelei, nem azt írta, hogy most kezdene wpf-el. Szóval ennek a kötekedésnek jelenleg kb. semmi értelme. A php is halott, temetik már nagyon rég, csakhát mégse. Szóval nagyon veszélyes ilyen sarkos dolgokat kijelenteni.

Nekünk van olyan ügyfelünk, akit még mindig nem tudtunk leszedni ms access+sql-ről, mert nem hajlandó váltani (költeni rá), inkább szenvednek a mai napig ezzel a szarral. Ezért a kollégámnak a mai napig fenn van az access a gépén (amíg meg nem unjuk a supportot).
-
pmonitor
aktív tag
Az 1D vágás programomon gondolkodom/gondolkodtam, hogy vagy Excel, vagy .csv formátumba lehessen exportálni. Nem jutottam egyről a kettőre ezzel kapcsolatban. Követeljem meg a felhasználóktól, hogy legyen a gépükön office? Vagy a programom mérete növekedjen? A .csv file esetén sem mindegy, hogy angol, vagy magyar verzió van-e. Szóval nem 1szerű a döntés. Sztem. marad úgy, ahogy van, és a felhasználó dönti el, hogy milyen programba másolja be.
-
martonx
veterán
A probléma nem elsősorban a PHP volt. Nyilván PHP - vél is simán le lehetett volna menni 5s alá, ha nem is 40-80ms-re.
Én mindenféle script nyelvet szeretek. Tök gyorsan össze lehet bennük dobni egyszerűbb cuccokat.
Viszont az az általános tapasztalatom, hogy sok script junkie nem véletlenül marad a script nyelveknél, hanem a képességeik a gyorsan összedobjunk valamit, valami egyszerű nyelven szinten meg is áll.
Ez nem a script nyelvek hibája, és vannak persze kivételek. -
Ispy
nagyúr
Nekem nem volt vele bajom, igaz csak faék használtam 1 hónapig, de végül a serverless miatt elmentük js-re, meg akkor már az androidon is flutter, most meg már szólt a főnököm, hogy megyünk web vonalra erősen, ott meg react. C-ről nem volt szó.

Nagyon izgi, amikor az ember párhuzamosan programozik SQL-ben, JS-ben, VB.NET-ben, backend, frontend, majd most jön a react, a mobilt szerencsére nem nekem kell csinálni.
Laravell az nekünk nem jött be, pedig azzal is küzdöttünk.
-
pmonitor
aktív tag
Igen, igazad van. Nem is arra gondoltam, hogy az összes funkcióját megcsinálom(főleg egyedül). Csak ez nagyon feltűnt próba nélkül is, hogy feleslegesen írja ki a mappákat. És pont témába vágott. Ezért hoztam fel. Mondjuk hozzá kell tenni, hogy a teszt programom bár C#-ban készült, de win api függvényeket használ(FindFirstfile-FindNextFile a szíve neki). És ha egy win api függvény működik C#-ban, akkor az sebességben alig marad el pl. a C/C++-tól(legalábbis nagy mértékben biztos, hogy nem).
Szóval csak izgatott a téma. Ezért is készítettem hirtelen felindulásból egy teszt programot.

-
-
De az ilyen tapasztalat az invalid argument, lásd a kacsa és a víz esete. A triggerek ellen szól persze rengeteg érv, de sok másik meg mellettük van. Tudni kell, hogy mire való a trigger, s arra használni, ésszel, ennyi a követelmény.
Azért írtam, hogy "szerintem" meg "nem kell foglalkoznia", nem pedig azt, hogy "ne foglalkozzon".
Mindenki úgy írja meg, ahogy tudja, de azt ne mondja nekem senki, hogy a triggert nem szabad használni. -
Ezzel egyetértek. Magukkal triggerekkel nincs baj, az emberekkel van a probléma, akik rosszul használják.

Na, de hogy konkrét példák is legyenek, nálam ilyesmik fordulhatnak elő triggerekben (row-level):
BEFORE TRIGGER:
- automatikus mezők kitöltése (ahol a default nem használható)
- integritás ellenőrzés (ahol a check nem használható)
- tiltott operációkra exception (pl egy hsz időpontja nem módosítható)AFTER TRIGGER:
- cache táblák automatikus kitöltése
- kapcsolódó táblák cache mezőinek kitöltése (pl hszszámláló++)
- megváltozott adat korábbi értékének archiválása másik táblábaPersze valaki nem ért a PL/SQL-hez akkor ne így csinálja, s ezeknél magasabb szintű logikát tényleg nem szabad triggerekbe tenni, mert úgy láthatatlan, s abból csak baj lesz.
-
fordfairlane
veterán
Nem akarom bárkinek is a szakértelmét lekicsinyelni, sőt, de a tapasztalatom az, hogy tárolt eljárásokkal dolgozni horror. Egy szót sem szólok a kódbázis hordozhatóságáról, az ezen a szinten elég alacsony lehet, csak már maga a munka menete (pl. debuggolás) elég meghatározó, negatív élmény volt számomra.
-
Még ha tegyük fel meg is van oldva tökéletesen, sebességben attól még nem lesz nyerő. Egyébként itt van row-level vs statement-level megkülönböztetés? Honnan tudja, hogy mely row-okra kell meghívni a "triggert", stb.? Ez mind overhead. Persze tudom, a hardver olcsóbb, mint a programozó.

Btw, én nem azt mondom, hogy SQL-be kell, hanem csak bizonyos részét az üzleti logikának célszerű a DB-be pakolni, mert jóval hatékonyabb, mindent használjunk arra amire való, ésszel.
-
Pl itt ha egy júzer ír / töröl egy hsz-t, akkor a téma és fórum hozzászólásszáma és az utolsó hsz dátumpecsétje frissül, illetve a júzer lehet rangot léphet, stb. Ezt php-ból megírni elég retek meló lenne, és a bonyodalomból adódóan könnyebben előfordulhatnak bugok, viszlát konzisztencia. S ez csak egy egyszerű példa.
-
-
"Kinek mi a tapasztalata? Mekkora vas kell a "programozáshoz"?"
Én Commodore C64-en kezdtem, 1 MHz és 64 kB RAM, az bőven elég volt

Ha Pentium alatt a G sorozat darabjait érted (és nem mondjuk egy 90 MHz-es Pentium I-et), akkor azok simán boldogulnak vele, az itthoni desktopomban is egy G3420 van (meg 8 GB RAM meg SSD) és nem szoktam érezni, hogy kevés lenne ahhoz, amit csinálok (kisebb C++ projektek meg Python).
-
Karma
félisten
-
Karma
félisten
Reflexió a barátod.
Íme egy példa:
public class ReflTest {
public static void fapapucs() {
System.out.println("FAPAPUCS!");
}
public static void hello(String name) {
System.out.println("Hello " + name + "!");
}
public static void main(String[] args) {
try {
ReflTest.class.getDeclaredMethod("fapapucs").invoke(null);
ReflTest.class.getDeclaredMethod("hello", new Class[] { String.class }).invoke(null, "mobal");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}Direkt beraktam egy paraméter nélküli, és egy paraméteres metódust is - a getDeclaredMethodnál és az invoke-nál is passzolnia kell a típusoknak.
És egyébként ha nincs nagyon jó indokod erre, pofonrúgást érdemel egy ilyen megoldás
Olyan sok szebb alternatíva van a parancsfeldolgozóra is... Például a Command tervezési minta: a Mapben nem stringeket tárolsz értékként, hanem egy megadott (feldolgozó) interfészt megvalósító objektumokat. -
$filename = 'included.php';
include($filename);Viszont ennek van egy szép nagy kockázata, ezért itt egy példa egy biztonságos megoldásra:
<?php
$path = 'pages/';
$extension = '.php';if ( preg_match("#^[a-z0-9_]+$#i",$page) ){
$filename = $path.$page.$extension;
include($filename);
}
?> -
Karma
félisten
Kicsúsztam a szerkesztési időből...
sor4[i] = (long double)sor3[0] * (long double)sor3[c + 1];
Nekem így jobban tetszik (a "sor3" önmagában csak egy konstans pointer az első elemre a tömbben), gondolom nem a pointert, hanem az első értéket akarod szorozni, nem?
A cast elvileg elég a konverzióhoz, szóval szerintem mennie kéne így.
-
Protezis
őstag
elso talalat: [link]
Kozvetlen windows programozas helyett ajanlanam inkabb ezeket:
- Java (ehhez mondjuk ajanlom az eclipse + visual editor plug-in kombot)
- MFC ( hagyomanyos wines programok, visual c++ 6, vagy valamelyik visual studio)
- .NET framework hasznalata (c++, c# stb., ehhez visual studio 2003, 2005)
Visual Studiobol az express edition is eleg lesz kezdetnek, ingyen letoltheto az ms honlapjarol.
A guitol csak felhasznalobaratabb lesz a programod.
[Szerkesztve] -
amargo
addikt
Ha nem engedik, hogy a file-tartalmazza a sorok számát, akkor getline-al mész az eof-ig, közben a \n-re keresel. Ezt egy függvényben keresed, aminek a return-ja lesz a sorok száma. Majd egy másikban felszabdalod az elválasztó karakterek alapján és beleteszed a struktura tömbödbe.
Azthiszem valahogy így lehet hivatkozni rá:
char buff[100];
while(!f.eof())
{
f.getline(buff,100,'\n');
n++;
}
[link] -
amargo
addikt
Két hiba is van ebben.
a tbook-ot miért akarod itt felszabadítani? a temp-et oks. De mit akarsz itt? Mert elég kusza.. a másik nagy gond, hogy a tbook létre incs hozva.. tehát nem foglalsz neki le memória területet. tbook = temp - ezzel nem csak a tartalmukat másolod össze, de a pointerek címét is, innentől, ha az 1iken elkövetsz valamit az a másikra is kihat. Meg ez a fura kihazsnálás, hogy elsőnek az n=0 és ezért nem megy a for-ba, fura.
void loadData(ifstream &f, int &n, tel* &tbook)
{
string name2, number2;
tel* temp;
while (!f.fail())
{
temp = new tel[n + 1];
for (int i = 0; i < n; ++i)
{
temp.name = tbook.name;
temp.number = tbook.number;
}
getline(f,name2,',');
getline(f,number2);
if(name2 == '''')
continue;
temp[n].name = name2;
temp[n].number = number2;
//delete[] tbook;
tbook = temp;
//delete[] temp;
++n;
}
cout << ''ENNEDIK'' << '' '' << tbook[n-1].name << '' '' << tbook[n-1].number << endl;
cin.ignore();
} -
amargo
addikt
szerk: kicsit elmagyarázva, csinálsz egy do-while ciklust, miben annyiszór hívod meg, amíg a vissza kapott érték nem ture, azaz, nem volt sikeres a file megnyítása. Ezt akár az openFile-on belül is megcsinálhatod és akkor maradhat void típusú, igazából ez rajtad múlik, hogy mennyire akarod 1 függvénybe lekezelni az egész dolgot, ha túl sok minden van a main-edben akkor én az openFile ba tenném az egész megoldást, igaz így nehezebben is derül ki elsőnek, ha hiba van benne. Bár ez már máskérdés.
int main()
{
(...)
do
{
bool valid = openFile(f);
}while(!(valid == true));
(...)
}
bool openFile(ifstream &f)
{
string fileName;
cin >> fileName;
f.open(fileName.c_str());
//bool valid = false;
if (f.fail())
{
cout << ''File megnyitasa nem sikerult!\n'';
return false;
}
else
{
cout << ''File megnyitasa sikerult! '' << fileName << endl;
return true;
//valid = true;
}
//vagy(a kommentezet rész alapján) itt belül is egy boolba beleteszed az értéket, és itt //térsz vissza returne-al azzal.. stb, mert erre a megoldásra azt fogja mondani a fordító, //hogy nem tettszik neki. tehát azt is csinálhatod, hogy csak a valid változót adod vissza.. szeritnem az a jobb is.
//return valid;
}
[Szerkesztve]
[Szerkesztve] -
amargo
addikt
''- van még 1 függvény ami pedig feltölti a strukturát (dinamikus tömb) adatokkal.''
Mi alapján?
2. Miért akarod referenciaként átadni? Változtatod is?
3. Lehet a 2.-ban kinulláztad? (ha referencia volt)
Szerk:
cout << ''A fajl neve := '';
cin >> filename;
//Definiáljuk és megnyitjuk a fájlt
ifstream x(filename.c_str());
//Ha hiba van befejezzük a programot
if (x.fail()){
cout << ''A megadott fajlt nem talalom!'';
exit(1);
}
//Beolvassuk/kiírjuk a tömb hosszát
x >> n;
//Létrehozunk egy n elemű tömböt és kitöltjük
int* v = new int [ n ];
for(int i = 0; i < n; ++i)
x >> v[ i ];
Ilyesmire gondoltál? Csak függvényekre tagolva.
[Szerkesztve] -
Forest_roby
őstag
hi!
Magából a sudokus dologból kimaradnák, de csupán a forrást nézve kezdetnek nem is rossz, csak fordítva kell : )
sudoku[0][0] = 1;
sudoku[0][1] = 2;
...
..
.
és akkor nyilván vmilyen bonyolultabb ciklussal ( ciklusba ágyazott ciklussal fel lehet tölteni )
A kiértékelés ugyan így ciklussal mehet, ez nyilván egy kétparaméteres tömb, ha az egyik paraméterét fixen hagyod és a másikra futtatsz egy ciklust akkor megvan az az adott sor v. oszlop.
Nem igazán tudom, hogy mire vagy kíváncsi? Írjak egy forrást, ami összead egy sort?
Mindenesetre sok sikert!
Forest -
PazsitZ
addikt
Mátrixok épp most tanulom Lineáris algebra nevezetű tárgyból
28-án vizsga.
Szerintem a sudoku-ban nem igazán tudod felhasználni a mátrix-al/-on való műveleteket.
Def: Legyen T számtest és n,m pozitív egészek. a T számtest feletti Mxn-es mátrixon egyí olyan téglalap alakú táblázatot értünk, melynek m sora és n oszlopa van és elemei T-ből valók.
Ergo igen egy sudoku tábla mátrixnak felel meg, de ez nem hiszem, hogy segít bármit is. -
PazsitZ
addikt
void csak szam es szokoz karakter van-e a fileban()
{
char kar;
int err;
err=0;
while (!feof(be))
{
fscanf(filebe, ''%c\n'', &kar);
if (kar!=32||58<kar||kar<47) err=1;
}
return err;
kéne egy olyan ami megnézi, hogy sikerült e megnyitni egy filet:
[link]
FOPEN - open a file for I/O.
Several additional options can be specified by adding one or more letters to the possibilities listed above.
All of the following options are unique to the GCOS-8 version of C and will not be portable to other implementations.
d
tells ''fopen'' to abort the program (die) with an error message if an error occurs in the open operation or
in I/O performed later on the opened file.
e
displays an error message (on ''stderr'') if an error occurs in the open operation or in any I/O performed
later on the opened file. In this case, the program is not aborted; the I/O function that finds the error
will return the normal error status (if any) once the message has been printed.
Az mit takar, hogy ''mátrixok kellenének''?
Simán írj fel egyet és lesz.
[Szerkesztve]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Honor Magic V2 - origami
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Arc Raiders
- Lakáshitel, lakásvásárlás
- sziku69: Szólánc.
- Luck Dragon: Asszociációs játék. :)
- Azonnali VGA-s kérdések órája
- sziku69: Fűzzük össze a szavakat :)
- AMD GPU-k jövője - amit tudni vélünk
- További aktív témák...
- Azonnali készpénzes nVidia RTX 3000 sorozat videokártya felvásárlás személyesen / csomagküldéssel
- iKing.Hu-Nothing Phone 3a Pro Grey Glyph stílus, 3 optikai zoom 12/256 GB -3 hónap garancia
- GYÖNYÖRŰ iPhone 11 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3263, 100% Akkumulátor
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Nintendo Switch 2 // Számla + Garancia //
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

Az volt a kérdés, mivel érdemes belelógatni a lábujjadat a programozás vizébe ha nem vagy biztos benne, hogy egyáltalán érdekel-e, és nem az, hogy melyik nyelvre tedd fel a karriered 


Ugyanakkor csak legalább ennyit "várnék" el az olyanoktól, aki programozónak állítja be magát. Ugye, hogy nem is volt olyan nehéz ezt megtenni?

Mindenki úgy írja meg, ahogy tudja, de azt ne mondja nekem senki, hogy a triggert nem szabad használni.

Olyan sok szebb alternatíva van a parancsfeldolgozóra is... Például a Command tervezési minta: a Mapben nem stringeket tárolsz értékként, hanem egy megadott (feldolgozó) interfészt megvalósító objektumokat.

