[ Príspevkov: 128 ] 1, 2, 3, 4, 5
AutorSpráva
Offline

Čestný člen
Čestný člen
lekcia v C++

Registrovaný: 16.05.05
Príspevky: 5075
Témy: 105 | 105
Bydlisko: Trenčín, SR
NapísalOffline : 01.12.2007 17:58 | lekcia v C++

Zdravím, moc sem neprispievam, tak sorry ak tu už niečo podobné vyriešené je, ale nenašiel som to. Potrebujem relatívne dosť nutne nasledovný program:
Kód:
Napište program, který bude provádět operace s maticemi obecných rozměrů obsahující celá čísla (použijte datový typ int). Program musí ošetřit situace, kdy matice nemají pro operaci vhodné rozměry nebo jiné vlastnosti dané podstatou operací. Implementujte tyto operace:

    * Součet matic
    * Součin matic

Hlavne si neviem dať rady s načítaním matice zo súboru. Moc moc ďakujem za pomoc.


_________________
    Intel Core i5-3450 | Gigabyte GA-Z77M D3H | Kingston 8GB 1600MHz DDR3 | Sapphire HD7850 2GB | 2x ADATA SX900 256GB | WD MyCloud 4TB | 27" AOC | Cooling by GELID
    Apple iPhone 6s 32GB | 2005 Ford Focus II 1.8TDCi Panther Black S-packet

    "My new computer came with Windows 7. Windows 7 is much more user-friendly than Windows Vista. I don't like that."
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 01.12.2007 19:17 | lekcia v C++

no pri nacitavani to mas tak ze nikdy nevies ako to nacitat pretoze najprv musis poznat sposob akym to ulozis.


_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Čestný člen
Čestný člen
lekcia v C++

Registrovaný: 16.05.05
Príspevky: 5075
Témy: 105 | 105
Bydlisko: Trenčín, SR
NapísalOffline : 01.12.2007 19:57 | lekcia v C++

No ja to potrebujem uložiť do dynamického viacrozmerného pola...aspoň teda tak som sa dozvedel od spolubývajúceho...proste má sa tam použiť funkcia malloc().


_________________
    Intel Core i5-3450 | Gigabyte GA-Z77M D3H | Kingston 8GB 1600MHz DDR3 | Sapphire HD7850 2GB | 2x ADATA SX900 256GB | WD MyCloud 4TB | 27" AOC | Cooling by GELID
    Apple iPhone 6s 32GB | 2005 Ford Focus II 1.8TDCi Panther Black S-packet

    "My new computer came with Windows 7. Windows 7 is much more user-friendly than Windows Vista. I don't like that."
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 01.12.2007 20:05 | lekcia v C++

ale myslel som ze ako sa to uklada do suboru. teda ako su v tom subore usporiadane jednotlive koeficienty. akym stylom su tam ulozene.
napr 1 2 3 4 5 6
alebo 1 2
3 4
5 6


_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Čestný člen
Čestný člen
lekcia v C++

Registrovaný: 16.05.05
Príspevky: 5075
Témy: 105 | 105
Bydlisko: Trenčín, SR
NapísalOffline : 01.12.2007 20:07 | lekcia v C++

Aha...no ono sa to ani nemusí ukladať do súboru, stačí to vypísať na obrazovku. Teda v zadaní úlohy to nie je, takže to treba len vypísať na obrazovku.

//EDIT: Teda takto: keď načítam (nejako, neviem ako) tie matice zo súborov a spravím súčet a súčin tak by ich malo potom vypísať v takom formáte ako boli zadané, teda mám vstupný súbor napríklad:
4 4 - rozmer matice
4 3 2 1
2 8 1 2
1 2 3 4
4 3 1 5
a druhý v rovnakom formáte len s inými číslami, tak potrebujem aby ich po tom súčte a súčine vypísalo takto isto ale so zmenenými hodnotami.


_________________
    Intel Core i5-3450 | Gigabyte GA-Z77M D3H | Kingston 8GB 1600MHz DDR3 | Sapphire HD7850 2GB | 2x ADATA SX900 256GB | WD MyCloud 4TB | 27" AOC | Cooling by GELID
    Apple iPhone 6s 32GB | 2005 Ford Focus II 1.8TDCi Panther Black S-packet

    "My new computer came with Windows 7. Windows 7 is much more user-friendly than Windows Vista. I don't like that."
Offline

Čestný člen
Čestný člen
lekcia v C++

Registrovaný: 16.05.05
Príspevky: 5075
Témy: 105 | 105
Bydlisko: Trenčín, SR
NapísalOffline : 01.12.2007 20:18 | lekcia v C++

