Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - mikrom

Stran: 1 ... 9 10 [11] 12 13 ... 22
151
Bazar / Re:OS/2 Warp
« kdy: 27. 01. 2023, 14:02:11 »
.. je to vubec jeste zivy os?
Tato otazka ma tiez nedavno napadla, ked som testoval Iron Spring PL/I compiler na Linux a videl som, ze stale vydavaju nove verzie aj pre OS/2. http://www.iron-spring.com/download.html Zrejme existuju este skupiny hobyistov, ktore OS/2 stale pouzivaju.

152
Software / Re:Určení obsahu n-té závorky v awk
« kdy: 27. 01. 2023, 08:26:38 »
Hmm, ja pouzivam awk uz tiez nejaku dobu a zatial som v nom nic podstatne nepostradal. Prave pre jeho jednoduchost preferujem jeho pouzitie.
Tazatel by nemal problem, keby si vyhladal v manuali, alebo vygooglil co potrebuje. Tie ostatne vylevy co tam popisal, su uplne mimo.   

153
Software / Re:Určení obsahu n-té závorky v awk
« kdy: 26. 01. 2023, 00:04:04 »
Predpokladam, ze pouzivas gawk. Potom na ziskanie stringu ktory zodpoveda celemu regularnemu vyrazu a substringov, ktore zodpovedaju uzatvorkovanym podvyrazom treba pouzit treti argument funkcie match() t.j. array:
match(string, regexp, array)
Najlepsie ked si pozries gawk manual:
https://www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents

154
Studium a uplatnění / Re:Studium IT na vysoké
« kdy: 14. 01. 2023, 08:59:25 »
Argument proti je jednoduchy: za povedzme 1 rok snahy sa bezne sikovny clovek moze naucit vsetko zaujimave, co mu povedzme studium informatiky na Matfyze ponuka. Zvysne 4 roky je premarneny cas.

...
Fojaky, databazy, UI, nejake alternativne programovanie, statistika. Plus povedzme Fourierova transformacia.

Este nieco, co nie je trivalne a je zaujimave niekoho napada? :)

Tak ty so svojim zjednodusovanim, asi tiez patris k tym vedomostami nezatazenym stastlivcom, ktorym sa podarilo zamestnat v IT  :)
 
keby si chodil na VS, tak by si vedel ze tam nebolo nic trivialne. Ti co uz o tom dost vedia, aby sa zviditelnili casto pouzivaju toto slovo ze to je "trivialne", ale pre tych co o tom vedia uplne hovno to trivialne vobec nie je.

Tak si teda zober cim vsetkym dneska student musi prejst:
zaklady:
linearna algebra, maticovy pocet, matematicka analyza funkcii jednej a viac premennych, diferencialne rovnice, numericke metody, linearne programovanie, nelinearne programovanie, pravdepodobnost+ statistika+nahodne provcesy, ...
teoreticka informatika a teoria zlozitosti
aplikacny software: matlab, R
programovanie proceduralne + objektove: python, C/C++, Java
programovanie strojove: assembler
programovanie funkcionalne + logicke: LISP, Scheme, alebo Haskell, Prolog
databazy: SQL
...
teraz ma viac nenapada
a daj to za rok
Chybí tam přinejmenším teorie množin, diskrétní matematika a obecná algebra. Takže to bude nejméně na rok a půl  ;D
Ano na TeMno, algebru a diskretnu matematiku som zabudol a mozno aj ine veci ...

155
Studium a uplatnění / Re:Studium IT na vysoké
« kdy: 13. 01. 2023, 21:11:35 »
Argument proti je jednoduchy: za povedzme 1 rok snahy sa bezne sikovny clovek moze naucit vsetko zaujimave, co mu povedzme studium informatiky na Matfyze ponuka. Zvysne 4 roky je premarneny cas.

...
Fojaky, databazy, UI, nejake alternativne programovanie, statistika. Plus povedzme Fourierova transformacia.

Este nieco, co nie je trivalne a je zaujimave niekoho napada? :)

