Potrebujem jednoduchu radu od programatora

Programovacie jazyky, rady, poradňa...
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Potrebujem jednoduchu radu od programatora

Príspevok od používateľa Stifo16 »

Program v Turbo Pascal


Program SKONCI_TO;
var N, POCET: word;
Begin
Write (‘Zadaj prirodzene cislo ‘); ReadLn (N);
POCET:= 0; Write (N, ‘, ‘);
while N<>1 do
begin
if N mod 2 = 0 then N:= N div 2
else N:= 3*N+1;
POCET:= POCET+1;
Write (N, ‘, ‘);
end;
WriteLn (‘ pocet krokov = ‘, POCET);
ReadLn;
End
Upravte program tak, aby vypisoval v jednom riadku počet opakovaní a za ním spôsob zmeny
(párne alebo nepárne) a hodnotu upravenej premennej N.


Dobry neskory vecer!
Ako mam k podmienke pridat dalsie veci ktore sa maju vykonat napriklad chcem zeby to cislo delilo 2 ked je parne a sucasne za neho dopisalo ze cislo je parne alebo neparne napr. "15 neparne"

mozte mi prepisat ten programek tak aby vyhovoval uprave uvedenej hned pod End programu ?
dik
sINN3R
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 330
Registrovaný: 17 jún 2006, 11:21
Bydlisko: Trencin - Slovakia - EU
Kontaktovať používateľa:

Príspevok od používateľa sINN3R »

presne nechapem co potrebujes resp. nechapem co ma ten algoritmus robit ale mozno toto [keby nie tak ma naved na spravny smer :) ]:

Kód: Vybrať všetko

var N, POCET: word;
Begin
   Write (‘Zadaj prirodzene cislo ‘);
   ReadLn (N);
   POCET:= 0; 
   Write (N, ‘, ‘); {toto tu je ako vypis pociatocnej hodnoty ?}
   while N<>1 do
     begin
       if N mod 2 = 0 then begin {vsetko co je mod 2 = 0 je parne a zvysok je neparny}
                           	N:= N div 2;
                            Write (N, ‘ parne, ‘); 
     					   end
       else begin
             N:= 3*N+1;
             Write (N, ‘ neparne, ‘);
            end;
       POCET:= POCET+1;
      
     end;
   WriteLn (‘ pocet krokov = ‘, POCET);
   ReadLn;
End.
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

Tam ma ist o nejaky cyklus pokil sa cislo nebude rovnat 1 no ku cislu ma vypisovat aj ci sa jedna o cislo parne alebo neparne. Vyzera v pohodke co si spravil tak dik :) mne len o to islo ako mam vytvorit cas cyklu ze pri splneni jednej podmienky sa vykona viac veci.
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

mas nejaku podmienku ... za nou mas klucove slovo begin a vsetko az po prisluchajuce klucove slovo end; sa vykona ked je podmienka splnena ... takze svoj kod len vsunies medzi begin a end;

//edit... a davaj programy do code ... kto to ma citat ...
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

mohli by ste mi este s niecim pomoct ? Potrebujem vysvetlit cinnost programu ako to funguje presnejsie co ide prve a co su hodnoty x,y a pomoc. dakujem

Program KRATENIE_ZLOMKOV;
var A, B: integer;
Function NSD(x, y: integer): integer; forward;
Procedure KratZlomok(var citatel, menovatel: integer);
var pomoc: integer;
begin { KratZlomok }
pomoc:= NSD(citatel, menovatel);
citatel:= citatel div pomoc;
menovatel:= menovatel div pomoc;
end; { KratZlomok }
Function NSD; { už bez uvedenia parametrov a typu výsledku}
var pomoc: integer;
begin { NSD }
while x<>0 do
begin {while}
pomoc:= x mod y;
x:= y;
y:= pomoc;
end; {while}
NSD:= x;
end; { NSD }
Begin { Hlavný program / “ozdoby” si každý dorobí sám! }
ReadLn(A, B);
KratZlomok(A, B);
WriteLn(A, B);
End.

mam tam sice vysvetlivky ale neviem si to nejak zrovnat v hlave.
tuti
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 740
Registrovaný: 01 okt 2006, 19:23
Bydlisko: Prievidza

Príspevok od používateľa tuti »

najskor trochu zmrdavky: davaj to do code inak sa to neda dobre citat.

a teraz co tam mame:
Procedura KratZlomok a Funkcia NSD
Funkcia NSD hlada najvacieho spolocneho delitela na zaklade Euklidovho algoritmu (viac tu) najjednoduchy postup ako ziskat delitela

Procedura KratZlomok zisti najvacsieho delitela a vydeli tym vrchu aj spodnu cast zlomku takze dostanes zlomok v zakladnom tvare.

Hlavna cast probgramu potom uz len ukazuje funkcnost a ako je napisane bez ozdob
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

pri napisani tohto programu vsak pise Error 200: Division by zero :((( poradte kde je chybicka ?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Musíš si zohnať upravenú crt.tpu knižnicu (či vlastne system.tpu), alebo program, ktorý ti upraví vzniknutý .exe súbor (alebo oveľa pomalší počítač). :)
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

ach jaj :( moc sa v tom nevyznam nevidel si niekde cize nemas nejaky link alebo mam "Use the fucking google?" Inac este pri konci funkcie NSD nema byt namiesto NSD:=x; >>> NSD:=pomoc; ?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Netuším akú máš verziu Pascalu, takže si to budeš musieť nájsť sám (skús niečo ako "Pascal crt patch").
Stifo16
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 209
Registrovaný: 17 máj 2005, 21:32

Príspevok od používateľa Stifo16 »

No mam Turbo Pascal 7.0 ... by borland international
Daco som uz nasiel, ale ajtak thx ;) idem to vyskusat ci ide
Aha nejde to :((( skusal som aj crt aj ten patch stale pise divison by zero...
co robim zle ? :(
Zrejme budem musiet zabudnut na priklady podobneho typu dufam ze ich vela nie je :)

alebo nemohli by ste mi nejak poslat tie subory co obsahuje ten patch ?
je ich tusim 6 alebo 7

lebo ked spustim ten t7tplfix v adresari turbo pascalu, dam moznost p ako je to v popise aby aplikovalo patch pise ze "none of the files found" ...
Napísať odpoveď