Zatial mám niečo takéto, neviem kde môže byť chyba, vypíše mi to rozmer tej matice, ale keď už chcem pre kontrolu, či to načítalo správne, vypísať aj maticu, tak mi to padne:
Kód:
fr = fopen ("matice1.txt" , "r");
    fscanf (fr, "%d %d", &a, &b);
    printf ("\nRozmer matice 1:\n");
    printf ("%d %d", a, b);
    for (j=0; j<a; j++);{
        for (i=0; i<b; i++) {
            fscanf("%d",&pole1[j][i]);
            }
        }
    printf("\n\nNacitana matica: \n");
    printf("%d ",pole1[j][i]);


_________________
    Intel Core i5-3450 | Gigabyte GA-Z77M D3H | Kingston 8GB 1600MHz DDR3 | Sapphire HD7850 2GB | 2x ADATA SX900 256GB | WD MyCloud 4TB | 27" AOC | Cooling by GELID
    Apple iPhone 6s 32GB | 2005 Ford Focus II 1.8TDCi Panther Black S-packet

    "My new computer came with Windows 7. Windows 7 is much more user-friendly than Windows Vista. I don't like that."
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4 | 4
NapísalOffline : 01.12.2007 21:46 | lekcia v C++

oprav si:

fscanf("%d",&pole1[j][i]);

na toto:

fscanf(fr, "%d",&pole1[j][i]);


Offline

Čestný člen
Čestný člen
lekcia v C++

Registrovaný: 16.05.05
Príspevky: 5075
Témy: 105 | 105
Bydlisko: Trenčín, SR
NapísalOffline : 02.12.2007 21:55 | lekcia v C++

No takže načítanie, aj sčítanie a násobenie už funguje, ale potreboval by som vedieť ako zistím či sa nachádza submatica v matici. Teda či je súčasťou matice o rozmeroch povedzme 4x4 submatica s rozmermi napr. 2x2. Díki moc :)


_________________
    Intel Core i5-3450 | Gigabyte GA-Z77M D3H | Kingston 8GB 1600MHz DDR3 | Sapphire HD7850 2GB | 2x ADATA SX900 256GB | WD MyCloud 4TB | 27" AOC | Cooling by GELID
    Apple iPhone 6s 32GB | 2005 Ford Focus II 1.8TDCi Panther Black S-packet

    "My new computer came with Windows 7. Windows 7 is much more user-friendly than Windows Vista. I don't like that."
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 09.09.07
Prihlásený: 15.02.11
Príspevky: 24
Témy: 2 | 2
Bydlisko: bratislava
NapísalOffline : 16.12.2007 20:31 | lekcia v C++

cawte decka :)
potrebujem pomoct dokoncit program. chcem pomoct s mazanim zaznamu podla ID studenta. neviem si rady
nejak mi to hapruje vo velkom.
je to ten case 4 zvyrazneny tymi xxxxxxxxxxxxx :)
pomozete?
Kód:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

class zaznam
   {public
   char priezvisko[20], meno[20], telc[20], vk[20], ID[20];
   };
