Sadzior Opublikowano 23 Lutego 2006 Zgłoś Opublikowano 23 Lutego 2006 program kaka;uses CRT;var kasa,rata,pupa:real;i:integer;beginclrscr;writeln('podaj kase');readln(kasa);writeln('podaj rate');readln(rata);pupa:=(3000-kasa)/rata;repeatwriteln('zostalo ci',pupa:2:0,' miesiecy');pupa:=pupa-1;until pupa>=0;readkey;endten program ma pobrac ilosc kasy, ile sie bierze mieasiecznie, a nastepnie mowi za ile miesiecy mozna kupic samochod kosztujacy 3000. chce zeby odliczal od najwiekszego do najmneijszej liczby ilosc miesiecy, jak to zrobic? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
shaqal Opublikowano 23 Lutego 2006 Zgłoś Opublikowano 23 Lutego 2006 (edytowane) Trudno coś zrozumieć z twojej wypowiedzi. Dziwnie nazywasz zmienne (nazwy nie wskazują na to, co mają znaczyć). Spróbuj tak: function ile_rat(rata,kasa:real):integer; const cena=3000; // cena samochodu var tmp:real; // zmienna tymczasowa begin tmp:=cena-kasa; if ((tmp mod rata)>0) ile_rat:=((tmp div rata) + 1) // gdy rata nie jest dzielnikiem kwoty pozostalej do wplacenia else if ((tmp mod rata)=0) ile_rat:=(tmp div rata); end;Ratę i kasę wczytasz na początku programu i przekażesz do funkcji. Postawiłeś też zły warunek zakończnia pętli repeat (program zakończy ją po pierwszym przebiegu). Nie wykorzystujesz też zupełnie niepotrzebnie zadeklarowanej (chyba z przyzwyczajenia)zmiennej i. Nota bene nie jest tu ona wskazana. Do tej funkcji, którą napisałem powinieneś dodać odporność na dane wprowadzone przez użytkownika (na liczby ujemne). Nie bardzo rozumiem o co ci chodzi z tym "zliczaniem miesięcy". Edytowane 23 Lutego 2006 przez shaqal Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...