(magiczne bloczki) suma liczb

witam. Mam problem z zadaniem domowym.To znaczy zrobiłem go ale wydaje mi się dość prymitywnie i chciałbym go udoskonalić. Może najpierw podam treść zadania “Stwórz algorytm zliczający sumę cyfr z twojej daty urodzenia i opisz ją czy jest parzysta czy nieparzysta”. Program mamy zrobić w programie Magiczne bloczki. Stworzyłem coś takiego http://imageshack.us/photo/my-images/813/parzystanieparzysta.png/. Nie podoba się mi ze trzeba po kolei wpisywać liczby, niestety tylko taki pomysł przyszedł mi do głowy… Nie mam pojęcia jak to zrobić gdyż za np.za A wstawię rok a za B miesiąc program policzy to 1995+03 zamiast 1+9+9+5+0+3. Jestem zielony w tych sprawach a chciałbym się czegoś nauczyć, jestem w pierwszej klasie technikum. Przepraszam jeśli taki temat już istnieje ale szukałem czegoś podobnego ale nie znalazłem… znalazłem tylko jak zrobić ta rozdzielke na liczbę nieparzysta a parzysta i nie wiem czy kapuję to tak w 100% chodzi o “mod 2==0” jeśli byłby ktoś tak miły mógł by mnie na to naprowadzić i udzielić jakiej kolwiek pomocy?

Na tym forum nie odrabiamy zadań domowych. Dlatego takiego tematu nie znalazłeś.

Ogólnie możesz zrobić tak jak ty masz, albo tak jak ja bym to zrobił:

-metoda twoja:

–bierzesz dzień, miesiąc, rok, osobno

–dzielisz wszystko na pojedyncze cyfry i dodajesz do wyniku(cyfra=cyfra mod 10; potem dzielisz liczbę przez 10 by pozbyć się ostatniej cyfry)

–potem sprawdzasz czy jest parzysta (mod=reszta z dzielenia), a parzysta to taka, która podzielona przez 2 nie daje reszty (czyt masz dobrze)

-moja metoda

–pobierasz w formie d.m.r

–lecisz forem przez string, wszystko prócz kropek konwertujesz na int po czym sumujesz

Moja metoda wyglądała by mniej więcej tak:

var wynik,i:integer,tmp;

data:string;

begin

  writeln ('podaj date (np 10.8.1992)');

  readln(string data);

  for i:=1 to lenght(data) do

   if(data[i]<>'.')

    wynik=val(data[i],tmp)+wynik;

  writeln(wynik); 

end.

Nie jestem pewien czy chodziło Ci o takie coś http://imageshack.us/photo/my-images/820/pczynp.png/ ale chyba działa poprawnie. Chciałbym się też upewnić ze to “mod 10” dzieli mi liczbę na 10 z której dostaje reszta z dzielenia która określa czy jest liczba parzysta czy nie ? Sory jeśli pisze bzdety ale sam jakoś do tego dochodzę…

Źle, masz przelecieć wszystkie cyfry z liczby, napisałem ci jak to masz zrobić. A ty dalej robisz tak jak miałeś na początku.

ok ok postaram się ale mógł byś mi dokładnie wytłumaczyć jakich komend mam tam użyć ? mieliśmy zaledwie kilka lekcji z tym nie znam ich za dużo… chociaż to “dzielisz wszystko na pojedyncze cyfry i dodajesz do wyniku” czyli jak mam 1990.03.16 to mam je podzielić tak: 1+9+9+0+0+3+1+6 i dodać do wyniku? bardzo Cie przepraszam ale po prostu tego nie rozumiem… Podałeś mi wcześniej swój kod ale ja go po połowie odczytam i koniec, po prostu zrozum to są początki musisz być dla mnie bardziej dokładny.

Raczej coś takiego: http://i51.tinypic.com/2rzaptf.png

Jako że rok ma aż 4 cyfry, zrobiłem go w oddzielnym bloku. Wyciąga pierwszą (poprzez %10)i potem dzieli przez 10 i tak 4 razy.

Nie wiem tylko czy w MB nie trzeba zaokrąglać, bo przy dzieleniu przez 10 niektóre interpretery (np. JavaScirpt) robią z liczby całkowitej rzeczywistą.

Nie mam Magicznych Bloczków, tylko JavaBlock, mojego autorstwa alternatywę, z której już kilka szkół skorzystało (m.in. z racji Sędziego do sprawdzania wielu prac jednocześnie:p)