Diskuze: Zarovnanie
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 15 zpráv z 15.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.


Regex, nebo odečti celočíselnou hodnotu - tak jako tak se dozvíš desetinnou část a tu pak použiješ v cyklu...
Můžeš si nastudovat formátování floatu do stringu pomocí metody ToString() - http://msdn.microsoft.com/…=vs.80).aspx nebo s čísly jednoduše pracovat jako s řetězcem, když je vypisuješ. Stačí si zjistit délku celé části a potom před něj vložíš mezery, kolik jich tam chybí.
Pokud nedělá v .NETu tak mu funkce ToString() nebude moc platná 
Nenapsal si tu jestli to potřebuješ v C nebo v C++, tak sem si to vyzkoušel v C a de to snadno přes konverzi na int. Stačí to číslo převést na int a pořád dělit deseti dokud je větší než 0, tim zjistíš kolik cifer má celočíselná část. Největší hodnotu uložíš do nějaký proměnný (třeba max). Pak jenom před každý číslo vypíšeš max - cifry mezer (cifry je počet cifer celočíselný části danýho čísla). Samozřejmě pokud je číslo záporný tak musíš tu int hodnotu vynásobit -1 a počet cifer zvětšit o 1.
To je jednodušší:
"Regex, nebo odečti celočíselnou hodnotu - tak jako tak se dozvíš desetinnou část a tu pak použiješ v cyklu..."
Regex ti dá počet míst, a odečtení celočíselné části přesnou hodnotu desetinné části...
Desetinnou část přece vůbec nepotřebuješ. Potřebuješ jenom celočíselnou část, abys věděl o kolik mezer to máš posunout od kraje. Když máš třeba 107.27, 20.5 a 20.0005 tak to bude vypadat:
107.27
_20.5
_20.0005
Z desetinnou částí vůbec nehejbáš. K 20.5 i 20.0005 přidáváš pokaždý jednu mezeru, aby tečky byly pod sebou. Tedy desetinnou část mají odlišnou, ale posouváš je stejně.
To je snad jedno... Buď vezmu celočíselnou část - odečtu od délky celého čísla délku stringu z té celočíselné části, nebo Regex - délka stringu... A přesnou hodnotu budeš chtít v případě, že ti bude záležet na přechodu z 99_ ...
To to ale nejdřív musíš převést na ten string. Tak jak sem to myslel já to můžeš dělat rovnou z těch čísel.
Dělit deseti dokud je větší než 0 a při každym vydělení zvětšit délku o 1. Pro int to funguje a jelikož tady nepotřebuješ znát délku desetinný části tak to na int můžeš převést.
void print(float* arr, int n)
{
int i,j;
int max_count = 0;
int* counts = malloc(sizeof(int) * n);
for(i=0;i<n;i++)
{
int count = 0;
int value = (int)arr[i];
if(value <= 0)
{
value *= -1;
count = 1;
}
while(value > 0)
{
count++;
value /= 10;
}
counts[i] = count;
if(count > max_count)
max_count = count;
}
for(i=0;i<n;i++)
{
for(j=0;j < max_count - counts[i];j++)
printf(" ");
printf("%f\n",arr[i]);
}
free((void*)counts);
}
Takže není jednodušší string.Length? (Nebo jak je to v C/C++)
Je ale to nejdřív musíš na ten string převést. V C++ má třída string určitě nějakou členskou funkci která převádí float/double na řetězec. Já osobně ale třídu string nerad používam protože neni kompatibilní z Céčkovýma knihovnama, mam na práci s řetězcema svojí vlastní třídu. Navíc v C asi žádná standardní funkce pro převod float na char* neni a on tu nespecifikoval jestli to má bejt v C nebo C++. Než si psát vlastní funkci pro převod na řetězec to máš jednodušší udělat takhle. Navíc podle mě pokud je někdo začátečník, tak neni dobrý programovat stylem že si na všechno najdeš funkci/třídu v nějaký knihovně a tu jenom použiješ, tak se vůbec nenaučíš programátorsky myslet.
Zobrazeno 15 zpráv z 15.