Program liczacy silnie

  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
mam napisac program liczacy silnie dla podanej wartosci i. Co trzeba tu poprawic zeby dzialalo poprawnie? Teraz podaje mi wynik 1 niezaleznie od wprowadzonej wartosci

Kopiuj
  private void button1_Click(object sender, EventArgs e)
        {
            int i = int.Parse(wartosc.Text);

            int a=1;

            for (int c= 1; c <= 1; ++c)
            {
              a = a * c;
          
            }
            DialogResult key = MessageBox.Show("Silnia=" + a, "Wynik", MessageBoxButtons.OK);
        }
N1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

Zobacz sobie to: http://www.algorytm.org/algorytmy-arytmetyczne/silnia/s-cs.html

Kopiuj
private static int silnia2(int n)
{
int result = 1;
for (int i=1; i<=n; i++)
{
result *= i;
}
return result;
}
 
 

Zmień tu for (int c= 1; c <= i; ++c)

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0
baton153 napisał(a)

Witam,
mam napisac program liczacy silnie dla podanej wartosci i. Co trzeba tu poprawic zeby dzialalo poprawnie? Teraz podaje mi wynik 1 niezaleznie od wprowadzonej wartosci

Kopiuj
  private void button1_Click(object sender, EventArgs e)
        {
            int i = int.Parse(wartosc.Text);

            int a=1;

            for (int c= 1; c <= 1; ++c)
            {
              a = a * c;
          
            }
            DialogResult key = MessageBox.Show("Silnia=" + a, "Wynik", MessageBoxButtons.OK);
        }

Chyba ktoś nie wie, jak działa pętla for. Zaczynasz od c równego 1, a pętlę kończysz, gdy c równa się 1. Pętla wykonuje się raz.
Po co Ci to "i", skoro nigdy go nie używasz?

  • Rejestracja: dni
  • Ostatnio: dni
0

Znalazlem blad, jest tak banalny ze az wstyd:P w kazdym razie dzieki

  • Rejestracja: dni
  • Ostatnio: dni
0

Dobra, a mam jeszcze jedno pytanie, jak zrobic zeby kiedy wpisze przykladowo 5 w wyskakujacym okienku wyswietlal sie nastepujacy komunikat: "silnia wynosi 12345=120"?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Ułożyć napis i wyświetlić okienko. Konkretnie czego nie umiesz?

  • Rejestracja: dni
  • Ostatnio: dni
0

No wpisujac w ten sposob:

Kopiuj
DialogResult key = MessageBox.Show("Silnia=" + a, "Wynik", MessageBoxButtons.OK);

wyswietla mi tylko: Silnia= "wynik", i wlasnie nie wiem jak to zrobic zeby wyswietlal 123*... w zaleznosci od podanego parametru

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

Hmmmm. Pętla?

  • Rejestracja: dni
  • Ostatnio: dni
0

No dobra, na tyle ze pewnie trzeba to zrobic w jakis sposob petla to ja wpadlem, a cos bardziej konkretnego? Znam tylko totalne podstawy jesli chodzi o programowanie

  • Rejestracja: dni
  • Ostatnio: dni
0

Jakbym nie probowal to bym nawet nie myslal o tym zeby tu pisac

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
2

http://tinyurl.com/5sccm8n - aż mi żal dupę ściska, że muszę Ci to pisać :/

A7
  • Rejestracja: dni
  • Ostatnio: dni
1

Pewnie narażę się wielu osobom, ale tak bywa. Obserwując takie fora jak to, zastanawiam się dlaczego niektóre osoby biorą się za programowanie, skoro nie potrafią użyć szarych komórek do rozwiązania podstawowych problemów. Przecież programowanie to czynność, która wymaga nieustannego myślenia. Teraz jeśli taka osoba jakimś cudem trafi do firmy na stanowisko programisty, to jak poradzi sobie z jakimś poważnym problemem?

N1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 69
0

O takie coś Ci chodzi:

Kopiuj
 
            string napis="";
            for (int j = 1; j <= i; j++)
            {
                napis += j+"*";
            }
            MessageBox.Show("Silnia liczby:"+i+"!"+"="+a+"="+napis,"Wynik");

Tylko nie wiem jak usunąć ostatni niepotrzebny znak * ze strigna. Czy jest jakiś prosty sposób? Pewnie można by wczytać stringa to tablicy i pominąć ostatni znak.

A7
  • Rejestracja: dni
  • Ostatnio: dni
0

W ciele pętli for dałbym if-a sprawdzającego, czy j jest równe i. Jeśli tak to:
napis+=j;

hauleth
  • Rejestracja: dni
  • Ostatnio: dni
0

A ja bym zrobił tak:

Kopiuj
string napis="";
for (int j = 1; j < i; j++) {
  napis += j+"*";
}
MessageBox.Show("Silnia liczby:"+i+"!"+"="+a+"="+napis+i,"Wynik");

Jeden niepotrzebny skok mniej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.