int main()
{
   zaznam x,y;

    FILE *f;
    int volba, i, c, t, koniec=0, user, zac_citania=0, volba=0, m, i;
    bool a;
    while (!koniec)
    {
        system("CLS");
        printf ("Menu\n");
        printf (" Zadaj volbu : \n");
        printf ("  1. novy zaznam \n");
        printf ("  2. vyhladanie kontaktu  \n");
        printf ("  3. zmena kontaktov  \n");
        printf ("  4. vymazanie kontaktu  \n");
        printf ("  5. vypis zaznamov \n");
        printf ("  0. koniec \n");
        if  (!scanf("%d", &volba))
        {
            user=0;
            fflush(stdin);
        }
        else
            user=1;
        switch (volba)
        {
            case 1:
            system("CLS");
            f=fopen ("zoznam.dat","a");
            printf ("Zadajte : \n");
            printf (" Zadaj meno  : ");
            scanf ("%19s",meno);
            fwrite (meno,sizeof(char),20,f);
            printf (" Zadaj priezvisko  : ");
            scanf ("%19s",priezvisko);
            fwrite (priezvisko,sizeof(char),20,f);
            printf (" Zadaj telefonne cislo : ");
            scanf ("%19s",telc);
            fwrite (telc,sizeof(char),20,f);
         printf (" Zadajte ID :");
         scanf ("%19s", ID);
         fwrite (ID,sizeof(char),20,f);
            fclose (f);
            getchar();
            break;
            case 2:
            system("CLS");
            printf ("zadaje podla coho chcete vyhladavat : \n");
            printf (" 1. podla mena \n");
            printf (" 2. podla priezviska \n");
            printf (" 3. podla telefonneho cisla \n");
         printf (" 4. podla ID \n");
            scanf("%d", &volba);
            f=fopen("zoznam.dat","r");
            switch (volba)
            {
                case 1:
                system("CLS");
                printf(" Zadaj meno: ");
                scanf("%19s",meno);
                i=-1;
                a=false;
                while (c=getc(f),feof(f)==0)
                {
                    i++;
                    fseek(f,60*i,SEEK_SET);
                    fread(vk,sizeof(char),20,f);
                    if (strcmp(vk,meno)==0)
                    {
                        printf ("Najdeny zaznam : \n");
                        printf("%s\n",vk);
                        fseek(f,60*i+20,SEEK_SET);
                        fread(priezvisko,sizeof(char),20,f);
                        printf("%s\n",priezvisko);
                        fseek(f,60*i+40,SEEK_SET);
                        fread(telc,sizeof(char),20,f);
                        printf("%s\n",telc);
                  fseek(f,60*i+60, SEEK_SET);
                  fread(ID,sizeof(char),20,f);
                  printf("%s\n",ID);
                        a=true;
                    }
                }
                if (!a)
                {
                    printf (" hladana volba nebola najdena !");
                }
                getchar();
                getchar();
                break;
                case 2:
                system("CLS");
                printf("zadaj priezvisko: ");
                scanf("%19s",priezvisko);
                i=-1;
                a=false;
                while (c=getc(f),feof(f)==0)
                {
                    i++;
                    fseek(f,20+60*i,SEEK_SET);
                    fread(vk,sizeof(char),20,f);
                    if (strcmp(vk,priezvisko)==0)
                    {
                        fseek (f,60*i,SEEK_SET);
                        fread (meno,sizeof(char),20,f);
                        printf ("Najdeny zaznam : \n");
                        printf ("%s\n",meno);
                        printf ("%s\n",vk);
                        fseek (f,60*i+40,SEEK_SET);
                        fread (telc,sizeof(char),20,f);
                        printf ("%s\n",telc);
                  fseek(f,60*i+60, SEEK_SET);
                  fread(ID,sizeof(char),20,f);
                  printf("%s\n",ID);
                        a=true;
                    }

                }
                if (!a)
                {
                    printf (" hladana volba nebola najdena !");
                }
                getchar();
                getchar();
                break;
                case 3:
                system ("CLS");
                printf ("Zadaj telefonne cislo: ");
                scanf ("%19s",telc);
                i=-1;
                a=false;
                fseek (f,0,SEEK_END);
                t=ftell(f)/60;
                while (feof(f)==0 && t>i+1)
                {
                    i++;
                    fseek(f,40+60*i,SEEK_SET);
                    fread(vk,sizeof(char),20,f);
                    if (strcmp(vk,telc)==0)
                    {
                        fseek(f,60*i,SEEK_SET);
                        fread(priezvisko,sizeof(char),20,f);
                        printf ("Najdeny zaznam : \n");
                        printf("%s\n",priezvisko);
                        fseek(f,60*i+20,SEEK_SET);
                        fread(meno,sizeof(char),20,f);
                        printf("%s\n",meno);
                        printf(" %s\n",vk);
                  fseek(f,60*i+60, SEEK_SET);
                  fread(ID,sizeof(char),20,f);
                  printf("%s\n",ID);
                        a=true;
                    }
                }
                if (!a)
                {
                    printf (" hladana volba nebola najdena !");
                }
                getchar();
                getchar();
                fclose(f);
                break;
            case 4:
                system ("CLS");
                printf ("Zadaj ID: ");
                scanf ("%19s",ID);
                i=-1;
                a=false;
                fseek (f,0,SEEK_END);
                t=ftell(f)/60;
                while (feof(f)==0 && t>i+1)
                {
                    i++;
                    fseek(f,40+60*i,SEEK_SET);
                    fread(vk,sizeof(char),20,f);
                    if (strcmp(vk,ID)==0)
                    {
                        fseek(f,60*i,SEEK_SET);
                        fread(priezvisko,sizeof(char),20,f);
                        printf ("Najdeny zaznam : \n");
                        printf("%s\n",priezvisko);
                        fseek(f,60*i+20,SEEK_SET);
                        fread(meno,sizeof(char),20,f);
                        printf("%s\n",meno);
                        printf(" %s\n",vk);
                  fseek(f,60*i+60, SEEK_SET);
                  fread(ID,sizeof(char),20,f);
                  printf("%s\n",ID);
                  fseek (f,60*i+40,SEEK_SET);
                        fread (telc,sizeof(char),20,f);
                        printf ("%s\n",telc);
                        a=true;
                    }
                }
                if (!a)
                {
                    printf (" hladana volba nebola najdena !");
                }
                getchar();
                getchar();
                fclose(f);
                break;
            }
            break;
            case 3:
            system("CLS");
            f=fopen ("zoznam.dat","a");
            printf("zadajte kontakt ktory chcete zmenit\n");
            printf(" Meno: ");
            scanf("%19s",meno);
            printf(" Priezvisko: ");
            scanf("%19s",priezvisko);
            printf(" Telefonne cislo: ");
            scanf("%19s",telc);
         printf(" ID: ");
            scanf("%19s",ID);
            fclose(f);
            f=fopen("zoznam.dat","rb+");
            i=-1;
            while (c=getc(f),feof(f)==0)
            {
                i++;
                fseek(f,60*i,SEEK_SET);
                fread(vk,sizeof(char),20,f);
                if (strcmp(vk,meno)==0)
                {

                    fseek(f,60*i+20,SEEK_SET);
                    fread(vk,sizeof(char),20,f);
                    if (strcmp(vk,priezvisko)==0)
                    {
                        fseek(f,60*i+40,SEEK_SET);
                        fread(vk,sizeof(char),20,f);
                        if (strcmp(vk,telc)==0)
                        {
                     fseek(f,60*i+60,SEEK_SET);
                     fread(vk,sizeof(char),20,f);
                     if (strcmp(vk,ID)==0)
                     {      
                        printf (" Zadajte nove parametre : \n");
                        printf(" Meno: ");
                        scanf("%19s",meno);
                        printf(" Priezvisko: ");
                        scanf("%19s",priezvisko);
                        printf(" Telefonne cislo: ");
                        scanf("%19s",telc);
                        printf(" ID: ");
                        scanf("&19s",ID);
                        fseek(f,60*i,SEEK_SET);
                        fwrite(meno,sizeof(char),20,f);
                        fseek(f,60*i+20,SEEK_SET);
                        fwrite(priezvisko,sizeof(char),20,f);
                        fseek(f,60*i+40,SEEK_SET);
                        fwrite(telc,sizeof(char),20,f);
                        fseek(f,60*i+60, SEEK_SET);
                        fwrite(ID,sizeof(char),20,f);
                     }
                  }
                    }
                }
            }
            getchar();
            fclose(f);
            break;
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx case 4;
 system("CLS");
            f=fopen ("zoznam.dat","a+");
            printf("zadajte kontakt ktory chcete vymazat\n");
         printf(" ID: ");
         scanf("%19s",ID);
         fseek(f,0,SEEK_SET);

            fclose(f);
            break;*/
            case 5:
            system("CLS");
            f=fopen("zoznam.dat","r");
            printf ("Ulozene kontakty : \n");
            while
            (fread(meno,sizeof(char),20,f) &&
            fread(priezvisko,sizeof(char),20,f) &&
            fread(telc,sizeof(char),20,f) &&
         fread(ID,sizeof(char),20,f))
            {
                printf("  %s,", meno);
                printf("  %s,", priezvisko);
                printf("  %s,", telc);
            printf("  %s,\n", ID);
            }
            if (f==NULL)
            {
                printf (" hladana volba nebola najdena ");
                }
            fclose(f);
            getchar();
            getchar();
            break;
            case 0:
            koniec=1;
            getchar();
            break;
        }
    }
}

