- Xiaomi 13 - felnőni nehéz
- Samsung Galaxy Z Fold7 - ezt vártuk, de…
- Samsung Galaxy Z Flip7 - kis fogyás is sokat számít
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Xiaomi 14T Pro - teljes a család?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Egy óra, két rendszer
- Milyen okostelefont vegyek?
- One mobilszolgáltatások
Hirdetés
Talpon vagyunk, köszönjük a sok biztatást! Ha segíteni szeretnél, boldogan ajánljuk Előfizetéseinket!
-
Mobilarena
Új hozzászólás Aktív témák
-
proci985
MODERÁTOR
válasz
kovisoft #20448 üzenetére
egyebkent szenne lehet mindent is makrozni
duckynal voltak erre megoldasok 10 eve is, egyebkent meg ott a vim, plusz munkatars kb egy szenne makrozott emacsot hasznal a problemat megoldani.
plusz van meg par megoldas, pl pedallal.
programozasnal mondjuk szvsz kodtol fuggoen nem a gepirasi sebesseg lesz a szuk keresztmetszet altalaban.
-
pmonitor
aktív tag
válasz
kovisoft #20152 üzenetére
akkora fájlt kell rendezni, ami nem is fér el egyszerre a memóriában
Ott meg a fájl mérete konstans sztem. Végül a példádban is azt kell rendezni, nem a memóriában lévő dolgot. Tehát a file mérete attól még ismert(az az idő előre haladtával sem változik) hogy részenként olvasod be. De felőlem aztán nevezhetitek rendezésnek. Én nem annak tartom.
axioma: végülis asm-ben is magas szintű struktúrákat valósítasz meg. Csak valszeg. csökkentett funkciókkal, meg gyorsabban.
-
pmonitor
aktív tag
válasz
kovisoft #18120 üzenetére
Ezek egy(vagy több) programnyelv kulcsszavai. Ezeket(na meg egy programozási nyelv lefoglalt szavait) meg lehet tanulni angol tudás nélkül is. Minimális angol tudással meg főleg! Nem kell hozzá "az angol nyelv legalább dokumentációs szintű ismerete"- hogy 1 klasszikust idézzek. Tehát ezekhez elég az angol nyelv nagyon kis szeletének az ismerete. Vagy még az sem szükséges hozzá. Pl. a main()-t lehet úgy magyarázni, hogy a program belépési pontja. Hol van ebben a "fő" szó/kifejezés? És meg lehet érteni? Sztem. kiválóan. De persze sokkal jobb, ha ezeknek a szavaknak a jelentését vki. ismeri. Ebben azért nincs vita köztünk. De ha lenne egy gyakorlatban is használható fordító, akkor biztos , hogy nem kellene az angol dokumentációs szintű ismerete... Persze nem azt állítom, hogy árt, ha az emberke tud angolul(minél magasabb szinten). Az angol valóban elengedhetetlen ismerete ott fontos, ahol nem lehetne 1 normális fordítót használni. Pl. op. rendszer telepítése. De itt is elég az angol nyelv egy kis szeletének az ismerete...
-
pmonitor
aktív tag
válasz
kovisoft #16746 üzenetére
Csak az a bibi, hogy detektálja. Onnan tudom, hogy kipróbáltam. Itt van a kép róla.
-
pmonitor
aktív tag
válasz
kovisoft #16741 üzenetére
>Ha megszorozzuk a 999999999-et 10-zel, az túlcsordul
Ha 10-el való szorzásnál túlcsordul, akkor szorozzuk először 5-el, majd 2-vel
Minden szorzás után meg ellenőrizzük a túlcsordulást. Itt módosítottam is. Csak abban nem vagyok biztos, hogy a rész szorzások után is be kell-e tenni a "tempret"-be a "ret" értékét? Sztem. talán nem szükséges. -
pmonitor
aktív tag
válasz
kovisoft #16736 üzenetére
Igen, észleltem én is a bugot(?). Módosítottam a C kódomat:
if (ret < 0 || ret < tempret)
És mindig elmentem a tempret-be a ret értékét. Így már sokkal több számra működik.
>Persze most megint visszatérhetünk oda, hogy az atoi() mit is kell visszaadjon invalid inputra.
Nagyon jól látod a problémát! Biztos, hogy jó az, hogy INT_MAX, vagy INT_MIN értékét adja vissza a túlcsordulásnál? Ha jól belegondolunk, akkor ez is memóriaszemét. Viszont valid számok esetén jóval gyorsabb ez a kód, mint az eredeti atoi().
-
pmonitor
aktív tag
válasz
kovisoft #16716 üzenetére
Azt hiszem, hogy sikerült mind a 2 pontodat kiküszöbölnöm:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (ret < 0 && !neg) ret = INT_MAX;
else if (neg)
{
if (ret == INT_MAX)
{
char arr[11];
strncpy(arr, str, 10);
arr[10] = '\0';
if (!strcmp(arr, "2147483647")) ret = INT_MIN + 1;
else ret = INT_MIN;
}
else ret *= -1;
}
return ret;
}A futásidő kb. ugyanaz, mint az atoi(..)-nek. Általában kicsit gyorsabb. Mégsem lettem zseni.
De azért nézzétek át légyszi, hogy ebben találsz-e hibát. -
pmonitor
aktív tag
válasz
kovisoft #16716 üzenetére
Szomorú vagyok.
Az 1. pontoddal még nem tudtam mit kezdeni. A 2. pontoddal igen, úgy, hogy a végén printf(...)-el kiírattam val értékét. Módosítással most kb. azonos időben futnak le(az enyém határozottan gyorsabb). Jelenleg ez a függvényem:
int patoi(const char* str)
{
char* temp = 0, neg = 0;
int i;
while (isspace(*str)) str++;
if (*str == '-')
{
str++;
neg = 1;
}
else if (*str == '+') str++;
while (*str == '0') str++;
temp = str;
while (*temp)
{
if (!(*temp >= '0' && *temp <= '9')) break;
temp++;
}
temp--;
i = 1;
int ret = 0;
for (; temp >= str; temp--)
{
if (*temp >= '0' && *temp <= '9')
{
ret += ((*temp - '0') * i);
}
else break;
i *= 10;
}
if (neg) ret *= -1;
return ret;
} -
pmonitor
aktív tag
válasz
kovisoft #16602 üzenetére
Módosítottam itt a mintakódokat, valamint bemásoltam azok eredményeit. Csak azt nem értem, hogy a standard könyvtárbeli itoa() függvénye miért ennyire lassú. Pedig ezt is programozó(k) készített(e/ék). Azt én már biztosnak veszem, hogy sebesség szempontjából minden nyelvben az alkalmazott algoritmusnak van nagy jelentősége. Ha az algoritmus jó, akkor már csak kevésbé lehet optimalizálni. Legalábbis, ha a nagyságrendet nézzük.
De egyébként úgy látom, hogy Rád lehet hallgatni. Nagyot nem tévedsz. -
pmonitor
aktív tag
válasz
kovisoft #16602 üzenetére
Értem amit írsz, és igazad van, C-re visszafordítva sokkal gyorsabb. Bár még csak a 10-es számrendszert tudja. De aki otthon van az ASM programozásban, lehet, hogy a C kódnál is tud még gyorsabb kódot írni ASM-ben.
De azt is figyelembe kellene venni, hogy ha van egy itoa() függvény, akkor miért kell a user-nek(mármint a programozónak) újra implementálnia, hogy az itoa()(vagy mondhatnám bármelyik függvényt) idejét 100%-nak nézve kb. 30% alatt fusson le?
És ugyanezt mondhatnám bármelyik nyelvre is. Hogy csak a C#-ot emeljem ki. Ott is csak úgy lehet gyors kódot írni, ha:
1.: Az ember teljesen felrúgja az OOP alapelveit(tehát áttér a C stílusú kódolásra)
2.: Unsafe kódot használ.
3.: Ha nem algoritmusos/matematikai probléma, akkor áttér a win api használatára.Nem tudom, hogy érted-e, hogy mi a mondanivalóm lényege. Ha megvalósítottak vmit. az adott programnyelven, akkor miért kódolja le a user még egyszer ugyanazt, hogy jelentősen gyorsabb legyen?
-
coco2
őstag
válasz
kovisoft #16429 üzenetére
Ez egy ideje már nagyon nem így van.
Azért még van egy kicsi hiányosság. C alatt nincs opció olyat leírni, mint carry flagen keresztüli bit forgatás. Asm-ben a carry flag-re adat mozgatás vagy ugró utasítás szokott kerülni. Hatékonyabb kódot lehet úgy írni, mint pld 64 bites értéket gyártani és / vagy kapcsolatokhoz cmp-vel ellenőrizni, és arra rakni ugrást, vagy xor-al kezelni bites adatátvitelt. Az utóbbi időben a C-t elég sok marhasággal (semmire kellő csicsával) már kiegészítették, de ezt a hiányosságot valahogy nem sikerült legyűrni. A carry flag kezelésére nincsen koncepció. Pedig mindegyik modern cpu magban ott van rá a support.
-
kovisoft
őstag
válasz
kovisoft #16420 üzenetére
Vagy akár szimplán duplikálhatod a Bevitel, Vizsg, Tarol-t így: Bevitel1/Bevitel2, Vizsg1/Vizsg2, Tarol1/Tarol2, ahol az 1-esek az ertek1-gyel, a 2-esek az ertek2-vel dolgoznak. Az 1-est a szam1 menüből, a 2-est a szam2 menüből hívod meg. Ekkor is nyilván kell tartani, hogy megvan-e már az ertek1/ertek2, akkor végzett a program, ha mindkettő megvan.
-
Micsurin
nagyúr
válasz
kovisoft #16414 üzenetére
Alapvetően azt csinálta ez a csoda, hogy 4 számjegyet kért be addig futott amíg nem lett meg mind a négy jegy, ha escapet nyomtál kilépett minden nem esc vagy nem számra meg a hiba üzit dobta el.
Na most ezt kellett volna átalakítsuk úgy, hogy 2db 4 jegyű számot kérjen be és szám1, szám2, kilépés szerű menü is legyen.
De már az órai kódba is belegabalyodtam.
A menü mindenképpen életképtelen lett nálam (03:00-kor adtam fel a kérdés után még futottam pár kört
) mert ha be is veszi az 'a' vagy a 'b' karaktereket és a jz is sikerül a szükséges szekcióba akkor is kiírja, hogy érvénytelen karakter ellenben a számba már belevette pl a leütött 'a'-t.
Egy számot letudtom kezelni de a 2.-at már csak folytatólagosan hozzáírja az elsőhöz szvsz amit ebből az alao kódból kreáltam tré ahogy van.Hogy kéne ennek nagyjából neki álljak? 27.-e ZH az a heti egy óra meg sok kárt nem tesz bennünk. Stack és társain meg nem 1:1 ilyen formában találtam eddig assemblyt.
coco2 de az elején ha van input is a menünek akkor is a vizsgre esik tovább.
Igen MS DOS környezet egy virtuális XP-n notepad++ és cmd+masm. Éljen a modern oktatás... Java és C# után nem kis oboa tanfolyam. -
pmonitor
aktív tag
válasz
kovisoft #15604 üzenetére
Nézzük az én esetemet. Nekem a kód megírása után eszembe sem jutott, hogy ennél gyorsabban is meg lehetne csinálni. Egyetemi jegyzetben szereplő algoritmus alapján készítettem el. Mert az ember mit gondol, ha egy egyetemi jegyzetben szereplő kód alapján készít el valamit? Nyilván azt, hogy legalább a "középmezőnybe" tartozó (pszeudo)kódról van szó, ha nem is sebességre optimalizált. Az igazság az, hogy a saját korlátaimba estem bele. Aztán jött "joysefke", és belinkelt 1 olyan algoritmust, amiről ránézésre látszott, hogy jóval gyorsabb. Mikor kipróbáltam, akkor ez realizálódott is. Ezért is csináltam meg az oldalamon a kódokat/teszteket a legalapvetőbb kombinatorikai feladatokra. Aztán jöttél Te, és 1 még sokkal hatékonyabb kódot adtál(amit azt hiszem magadtól írtál régebben). Egyébként én nem tudok olyan oldalról, ami különféle témájú alapvető feladatokat megoldó algoritmusokat tesztel/hasonlít össze/érdekességként említ meg. Olyan oldallal találkoztam, ami pl. rendezéseket ír meg/hasonlít össze. De az ilyen oldalon meg pl. a kombinatorikai alapvető dolgokat nem hasonlítják össze. A gúúgli igaz, hogy sok ember barátja, de sok a "salak" is benne. Ráadásul ezek több helyen is felbukkannak. És talán kijenthetjük, hogy nagyon sokat kellene google-zni, hogy megtaláljuk pl. a Te kódodat. De lehet, hogy meg sem találnánk, nem tudom. Ráadásul a 6 téma közül kettőt is megoldottál(az ismétléses és az ismétlés nélküli permutációt). Itt jut eszembe: Remélem nem gond, ha felhasználtam a kódod az oldalamon. Gondolom, ha gond lenne, akkor nem írtad volna ide. Meg ha jól tévedek, talán azért is írtál kódot, mert láthattad, hogy én is azt írtam. De sztem 1 ilyen oldalt nem nekem illett volna elindítani, hanem tényleg egy szakinak.
Egyébként nem tudom, hogy miért olyan nagy gond egyeseknek(vagy többeknek), hogy a tényt leírom: hogy a C gyorsabb, mint a C#? Más is kiállt a C mellett, de ővele még sincs bajuk. Egyébként a standard C++ is lassabb a C-nél. Legalábbis, ha C++ protokolljait/konvencióit betartjuk. Mondjuk az biztos, hogy a C/C++ tanulási görbéje jóval laposabb, mint a C#-é. Mondjuk nekem a "szokásos" nyelvek közül igazán mind1, hogy miben van az algoritmus. A quicksort kódját pl. VB6-ból vettem át. Ha jól tudom innen. De ettől függetlenül azért a jó algoritmust írók többsége C/C++ programozó. Látod itt is Te írtál jó algoritmust, mint aki C-vel asm-el foglalkozol(szerintem).
Valaki azt hiszem említette, hogy miért a "Dos"-hoz hasonlító console alkalmazásokat írok? Mert szerintem algoritmusok/példakódok/tesztek írásához a legideálisabb. Erről jut eszembe. A C-beli printf() is gyorsabb, mint a C++ cout-ja. Na de mind1. Kicsit most hosszabbra sikerült a dolog. De azért a mondanivalóm talán átment. -
pmonitor
aktív tag
válasz
kovisoft #15598 üzenetére
Először is szeretnék elnézést kérni Tőled a múltkori miatt. Tudod miről van szó, de itt nem írhatom le, mert megint 1 7 pihenőre küldenének. Mindenesetre az látszik, hogy aki kódot ad, ő nem összehasonlítható a többiekkel. És még most is agyaltál rajt. Köszönöm.
Nagyon jelentősen gyorsítottál a kódon. Az eddigi leggyorsabb ~34 sec. után a Te kódod ~13 sec alatt végzett a megszokott karakterlánccal(mert átalakítottam a kódod. int helyett karaktertömböt permutál). Ezek után a megszokott karakterlánchoz hozzátettem egy darab 'a' karaktert. Az így módosított kód C#-ban 30.6 sec. alatt futott le. A C-ben pedig 26.6 sec alatt. Itt "csak" 4 sec. a különbség a C és a C# között a C javára. Érdekes, hogy láthatod mennyivel gyorsabb a kódod, mégis "csak" 1 karaktert tudtam a végére tenni a karaktertömbnek, hogy emberi idő alatt lefusson. Ez is mutatja a feladat nehézségét.
Az egészet Itt meg tudod nézni.Nagyon szépen köszönöm a segítséged.
Szerk.: megnéztem még 1 karakterrel 3 perc alatt fut le C-ben.
-
pmonitor
aktív tag
válasz
kovisoft #15584 üzenetére
Megnéztem az eredeti kódod C-ben. Itt n=13 esetén ~14, n=14 esetén ~200 sec. alatt fut le. Mint az oldalamra is írtam, azért a C# játékszer a C-hez képest.
-
pmonitor
aktív tag
válasz
kovisoft #15584 üzenetére
Átírtam C#-ra a kódod. Ez nagyon hasít! Az én kódom, meg az egyetemi jegyzetben szereplő algoritmus n=12 esetén eljátszik vele 80 sec-ig, a Tied végez vele ~2 sec alatt. A Tiéd n=13-at megcsinálja 23 sec alatt. n=14-et 5.5 perc alatt. Miért van az, hogy egyetemi jegyzetben is az ócska kód szerepel? Ha 1 ilyen hasító kódot valaki meg tudna írni ismétléses permutációra, ő elég nagy számokra meg tudná oldani a hátizsák problémától kezdve az 1D vágás problémáján keresztül sok mindent!
@K1nG HuNp: légyszíves keress nekem egy robosztus, teljesen tesztelt open source libet, ami tobbet is tud jobban kovisoft kódjánál.
Egyébként hasonlítsd össze a te postodat és kovisoft-ét. Szted melyik ér többet? És érdekes, kovisoft is i, j-t használ.
-
Weareus
addikt
válasz
kovisoft #15529 üzenetére
Köszönöm a tippeket.
Szerkezetileg így néz ki:G vall a püspök megbízottja az egyházi bíróság elé tartozó ügyekben
lat archidiaconus ‘ua.’: lásd ARCHI-, DIAKÓNUS
archidioecesis [arhidiöcézis] G vall főegyházmegye, érsekség
lat ‘ua.’: lásd ARCHI-, DIÖCÉZIS
archidux † G főherceg
lat, ‘ua.’: lásd ARCHI- | lat dux, ducis ‘herceg’, tkp. ‘vezér’ ducere ‘vezet’
archiepiscopus [arhiepiszkopusz] G vall érsek, több püspökséget magába foglaló egyházi terület
feje
lat, ‘ua.’: lásd ARCHI- | episcopus gör episzkoposz ‘püspök’, ered. ‘felügyelő’ episzkopeó
‘felügyel’: epi- ‘rá’ | szkopeó ‘néz’
archigonia G biol ősnemzés
tud lat, ‘ua.’: lásd ARCHI- | gonosz ‘nemzés, szülés’ gennaó ‘nemz’
archimandrita G vall kolostori elöljáró, apát a görögkeleti egyházban
lat, ‘ua.’ gör arkhimandritész ‘ua.’, tkp. ‘főpásztor’: lásd ARCHI- | mandra ‘nyáj, karám’
archipelagus G földr szigettenger, szigetvilág
lat, ‘ua.’ gör arkhipelagosz ‘a görög szárazföld és Kis-Ázsia közötti tenger (a maga számtalan
szigetével)’: lásd ARCHI- | pelagosz ‘tenger’
architektonika G ép a szilárd építészeti szerkezetek művészi kialakításának elmélete
G tud az építőművészet mint tudomány
ném Architektonik ‘ua.’ gör arkhitektón ‘építésvezető’: lásd ARCHI- | tektón ‘ács, építész’
tektainó ‘épít’
architektonikus G az építészettel kapcsolatos
G az építészet formai jegyeit hordozó, mértanilag tervezett (díszkert)
ném architektonisch ‘ua.’, lásd ARCHITEKTONIKA
architektúra G ép építészet, építőművészet
G szerkezet
tud lat architectura ‘ua.’, lásd ARCHITEKTUS
architektus † G építész, építőművész
lat architectus ‘ua.’ gör arkhitektón ‘építésvezető’, lásd ARCHITEKTONIKA
architráv G ép oszlopokat összekötő főgerenda, oszlopkoszorú
ang architrave ol architrave ‘ua.’ lásd ARCHI- | lat trabs, trabis ‘gerenda’
archivál G levéltárba, irattárba helyez hosszabb ideig való megőrzésre
ném archivieren ‘ua.’, lásd ARCHÍVUM
archivárius † G levéltáros
újk lat archivarius ‘ua.’, lásd ARCHÍVUM
archivisztika G levéltártudomány
ném Archivistik ‘ua.’, lásd ARCHÍVUM
archivolt G ép oszlopokat összekötő íves boltozat homlokrésze
ang, ol archivolto ‘ua.’: lásd ARCHI- | ol volto ‘boltozat, ív’ lat volutus ‘hengeres, gördülő’
volvere, volutum ‘forgat’
archívum G levéltár, irattár, okmánytár
lat archivum ‘ua.’ gör arkheion ‘középület, elöljáróság háza’ arkhé ‘uralom, kezdet’
archontológia G tört az elmúlt korok világi és egyházi főbb méltóságainak és tisztségviselőinekto Domonkos: a grep -o -ből a gnu grep jó? És ahhoz le kell töltenem valamit? (Pl. Cygwin).
Win10-es környezetet használok.Ha Notepad++-ban megynyitom, akkor ilyen:
<div style="page-break-before:always; page-break-after:always"><div><p>lat <i>nardus</i> gör <i>nardosz</i> perzsa <i>nard</i> ‘ua.’ <br/><b>nargilé </b>G vízipipa <br/>tör <i>nargile</i> perzsa <i>nárgíl</i> ‘ua.’ szansz <i>nárikela</i> ‘kókuszdió’ (eredetileg ebből készült a ~ <br/></p>
<p>víztartálya) <br/><b>narkoanalízis </b>G <i>orv</i> kábítószeres bódulatban gátlásaitól feloldódott, félöntudatlan beteg <br/></p>Pontosabban ilyen:
[kép]Eddig nem is tudtam, hogy a notepad++- ilyet is tud...
Pl. hogy kezeli a bold betűtípust...Mindjárt rá is nézek akkor, hogy mit lehet...
-
kovisoft
őstag
válasz
kovisoft #15529 üzenetére
Kis korrekció kell, mert így még bennmaradnak azok a sorok, amikben egyáltalán nincs címszó, és aztán nem lehet majd azoktól szétválasztani. Úgyhogy legelsőként az ilyen sorokat kellene törölni (na, ez egyre ocsmányabb kezd lenni
):
0. lépés:
Find: ^(?!.*?</?b>).*$
Replace: (üres string) -
Weareus
addikt
válasz
kovisoft #15522 üzenetére
Köszönöm.
Közben rátúrtam, találtam is angol fórumokon pár teljesen hasonló kérdést. A válaszok ott sem voltak túl bíztatóak. Tkp. ahogy írod is valami olyasmi helyzet van, hogy ha egy pdf-ben valami félkövérnek látszik, az még nem biztos, hogy valóban "félkövér."Nem baj, mára ennyi haladás elég volt.
A kis parancssorocskákat el is mentettem a többi közé.Köszönöm a segítséget.
-
Weareus
addikt
válasz
kovisoft #15518 üzenetére
Klassz, működik.
Van egy másik kérdésem még...
Van egy pdf-fájl (multi-layer).
Ez tkp egy ingyen letölthető netes" idegen szavak szótára".
Címszavak és meghatározások.
Létezik olyan metódus, amivel csak a címszavakat ki lehet szedni?
Az egyetlen megkülönböztető jegy, hogy minden címszó félkövér, a többi betűszedet nem.
Vannak online konverterek, ezekkel próbáltam átkonvertálni, de közel 2000 oldal, szóval kifeküdtek tőle...
Letöltöttem a Boxot PDF to text free konvertert, ezzel sikerült megcsinálni a konvertálást, de a kapaszkodó (félkövér betűk) el is tűnt.
Létezhet valami megoldás erre? -
pmonitor
aktív tag
válasz
kovisoft #15484 üzenetére
Elnézést kérek. Tényleg igazad volt. Én ütöttem el a file nevét, vagy nem rendszergazdaként indítottam a keresőt.
Azt hiszem, hogy ami itt történik, azt hívják mutex-nek.
@Silεncε: Neked is igazad volt. Nem a Process.Start() vagy a Createprocess() volt bug-os. Mindenesetre pont beletrafáltam abba a programba, ami másképp működik, mint egy általános program.
Mindenesetre tanulságos volt(és remélem, hogy nem csak nekem). Köszönöm mindenkinek a segítséget.
-
pmonitor
aktív tag
válasz
kovisoft #15484 üzenetére
Nincs is calculator.exe a gépemen. Ettől függetlenül jó helyen kapizsgálsz.
Mert ha mielőtt a programom elindítanám, az előtt elindítom windowsból a calc.exe-t 2-szer, annak mind egy ID-je van. Ha így módosítom a C# kódom, akkor a tömb hossza csak 1, még akkor is, ha a programom a 3., vagy 4. calc.exe-t indította. Egy "normális" programnál mind külön PID-et kapna. De itt a pr_2 tömb hossza csak 1.
using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace TestProcess
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
void OpenWithStartInfo()
{
ProcessStartInfo startInfo = new ProcessStartInfo(textBox1.Text);
startInfo.UseShellExecute = true;
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
Process pr = Process.Start(startInfo);
//textBox2.Text = pr.Id.ToString();
Process[] pr_2 = Process.GetProcessesByName("calc");
textBox2.Text = pr_2.Length.ToString();
}
private void button1_Click(object sender, EventArgs e)
{
OpenWithStartInfo();
}
}
}Tehát végülis nem bug. Ha csak azt nem nevezzük bug-nak, hogy akármennyi calc elindítása után is csak 1 pid van. Mert végülis ezáltal nem működik.
De megnéztem 1 64 bites win 7-es laptopon, ott jó pid-t ad vissza. Csak a win 10-en nem jó.
Befonom a szemöldököm.
-
FrozeN`
tag
válasz
kovisoft #15327 üzenetére
Köszi mindenkinek, aki foglalkozott vele!
#15327 kovisoft:
Részben jól működik, de van olyan különleges eset, amivel ki lehet akasztani: ha egyetlen ^-t kettő vagy több szám követ.
Példa: ^33333sarga^11piros - 3333sarga1piros helyett csak 333sargapiros-t ad vissza#15331 pelyib:
Baromi jók ezek az oldalak, mindkettőt elteszem későbbre, köszi!A kódod a nagyon egyszerű eseteknél (pl. ^1piros) működik szépen, de utána azért belekeveredik: a mintádban a match 1 jó, a match 2-nél az lenne nekem az igazi, ^^ esetén is csak egy ^-t adna vissza, a match 3-nál a 06 (6 helyett) nem életszerű és mindenképp kell feltételnek a 0-7 is, plusz ha mondjuk háromnál több szám követi a ^-t, akkor már nincs is match.
Ha esetleg valaki nagyon unatkozna és foglalkozik vele, azt megköszönöm, hátha összehozható rá egy egysoros megoldás, egyelőre a legjobban bevált módszer az, ha 2 string.replace lépésben dolgozom fel a sztringet, előbb
redukálom a ^^nn-t ^n-re, onnan meg már egyszerű kezelni.... illetve most vettem észre, hogy bizonyos esetekben ez a biztosnak hitt megoldásom is kiakasztható és nem kezeli le rendesen, ááááá.... -
pmonitor
aktív tag
válasz
kovisoft #15381 üzenetére
A c:\ meghajtóm a TC stabilan 4:10 alatt listázza ki(függetlenül attól, hogy hányszor futtatom le).
Az én programom az első futtatáskor 2:50 alatt, de utána van, hogy 0:33 alatt végez vele.
De ha egyszerre indítom mindkettőt, akkor közel egyszerre végeznek.Ha a programomnál a 2:50-es időt nézzük, akkor is 1:20-al kevesebb idő kell neki, mint a TC-nek. Ez nagyon sok.
Mondjuk a programom most karikázik, mert a UI szálon futtatom, ezt légyszi nézze el, aki kipróbálja.
-
pmonitor
aktív tag
válasz
kovisoft #15376 üzenetére
sokkal gyűlöletesebb user interface a szimpla kerregő homokóra és társai
Az én programom tényleg semmit nem csinál, még csak nem is homokórázik.
Annyi változik, ha elindítod a 3 "Start" gomb egyikét, hogy a felirata "Stop"-ra változik. Ha végzett, akkor pedig megjelenik a középső szövegmezőben az eredménye és a gombon a "Stop" felirat ismét "Start" lesz.De nekem az volt a célom, hogy ha nem is támogatja a programom az egyidejű futtatást, akkor is a user-nek lehetőséget adjak rá. Ezért imádom a programozást, mert(a nagyon alap dolgok kivételével) ugyanazt a dolgot "millióképpen" meg lehet valósítani.
-
-
kovisoft
őstag
válasz
kovisoft #15245 üzenetére
Közben látom, hogy elég lightos ez a wiki oldal. Talán többre mész ezzel az alapozóval., de itt is található még plusz infó.
-
kovisoft
őstag
válasz
kovisoft #14876 üzenetére
Plusz az nem probléma, hogy az i változót két dologra is használod két különálló always blokkban? Az egyik blokkban lépteted 0-tól 6-ig a neuronháló szintjeinek végigszámolásához, a másik blokkban ciklusváltozónak használod. Nem kellene a második always-ben megvárni, amíg i==6 lesz?
-
y@g4n
tag
-
janos1988
addikt
válasz
kovisoft #14157 üzenetére
Végül is így sikerült közben megoldani (illetve ezek más "elrendezése" és/vagy a while do ciklus használata, de a végeredmény ua):
program felbontas;
var
s1,s2:string;
i:integer;
begin
s1:='Ez egy szep hosszu proba mondat akarna lenni.';
s2:='';
for i:=1 to length(s1) do
begin
if (s1[i]<>#32) then s2:=s2+s1[i]
else
begin
writeln(s2);
s2:='';
end;
if i=length(s1) then writeln(s2);
end;
end.
Közben olvasgattam és beugrott, hogy van a C-ben használatos 0 végű sztring is a Pascalban (PChar), de azzal is hasonló megoldások születnek (születtek). Bár előnye, hogy meghatározható a vége (#0). Köszi neked is és a többieknek is!
-
janos1988
addikt
válasz
kovisoft #14034 üzenetére
Ki akartam kerülni a belső _mindiglefutó_ if elso=nil ellenőrzést, úgy, hogy a repeat előtt bekérem az első láncszemet és értekül adom az elsőnek+utolsónak. De így nagyon áttekinthetetlen az egész, jobb az eredeti.
Igen, már látom, ahogy felhívtad rá a figyelmem, a 0 ellenőrzése elmaradt az átírt változatban.
-
válasz
kovisoft #13494 üzenetére
Igen, stacowerflow-n ki se engednek igy a kerdest, mert konkretan nem megvalaszolhato ebben a formaban, max tippelgetni lehet, ezert is tettem fel a kerdest igy, hogy tudom, hogy eleg nagyivu a dolog, de hatha valakinek beugrik valami. Tudtam, hogy nem tul nagy az eselye, mert eleg specialis a problema meg a kornyezet is, plusz amennyit leirhatok, azzal kb meg a popsit se lehet kitorolni, de mar annyire frusztral, hogy ugy voltam vele, hogy igazabol veszitenivalom kb nincs.
instantwater: Hmmm, ez vegulis nem rosz otlet, mert bar kozvetlen allokacio elott csinaltam dumpot es szepen minden nulla volt, de lehet mutat kozben oda valamilyen pointer, es egy resze vedett lesz. Az a gondom, hogy szerintem akkor nem azzal szallna el, hogy nincs eleg memoria, hanem azzal, hogy #metoo.
-
válasz
kovisoft #13473 üzenetére
Nem, heap az egesz.
samujózsi: Jo tipp, de sajnos nem.
dabadab: En is gondoltam erre, ezert van neki 1Mbyte padding (probaltam 5mbyte-nyi paddinget is, ugyis meghal valamiert)
emvy: megneztem, ki van szepen nullazva vegig. Nem tudok csak ugy beleirni, de ha tudnek se csinalnek olyat, ennyire meg nem vagyok ketsegbeesve.Amugy igen, eleg irritalo, hogy ennel tobb infot nem oszthatok meg, de sajnos ez ilyen. Ha meglesz a megoldas, be fogom irni. Koszonom a tippeket!
-
samujózsi
senior tag
-
-
kovisoft
őstag
válasz
kovisoft #12159 üzenetére
Kicsit még továbbgondoltam, és O(N) lépésben is meg lehet csinálni, ha használhatunk még plusz tárhelyet:
Végigmegyünk a tömbön és minden elemet (az indexével együtt) beteszünk egy hashtáblába. De mielőtt betesszük, megnézzük, hogy a keresett összeg mínusz az adott elem benne van-e már a hashtáblában. Ha igen, akkor találtunk egy párt, és visszaadjuk ezeknek az indexeit.
Annyi csúsztatás van a dologban, hogy O(1) komplexitást feltételeztem a hashtábla elérésében.
-
válasz
kovisoft #11906 üzenetére
Köszönöm, máris kiírja, hogy mennyi PDF-es E-mailem van
Így írtam át:
' Az összes e-mail megszámolni
For intItem = Inbox.Items.Count To 1 Step -1
' Csak az olvasatlan leveleket csekkolni
If Inbox.Items(intItem).UnRead = True Then
' Meghatározni, hogy melyik objektumosztály és csak azon leveleket feldolgozni
If Inbox.Items(intItem).Class = olMail Then
Set oItem = Inbox.Items(intItem)
If Not oItem.Attachments.Count = 0 Then
For intAttachement = 1 To oItem.Attachments.Count
' Csak PDFes leveleket feldolgozni
strAttachementType = Right(oItem.Attachments.Item(intAttachement).FileName, 3)
If UCase(strAttachementType) = "PDF" Then
Mennyiseg = oItem.Attachments.Count + Mennyiseg
End If
Next
End If
End If
End If
Next
MsgBox "E-Mailek PDF csatolmánnyal " & Mennyiseg
End SubEz eddig oké, de... most csak egy E-Mail volt bent PDF-el, de ha több van, esetleg egy E-Mail több PDF-el, akkor nem számol tovább
Vagy is minden egyes E-Mailben csak egy PDF-et észlel.Ki szeretném íratni, hogy összesen hány E-Mail van és valahogy megoldani, hogy ha egy E-Mailben több PDF van, akkor azt is számolja. Erre esetleg van ötleted?
Update!
Csináltam egy
Dim EmailCount As Integer
Majd beraktam ide:
If UCase(strAttachementType) = "PDF" Then
Anzahl = oItem.Attachments.Count + Anzahl
EmailCount = oFolder.Items.CountA végén:
MsgBox "Email PDF-el " & Mennyiseg & " összesen " & EmailCount & " E-Mailből"
Az EmailCount-ra 0-t kapok
-
Doink
aktív tag
válasz
kovisoft #11671 üzenetére
Egyébként VBA-ban ez nem így van mert a / jel egy lebegőpontos osztást jelképez, vagyis mindig lebegőpontos számmal tér vissza.
Public Module Program
Public Sub Main(args() As string)
Dim a as Long = 3
Dim b as Long = 7
Dim c as Double
c = a/b
Console.WriteLine(c) '0,42857142
End Sub
End Module -
bandi0000
nagyúr
válasz
kovisoft #11577 üzenetére
igazából csak ennyi, hogy válasszam ki a tömbből a 4 legnagyobb elemett sse utasításokkal, holnap úgy is megmondja a tanár, hogy kellett volna megcsinálni, de gyanús hogy vagy
egyenként kikeresem a legnagyobbat, és tömböt elrontom pl
vagy sorbarendezéssel lehetne
vagy a maxps el kellene valamit csinálni, hogy úgy adja vissza a 4 legnagyobbat -
kovisoft
őstag
-
bandi0000
nagyúr
válasz
kovisoft #11477 üzenetére
köszönöm, így már teljesen világos
SSE utasítások is hasonló szisztéma szerint működnek?
Nem akarlak egész este szórakoztatni titeket, de egy utolsó kérdés még, hogy merre induljak el, ha a feladat az lenne, hogy ugye kivonom őket, és a kivonásnak abszolút értékét kell össze adni
-nekem erre az az ötletem, hogy feltétellel vizsgálnám, hogy nagyobb e a különbség mint 0, ha nem akkor megcserélem a kivonást, ha nagyobb akkor összeadom, nem túl esztétikus megoldás, de érthetőbb mint amit a megoldásnak kaptam erre
- meg arra is gondoltam, hogy a számot talán bit szinten lehetne e maszkolni úgy, hogy ha pozitív akkor ugyan azt a számot adja, ha pedig negatív akkor a pozitív részét adja
tahát ha a különbség 1, akkor ahhoz hozzáadnék 255-öt, és 1 lesz
és ha -1 a különbség, akkor +255 és 1 leszpersze ez elvi feltevés, ennek nem néztem utána hogy így van e, de gyanítom hogy nem
-
bandi0000
nagyúr
válasz
kovisoft #11470 üzenetére
nem hiszem, bár ez elég nagy hiba, de ezt csak úgy irtam, hirtelen egy példának, próbáltam úgy is hogy minden elem egy 1 es, és akkor is irreleváns eredményt adott, az a baj nem tudom hogy működik ez az összeadás, mert nem hiszem, hogy össze adja egyenként egyik tömb i-dik+ másik tömb i-dik elemét, és aztán a 4 összeget össze adja és az lesz az eredmény
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Le Mans Ultimate
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- BestBuy topik
- Luck Dragon: Asszociációs játék. :)
- Kormányok / autós szimulátorok topikja
- sziku69: Szólánc.
- LEGO klub
- ASUS notebook topic
- Gumi és felni topik
- További aktív témák...
- BESZÁMÍTÁS! ASUS H87I-PLUS H87 chipset alaplap garanciával hibátlan működéssel
- Új Dell 14 Inspiron 5435 FHD+ Ryzen7 7730U 4.5Ghz 16GB 512GB SSD Radeon RX Vega 8 Win11 Garancia
- Nvidia Quadro M2000/ M4000/ P2000/ P2200/ P4000/ P5000/ RTX 4000/ RTX A2000
- Honor MagicBook 16 Ryzen 5 5600H 16GB 256GB FHD 144Hz
- Lenovo ThinkPad X270 (16) - i5-7300U, 16GB, 512GB SSD, 12" FULL HD (ELKELT)
Állásajánlatok
Cég: FOTC
Város: Budapest