Avatar billede havmaage Juniormester
05. marts 2011 - 14:53 Der er 9 kommentarer og
1 løsning

for loop reverse at bruge i-- istedet for i++

Det piner mig lidt jeg ikke rigtig kan se hvad der er galt her, i bliver sat til 0 selvom jeg initalisere den med t som er 10 og så kører løkken ikke

static void Main(string[] args)

        {
            int t = 10;
           

            for (int i = t; i <= 1; i--)
            {
             
                Console.WriteLine("{0}\'n{1}", i, "er tallet");

            }
           
       
       
        }


Det er nok et eller andet logisk jeg har overset eller grunden kan være at man ikke kan initalisere i med andre int inde i for loop statement, Er der  nogen der ved hvordan det skal gøres
Avatar billede arne_v Ekspert
05. marts 2011 - 14:59 #1
Hos mig bliver løkken aldrig udført hvilket vil er at forvente: i sættes til 10 og derefter kørter man løkken så længe i er mindre end eller lig med 1.
Avatar billede arne_v Ekspert
05. marts 2011 - 14:59 #2
Tænkte du på >= fremfor <= ?
Avatar billede havmaage Juniormester
05. marts 2011 - 15:36 #3
Det virker med loop, nu vi er igang ( skal nok lægge flere point ) så er der lige en ting til der undrer mig lidt.

det jeg vil er at forkorte en brøk mest muligt og skrive den ud som  0,5 som er = 1/2
Det der med selve forkort ser ud til t virke, men når jeg vil repræsentere brøken som decimal ser det ud til den runder ned.

res bliver i dette tilfælde 0.0 (ville gerne at den gav 0,5  og så ved jeg ikke rigtig hvordan jeg skal repræsentere tallet i C#
      static void Main(string[] args)
        {

            int t = 10;
            int n = 20;

            for (int i = t; i > 1; i--)
            {

                if (t % i == 0 && n % i ==0)

                {
                    t = t / i;
                    n = n / i;
                    float res = t / n ;


                    Console.WriteLine("resultat er " +  res);
                }

            }


        }
Avatar billede havmaage Juniormester
05. marts 2011 - 15:37 #4
PS. variablen t er tæller og n er nævner
Avatar billede erikjacobsen Ekspert
05. marts 2011 - 15:38 #5
Når t og n er int er t / n en int ( i mange programmeringssprog )

Du skal selv be' om en kommatals-division, fx:

float res = (t*1.0) / n ;

eller

float res = (float)t / n ;
Avatar billede arne_v Ekspert
05. marts 2011 - 15:44 #6
float res = t / (float)n ;

eller nok bedre

double res = t / (double)n ;

float bruges ikke ret meget idag.

Men hvorfor ikke udskrive t og n? Hvis du laver en floating point division, så behøver du jo ikke forkorte!
Avatar billede havmaage Juniormester
05. marts 2011 - 15:59 #7
Det er egenligt et forsøg på at repræsentere et rationelt tal som brøk ved hjælp af int eller double brøken skal være uforkortelig

kunne jo bare udskrive eller returnere 1/2 son en string, men det bliver svært at bruge denne til andre beregninger.
addition, subtraktion, multiplikation og division
Men hvis jeg skriver en seperat klasse kan jeg vel bare køre med de to t og n gennem alle funktionerne og vise resultatet som en string ?

Jeg er dig meget taknemlig for at du bruger lidt lørdag på det her.
Avatar billede arne_v Ekspert
05. marts 2011 - 16:12 #8
Du kan regne på en brøk der er gemt som 2 int.

En klasse som encapsulater tæller og nævner med operator overload må være måde at gribe det an på i C#.

Måske er der allerede noget et sted i .NET (F#).
Avatar billede havmaage Juniormester
05. marts 2011 - 16:25 #9
Jeg tror jeg har tilstrækeligt til at komme videre med det her nu. Jeg siger dig mange tak for hjælpen, jeg tror lige jeg skal være lidt mere "kørende" i c# før jeg begiver mig ud i operator overload og den slags.
vil prøve at lav en klasse der kan udføre de forskellige brøk regninger ved hjælp at t og n variablerne så vil kigge på c.scarp-station i deres toturial om klasser og begynde derfra :-)
læg lige et svar.

God weekend
Avatar billede arne_v Ekspert
05. marts 2011 - 16:35 #10
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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