////////////////////
///VYRIESENE///
////////////////////


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.06.07
Prihlásený: 06.05.13
Príspevky: 421
Témy: 4 | 4
NapísalOffline : 17.12.2007 11:13 | lekcia v C++

urob si to tak, ze na zaciatku si nadefinuj:

zaznam pole[100];

a do tohto pola si budes ukladat vsetky tie udaje;

- nacitavat (zo suboru) budes do tohto pola
- ukladat budes z tohto pola do suboru
- vyhladavat len vramci tohto pola
- mazat znamena iba vyradit prvok z tohto pola a zapisat pole do suboru;

Ty robis vsetko cez subor, a tota struktura/trieda zaznam Ti je absolutne nanic;
Potrebujes sa naucit robit aspon pomocou pola (a potom pomocou spojkoveho zoznamu)

Ak by si to predsa len chcel robit dalej pomocou zoznamu, tak musis premenovat subor zoznam.dat na zoznam.res, otvorit ho na citanie a kopirovat vsetky zaznamy do zoznam.dat okrem toho jedineho.


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 16.02.2008 2:19 | lekcia v C++

Osobne by som take veci neriel pokial programko nie je povinne. Ak si si ho zvolil tak makaj, ale nie nech ti ludia poslu hotovy zdrojak a este v C ci C++. Pokial viem, tak na skolach je pascal (strednych).


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 02.03.08
Prihlásený: 02.03.08
Príspevky: 1
Témy: 0 | 0
NapísalOffline : 02.03.2008 23:05 | lekcia v C++