Tak ty so svojim zjednodusovanim, asi tiez patris k tym vedomostami nezatazenym stastlivcom, ktorym sa podarilo zamestnat v IT  :)
 
keby si chodil na VS, tak by si vedel ze tam nebolo nic trivialne. Ti co uz o tom dost vedia, aby sa zviditelnili casto pouzivaju toto slovo ze to je "trivialne", ale pre tych co o tom vedia uplne hovno to trivialne vobec nie je.

Tak si teda zober cim vsetkym dneska student musi prejst:
zaklady:
linearna algebra, maticovy pocet, matematicka analyza funkcii jednej a viac premennych, diferencialne rovnice, numericke metody, linearne programovanie, nelinearne programovanie, pravdepodobnost+ statistika+nahodne provcesy, ...
teoreticka informatika a teoria zlozitosti
aplikacny software: matlab, R
programovanie proceduralne + objektove: python, C/C++, Java
programovanie strojove: assembler
programovanie funkcionalne + logicke: LISP, Scheme, alebo Haskell, Prolog
databazy: SQL
...
teraz ma viac nenapada
a daj to za rok

156
Studium a uplatnění / Re:Práca IT vo Švajčiarsku
« kdy: 03. 01. 2023, 15:38:31 »
A tak se stava, ze v retezcich se zbozim prodavanym v ruznych zemich mame ty jednotne cenovky s cenami pro jednotlive staty.
Prikladmo:
D: 2 EUR
ostatni zeme, kde se plati EUR (A, SK, NL, ...): 2,50 EUR
a prikladmo taky CZ, kde ta vec za nemecke 2 EUR stoji 70 CZK (1 EUR = 35 CZK, jako fakt?).


Posledni kapkou pro mne bylo shaneni kabatu. Ceska cena v "podnikove" prodejne 7999 CZK, pod nalepenou cenovkou byla originalni cenovka z vyroby 249 EUR.
Kurz EUR/CZK v podani zahranicniho obchodnika pro "nas specificky trh" je krasnych 32 CZK/EUR. Tedy s prirazkou minimalne 20%.
Neni to tak trosicku odrb? Kde jsou kuci z Prahee a jejich boj proti nefer smenarnikum?

Na Slovensku to bolo pred prechodom z Koruny na Euro tiez podobne zle. A preto vobec nerozumiem tomu, preco CR este nepresla na Euro.

157
Studium a uplatnění / Re:Práca IT vo Švajčiarsku
« kdy: 19. 12. 2022, 19:42:51 »
.. byl po nastěhování sousedy dvakrát taktně upozorněn že má "špinavé auto". Opakovaně to pustil z hlavy až jednou po příchodu odkudsi zjistil, že mu ho kdosi umyl. Vypadá to možná na první pohled hezky, ale podle místních kolegů z práce se kterými věc následně konzultoval, v té ulici už navždy bude za burana z východu kterému "muselo být místními zabráněno v tom, aby svým zapraseným autem narušoval obrázek čisté ulice".
Ale tak on aj buran bol ked ho opakovane susedia na to upozornovali, ze im to vadi a on ich ignoroval, jak je to zvykom tu.
To je krasny priklad jak su ti ludia tam oproti nam z vychodnej europy dobrosrdecni a kultivovani. Tu by mu skor to auto poskodili ako umyli.

158
Ucenie sa do roboty budem musiet ajtak investovat z mojho casu. Bojim sa ze nastupim na part time, budem lopatit a studovat, skoncim studium, dajme tomu ze nastupim na fulltime, a potom sa uz v zivote nedostanem na rozumny plat
...
V praci sa popritom co nieco robis aj ucis. Co sa tyka platu, nikdo ti na zaciatku viac neda, ked zatial nic nevies. Ako budes popri praci postupne ziskavat skusenosti, budes mat sancu ziskat aj vyssi plat. Ale aj zvysenie platu si budes musiet vybavit sam, nakolko v mnohych firmach sami od seba moc plat nezvysuju.
 
