[C] proste pytanie, poprawa algorytmu

sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

Następujący fragment kodu ma sprawdzić, czy element k występuje w tablicy A.
Zawiera jeden błąd. Popraw go.

Kod: Zaznacz cały

int wystepuje;
for (int i = 0; i < n && !wystepuje; i++)
if (A[i] == k)
wystepuje = 1;

czy ktoś mógłby mi powiedzieć co oznacza ten fragment kodu : !wystepuje
wiem co oznacza ! ale nie rozumiem, jak jest jego znaczenie dla działania algorytmu. Bardzo proszę o pomoc.
Ostatnio zmieniony 9 gru 2012, o 21:52 przez miki999, łącznie zmieniany 1 raz.
Powód: Kod umieszcza się w tagach [code] i [icode].
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

Podstawy podstaw, "!" jest operatorem negacji wiec oznacza zerową wartosc zmiennej "wystepuje". Czyli żeby nastąpiło kolejne zapętlenie "i" musi byc mniejsze od n (nie podałes co oznacza ta zmienna ale zapewne wielkosc tablicy, a jesli tak to powinno byc n-1 bo indeksujemy od 0) i zmienna wystepuje musi byc rowna 0.
sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

ok dzięki (dopiero zacząłem zajmowanie się programowaniem i stąd moje pytanie)
czy zamiast !wystepuje mogłoby być wystepuje=0
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

nie, "=" jest operatorem przypisania, operatorem porównania jest '=='. Więc wszędzie gdzie chcemy coś porównać używamy "==" a jeżeli chcemy przypisac wartosć to '='

PS lepiej sie ucz c++ niż c, ewentualnie Obj-c, nieobiektowe języki są bezużyteczne przy pisaniu większych aplikacji:)
sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

ok, dzięki za szybką pomoc i poradę
EDIT
czy ktoś mógłby powiedzieć, gdzie jest w tym algorytmie błąd? Bo takie jest polecenie. Myślałem, że po zrozumieniu !wystepuje będę umiał go znaleźć. Ale niestety nie potrafię.
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

nadal nie napisales czym jest 'n' bez tego ciezko powiedziec. Tzn jestem niemal pewny aczkolwiek chcialbym najpierw wiedziec zeby nie wprowadzac w blad.
sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

Całą treść zadania wkleiłem na górze. Nic poza tym niestety nie wiem. Wybaczę ewentualne wprowadzenie w błąd
EDIT Przypuszczam, że jest to ilość elementów tablicy
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

Mozna by jedynie przyczepic sie do tego ze zmiennac wystepuje jest typu int, a mozna zmienic na bool. Chociaz z tego co pamietam to znegowany int tez daje wartosc 0. Albo tez do braku przypisania zmiennej wystepuje wartosci 0 na start. Nie kodzilem nigdy w C wiec nie wiem czy zmienna jest czysta na start czy ma jakas kosmiczna wartosc.
sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

wydaje mi się, że najtrafniejsza odpowiedź to zmienna bool
dzięki za pomoc
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

jak trafisz na jakis problem to pisz na PW.
sulaw
Użytkownik
Użytkownik
Posty: 255
Rejestracja: 24 wrz 2011, o 16:33
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 78 razy
Pomógł: 10 razy

[C] proste pytanie, poprawa algorytmu

Post autor: sulaw »

ok, jeszcze raz dzięki za pomoc
royas
Użytkownik
Użytkownik
Posty: 363
Rejestracja: 24 sie 2012, o 09:27
Płeć: Mężczyzna
Lokalizacja: Cieszyn
Pomógł: 80 razy

[C] proste pytanie, poprawa algorytmu

Post autor: royas »

Jaką wartość ma wystepuje podczas pierwszej próby wejścia w pętlę for? To jest problem, a nie żadne bool, które nawet nie jest typem, a jedynie makrem do _Bool od c99.
Santor
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 7 gru 2012, o 23:15
Płeć: Mężczyzna
Lokalizacja: Kruszwica
Pomógł: 2 razy

[C] proste pytanie, poprawa algorytmu

Post autor: Santor »

Też mi sie to wydawało bardziej trafne, ale wybrał sobie co chciał Niektórzy profesorowie mają manie na punkcie oszczędzania pamieci ;]
ODPOWIEDZ