prosim kto mi pomoze mam tu jeden priklad a neviem ho doriesit


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 03.03.2008 12:33 | lekcia v C++

ja mam tiez priklad a co?spammer
radsej sprav novu temu s tym prikladom kde ho popises .


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 30.03.2008 11:30 | lekcia v C++

Caute dlhsie som tu nebol, a uz som tu znovu s dalsim problemom..:( Ide o triediace algoritmy.
Zadanie: Porovnajte efektívnosť dvoch algoritmov triedenia: Bubble sort a Quick sort. Zhodnoťte, či sa teoretická zložitosť rovná empirickým výsledkom. Tieto dva som si sam zvolil.
Zdrojové kódy:
Bubble sort: malo by to bat asi takto co som zistil:

Kód:
void BubbleSort(int data[],int pocet)
{ int i,j;
for(i=1; i<pocet; i++) // fazy triedenia
for(j=počet-1; j>=1; j--) // prebublavanie
if(data[j]<data[j-1])
SWAP(data[j],data[j-1]);
}



Quick sort: malo by to bat asi takto co som zistil:

Kód:
void QuickSort(int data[], int lavy, int pravy)
{
if i=lavy, j=pravy, p=data[(lavy + pravy)/2];
do{
while(data[i]<p)i++;
while(p<data[j])j--;
if(i<=j)
{ SWAP(data[i],data[j]);
i++; j--;
}
}while(i<=j);
QuickSort(data,lavy,j);
QuickSort(data,i,pravy);
}}


Co nato hovorite su to dobre napisane algoritmy?


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 30.03.2008 12:29 | lekcia v C++

Kód:
void BubbleSort(int data[],int pocet)
{ int i,j;
for(i=1; i<pocet; i++) // fazy triedenia
for(j=počet-1; j>=1; j--) // prebublavanie
if(data[j]<data[j-1])
SWAP(data[j],data[j-1]);
}
zmena
Kód:
void BubbleSort(int data[],int pocet)
{ int i,j;
for(i=1; i<pocet; i++) // fazy triedenia
for(j=počet-1; j>=i; j--) // prebublavanie
if(data[j]<data[j-1]) SWAP(data[j],data[j-1]);
}


_________________
getch();?{readkey;?} na konci? !A naco! Riesenie je (Alt+F5)
99% pochopí a shaggy je druhá kategória
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 01.04.2008 8:35 | lekcia v C++

Ako sa da merat cas?
Malo by to byt cez kniznicu:
Kód:
#include <time.h>

A prikaz bude vyzerat ako?


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 02.09.05
Prihlásený: 17.11.10
Príspevky: 154
Témy: 1 | 1
NapísalOffline : 01.04.2008 12:12 | lekcia v C++

http://www.sallyx.org/sally/c/c20.php


_________________
Múdry nie je ten, čo veľa vie, ale ten, kto vie, čo je treba. (Thomas Alva Edison)
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 02.04.2008 7:50 | lekcia v C++

dik za super straku, ale nenasiel som tam ako by som nieco odmeral (potrebujem stopky ktore my budu merat na tisiciny sekundy....) a este aj potrebujem generator nahodnych cisiel

vsade som sa docital ze sa to roby:
cas1
cas2
vysledok cas2 - cas1
ale neviem ako to ma SPRAVIT

dasa to tu niekde vycitat?
Kód:
  clock_t c1, c2;
    cout << "obycajne vyhladavanie: ";
    c1 = clock();
    for (i = 0; i < hladanych; i++)
        if (NajdiCislo(hladane[i], cisla, pocet) == -1) nenajdenych++;
        else najdenych++;
    c2 = clock();
    cout << najdenych << " najdenych, " << nenajdenych << " nenajdenych";
    cout << " (trvanie: " << (c2 - c1) / CLK_TCK << " s)\n";


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 02.04.2008 10:07 | lekcia v C++

inak tu je zadanie co som dostal co mam spravit a neviem stym pohnut neviem ako to mam pozliepat ten program...
http://www.navrchol.sk/zadanie.pdf
Jednotlive algoritmy mam:
Bubble sort:
Kód:
void BubbleSort(int data[],int pocet)
{ int i,j;
for(i=1; i<pocet; i++) // fazy triedenia
for(j=počet-1; j>=1; j--) // prebublavanie
if(data[j]<data[j-1])
SWAP(data[j],data[j-1]);
}


Quick sort:
Kód:
void QuickSort(int data[], int lavy, int pravy)
{
if i=lavy, j=pravy, p=data[(lavy + pravy)/2];
do{
while(data[i]<p)i++;
while(p<data[j])j--;
if(i<=j)
{ SWAP(data[i],data[j]);
i++; j--;
}
}while(i<=j);
QuickSort(data,lavy,j);
QuickSort(data,i,pravy);
}}