Podla toho co pises to vyzera tak, ze este nevies co chces.

A aky obor vlastne studujes ?

159
vsetci co hladaju part time chcu studenta(RH, siemens napr)(co zatial som), ale studium + part time je proste pre mna nepredstavitelne(kedy cas na moje veci?)
Rozne zaujmy sa casom menia. Co si teraz myslis, ze jedine to ta bavi, ta moze za par rokov omrziet, alebo ta zacne bavit nieco ine. Myslim ze mas dost nerealne predstavy a zabijas teraz cas robenim toho co prave robit netreba. Podla mna to co nazyvas cas na svoje veci je zabity cas. Ja by som ti radil odlozit to, venovat sa skole aspon v takom rozsahu aby ta odtial nevyhodili a popri skole si najst pracu v solidnej firme (napr. ten Siemens). Tam si mozes rozsirit obzory a naucit sa nieco, co ta v buducnosti uzivi. Cas na svoje veci budes mat napriklad cez prazdniny ked dorobis skusky, napr. v lete za 2-3 mesiace sa da toho stihnut velmi vela. 

160
Vývoj / Re:Načtení 2D pole v C
« kdy: 23. 11. 2022, 12:44:37 »
..
Dik za vsetky postrehy a hinty.
To ze v tom mojom zdrojaku je vsetko spolu nam*dane v mainu som pisal v predoslom komente, ze by to bolo treba rozbit do funkcii, ale nakolko tazatel nedava feedback nedavalo mi to zmysel.
Ze ma C standardnu funkciu getline() som doteraz vobec nevedel, asi to bude nejaka novinka o ktorej neviem, lebo C nepouzivam. Urcite tu funkciu vyskusam.

VELKE DIK za prilozeny kod. Videt ze si si s tim dal hodne namahy. Este som ho neskusal, ale na prvy pohlad vyzera ze to je skor advanced level ako pre zaciatocnika. Vyskusam si ho a prestudujem.

161
Vývoj / Re:Načtení 2D pole v C
« kdy: 23. 11. 2022, 03:45:08 »
Ahoj, pár postřehů z rychlíku

1) Když deklaruješ proměnnou, tak ji co nejdříve také inicializuj a nečekej na chvíli, kdy ji budeš chtít použít. Velmi lehce se na to zapomíná a následky mohou být neblahé. Obzvláště to platí pro pointery!
2) Pokud nejsi schopný zaručit, že ti funkce neselže, pak vždy kontroluj alespoň její návratovou hodnotu, pokud něco vrací. V tomto případě se to týká funkce fopen( ), protože v případě, že se něco provede se souborem, který má otevřít (bude smazán, přejmenován, atd...) koleduješ si - v lepším případě - o segfault o pár řádku níže.

já chápu, že toto je studijní kód začátečníka. Přesto z vlastní zkušenosti považuji za důležité na to upozornit. Důsledky podobných opomenutí se v rozsáhlejším a komplexnějším kódu velmi špatně hledají. A nestačí o tom jen vědět, je potřeba si to vštípit do krve hned od začátku. Věř mi, že ti to hodně časem ulehčí život.

3) Proměnná i je zbytečná. Jenom ji inkrementuješ a a pak přiřadíš do max_i. Popřemýšlej, zda není lepší pracovat rovnou s max_i a i zrušit.
4) Navrhuji ti, abys přesunul podmínku max_j < j až za vnitřní cyklus. To proto, že V současné chvíli testuješ max_j proti všem pozicím elementů v řádku a to v každém cyklu opakovaně. Ale já bych řekl, tebe určitě zajímá, zda max_j neni náhodou menší než celkový počet elementů v řádku. A to budeš vědět až cyklus skončí.   

Tyhle nedostatky přímo funkčnost neovlivní, ale jednak znamenají plýtváním zdrojů mašiny (časem procesoru a pamětí) a jednak hrubě znesnadní čtení kódu v případě rozsáhlejšího souboru. No jen si představ jak by se to četlo, když by jsi měl těch vnořených cyklů několik a byly o něco delší.

