Strona 1 z 1

Zadanie z algorytmów

: 17 wrz 2006, o 12:54
autor: slawoj5
Cześć ! Mam mały problem z takim zadaniem z infy. Rzecz dotyczy algorytmów. Próbowałem już coś wymyślić ale nie wychodzi mi to za dobrze. Pomóżcie

Zapisz specyfikacje i narysuj schemat blokowy algorytmu pobierającego kolejne liczby naturalne
jedno cyfrowe dotąd jak ich suma przekroczy 30. Na wyjściu chcemy wiedzieć ile liczb zostało dodanych i i ich sumę.

Zadanie z algorytmów

: 17 wrz 2006, o 14:35
autor: Xfly
co za problem -tworzysz zmeinna suma i licznik - pierwsza przechowuje aktualna sume wpsianych liczb, druga ich ilosc i za kazdym razem po podaniu liczy sprawdzasz czy suma nie przkeracza 30 jesli nie pobierasz od nowa liczbe , jesli tak to wyswietlasz wartosc licznika i sumy i konczysz dzialanie algorytmu

Zadanie z algorytmów

: 17 wrz 2006, o 16:20
autor: slawoj5
Sorki wielkie ale ja jestem bardzo początkującym użytkownikiem i nie wszystko łapie. Chciałbym aby mi to ktoś podręcznikowo rozpisał. Tylko nie denerwujcie się na mnie.

Zadanie z algorytmów

: 17 wrz 2006, o 16:27
autor: Calasilyar
ustalasz sobie licznik np. "i"
1. ustawiasz na początku i=1
2. suma=1
3. i=i+1
3. sprawdzasz, czy i=30 (a tak nie jest, bo i=1+1=2)
4. suma=suma+i (tu: suma=1+1=2) - dodaje się kolejna naturalna
i tak dalej dopóki i=30. wtedy procedura się kończy.

Zadanie z algorytmów

: 17 wrz 2006, o 20:06
autor: slawoj5
Dobra teraz zajarzyłem o co chodzi. Thx

Zadanie z algorytmów

: 17 wrz 2006, o 23:52
autor: max
slawoj5 pisze:Zapisz specyfikacje i narysuj schemat blokowy algorytmu pobierającego kolejne liczby naturalne jedno cyfrowe dotąd jak ich suma przekroczy 30.
Calasilyar pisze:(...)
3. sprawdzasz, czy i=30 (a tak nie jest, bo i=1+1=2)
4. suma=suma+i (tu: suma=1+1=2) - dodaje się kolejna naturalna
i tak dalej dopóki i=30. wtedy procedura się kończy.
Skoro suma ma być obliczana dopóki nie będzie liczbą przekraczającą 30, to warunkiem kończącym powinno być nie
i = 30
tylko:
suma

Zadanie z algorytmów

: 18 wrz 2006, o 00:02
autor: Sokół
Calasilyar pisze:ustalasz sobie licznik np. "i"
1. ustawiasz na początku i=1
2. suma=1
3. i=i+1
3. sprawdzasz, czy i=30 (a tak nie jest, bo i=1+1=2)
4. suma=suma+i (tu: suma=1+1=2) - dodaje się kolejna naturalna
i tak dalej dopóki i=30. wtedy procedura się kończy.
to bedzie zwykle czepialstwo, ale coz, lubie to

otoz nie wolno zapisac i=i+1, bo to bedzie bzdura. W programowaniu przypisanie oznacza sie przez :=, czyli ma byc i:=i+1. Jesli cos pokrecilem, to sorry, pascal mi do reszty mozg przezarl

Zadanie z algorytmów

: 18 wrz 2006, o 00:04
autor: Calasilyar
Sokół pisze:otoz nie wolno zapisac i=i+1, bo to bedzie bzdura
matematycznie i w pascalu tak, ale w cpp taki zapis jest dobry

Zadanie z algorytmów

: 18 wrz 2006, o 00:42
autor: Sokół
w cpp nie bylo czasem np. i++? (zakladajac, ze o jeden) :> z c++ du.a jestem, malo w tym pracowalem. Pascalowy chlopak ze mnie

Zadanie z algorytmów

: 18 wrz 2006, o 00:42
autor: Calasilyar
to jest zapis alternatywny i++ i=i+1

Zadanie z algorytmów

: 18 wrz 2006, o 22:36
autor: max
Nie tak dokładnie. Tzn w tym przypadku można zastąpić zapis
i = i + 1
poprzez
i++
i odwrotnie.
Ale już np wykonanie takiej linii kodu:
suma = suma + i++
będzie się różniło od takiej:
suma = suma + (i = i + 1)

Zapis i++ (postinkrementacja) oznacza, że zmienna i zostanie zinkrementowana dopiero po obliczeniu wykonaniu instrukcji wewnątrz której się znajduje. Stąd różnica.
Wyrażenie
i = i + 1
jest bardziej pokrewne temu:
++i

Zadanie z algorytmów

: 23 wrz 2006, o 17:35
autor: slawoj5
Siemka postanowiłem w tym temacie dalej konsultować z wami proste przykłady algorytmów.
Oto następujący problem:

Napisz algorytm, który oblicza pole powierzchni trójkąta prostokatnego i jego obwód. Długości boków przy kącie prostym są podawane na wejściu algorytmu.

Ja bym to zaczął zapisywać tak:

1. Pobierz a, h,
2. (trzeba skorzystać z twierdzenia odwrotnego do twierdzenia pitagorasa) aby sprawdzić czy z tych odcinków da się stworzyć trójkąt prostokątny
3. Oblicz P = a*h / 2
4. Wypisz p
5. Z twierdzenia pitagorasa obliczyć przeciwprostokątną
6. Obliczyć obwód a+h+b = x
7. Wypisz x
8. Zakończ

Nie wiem jak zapisac punkt 2. I nie wiem czy mam dobrze sformułowany algorytm. Poparwcie mnie jak zobaczycie błędy.

Zadanie z algorytmów

: 23 wrz 2006, o 19:51
autor: marshal
slawoj5 pisze: 2. (trzeba skorzystać z twierdzenia odwrotnego do twierdzenia pitagorasa) aby sprawdzić czy
jak na moj gust to nie istnieja takie liczby dodatnie, ktore nie moglyby byc przyprostokatnymi (bez zadnych zalozen dla przeciwprostokatnej oczywiscie)

Zadanie z algorytmów

: 23 wrz 2006, o 20:56
autor: Amon-Ra
slawoj5 pisze:2. (trzeba skorzystać z twierdzenia odwrotnego do twierdzenia pitagorasa) aby sprawdzić czy z tych odcinków da się stworzyć trójkąt prostokątny
?
Tak, jak pisze marshal - odcinki takie mogą być dowolne, oczywiście w granicach wyznaczonych przez maksymalną ilość pamięci, rezerwowaną dla zmiennej .

Reszta w miarę OK.