chyba mi len funkcia na meranie casu a funkcia generator nahodnych cisel....:(


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 06.04.2008 10:34 | lekcia v C++

Postupil som uz dalej mam napisany cely kod len mam problem v triediacom algoritme Quick sort:

kde tu moze byt chyba?
Kód:
void QuickSort(int data[], int lavy, int pravy)
{
 if(lavy<pravy)
{
int i=lavy, j=pravy, p=data[(lavy + pravy)/2];
do{
while(data[i]<p)i++;
while(p<data[j])j--;
if(i<=j)
{ SWAP(data[i],data[j]);
i++; j--;
}
}while(i<=j);
QuickSort(data,lavy,j);
QuickSort(data,i,pravy);
}
}


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.03.08
Prihlásený: 07.02.10
Príspevky: 72
Témy: 9 | 9
NapísalOffline : 06.04.2008 10:40 | lekcia v C++

mrkni moju stranku mam tam jednoduche zdrojaky kde su prikazy na meranie casu aj na generovanie nahodnych cisel.
http://www.danciwo.ic.cz


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 06.04.2008 11:23 | lekcia v C++

super ale ten Quick sort som tam nenasiel


_________________
Notebook: ASUS N750JV: Windows 8.1 64bit, Intel(R) Core(TM) i7-4700HQ CPU 2.40 GHz, 12GB RAM (DDR3 1600 MHz), NVIDIA GeForce GT 750M 4GB VRAM + HD Graphics 4600, 750 GB HDD (7200 rpm), Blu-ray Reader.
Smartphone: Samsung Galaxy S5 mini
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.03.08
Prihlásený: 07.02.10
Príspevky: 72
Témy: 9 | 9
NapísalOffline : 06.04.2008 14:12 | lekcia v C++

Marek Adamec píše:
super ale ten Quick sort som tam nenasiel


v jazyku C mas preddefinovanu funkciu QUICKSORT, jedine co potrebujes je naprogramovat porovnavaciu funkciu ktore bude vracat 1, 0, -1. a pointer na tuto funkciu musis dat ako parameter tej funkcie.


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 30.04.2008 19:04 | lekcia v C++

DALSIA ULOHA: Sifrovanie VIGENERE
kdo vie mi poradit ako spravit program na sifrovanie...? zatial som sa dostal sem:

Kód:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<iostream.h>
using namespace std;


void zasifruj_vigenere(char text[255], char k[128])
{
   int i,j,E;
   
   
   for(int i=0;i<strlen(text);i++)
   for(int j=0;j<strlen(k);j++)
   E=text[i]+k[j];                         // sifrovanie
   if(E>122)                               //"navrat na zaciatok ASCII znakov"
   {E=E-26;}
   text[i]=char(E);                        //zapis vysledku ako char
 
}

void desifruj_vigenere(char text[255], char k[128])
{
     int i,j,D;
     
   for(int i=0;i<strlen(text);i++)
   for(int j=0;j<strlen(k);j++)
   D=text[i]-k[j];                         // desifrovanie
   if(D<97)                                //"navrat na koniec ASCII znakov"
   {D=D+26;}     
   text[i]=char(D);                        //zapis vysledku ako char
     
}

     
 int main()
 {
     char text [255];                  // dlzka testu
     char k [128];                     // dlzka kluca
     int i;
     int j;
     int E;
     int D;
     
     cout << "Zasifrovanie a desifrovanie VIGENERE" << endl;
     cout << "------------------------------------ \n" << endl;
     cout << "Zadaj text ktory chces zasifrovat:" << endl;
     cin >> text;
     cout << "Zadaj kluc podla ktoreho sa bude sifrovat:" << endl;
     cin >> k;
     
     zasifruj_vigenere(text,k);
     cout << "Zasifrovany text:"  <<endl;    // vypis textu
     
 
     
     desifruj_vigenere(text,k);
     cout << "Desifrovany text:"  << endl;   // vypis textu
 
 

 system("pause");   
 }


HELP !!!


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 13.05.2008 17:25 | lekcia v C++

tak po dlhsiom trapeni som to uz rozlustil..:)


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 29.06.2008 12:25 | lekcia v C++

potrebujem naprogramovat aby mi prograsm porovnal zlomky a usporiadal ich.... a vypisan na monitor... usporiadane.. toto som zacal a neviem sa pohnut dalej..:

Kód:
#include <stdlib.h>
#include <conio.h>
#include <iostream>
using namespace std;

void SWAP (float &a, float &b)
{float tmp=a;a=b;b=tmp;}

void BubbleSort(float pole[ ], int pocet)
{int i,j;
for(i=1; i<pocet; i++)
for(j=pocet-1; j>=i; j--)
if(pole[j]<pole[j-1])
SWAP(pole[j],pole[j-1]);}