5) Pokud vyloženě není tvým záměrem zjišťovat, kolik řádků a kolik elementů v nich je ve vstupu navíc (alespoň v původním zadání o tom nic nebylo), tak já osobně bych z cyklu vyskočil, jakmile bych dosáhl MAX_COLS  nebo MAX_ROWS. Tím si kód zpřehledníš a zjednodušíš, a odpadnou ti ty korekce před výpisem pole.

AHOJ A DIKY ZA VYBORNE POSTREHY

2) navratovu hodnotu fpopen() som osetril
4) max_j < j som tiez dal az za vnutorny cyklus
5) kvoli kontrole bolo mojim zamerom vypisat aj kolko riadkov a stlpcov ma vstupny subor.

Normalne by som nedeklaroval vsetky premenne na zaciatku main(), ale pomocne premenne deklaroval az na mieste kde ich idem pouzit, napr.:  for (int i = 0; ...)
Dalej by som na jednotlive casti urobil samostatne funkcie, t.j.:
- funkciu ktora nacita nazov suboru z command line argumentu programu,
- funkciu ktora nacita data zo suboru do pola
- funkciu ktora vypise obsah pola

Dalo by sa na tom este dost popracovat, ale tazatel tu nedava k tomu ziadny feedback  :( takze to nema vyznam.

Pripajam zmeneny zdrojak

matica.c
Kód: [Vybrat]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ROWS 100
#define MAX_COLS 100
#define MAX_LINE_LENGTH 256

int main()
{
    FILE *fp;
    char file_name[MAX_LINE_LENGTH] = "matrix.dat";
    char data_line[MAX_LINE_LENGTH];
    char *matrix_element;
    int i, j, max_i, max_j;
    int matrix[MAX_ROWS][MAX_COLS] = { 0 };

    if (!(fp = fopen(file_name,"r"))) {
        printf("ERROR: file \"%s\" not found !\n", file_name);
        return 1;
    }

    printf("Reading data from the file \"%s\":\n\n", file_name);
    max_j = 0;
    i = 0;
    while (fgets(data_line, MAX_LINE_LENGTH, fp) != NULL) {
        // Remove trailing \n
        data_line[strcspn(data_line, "\n")] = 0;

        // split line into matrix elements
        matrix_element = strtok(data_line, ",;\t ");
        j = 0;
        while(matrix_element != NULL) {
            printf("%s ", matrix_element);
            // populate matrix
            if ((i < MAX_ROWS) && (j < MAX_COLS)) {
                matrix[i][j] = atoi(matrix_element);
            }
            j++;
            matrix_element = strtok(NULL, ",;\t ");
        }
        if (max_j < j) max_j = j;
        printf("\n");
        i++;
    }
    max_i = i;
    fclose(fp);

    printf("\n..Done.\n\n");

    printf("Data file contains %d rows and %d columns\n\n", max_i, max_j);

    // eventually, adapt maximum indexes to the size of the matrix
    if (max_i > MAX_ROWS) {
        printf("WARNING: due to the declared size, matrix can only store\n"
               "         %d rows of a total of %d rows from the file.\n\n",
               MAX_ROWS, max_i);
        max_i = MAX_ROWS;
    }
    if (max_j > MAX_COLS) {
        printf("WARNING: due to the declared size, matrix can only store\n"
               "         %d columns of a total of %d columns from the file.\n\n",
               MAX_COLS, max_j);
        max_j = MAX_COLS;
    }

    // now print the matrix
    printf("The matrix is:\n\n");
    for (i = 0; i < max_i; i++) {
        for (j = 0; j < max_j; j++) {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");
    }

    return 0;
}

162
Vývoj / Re:Načtení 2D pole v C
« kdy: 22. 11. 2022, 17:26:46 »
Tu je fix predosleho programu:

ocakam dalsie code review  ;)

matrix.c
Kód: [Vybrat]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_ROWS 100
#define MAX_COLS 100
#define MAX_LINE_LENGTH 256

int main()
{
    FILE *fp;
    char data_line[MAX_LINE_LENGTH];
    char *matrix_element;
    int i, j, max_i, max_j;
    int matrix[MAX_ROWS][MAX_COLS] = { 0 };

    fp = fopen("matrix.dat","r");

    printf("Reading data from the file:\n\n");
    max_j = 0;
    i = 0;
    while (fgets(data_line, MAX_LINE_LENGTH, fp) != NULL) {
        // Remove trailing \n
        data_line[strcspn(data_line, "\n")] = 0;

        // split line into matrix elements
        matrix_element = strtok(data_line, ",;\t ");
        j = 0;
        while(matrix_element != NULL) {
            printf("%s ", matrix_element);
            // populate matrix
            if ((i < MAX_ROWS) && (j < MAX_COLS)) {
               matrix[i][j] = atoi(matrix_element);
            }
            j++;
            if (max_j < j) max_j = j;

            matrix_element = strtok(NULL, ",;\t ");
        }
        printf("\n");
        i++;
    }
    max_i = i;
    fclose(fp);
    printf("..Done.\n\n");
    printf("Datafile contains %d rows and %d columns\n\n", max_i, max_j);

    // eventually, adapt maximum indexes to the size of the matrix
    if (max_i > MAX_ROWS) {
        printf("WARNING: matrix contains only %d rows of %d data rows from the file\n",
               MAX_ROWS, max_i);
        max_i = MAX_ROWS;
    }
    if (max_j > MAX_COLS) {
        printf("WARNING: matrix contains only %d columns of %d data columns from the file\n",
               MAX_COLS, max_j);
        max_j = MAX_COLS;
    }

    // now print the matrix
    printf("\nThe matrix is:\n\n");
    for (i = 0; i < max_i; i++) {
        for (j = 0; j < max_j; j++) {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Malo by to spracovat aj zubatu maticu, ze chybajuce prvky budu nuly
Kód: [Vybrat]
1  2
5  6  7  8

163
Vývoj / Re:Načtení 2D pole v C
« kdy: 22. 11. 2022, 00:14:02 »
Otázka zní, zda vůbec používat funkci scanf() a zda by nebylo lepší udělat si vlastní konečný automat a načítat si ta čísla po znacích. Je to dost triviální.

...
Přesto mi nepřijde to řešení s konečným automatem v takovémto případě špatné - vyřeší celkem jednoduše řádkování atd. Znaménko, whitespace apod. jsou úplně v pohodě, ošetřit "správně" invalidní znak je triviální, poskládání integeru z dekadického zápisu je triviální. Řešit hexa číslo je zvláštní, že se int nevejde do mezí typu je sice možné, ale co na tom vyřeší scanf()? Co když někdo napíše do vstupu stočíslicovou hodnotu?

Ked to je pre teba take trivialne tak sem ukaz funkcny kod s tym konecnym automatom  8)

164
Vývoj / Re:Načtení 2D pole v C
« kdy: 22. 11. 2022, 00:05:05 »
...
na to stejne prijde postupem casu jak bude sam experimentovat.
presne tak, ak bude s tym experimentovat i tie "kritické bezpečnostní chyby" si najde a odstrani sam   

165
Vývoj / Re:Načtení 2D pole v C
« kdy: 21. 11. 2022, 19:30:42 »
To neni produkcny kod ale iba ukazka JAK NA TO.

To je spíš ukázka, JAK TO NEDĚLAT.
...
Toto su malicherne nedostatky, ktore sa daju lahko osetrit. Rozne ucebnice a navody su plne takychto prikladov. Cielom je aby bol priklad kratky a lahko zrozumitelny a to aj je.
Keby si mal nejaku sebareflexiu, tak by si namiesto kritiky radsej postol vlastny funkcny kod, co sa ale nestalo.

Stran: 1 ... 9 10 [11] 12 13 ... 22