Pascal – lectia 4 – Conditii si algoritmi esentiali in prelucrarea numerelor sau cifrelor unui numar

CONDITII
Numar impar:

nr mod 2=0 sau nr mod 2<>1

Numar par:

nr mod 2=1 sau nr mod 2<>0

Ultima cifra para:

(nr mod 10) mod 2=0

Ultima cifra impara:

(nr mod 10) mod 2=1

Patrat perfect:

frac(sqrt(nr))=0
sau
trunc(sqrt(nr))=sqrt(nr)

Numere prime intre ele:

cmmdc=1
cmmdc1*cmmdc2=n1*n2

Numar palindrom:

inv=nr

Algoritmi:

Determinarea si afisarea cifrelor unui numar

write('nr='); readln(nr);
cop:=nr; {folosim o copie a numarului x deoarece acesta se va modifica}
while cop<>0 do
begin
cif:= cop mod 10;
write('cifra este', cif);
end;

Determinarea si afisarea sumei si produsului cifrelor unui numar

write('nr='); readln(nr);
S:=0;
P:=1;
cop:=nr;
while cop <>0 do
begin
cif:=cop mod 10;
P:=P*cif;
S:=S+cif;
cop:=cop div 10;
end;
write('Produsul este: ',P);
write('Suma este: ',S);

Determinarea inversului unui numar

write('nr='); readln(nr);
inv:=0;
cop:=nr;
while cop<>0 do
begin
cif:=cop mod 10;
inv:=inv*10 + cif;
cop:=cop div 10;
end;
write('inversul numarului este: ',inv);

Daca inversul numarului este egal cu numarul atunci, numarul se numeste PALINDROM
Verificrea proprietatii de numar prim

write('nr='); readln(nr);
prim:=true;
d:=2;
while(d<=x div 2) and prim do
if x mod d=0 then
prim:=false
else
begin
d:=d+1;
if prim=true then
write(nr,'prim')
else
write(nr,'neprim');

Determinarea celui mai mare divizorcomun
a) prin scadere

write('nr1='); readln(nr1);
write('nr2='); readln(nr2);
cnr1:=nr1;
cnr2:=nr2;
while cnr1<>cnr2 do
if cnr1>cnr2 then
cnr1:=cnr1-cnr2
else
cnr2:=cnr2-cnr1;
cmmdc:=n1;
write(cmmdc);

b) prin impartire

write('nr1='); readln(nr1);
write('nr2='); readln(nr2);
cnr1:=nr1;
cnr2:=nr2;
while cnr2<>0 do
begin
r:=cnr1 mod cnr2;
cnr1:=cnr2;
cnr2:=r;
end;
cmmdc:=cnr1;

Numere prime intre ele

cmmdc:=1;
write('nr1='); readln(nr1);
write('nr2='); readln(nr2);
cnr1:=nr1;
cnr2:=nr2;
while cnr1<>cnr2 do
if cnr1>cnr2 then
cnr1:=cnr1-cnr2
else
cnr2:=cnr2-cnr1;
cmmdc:=n1;
if cmmdc=1 then
write(nr1,nr2,'sunt prime intre ele')
else
write('numerele nu sunt prime intre ele');

Aflarea maximului:

write('nr='); readln(nr);
max:=nr;
while nr<>0 do
begin
if nr>max then
max:= nr;
readln(nr);
end;
write('maximul este:',max);

Produsul numerelor impare mai mici decat n

write('n='); readln(n);
P:=1;
i:=1;
repeat
P:=P*i;
i:=i+1;
until i>n
write(P);

Produsul numerelor impare mai mici decat n

write('n='); readln(n);
P:=1;
i:=2;
repeat
P:=P*i;
i:=i+2;
until i>n
write(P);

Descompunere in factori primi:

d:=2; {primul factor prim posibil}
while nr<>1 do
begin
p:=0; {puterea la care apare factorul prim}
while nr mod d=0 do
begin
p:=p+1;
nr:=nr div d;
end;
if p<>0 then
write(d,'la puterea ',p);
d:=d+1;
end;

2 Comments

Add a Comment

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.