Zaloguj się, aby obserwować  
Bartuc

Język C / C++ / C# / Java - pytania, problemy...

1979 postów w tym temacie

Dnia 09.02.2009 o 13:25, T.Boczek napisał:

Ale to nie jest jakaś książka czy coś tak to jest darmowy poradnik coś takiego

Darmowe podręczniki znajdują się na stronach ich twórców lub powiązanych z nimi. Zamiast proponować rapida wklej po prostu link do adresu, pod którym znajduje się ta publikacja.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam już wszystko wypisane i Dev pokazuje mi ,że mam błąd w linijce cout << "Wynik :\n" << c << endl; .Co robie źle ?
A tutaj wszystko co napisałem
#include<iostream>
using namespace std;
int main ()
{
int a;
int b;
int c;
cout << "Podaj a:\n";
cin >> a;
cout << "Podaj b:\n";
cin >> b;
a+b=c
cout << "Wynik :\n" << c << endl;
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 07.04.2009 o 18:17, oskiiq napisał:

a+b=c


prponuję zmienić to na
c = a+b;
nie było ; i myślał ze to cout << blablala to dalej ta sama instrukcja dlatego tam wskazywał błąd (chyba ;D)
poza tym c=a+b a nie a+b=c

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 07.04.2009 o 18:41, Vicot napisał:

> a+b=c

prponuję zmienić to na
c = a+b;
nie było ; i myślał ze to cout << blablala to dalej ta sama instrukcja dlatego
tam wskazywał błąd (chyba ;D)
poza tym c=a+b a nie a+b=c

Dzięki :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Moglibyście mi pomóc z czterema pytaniami(odnośnie c++), na który nie mogę znaleźć odpowiedzi w wyroczni wiedzy jaką jest google:P?
1/ Dlaczego np. char, signed zajmuje 1 bajt, int 2 bajty a choćby long 4?
2/ Co to są liczby znaczących cyfr?
3/ Co oznacza gwiazdka *? [btw chyba mnożenie, ale może coś jeszcze;P?]
4/ Co oznacza, albo jak zinterpretować 3,4*E-38... 3,4E38 ? (typy rzeczywistych float, liczba 6)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.04.2009 o 11:59, In_The_End napisał:

Moglibyście mi pomóc z czterema pytaniami(odnośnie c++), na który nie mogę znaleźć odpowiedzi
w wyroczni wiedzy jaką jest google:P?
1/ Dlaczego np. char, signed zajmuje 1 bajt, int 2 bajty a choćby long 4?


No bo to zależy od ilości przechowywanych znaków w zmiennej. char to jeden znak, int przechowuje liczby całkowite, a long przechowuje liczby z zakresu chyba 2ch milionów czy jakoś tak. Gdzieś to trzeba umieścić ;)

Dnia 19.04.2009 o 11:59, In_The_End napisał:

3/ Co oznacza gwiazdka *? [btw chyba mnożenie, ale może coś jeszcze;P?]


Operator wyłuskania, używany przy wskaźnikach. Pozwala na odwołanie się do zawartości komórki

A na pozostałe dwa nie odpowiem bo nie chce się pomylić ;) Albo wprowadzić w błąd

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 19.04.2009 o 11:59, In_The_End napisał:

2/ Co to są liczby znaczących cyfr?


Troszke niedokladnie zapamietales. Dla przypomnienia - cyfra to pojedynczy znak, czyli 9 albo 4. Liczba to kombinacja paru cyfr(jednej w sumie tez), czyli 4 albo 37 albo 937 itp.
Zapewne chodzilo o najstarszy (najbardziej znaczacy) bit/bajt. Jest to ten stojacy po lewej (np. 01011101101 - ten pogrubiony jest najstarszy, poniewaz jego zmiana powoduje najwieksza zmiane w tej liczbie)

Dnia 19.04.2009 o 11:59, In_The_End napisał:

