Zakładam ten temat, gdyż przygotowuje się do matury z informatyki, która czeka mnie za rok :)
Często będę potrzebował Waszej pomocy, dlatego wolę założyć jeden temat, żeby nie zaśmiecać forum kolejnymi tematami typu "Problem z zadaniem z matury".
Mam nadzieję, że osoby które również będą podchodziły do tego egzaminu, również skorzystają z tego tematu, i będą mogli zajrzeć w moje rozwiązania oraz podzielić się efektami swojej pracy.
Oto moje rozwiązanie :
1. Podaj liczbę znaków U1, wczytaj do d.
2. i=2
od bin[i] do bin[d] powtarzaj :
jeśli bin[i]=0 to wtedy bin[i]=1
w przeciwnym wypadku
bin[i]=0
i=i+1
3.j=d
x=0
liczba=1
od bin[j] do bin[2] wykonuj :
jeśli bin[j]=1 to x=x+liczba
liczba=liczba*2
j=j-1
4.Jeśli bin[1]=1 to x=x*(-1)
5.Wyświetl x
Napisałem to w postaci listy kroków, nie wiem czy to jest do końca poprawny zapis. Chyba jednak będę pisał w języku programowania, żeby czegoś nie zapomnieć.
Czy wszystko się zgadza według Was? Coś byście zmienili, poprawili ?
Wydaje mi się, że tutaj wszystko jest ok.
Kolejne zadanie :
Rozwiązanie :
1. Podaj N>1
2. d=2
i=1
3. Dopóki N>=d wykonuj :
jeżeli (N mod d)=0 to tab[i]=d
N=N div d
i=i+1
w przeciwnym wypadku d=d+1
4. i=1
a=tab[i]
b=1
Dopóki tab[i]=tab[i+1]
b=b+1
i=i+1
w przeciwnym wypadku wypisz a,b.
Całkiem mi się to pogmatwało, sprawdza czynniki, ale nie wiem jak sprawdzić ile jest elemetnów w tablicy (ile będzie czynników dla danej liczby), bo trzeba dać gdzieś licznik, aby przechodził po kolejnych liczbach.
Co tutaj trzeba zmienić ?
Będę bardzo wdzięczny za każdą pomoc i udział w temacie :)