12 svar
123 visningar
napleon är nöjd med hjälpen!
napleon 4
Postad: 29 jan 2020

boolska metoder

hej! 

jag har fått ett uppgift där man ska : Skriva ett huvudprogram som frågar efter ett tal och sedan skickar talet till
en metod. Skriva sedan metoden så att den testar om heltalet är ett primtal
eller inte, och sen returnerar sant eller falskt.

några tips för hur man ska göra ?

joculator 2152 – Moderator
Postad: 29 jan 2020

Vilken del är det du har problem med?

Kan du skriva metoder och använda dem? Har du problem med boolska metoder? Är det primtalstesten du undrar över?

Jag skulle börja med att skriva pseudokod för ditt program. Du behöver en main-funktion och en funktion som testar om talet är ett primtal. Vad ska primtalskollarfunktionen ha för signatur (parametrar och returtyp)? Hur kontrollerar man om ett tal är ett primtal?

Main:

  • Fråga om ett tal
  • Läs in ett svar från anändaren
  • Anropa "är det ett primtal?"-funktionen
  • Skriv ut svaret
FreeCodeParty 31
Postad: 29 jan 2020 Redigerad: 29 jan 2020

Här har du kod som skriver ut alla primtal mellan 1 och 40:

 

using System;

public class Program
{
public static bool IsPrimeNumber(int number)
{
if (number <= 1) {
return true;
}

var isPrime = true;
for (var i = 2; i < number; i++) {
if (number % i == 0) {
isPrime = false;
break;
}
}

return isPrime;
}

public static void Main()
{
for (var i = 1; i < 40; i++) {
if (IsPrimeNumber(i)) {
Console.WriteLine(i + " is a prime number");
}
}
}
}

Euclid 193
Postad: 2 feb 2020 Redigerad: 2 feb 2020
FreeCodeParty skrev:

public static bool IsPrimeNumber(int number)
{
if (number <= 1) {
return true;
}

var isPrime = true;
for (var i = 2; i < number; i++) {
if (number % i == 0) {
isPrime = false;
break;
}
}

return isPrime;
}

Ska du imponera lite på din kursledare så försök att optimera testet en aning.

"Den enklaste algoritmen att testa om n är ett primtal är att försöka dela n med alla heltal från 2 till roten ur 2 för att se om det går jämnt upp."

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i <= Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

EDIT: Ska vara i <= Math.Sqrt(number)

Laguna 7362
Postad: 2 feb 2020
Euclid skrev:

 

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i < Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

Det är Pluggakuten som har sabbat den. Det ser jag t o m nu medan jag skriver ett inlägg som citerar koden.

Euclid 193
Postad: 2 feb 2020
Laguna skrev:
Euclid skrev:

 

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i < Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

Det är Pluggakuten som har sabbat den. Det ser jag t o m nu medan jag skriver ett inlägg som citerar koden.

Byt tab mot mellanslag så blir det åtminstone läsligt.

Laguna 7362
Postad: 2 feb 2020
Euclid skrev:
Laguna skrev:
Euclid skrev:

 

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i < Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

Det är Pluggakuten som har sabbat den. Det ser jag t o m nu medan jag skriver ett inlägg som citerar koden.

Byt tab mot mellanslag så blir det åtminstone läsligt.

Det hjälper inte, och dessutom var det nog mellanslag från början.

Euclid 193
Postad: 2 feb 2020
Laguna skrev:
Euclid skrev:
Laguna skrev:
Euclid skrev:

 

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i < Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

Det är Pluggakuten som har sabbat den. Det ser jag t o m nu medan jag skriver ett inlägg som citerar koden.

Byt tab mot mellanslag så blir det åtminstone läsligt.

Det hjälper inte, och dessutom var det nog mellanslag från början.

Ta ett foto och skicka in en bild då ...

Laguna 7362
Postad: 2 feb 2020
Euclid skrev:
Laguna skrev:
Euclid skrev:
Laguna skrev:
Euclid skrev:

 

Visa spoiler

public static bool IsPrimeNumber(int number)
{
  if (number <= 1) {
    return true;
  }

  var isPrime = true;
  for (var i = 2; i < Math.Sqrt(number); i++) {
    if (number % i == 0) {
      isPrime = false;
      break;
    }
  }
}

Glöm inte heller att indentera din kod.

Det är Pluggakuten som har sabbat den. Det ser jag t o m nu medan jag skriver ett inlägg som citerar koden.

Byt tab mot mellanslag så blir det åtminstone läsligt.

Det hjälper inte, och dessutom var det nog mellanslag från början.

Ta ett foto och skicka in en bild då ...

Jag misstänker att du förväxlar mig med trådskaparen. 

napleon 4
Postad: 5 feb 2020
napleon skrev:

hej! 

jag har fått ett uppgift där man ska : Skriva ett huvudprogram som frågar efter ett tal och sedan skickar talet till
en metod. Skriva sedan metoden så att den testar om heltalet är ett primtal
eller inte, och sen returnerar sant eller falskt.

några tips för hur man ska göra ?

Om ett tal inte är jämnt delbart med alla tal från 2 till och med talet före
sig själv – då är det ett primtal!

napleon, du har fått tips av haraldfreij i början av tråden och ett färdigt program av FreeCodeParty. Är det något av dessa du inte förstår? Vilken är din konkreta fråga?

Laguna 7362
Postad: 5 feb 2020
napleon skrev:
napleon skrev:

hej! 

jag har fått ett uppgift där man ska : Skriva ett huvudprogram som frågar efter ett tal och sedan skickar talet till
en metod. Skriva sedan metoden så att den testar om heltalet är ett primtal
eller inte, och sen returnerar sant eller falskt.

några tips för hur man ska göra ?

Om ett tal inte är jämnt delbart med alla tal från 2 till och med talet före
sig själv – då är det ett primtal!

"inte är jämnt delbart med något tal ...".

Svara Avbryt
Close