Sprawdzanie czy liczba jest poddzielna przez inną

0

Cześć,

Mam za zadanie napisać program za pomocą funkcji bool który sprawdza czy podana przez użytkownika liczba jest podzielna przez 3 i przez 7. Jak na razie napisałem coś takiego, jednak nie wiem za bardzo jak umiejscowić poszczególne komponenty aby program działał właściwie:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        public static bool Sprawdz1(int a)
        {
            return Convert.ToInt32(a);
        }

        public static void Main(string[] args)
        {
            int a;
            Console.WriteLine("podaj liczbę: ");
            a = Convert.ToInt32(Console.ReadLine());

            if (a % 7 == 0 && a%3==0)
            {
                Console.WriteLine("Czy jest? " + Sprawdz1(Convert.ToInt32((a))));
            }
            else
            {

            }


        }

    }
} 
0

Gdzie masz tę swoją funkcję, która sprawdza podzielność?

0

Mam użyć tego:

  public static bool Sprawdz1(int a) 

ale w zasadzie nie wiem co wpisać wewnątrz

Tutaj mam ifa

  if (a % 7 == 0 && a%3==0) 

ale też w zasadzie nie wiem czy jest dobry i czy to tak trzeba zadeklarować

1

Tak jak mówiłem w poprzednim Twoim wątku. Zacznij naprawdę od podstaw. Masz małą podpowiedź.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        static int ReadInt(string label = "")
        {
            int number;
            do { Console.Write(label); } while (!int.TryParse(Console.ReadLine(), out number));
            return number;
        }

        static void Main(string[] args)
        {
            int number = ReadInt("Set number: ");
            Console.WriteLine(number % 7 == 0 && number % 3 == 0);
        }
    }
}

Starczy wstawić warunek do funkcji i masz.

0

na razie jeżeli mógłbym prosić to bez funkcji do...while, ona będzie dopiero na nastepnych zajęciach

Napisałem tak:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        public static bool Sprawdz1(int a)
        {
            return a;
        }

        public static void Main(string[] args)
        {
            int a;
            Console.WriteLine("podaj liczbę: ");
            a = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine(a % 7 == 0 && a % 3 == 0);

           
            Console.ReadKey();
        }

    }
} 

Wyskakuje że nie można skonwertować z int na bool. Wiem o tym że bool nie można w ogóle konwertować w C#, jednak w innym zadaniu napisałem podobnie tyle że z double i taki błąd nie wyskakiwał. Co robić?

1

Bo wtedy zwracany był wynik wyrażenia, a nie liczba! Przecież Ty niczego nie sprawdzasz tylko zwracasz int'a.

BTW:bez funkcji do...while, ona będzie dopiero na nastepnych zajęciach zaczynacie funkcję, bez wcześniejszego poznania pętli? Coś dziwnego jest...

0

Drobna poprawka:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace App
{
    class Program
    {
        public static bool Sprawdz1(int a)
        {
            return a;
        }

        public static void Main(string[] args)
        {
            int a;
            Console.WriteLine("podaj liczbę: ");
            a = Convert.ToInt32(Console.ReadLine());

            Console.WriteLine(Sprawdz1(a % 7 == 0 && a % 3 == 0));

           
            Console.ReadKey();
        }

    }
} 

Czy mogę tu użyć konwersji? jezeli tak to w jaki sposób? Czy mam tutaj zadeklarować ifa? Jeżeli tak to w jaki sposób aby był poprawny? Nie mam pojęcia jak to dobrze zrobić

Akurat w taki sposób mam przygotowany program nauczania. Nic na to nie poradzę. A wole korzystać z metod które zostały nam zaprezentowane.

1

Niczego nie sprawdzasz w Twojej funkcji sprawdzającej. Już naprawdę nie wiem ile razy mam Ci to napisać. Po prostu warunek przenieś do funkcji z tego WriteLine.

0

Jeszcze tylko małe pytanko, gdybym chciał zapisać że liczba ma być podzielna przez 3 i jednocześnie niepodzielna przez 6 to jakiego sformuowania powinienem użyć?

1

Jeżeli coś jest niepodzielne to znaczy, że posiada niezerową resztę z dzielenia. Użyj %.

0

Tak już wiem, chodziło mi o coś takiego:

a % 3 == 0 && a % 6 != 0;

Dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1