Potenser och rötter
Använd pow, sqrt och liknande funktioner.
Potenser och rötter är en gratis lektion i C Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för C Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i C Academy innehåller totalt 4 lektioner.
Potenser och rötter
Två av de mest användbara verktygen i math.h är pow för att upphöja ett tal till en potens och sqrt för att beräkna en kvadratrot.
Båda arbetar med värden av typen double och returnerar ett resultat av typen double.
Funktionen pow
pow(base, exponent) beräknar basen upphöjd till exponenten.
Till exempel betyder pow(2, 3) 2 x 2 x 2, vilket är 8.
#include <stdio.h>
#include <math.h>
int main(void) {
double result = pow(2.0, 3.0);
printf("2^3 = %.0f\n", result);
return 0;
}Kvadrater med pow
För att kvadrera ett tal upphöjer Ni det till 2.
Här beräknar vi arean av ett kvadratiskt rum genom att kvadrera sidlängden.
#include <stdio.h>
#include <math.h>
int main(void) {
double side = 5.0;
double area = pow(side, 2.0);
printf("area = %.0f\n", area);
return 0;
}Bråkexponenter
pow accepterar även bråkexponenter. Att upphöja till 0.5 är samma sak som att ta kvadratroten.
Alltså är pow(9.0, 0.5) lika med 3.0.
#include <stdio.h>
#include <math.h>
int main(void) {
double r = pow(9.0, 0.5);
printf("9^0.5 = %.1f\n", r);
return 0;
}Funktionen sqrt
sqrt(x) returnerar kvadratroten ur x: det tal som multiplicerat med sig självt blir x.
Den är tydligare och snabbare än att använda pow(x, 0.5) när Ni bara behöver en kvadratrot.
#include <stdio.h>
#include <math.h>
int main(void) {
double r = sqrt(144.0);
printf("sqrt(144) = %.0f\n", r);
return 0;
}Negativa argument till sqrt
Kvadratroten ur ett negativt tal är inte ett reellt tal.
Om Ni anropar sqrt(-1.0) returneras ett specialvärde som kallas NaN (Not a Number). Kontrollera alltid att indata är noll eller positiv.
#include <stdio.h>
#include <math.h>
int main(void) {
double r = sqrt(-4.0);
printf("result = %f\n", r);
return 0;
}Kubikrötter med cbrt
För kubikrötter erbjuder math.h funktionen cbrt.
Till skillnad från sqrt fungerar cbrt även med negativa tal, eftersom varje reellt tal har en reell kubikrot.
#include <stdio.h>
#include <math.h>
int main(void) {
printf("%.0f\n", cbrt(27.0));
printf("%.0f\n", cbrt(-8.0));
return 0;
}Pythagoras sats
Potenser och rötter passar bra ihop inom geometrin. Längden på den längsta sidan i en rätvinklig triangel är kvadratroten ur summan av kvadraterna på de två andra sidorna.
Här beräknar vi hypotenusan i en 3-4-5-triangel.
#include <stdio.h>
#include <math.h>
int main(void) {
double a = 3.0, b = 4.0;
double c = sqrt(pow(a, 2.0) + pow(b, 2.0));
printf("hypotenuse = %.1f\n", c);
return 0;
}Hjälpfunktionen hypot
Det föregående mönstret är så vanligt att math.h innehåller hypot(a, b), som direkt returnerar hypotenusan.
Den är mer noggrann än att själv beräkna kvadraterna och roten för mycket stora eller små tal.
#include <stdio.h>
#include <math.h>
int main(void) {
double c = hypot(3.0, 4.0);
printf("hypot = %.1f\n", c);
return 0;
}Välj rätt verktyg
Snabbguide:
- Kvadratrot: använd
sqrt - Kubikrot: använd
cbrt - Valfri potens: använd
pow - Hypotenusa: använd
hypot
Välj den specifika funktionen när det finns en sådan. Koden blir tydligare och ofta mer exakt.
Övningsprogram
Det här programmet upphöjer ett tal till en potens och tar sedan kvadratroten ur resultatet. Det visar hur funktionerna kan kedjas samman.
#include <stdio.h>
#include <math.h>
int main(void) {
double p = pow(10.0, 4.0);
double r = sqrt(p);
printf("%.0f -> %.0f\n", p, r);
return 0;
}Snabbkontroll
Tänk på vad varje funktion returnerar.
Sammanfattning
Ni har lärt Er att upphöja tal till potenser med pow, hitta kvadratrötter med sqrt, kubikrötter med cbrt och hypotenusor med hypot.
Kom ihåg att sqrt av ett negativt tal ger NaN. Nästa avsnitt handlar om trigonometri och logaritmer.
Lär dig C med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 39
- Lektioner
- 144
Vanliga frågor
Är lektionen ”Potenser och rötter” gratis?
Ja – hela texten till ”Potenser och rötter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i C Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i C Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Potenser och rötter”?
Använd pow, sqrt och liknande funktioner. Ni övar på C Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig C Academy?
Du behöver inga förkunskaper. Utbildningen i C Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Potenser och rötter”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här C Academy-lektionen?
Ja. Varje C Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Inkludera math.h
- Potenser och rötter
- Trigonometriska funktioner och logaritmer
- Avrundning och absolutbelopp