4/ Co oznacza, albo jak zinterpretować 3,4*E-38... 3,4E38 ? (typy rzeczywistych float, liczba 6)


To tzw. Notacja naukowa. To oznacza, ze ta zmienna potrafi przechowac liczby od 3,4 * 10^-38 (3,4 razy 10 do potegi -38) do 3,4*10^38

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 18:30, Jan_Czarny napisał:

Czy da się w c++ zliczać wykonanie pętli if , while ?


Da się :P
Przed pętla while dodaj np. int licznik=0;
A wewnątrz niej licznik++; :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 18:34, ziptofaf napisał:

> Czy da się w c++ zliczać wykonanie pętli if , while ?

Da się :P
Przed pętla while dodaj np. int licznik=0;
A wewnątrz niej licznik++; :)


dzięki

A jeszcze mam pytanie dot. metody bisekcji jeżeli mamy zakres 0-100(101 liczb ^^) a , ma znaleźć liczbę np.21

to pierwszy podział to 0-50 51-100 ? używając liczb całkowitych i tak aż dojdzie do skraju podziału ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 20:15, Jan_Czarny napisał:

A jeszcze mam pytanie dot. metody bisekcji jeżeli mamy zakres 0-100(101 liczb ^^) a ,
ma znaleźć liczbę np.21


To o czym mówisz to wyszukiwanie binarne :)
http://pl.wikipedia.org/wiki/Wyszukiwanie_binarne

Dnia 09.05.2009 o 20:15, Jan_Czarny napisał:

to pierwszy podział to 0-50 51-100 ? używając liczb całkowitych i tak aż dojdzie do skraju
podziału ?

Mniej więcej o to w tym chodzi :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 22:00, ziptofaf napisał:

> A jeszcze mam pytanie dot. metody bisekcji jeżeli mamy zakres 0-100(101 liczb ^^)
a ,
> ma znaleźć liczbę np.21

To o czym mówisz to wyszukiwanie binarne :)
http://pl.wikipedia.org/wiki/Wyszukiwanie_binarne
> to pierwszy podział to 0-50 51-100 ? używając liczb całkowitych i tak aż dojdzie
do skraju
> podziału ?
Mniej więcej o to w tym chodzi :)



i tak to działa ? (albo za krótko ci opisałem )

0-100(tu się mieści 101 liczb)

0-51 52-100

52-100 odrzucamy bo w tym zakresie nie ma 21

0-25 26-51

26-51 odpada

0-13 14-25

0-13 odrzucamy

14-19 20-25

14-19 odpada

20-22 23-25

23-25 odpada

20-21 21-22

i tu by się pewnie zacięło (liczby całkowite)

Dla upewnienia pytam :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 23:02, Jan_Czarny napisał:

i tu by się pewnie zacięło (liczby całkowite)

Nic by się nie zacięło. Podział byłby 20-21 22 albo 20 21-22 zależnie od implementacji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 09.05.2009 o 23:26, Corvin0451 napisał:

> i tu by się pewnie zacięło (liczby całkowite)
Nic by się nie zacięło. Podział byłby 20-21 22 albo 20 21-22 zależnie od implementacji.


a tak :P

heh :P

chciałem o coś innego zapytać wyszło inaczej :D


[...]
23-25 odpada

20-21 21-22
[..]

i to jest wyszukiwanie binarne to co powyżej napisałem :P ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

#include <iostream>
#include <ctime>
#include <conio.h>

using namespace std;

int main()

{
int gen_liczba; // zmienna przechowuje wygenerowaną liczbę
int i;
int min=0; // Minimalny Zakres
int max=100; // Maksymalny zakres
int licznik=0; // Zmienna przechowują ile razy się wykona pętla


{
gen_liczba=rand()%101; //Generowanie liczb (0-100[101 znakow])
cout << "Wygenerowana liczba to " << gen_liczba << " .\n";
cout << "\n";
{
if((gen_liczba=min)||(gen_liczba=max))

{
cout << "Liczba wykonanych prob wynosi : " << licznik << " .\n"; // zawsze wyświetla mi to ....
}
else
{
cout << "Liczba wykonanych prob wynosi1 : " << licznik << " .\n";
}


}

}


cout << "\n";
cout << "Wcisnij ENTER aby zakonczyc prace programu\n";
getchar();
return 0;
}

