• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

opisanie liczb rzeczywistych oprócz naturalnych

Object Storage Arubacloud
0 głosów
104 wizyt
pytanie zadane 7 maja 2021 w C i C++ przez GLaDOSv9 Nowicjusz (120 p.)

Hej,

w szerszym programie chce zdefiniować jakoś zbiory wszystkich liczb rzeczywistych, oprócz naturalnych.

To znaczy, że program będzie tolerował tylko liczby naturalne np n = 1;2;3;4... itd
A przy wpisaniu jakiejś niecałkowitej np. n = 0.6 ma wydrukować printf

 

mój sposób dla przedziału od 1 do 2 wygląda następująco: 

   if (n>1 & n<2)
    {
        printf ("liczba nie jest naturalna ");
    }

Teraz przydałoby się zrobić pętlę aby obejmował wszystkie zakresy międzyliczbowe:
  

  if (for  (n>1 & n<2; n++))    //  albo (n>1++ & n<2++)
    {
        printf ("liczba nie jest naturalna ");
    }

próbuje to zdefiniować na wiele sposobów, ale mówię wyraźnie innym dialektem i C# mnie nie chce zrozumieć. :D

komentarz 7 maja 2021 przez adrian17 Ekspert (344,860 p.)

w szerszym programie chce zdefiniować jakoś zbiory wszystkich liczb rzeczywistych, oprócz naturalnych.

To znaczy, że program będzie tolerował tylko liczby naturalne np n = 1;2;3;4... itd

W sensie... chcesz po prostu sprawdzić, czy zmienna zmiennoprzecinkowa jest liczbą całkowitą > 0?

komentarz 7 maja 2021 przez GLaDOSv9 Nowicjusz (120 p.)

Nie chcę tego sprawdzać, chcę to zdefiniować. laugh

 

Chcę zdefiniować wszystkie liczby dodatnie

od 1 do 2,, czyli 1,01 - 1,99

od 2 do 3, czyli 2,01 - 2,99

od 3 do 4, czyli 3,01 - 3,99

i tak dalej w nieskończoność.

komentarz 7 maja 2021 przez adrian17 Ekspert (344,860 p.)
edycja 7 maja 2021 przez adrian17
Nie wiem co to znaczy "zdefiniować zbiór liczb" w kontekście C#. Nie ma czegoś takiego.

Twoje przykłady wyżej (`if (n>1 & n<2)` etc) sprawiają wrażenie, jakbyś chciał sprawdzić czy liczba jest (lub nie jest) całkowita większa od zera (co jest w zasadzie równoważne ideowo przynależności do zbioru).
komentarz 7 maja 2021 przez GLaDOSv9 Nowicjusz (120 p.)
Jeśli użytkownik wpisze w program 1.52 lub inną liczbę tego typu, to program ma wydrukować "zły format".

 

Próbuję to zrobić na if i else oraz na pętli for.
komentarz 7 maja 2021 przez adrian17 Ekspert (344,860 p.)

Jeśli użytkownik wpisze w program 1.52 lub inną liczbę tego typu, to program ma wydrukować "zły format".

Jeśli chodzi o format, to po co w ogóle przechodzić przez liczby zmiennoprzecinkowe :) Jak masz tekst który wpisał user, to wołasz np UInt32.Parse(tekst) który rzuci Ci wyjątek jeśli tekst nie jest nieujemną liczbą całkowitą. (pozostaje dodać `if`a na zero, jeśli go też nie chcesz)

komentarz 7 maja 2021 przez GLaDOSv9 Nowicjusz (120 p.)

No ale użytkownik i tak wpisze "1.52", a program ma mu na to odpowiedzieć, a więc musi być co najmniej float w deklaracji.

Jeśli zadeklaruje uint n; , to gdy użytkownik wpisze 1.52 to program się buguje. Tak nie może być.

komentarz 7 maja 2021 przez adrian17 Ekspert (344,860 p.)

No ale użytkownik i tak wpisze "1.52", a program ma mu na to odpowiedzieć, a więc musi być co najmniej float w deklaracji.

...jasne że nie. To że user _może_ wpisać "1.52" nie znaczy że musisz się przejmować floatami, skoro samo własnie powiedziałeś że chcesz tylko działać na liczbach całkowitych i pokazać userowi komunikat jeśli to co wpisał jest niepoprawne. Wołasz int.Parse albo UInt32.Parse albo ich odpowiedniki TryParse i działasz na liczbach całkowitych. Funkcja Parse rzuci błędem jeśli tekst nie jest liczbą całkowitą (a TryParse zwróci `false`), więc możesz obsłużyć błędne wejście usera bez wpisywania "float" gdziekolwiek w kodzie.

Chyba że chcesz faktycznie konkretnie powiedzieć userowi "wpisałeś liczbę, ale nie naturalną" (bo zakładam że "1.0" też jest niepoprawne, ma być "1", tak?). No to... jeśli `int.Parse` się nie udało ale `float.Parse` się uda, to wiesz że user wpisał liczbę, ale nie naturalną.

komentarz 11 maja 2021 przez GLaDOSv9 Nowicjusz (120 p.)
Nie znajduje instrukcji do wpisania Parse, a już mam dość zgadywania jak to wpisać.

 

Jakiej biblioteki do tego potrzebuje?

Gdzie wpisać tekst w kodzie który wyskoczy użytkownikowi po wpisaniu liczby niecałkowitej?
komentarz 11 maja 2021 przez adrian17 Ekspert (344,860 p.)

Nie znajduje instrukcji do wpisania Parse, a już mam dość zgadywania jak to wpisać.

Dosłownie tak jak wpisałem, `int.Parse`. To jest metoda klasy int.

Jakiej biblioteki do tego potrzebuje?

To wszystko jest wbudowane.

https://dotnetfiddle.net/bY8IbW

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 349 wizyt
–5 głosów
0 odpowiedzi 628 wizyt
pytanie zadane 20 lipca 2019 w Visual Basic przez Zwyczajne konto Nowicjusz (190 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,941 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...