Problem z odnoszeniem sie do funkcji/metody.

0

Czesc, jestem bardzo bardzo poczatkujacy w C#, wczesniej mialem tylko stycznosc z C++ tak na start. Ale przechodzac do meritum to mam problem z uzyciem wczesniej napisanej funkcji poza mainem, w mainie.
Tak wyglada fragment kodu:

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

namespace Aplikacja
{
    class Figura
    {
        static double pi = 3.141592;

        static public double PowierzchniaKuli(double R)
        {
            Console.WriteLine("Wpisz Promien Kuli");
            R = double.Parse(Console.ReadLine());
            
            return PowierzchniaKuli(4 * Math.Pow(R, 2) * pi);
        }

        static void Main(string[] args)
        {
            string Wybor1;
            string Wybor2;
            Console.WriteLine("\t\t\t\t***Program do liczenia objetosci, masy i powierzchni***\n-Kuli\n-Czworowscianu Foremnego\n-Ostroslupa Prostego o Podstawie Prostokatnej\n-Stozka\n-Walca" );
            Console.WriteLine("\nWybierz co chcesz policzyc (mase - m, objetosc - o, powierzchnie - p)");
            Wybor1 = Console.ReadLine();
            Console.WriteLine("\nWybierz figure ktorej chcesz to policzyc(kula - k, czworoscian - cz, ostroslup - os, stozek - s, walec - w");
            Wybor2 = Console.ReadLine();
            Console.WriteLine("\n");

            if (Wybor1 == "p" && Wybor2 == "k")
            {
            
            }

Co mam wpisac w:

if (Wybor1 == "p" && Wybor2 == "k")
            {  
            }

Moim jedynym pomyslem jest wpisanie do tego ifa:

                Figura kula = new Figura();
                int WynikPowierzchniKuli = kula.PowierzchniaKuli();

                Console.WriteLine(WynikPowierzchniKuli);

Ale wyskakuje blad:

CS7036	There is no argument given that corresponds to the required formal parameter 'R' of 'Figura.PowierzchniaKuli(double)'

Aby funkcja sie pojawiala, sory za skladnie nieinformatyczna i bledy.

2

Przenieś pobieranie od użytkownika r do main i przekaż jako argument do PowierzchniaKuli:
W main:

Console.WriteLine("Wpisz Promien Kuli");
double R = double.Parse(Console.ReadLine());
PowierzchniaKuli(R);

PowierzchniaKuli:

        static public double PowierzchniaKuli(double R) {
            return (4 * Math.Pow(R, 2) * pi);
        }
0

wyglada jakby dzialalo jednak kiedy podaje promien to progam nie korzysta z funkcji tylko sie konczy?

2

Oczywiście musisz jeszcze wypisać wynik:

Console.WriteLine(PowierzchniaKuli(R));
0

Bardzo bardzo dziekuje za pomoc wszystko dziala. Myslalem ze to return zwroci wynik ale widac musze sie jeszcze wiele nauczyc.

3

return zwraca wynik z funkcji, ale musisz potem coś z tym wynikiem zrobić.

0

Do wyboru figury znacznie lepszym rozwiązaniem będzie użycie switcha, zwłaszcza przy większej liczbie figur.

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