chciałem zrobić warunek

jeśli liczba wygenerowana jest równa maksymalnej lub minimalnej

to wyświetla 1 tekst


a jeśli nie spełnia tego warunku to robi się pętla z warunkami

która ma znaleźć liczbę wygenerowana liczba_gen w zakresie min-max

// ale dla testu zrobiłem 2 tekst nie wiem czemu jeśli gen_liczba = 41 to wyświetla 1 tekst ....

w php to by śmigało już :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Operator porownania to ==
Ty w if uzywasz operatora =, ktory jest operatorem przypisania, w zwiazku z czym w miejscu

if((gen_liczba=min)||(gen_liczba=max))

zawsze dochodzi do przypisania gen_liczba=min - dlatego warunek if jest zawsze prawda i zawsze wyswietla sie tekst. Po prostu tam gdzie chcesz porownac dwie wartosci uzywaj == a nie = .

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 10.05.2009 o 20:23, LifaR napisał:

Operator porownania to ==
Ty w if uzywasz operatora =, ktory jest operatorem przypisania, w zwiazku z czym w miejscu

if((gen_liczba=min)||(gen_liczba=max))

zawsze dochodzi do przypisania gen_liczba=min - dlatego warunek if jest zawsze prawda
i zawsze wyswietla sie tekst. Po prostu tam gdzie chcesz porownac dwie wartosci uzywaj
== a nie = .



dzięki :P głupi błąd nie zauważyłem go ^^

while (int i=1;int licznik=0;i++;licznik++;gen_liczba==min||gen_liczba==max)

(Chciałem osiągnąć aby pętla wykonała się n razy ,aż spełni warunek , i żeby mi policzyło ile razy się zrobiła)

tylko nie wiem w czym siedzi error :P

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Dnia 10.05.2009 o 21:33, Jan_Czarny napisał:

(Chciałem osiągnąć aby pętla wykonała się n razy ,aż spełni warunek , i żeby mi policzyło
ile razy się zrobiła)

To w końcu n razy, czy aż warunek będzie spełniony? A może ma się skończyć jeśli zdarzy się dowolna z tych dwóch sytuacji?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zacznij pisac jasny kod, wtedy sam zrozumiesz gdzie robisz bledy, nie widze praktycznego sensu stosowania takch molochow.
Jesli juz musisz zawrzec wszystko w jednej linicje, to uzyj po prostu petli for z jasna skladnia for(inicjalizacja ; warunek ; dzialanie)
for(int i=1, int licznik=0 ; ((gen_liczba==min)||(gen_liczba==max)) ; i++, licznik++)

Zrozum, ze czytelny kod to nic zlego, a nabycie dobrych nawykow na poczatku Twojej drogi, jedynie pomoze Ci w przyszlosci. Nie utrudniaj sobie zycia, szczegolnie gdy sprawia to, ze masz problemy, ktorych nie potrafisz sam rozwiazac.

Edit: Odnosnie tego co napisal Corvin - w petli while nigdzie n nie sprawdzales, wiec do fora tez go nie wpisalem. I tez nie wiem co dokladnie chciales osiagnac, kierowalem sie tym co dales do tresci while'a.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Utwórz konto lub zaloguj się, aby skomentować

Musisz być użytkownikiem, aby dodać komentarz

Utwórz konto

Zarejestruj nowe konto na forum. To jest łatwe!


Zarejestruj nowe konto

Zaloguj się

Masz już konto? Zaloguj się.


Zaloguj się
Zaloguj się, aby obserwować