Diskuze: Projekt - databáza - vstupy, výstupy
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 12 zpráv z 12.
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.
V čistém C téměř nedělám, ale jelikož se v něm nedá programovat objektově, řekl bych, že je to takhle celkem v pořádku, možná až na ty globální proměnné, bez těch by se to pravděpodobně obešlo. Pak ještě některé funkce by se nejspíš daly rozdělit do více menších, ale to nepovažuji za nutnost.
Trochu som sa pozrel na tie globálne premenné a je mi jasné, že všetky premenné (okrem štruktúr) môžem použiť ako lokálne tam, kde ich potrebujem. Skúšal som aj štruktúry, ale to mi nejak nešlo. Vieš poradiť ako na to?
Deklarovat v nejvyšší úrovni kde se instance používá (pokud se používá všude tak v main) a předávat funkcím parametrem. Pokud je potřeba aby funkce instanci změnila, pak přes pointer, jinak stačí kopie. Pokud by těch instancí bylo hodně, pak je dobré je zabalit do nějaké další struktury, aby každá funkce neměla 10 parametrů.
Neviem to vyriešiť.
V MAIN.H ostali len makrá a globálna struktúra.
Do proced.c som doplnil lokálne premenné
/* vlastne hlavickove subory */
#include "STDDFN.H"
#include "MAIN.H"
#include "PROCED.H"
/* lokalne premenne */
LOCAL IDENT klient[100];
LOCAL FILE *faplus; // subor pre citanie a zapis na koniec
LOCAL char c, *druh;
LOCAL int i, poradie, pomoc, volba;
LOCAL IDENT xident;
/***************************************************
* vytvorenie novej databazy klientov
* doplnanie novych klientov do vytvorenej databazy
* návrat do MENU
***************************************************/
Iné zmeny som nerobil.
Fakt neviem ako to spraviť.
Môžeš to napísať konkrétne?
Nějak takhle například:
void zadavanie_klienta(IDENT* klient, int pocet_klientu)
{
...
}
void main()
{
IDENT klient[100];
...
zadavanie_klienta(klient,100);
}
V main si deklaruješ data (popřípadě v nějaké více vnořené funkci, podle toho jak moc hluboko ty data potřebuješ) a každé funkci která s daty pracuje je předáš parametrem.
Dík, vyskúšam.
Toto mi nepomôže. Mne ide o to, aby štruktúry nemuseli byť globálne.
Pozri do súboru MAIN.H. Globálne premenné som už zlikvidoval, ale globálne
štruktúry sú pre mňa potrebné.
Asi sa na to vykašlem a nechám štruktúry globálne, je to vlastne len jedna
premenná a tú si postrážim.
Pokud strukturami myslíš instance struktur, tak ty globální být nemusí, nejspíš bys kvůli tomu ale musel přepsat docela velkou část kódu. Pokud strukturami myslíš deklarace struktur jako takových, tak ty globální být musí, vytvářet si strukturu uvnitř funkce by asi ve většině případů nemělo moc smysl. Například...
GLOBAL typedef struct {
char datum[11];
float suma;
int index_data;
} DATA;
GLOBAL typedef struct {
char meno[20];
char heslo[20];
char email[25];
char meno_priezvisko[25];
char vs[5]; // variabilný symbol
char datzaciatku[11]; // datum spustenia sluzby
DATA platby[15];
int index_klient;
}IDENT;
...tahle část kódu globální být musí.
Díky, presne to som si myslel, ale nebol som si istý, že deklarácia musí byť globálna.
Vždy nemusí, můžeš vytvořit i strukturu uvnitř funkce:
void funkce()
{
typedef struct
{
int a;
int b;
}struktura;
struktura s = {5,10};
}
Pak tu strukturu ale můžeš použít jenom uvnitř té funkce a žádná jiná funkce nemůže pracovat s jejími instancemi, což většinou nemá moc smysl. Struktury se v drtivé většině případů definují mimo funkce, tedy globálně.
Zobrazeno 12 zpráv z 12.
