Avatar billede tast Nybegynder
12. august 1999 - 21:23 Der er 12 kommentarer og
1 løsning

One dimensional arrays-HJÆÆÆLP

Okay,- mit problem er at jeg ikke fatter en sk.. af dele af dette prog. som de forklarer i den bog jeg er ved at læse.

//rand()=41 18467  6334  26500  19169  15724  11478  29358  26962  24464 dette er random tal som list[i] indeholder.


min_vaerdi=32767;
    for(i=0;i<10;i++)
    if(min_vaerdi>list[i]) min_vaerdi=list[i]
Sådanne som jeg læser dette er, at hvis min_vaerdi(32767) er større end list[i] så skal list[i]´s værdi tillæges min_vaerdi,- MEN alle de rand() numre som i dette prog. bliver lavet er mindre en 32767, hvordan ved den at den lige skal snuppe 41, og ikke et af de andre tal? er det fordi 41 er det første tal i rækken? er der nogen speciel forklaring på at man lige nettop har valgt tallet 32767?


Denne her er helt sort for mig:

max_vaerdi=0;
    for(i=0;i<10;i++)
    if(max_vaerdi<list[i]) max_vaerdi=list[i];

Sådanne som jeg læser dette er, at hvis max_vaerdi er mindre end list[i] så skal list[i]´s værdi tillæges max_vaerdi, men....hvorfor snupper den 29358? ummidelbart skulle jeg tro at den ville tage det samme tal som min_vaerdien dvs 41.

Håber at der er en der kan hjælpe, da jeg står lidt i stampe.......

Tast.

Her er hele programmet:

# include <iostream>
# include <cstdlib>
using namespace std;

int main(){

    int i,min_vaerdi,max_vaerdi;
    int list[10];

    for (i=0;i<10;i++) list[i]=rand();
    for(i=0;i<10;i++) cout<<list[i]<<' ';
    cout<<"\n\n\n\n";

    //find minimum vaerdi
    min_vaerdi=32767;
    for(i=0;i<10;i++)
        if(min_vaerdi>list[i]) min_vaerdi=list[i]
        cout<<"minimum vaerdi er: "<<min_vaerdi<<'\n';

        max_vaerdi=0;
        for(i=0;i<10;i++)
            if(max_vaerdi<list[i]) max_vaerdi=list[i];
            cout<<"max vaerdi er: "<<max_vaerdi<<'\n';



        return 0;

}
Avatar billede 127144146281 Nybegynder
12. august 1999 - 21:36 #1
Jeg fatter ikke helt hvad det er du ikke fatter :-)

Men sådan som jeg tror du ikke ved hvad mener er at:

min_vaerdi=32767;
    for(i=0;i<10;i++)
    if(min_vaerdi>list[i]) min_vaerdi=list[i]

Her finder den den mindste værdi, altså:

Hvis list[i] er mindre end min_vaerdi så er min_vaerdi lig med list[i], og det forstsætter den så med

OG

max_vaerdi=0;
    for(i=0;i<10;i++)
    if(max_vaerdi<list[i]) max_vaerdi=list[i];

Her finder den den største værdi, altså:
Hvis list[i] er større end max_vaerdi så er max_vaerdi lig med list[i], og det forstsætter den så med

Avatar billede 127144146281 Nybegynder
12. august 1999 - 21:42 #2
Altså sådan (her min_vaerdi)

Først er min_vaerdi = 32767 //Det højst mulige tal

Så sammenligner den
Hvis min_vaerdi er støre end 41, så er min_vaerdi = 41

og

hvis min_vaerdi er støre end 18467 så er den støre end min_vaerdi og tilføjes så ikke

og

hvis min_vaerdi er støre end 6334 så er den støre end min_vaerdi og tilføjes så heller ikke

og

hvis min_vaerdi er støre end f.eks 5 så er min_vaerdi = 5 da den er mindre end min_vaerdi (som var 41)

Det kan godt være jeg snakker helt forbi dig, men som sagt så fatter jeg ike hvad du ikke fatter
Avatar billede tast Nybegynder
12. august 1999 - 22:36 #3
Jeg tror at vi snakker om det samme.

