12 svar
534 visningar
napleon är nöjd med hjälpen
napleon 10
Postad: 29 jan 2020 11:25

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 4060 – F.d. Moderator
Postad: 29 jan 2020 12:02

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?

haraldfreij 1077
Postad: 29 jan 2020 12:06

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 7
Postad: 29 jan 2020 12:29 Redigerad: 29 jan 2020 12:31

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 310
Postad: 2 feb 2020 09:57 Redigerad: 2 feb 2020 12:28
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 16535
Postad: 2 feb 2020 12:24
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 310
Postad: 2 feb 2020 12:27
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 16535
Postad: 2 feb 2020 12:58
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 310
Postad: 2 feb 2020 20:18
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 16535
Postad: 2 feb 2020 20:24
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 10
Postad: 5 feb 2020 10:45
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!

Lindehaven Online 736 – Lärare
Postad: 5 feb 2020 11:21

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 16535
Postad: 5 feb 2020 13:40
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