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 ?
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
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");
}
}
}
}
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)
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.
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.
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.
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å ...
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 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?
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 ...".