Dvs. at den kører alle værdierne igennem og så først derefter beslutter sig til hvilken værdi som passer på betingelsen?

Jeg troede at den tog en værdi af gangen, så den først tjekkede 41 og hvis denne værdi så passede på betingelsen så stoppede den,- Meeeennn sådn´ er det altså ikke......

Har jeg forstået dig ret?


ved du forresten hvorfor de lige har valg at min_vaerdi skulle være 32767, har det noget at gøre med hvilken værdi rand() højst kan give?


Tast
Avatar billede 127144146281 Nybegynder
12. august 1999 - 22:42 #4
det med 32767 er pga. Int datatypen

Og ja den kører det hele igennem, da den jo ikke kan vide om der findes en lavere værdi senere i array'et
For det kunne jo også være rand() retunerede:

18467  6334  26500  19169  15724  29358  26962  11478  24464  41  19169

Avatar billede 127144146281 Nybegynder
12. august 1999 - 22:48 #5
Hvad er det for en bog??

Jeg kan klart anbefale:

Ivor Hortons's Biginning C++ The complete language (fra WROX)

ca. 1000 sider, den går meget grundigt det hele igennem (også det du er ved at lave) den er på engelsk men det har jeg nu ikke selv noget imod.
Avatar billede 127144146281 Nybegynder
12. august 1999 - 23:01 #6
Avatar billede tast Nybegynder
12. august 1999 - 23:03 #7
Jeg læser en bog som hedder: C++ from the ground up, skrevet af Herbert Schildt.
Jeg burde havde været skeptisk da forfatteren havde skrevet "Learn C++ in 21 day´s"....Han glemte bare at skrive :::::::SUCKER:::::::, bogen er egentlig ok, tror jeg nok, jeg har ikke kikket i andre. Jeg syntes bare at der nogle gange mangler lidt forklaring(bogen skulle jo være beregnet på nybegyndere).

Tak for hjælpen, det bliver jo nok ikke sidste gang jeg skriver her.....

Jeg kan ikke rigtig give dig poient da du ikke har 'besvaret' så gør det....

Tast
Avatar billede 127144146281 Nybegynder
12. august 1999 - 23:15 #8
JEg kan vikeligt anbefalde den bog jeg nævnet ovenfor (DEN GÅR MEGET i dybden, og kommer igennem hele C++, og det er jo ANSI/ISO compilant kode som virler på både Win/Unix/Mange andre styresystemer
Avatar billede 127144146281 Nybegynder
12. august 1999 - 23:17 #9
Jeg er også ved at lære C/C++, kommet cirka halvvejs gennem bogen og jeg har forstået det hele indtil videre, jeg har også læst noget med en bog der hed noget med "C++ in 21 days" men den var ikke særlig grundig, hvilket denne bog er
Avatar billede tast Nybegynder
12. august 1999 - 23:38 #10
Jamn, det kunne jo være at jeg skulle ta´ og anskaffe mig den bog.....

Tast
Avatar billede 127144146281 Nybegynder
12. august 1999 - 23:43 #11
Du kan med fordel købe den på www.amazon.com (Meget biligere end i diverse boghandler i DK)

http://www.amazon.com/exec/obidos/ASIN/186100012X/qid=934494173/sr=1-9/002-3876462-3949247
Avatar billede tigerdyr Nybegynder
13. august 1999 - 12:52 #12
Tjaa... jeg har læst TYS C++ In21days, Visual C++ 5 - the complete reference, samt nogle små og meget dårlige bøger, men den ovennævnte bog (C++ from the ground up) er tilsyneladende god nok, for det er vores lære bog i C++ på skolen (Læser til datamatiker)

Anyway, har man interessen, får man alt det man har brug for til en hurtig start gennem TYSC++I21D.
Avatar billede 127144146281 Nybegynder
13. august 1999 - 14:43 #13
Men den bog jeg foreslår er ikke kun til Windows, den er til alle styresystem der har en ANSI/ISO compilant c++ compiler tilgængelig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester