Zadanie z algorytmów

slawoj5
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 17 wrz 2006, o 12:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy

Zadanie z algorytmów

Post 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ę.
Xfly
Użytkownik
Użytkownik
Posty: 174
Rejestracja: 13 mar 2006, o 20:44
Płeć: Mężczyzna
Lokalizacja: Nowogard
Podziękował: 33 razy
Pomógł: 10 razy

Zadanie z algorytmów

Post 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
slawoj5
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 17 wrz 2006, o 12:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy

Zadanie z algorytmów

Post 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.
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

Zadanie z algorytmów

Post 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.
slawoj5
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 17 wrz 2006, o 12:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy

Zadanie z algorytmów

Post autor: slawoj5 »

Dobra teraz zajarzyłem o co chodzi. Thx
Awatar użytkownika
max
Użytkownik
Użytkownik
Posty: 3306
Rejestracja: 10 gru 2005, o 17:48
Płeć: Mężczyzna
Lokalizacja: Lebendigentanz
Podziękował: 37 razy
Pomógł: 778 razy

Zadanie z algorytmów

Post 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
Awatar użytkownika
Sokół
Użytkownik
Użytkownik
Posty: 451
Rejestracja: 17 wrz 2006, o 19:22
Płeć: Mężczyzna
Lokalizacja: Zielona Góra
Podziękował: 15 razy
Pomógł: 55 razy

Zadanie z algorytmów

Post 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
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

Zadanie z algorytmów

Post 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
Awatar użytkownika
Sokół
Użytkownik
Użytkownik
Posty: 451
Rejestracja: 17 wrz 2006, o 19:22
Płeć: Mężczyzna
Lokalizacja: Zielona Góra
Podziękował: 15 razy
Pomógł: 55 razy

Zadanie z algorytmów

Post 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
Awatar użytkownika
Calasilyar
Użytkownik
Użytkownik
Posty: 2656
Rejestracja: 2 maja 2006, o 21:42
Płeć: Mężczyzna
Lokalizacja: Wrocław/Sieradz
Podziękował: 29 razy
Pomógł: 410 razy

Zadanie z algorytmów

Post autor: Calasilyar »

to jest zapis alternatywny i++ i=i+1
Awatar użytkownika
max
Użytkownik
Użytkownik
Posty: 3306
Rejestracja: 10 gru 2005, o 17:48
Płeć: Mężczyzna
Lokalizacja: Lebendigentanz
Podziękował: 37 razy
Pomógł: 778 razy

Zadanie z algorytmów

Post 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
slawoj5
Użytkownik
Użytkownik
Posty: 25
Rejestracja: 17 wrz 2006, o 12:50
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 2 razy

Zadanie z algorytmów

Post 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.
marshal
Użytkownik
Użytkownik
Posty: 1179
Rejestracja: 21 cze 2004, o 00:51
Płeć: Mężczyzna
Lokalizacja: krk
Pomógł: 9 razy

Zadanie z algorytmów

Post 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)
Awatar użytkownika
Amon-Ra
Użytkownik
Użytkownik
Posty: 882
Rejestracja: 16 lis 2005, o 16:51
Płeć: Mężczyzna
Lokalizacja: Tczew
Pomógł: 175 razy

Zadanie z algorytmów

Post 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.
ODPOWIEDZ