struct zlomok {int pocet; int i; float pole; float citatel; float menovatel;};

int main()
{
int pocet;                 // pocet zlomkov
int i;
float citatel[pocet];      // citatel
float menovatel[pocet];    // menovatel
float pole[pocet];         // zlomok po vydeleni

cout<<"Zadaj pocet zlomkov: "<< endl;
cin >> pocet;
for(i=1;i<=pocet;i++)
{
cout<<"ZLOMOK "<<i<<" "<< endl;
cout<<"Zadaj citatela: "<< endl;
cin >> citatel[i];
cout<<"Zadaj menovatela: "<< endl;
cin >> menovatel[i];
pole[i]=citatel[i]/menovatel[i];      // vydelenie zlomku
cout<<"vysledok "<<pole[i]<<" "<< endl;
}
BubbleSort (pole,pocet);

cout<<"USPORIADANIE: "<< endl;

system("pause");
getch();
}


ako dosiahnem aby mi vypisalo usporiadane zlomky z bubble sortu?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 29.06.2008 23:32 | lekcia v C++

Do C++ sa moc nerozumiem, ale aspon ti poviem algoritmus... Bubblesort ti usporiada cleny v tom poli, takze ty ich potrebujes len zobrazit... Staci na to klasicky cyklus for... vyskusam to napisat v C(v tomto jazyku teraz pisem po prvykrat v zivote, takze nezarucujem spravnost) :D
Kód:
for (i=1; i<=pocet; i++)
{printf("pole[i])"}

asi zle, vsak? :) neviem, pre istotu hodim aj pascal, z toho si to budes vediet lahko odvodit...
Kód:
for I:=1 to pocet do writeln(Pole[I]);

inak je to pomerne jednoduche, len zobrazis jednotlive cleny pola, ked si vedel napisat Bubblesort tak toto by ti tiez nemalo robit problem :roll: :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.05.08
Prihlásený: 04.10.09
Príspevky: 21
Témy: 0 | 0
NapísalOffline : 30.06.2008 0:35 | lekcia v C++

Citácia:
for (i=1; i<=pocet; i++)
{printf("pole[i])"}


Bohužial, ale je tam chybyčka aj dve. Program s obrazovkov pracuje ako s textovým súborom (nie binárne), takže sa tu vstup a výstup formátuje, čiže namiesto printf("pole[i])") bude printf("%d", pole[i]). Môže byť aj %u pre neznamienkové (je to typ formátu pre dekadické čislo).
Tiež nemusia byť v tomto prípade svorkové zátvorky (je len jeden príkaz v cykle) a i, kt. sa inkrementuje môže začinať od nuly keďže aj nultý prvok v poli má vyhradenú pamäť (pole[0]). A inak ešte chýba bodkočiarka pre ukončenie príkazu.

Inak prečo radšej nepoužiť pre zoradenie funkciu qsort, kt. je aj pomerne rýchla. Funkčný prototyp je void qsort(void *radene_pole, size_t pct_prvkov, size_t vel_prvkov, int (*porov_fcia)(const void *, const void *));
Vyššie už bolo písane, že fcia musí splniť 3 podmienky...


Offline

Užívateľ
Užívateľ
lekcia v C++

Registrovaný: 27.09.07
Prihlásený: 31.12.15
Príspevky: 646
Témy: 233 | 233
Bydlisko: Dubnica nad...
Napísal autor témyOffline : 02.07.2008 22:07 | lekcia v C++

ja pouzivam co som sa naucil, len v skole na prednaske, tu je ten program opraveny...:)

Kód:
#include <stdlib.h>
#include <conio.h>
#include <iostream>
using namespace std;

void SWAP (float &a, float &b)
{float tmp=a;a=b;b=tmp;}

void BubbleSort(float pole[ ], int pocet)
{int i,j;
//cout<<"bouble1"<<endl;
for(i=1; i<pocet; i++)
{
  for(j=pocet; j>=i; j--)
   {
   //cout<<"boubole2"<<endl;
   // cout<<pole[1]<<"<"<<pole[2]<<endl;
   // cout<<pole[j]<<"<"<<pole[j-1]<<endl;
    if(pole[j]<pole[j-1])
      {
     // cout<<"sw"<<endl;
      SWAP(pole[j],pole[j-1]);}
}
}
}
void vypisZlomky(float pole[ ], int pocet)
{int i;
   for(i=1;i<=pocet;i++)
   cout<<pole[i]<<endl;}

struct zlomok {int pocet; int i; float pole; float citatel; float menovatel;};

