Program til at beregne pythagoras
-
- Begynder
- Indlæg:12
- Tilmeldt:27. okt 2017, 21:49
Hej,
Jeg skal lave en assigment hvor jeg skal kode et program, som skal kunne regner Pythagoras læresætning ud:
a^2 + b^2 = c^2
Fx hvis jeg indtaster a = 4, b = 4 og c = 5 så skriver programmer "4^2 + 4^2 = 5^2"
Jeg kan simpelthen ikke finde ud af at komme i gang.
Jeg har fået et tip at man kan bruge tre løkker og en if-sætning.
En som kan guide mig i den rigtige retning?
Jeg skal lave en assigment hvor jeg skal kode et program, som skal kunne regner Pythagoras læresætning ud:
a^2 + b^2 = c^2
Fx hvis jeg indtaster a = 4, b = 4 og c = 5 så skriver programmer "4^2 + 4^2 = 5^2"
Jeg kan simpelthen ikke finde ud af at komme i gang.
Jeg har fået et tip at man kan bruge tre løkker og en if-sætning.
En som kan guide mig i den rigtige retning?
Re: Program til at beregne pythagoras
Kode: Vælg alt
/*
* Nemprogrammering - https://www.nemprogrammering.dk/forum/viewtopic.php?f=47&t=1875
*/
int a = 3;
int b = 4;
StringBuilder sb = new StringBuilder();
sb.append(a + "^2" + " + " + b + "^2 = ");
a = (int) Math.pow(2, a);
b = (int) Math.pow(2, b);
sb.append(a + b);
System.out.println(sb);
// output
3^2 + 4^2 = 24
Der er sikkert en mere raffineret måde at gøre dette, men du har ikke brug for en lykke med mere.
Bedemanden, ved du hvordan du regner en "power of two" værdi ud i hoved? Rent princip mæssigt.
-
- Begynder
- Indlæg:12
- Tilmeldt:27. okt 2017, 21:49
Re: Program til at beregne pythagoras
Tak for svar
Jeg må kigge på det.
Jo, 2^2, 3^3 osv. har jeg styr på.
Hvorfor?
Jeg må kigge på det.
Jo, 2^2, 3^3 osv. har jeg styr på.
Hvorfor?
Re: Program til at beregne pythagoras
Hvis man ikke ved hvordan man regner noget ud på papir / eller har en ide om det.Jo, 2^2, 3^3 osv. har jeg styr på.
Hvorfor?
Så bliver det sværer at lave et program der kan gøre det for en.
Noget til power of X er bits, det vil sige at de ser således ud når du skriver dem op
128 64 32 16 8 4 2 1 (1 springer du over her)
Så hvis du f.eks har 3^2
Så tæller du højre mod venstre fra 2, tre gange så du ender på 8 hvilket er det samme som 3^2
Re: Program til at beregne pythagoras
Arh, mener du ikke 2^3 = 8? Den binære talrække og pow har kun en relation ved 2^x, og ikke x^2 som pythagoras tager udgangspunkt i - eller måske misforstår jeg dit svar?cristian skrev:Hvis man ikke ved hvordan man regner noget ud på papir / eller har en ide om det.Jo, 2^2, 3^3 osv. har jeg styr på.
Hvorfor?
Så bliver det sværer at lave et program der kan gøre det for en.
Noget til power of X er bits, det vil sige at de ser således ud når du skriver dem op
128 64 32 16 8 4 2 1 (1 springer du over her)
Så hvis du f.eks har 3^2
Så tæller du højre mod venstre fra 2, tre gange så du ender på 8 hvilket er det samme som 3^2
-
- Begynder
- Indlæg:12
- Tilmeldt:27. okt 2017, 21:49
Re: Program til at beregne pythagoras
Selve matematikken har jeg styr på, det er programmeringen, som jeg ikke forstår - jeg er lige startet på uddannelse, hvor vi har det meget basic. Jeg synes dog det er spændende, men svært at lære =)
Re: Program til at beregne pythagoras
Må vi se din kode?
-
- Begynder
- Indlæg:12
- Tilmeldt:27. okt 2017, 21:49
Re: Program til at beregne pythagoras
Kode: Vælg alt
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Pythagoras
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
for (int a = 1; a <= 200; a++)
{
for (int b = 1; b <= 200; b++)
{
for (int c = 1; c <= 200; c++)
{
if (c*c == (a*a + b*b))
{
listBoxOutput.Items.Add(a.ToString() + " " + b.ToString() + " " + c.ToString() + " ");
}
}
}
}
}
}
}
Re: Program til at beregne pythagoras
Din løsning gør faktisk meget af det du ønsker, den udregner nemlig alle kombinationer af trekanter med a,b,c = {1 .. 200}. Men får du ikke givet a og b?
Hvis opgaven er at du givet a og b skal udregne c, så kan du faktisk fjerne dine 2 yderste for-loops. Der er nemlig ingen grund til at teste forskellige værdier af a og b, hvis du får dem givet.
Hvis du vil have en løsning uden for-loop, så tænk på at du har udtrykket:
a^2+b^2=c^2
Hvis du vil isolere c i ovenstående, skal du tage kvadratroden af c^2 og ligeledes på venstre side, så du får:
sqrt(a^2+b^2) = c
Hvis opgaven er at du givet a og b skal udregne c, så kan du faktisk fjerne dine 2 yderste for-loops. Der er nemlig ingen grund til at teste forskellige værdier af a og b, hvis du får dem givet.
Kode: Vælg alt
public static void TestMethod(int a, int b)
{
Console.WriteLine($"Testing {a} and {b}");
for (int c = 1; c <= 200; c++)
{
if (c * c == (a * a + b * b))
{
Console.WriteLine(a.ToString() + " " + b.ToString() + " " + c.ToString() + " ");
}
}
}
a^2+b^2=c^2
Hvis du vil isolere c i ovenstående, skal du tage kvadratroden af c^2 og ligeledes på venstre side, så du får:
sqrt(a^2+b^2) = c
-
- Begynder
- Indlæg:12
- Tilmeldt:27. okt 2017, 21:49
Re: Program til at beregne pythagoras
Jeg kontrollerede lige mit design og der får jeg givet a og b.
Jeg ville dog selv kunne bestemme a og b, så derfor lavede jeg de loops også.
Jeg fik bare aldrig rettet min design til, så jeg kunne indtaste værdierne a og b.
Jeg ville dog selv kunne bestemme a og b, så derfor lavede jeg de loops også.
Jeg fik bare aldrig rettet min design til, så jeg kunne indtaste værdierne a og b.