int main()
{
int pocet;                 // pocet zlomkov
int i;
float citatel[pocet];      // citatel
float menovatel[pocet];    // menovatel
float pole[pocet];         // zlomok po vydeleni

cout<<"Zadaj pocet zlomkov: "<< endl;
cin >> pocet;
for(i=1;i<=pocet;i++)
{
cout<<"ZLOMOK "<<i<<" "<< endl;
cout<<"Zadaj citatela: "<< endl;
cin >> citatel[i];
cout<<"Zadaj menovatela: "<< endl;
cin >> menovatel[i];
pole[i]=citatel[i]/menovatel[i];      // vydelenie zlomku
cout<<"vysledok "<<pole[i]<<" "<< endl;
}


BubbleSort (pole,pocet);

cout<<"USPORIADANIE:"<< endl;
vypisZlomky (pole,pocet);



system("pause");
getch();
}


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 19.09.08
Prihlásený: 08.10.11
Príspevky: 12
Témy: 1 | 1
NapísalOffline : 19.09.2008 16:28 | lekcia v C++

nazdar hoši...potreboval by som poradiť...mam za ulohu urobit program , ktorý by mi previedol čislo z desiatkovej sustavy do dvojkovej...jedine čo ma napadlo je delenie modulo...ono ti to vypiše zvyšok po deleni...čiže ked to delim dvoma tak bude iba 1 alebo 0...ale ako urobiť aby mi to delilo dalej? a ako to cele prevratiť? :/ stačia mi napady programček už zrobim :) diky moc..


 [ Príspevkov: 128 ] 1, 2, 3, 4, 5


lekcia v C++



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Mám sa učiť C ++/objective C/ C#?

v Assembler, C, C++, Pascal, Java

5

790

08.07.2014 20:40

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

K: PC Literaturu- C++/C#/java/python/ruby/RoR

v Kúpim

0

460

13.05.2014 18:16

expresado

V tomto fóre nie sú ďalšie neprečítané témy.

Hledá se programátor C/C++ pro vesmírné projekty (Praha)

v Ponuka práce

0

1331

10.05.2016 14:59

evolvsys

V tomto fóre nie sú ďalšie neprečítané témy.

rozdiel medzi Borland 3.1 C++ vs Net. C++

v Assembler, C, C++, Pascal, Java

4

617

20.07.2010 12:54

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Hladam hracov na C&C Generals Zero Hour

v Počítačové hry

10

1289

07.03.2007 19:22

Spirit

V tomto fóre nie sú ďalšie neprečítané témy.

Naučte se C++ za 21 dní + C++Builder 6

v Assembler, C, C++, Pascal, Java

18

2469

21.05.2010 21:08

Wpegb

V tomto fóre nie sú ďalšie neprečítané témy.

Čo mi treba na programovanie v C/C++

v Assembler, C, C++, Pascal, Java

17

1192

25.09.2011 18:14

reDo

V tomto fóre nie sú ďalšie neprečítané témy.

aky je rozdiel medzi C++ a Visual C++ ?

v Assembler, C, C++, Pascal, Java

8

2003

19.02.2011 22:46

vendo2

V tomto fóre nie sú ďalšie neprečítané témy.

Darujem knihy o programovaní (HTML, Java, Visual C++, C++ Builder, Android)

v Vymením a darujem

0

475

01.04.2019 11:20

tomasteicher

V tomto fóre nie sú ďalšie neprečítané témy.

Hladame 3x C/C++ Linux developer- projekt 11/2016-2/2017

v Ponuka práce

1

604

24.10.2016 15:28

michalesku

V tomto fóre nie sú ďalšie neprečítané témy.

C# alebo C++ appka/program na výpočty

v Assembler, C, C++, Pascal, Java

1

421

20.03.2015 22:36

walther

V tomto fóre nie sú ďalšie neprečítané témy.

Ako nastavit grafikuv AMD catalyst c.c.

v ATI/AMD grafické karty

17

1515

26.12.2013 11:38

walther

V tomto fóre nie sú ďalšie neprečítané témy.

C - Ako prekompilovať .c súbor do .exe?

v Assembler, C, C++, Pascal, Java

7

589

02.11.2012 18:47

MasterMatoSK

V tomto fóre nie sú ďalšie neprečítané témy.

program na projekt (C#, C++, pascal, java)

v Assembler, C, C++, Pascal, Java

2

872

12.03.2009 12:08

Svjatogor

V tomto fóre nie sú ďalšie neprečítané témy.

C# alebo C++ , ktore knizky na ucenie?

v Assembler, C, C++, Pascal, Java

20

1864

12.02.2011 0:12

The

V tomto fóre nie sú ďalšie neprečítané témy.

C&C Generals : Zero Hour - turnaj

v Počítačové hry

0

839

25.02.2009 20:18

k0t0l



© 2005 - 2024 PCforum, edited by JanoF