Extras din proiect
Probleme diverse:
1. Se da un numar intreg.Sa se calculeze si sa se afiseze produsul cifrelor sale.
Pseudocod:
{ INTREG: n, prod=1;
SCRIE (“Introduceti numarul:”); CITESTE (n);
WHILE (n!=0) DO
{prod=prod*(n%10);
n=n/10;
}ENDDO
SCRIE (“Produsul cifrelor este:”,prod);
}
Codificare C:
#include <stdio.h>
void main( )
{
int n, prod=1;
printf ("Introduceti numarul:"); scanf ("%d",&n);
while (n!=0)
{
prod=prod*(n%10);
n=n/10;
}
printf ("Produsul cifrelor este: %d",prod);
}
Mod de retinere:
Se aplica urmatorul algoritm: Suma se initializeaza cu 0.Intr-o secventa repetitiva de tip cat timp in variabila suma se aduna de fiecare data restul impartirii numarului analizat la 10.La fiecare pas numarul analizat devine n/10 pana cand devine 0, moment in care se iese din secventa repetitive si se afiseaza variabila sum, care contine suma cifrelor numarului initial.
Set de valori:
n=2538
n!=0 OK n!=0 OK n!=0 OK n!=0 OK n!=0 NOT
prod=8 prod=24 prod=120 sum=240 Produsul cifrelor
n=253 n=25 n=2 n=0 este 240
2. Se introduce un numar de la tastatura. Sa se verifice daca numarul introdus este sau nu palindrom.
Pseudocod:
{Intreg n,pal,inv;
Citeste(n);
pal=n;
while n>0 do
{
inv=inv*10 + n%10;
n=n/10;
}
endwhile;
if inv==pal then
Scrie (“nr n este palindrom”);
Else
Scrie (“nr n nu este palindrom”);
endif:
}
Codificare C:
#include<stdio.h>
void main()
{
int n,pal,inv = 0;
printf ("Introduceti numarul:");
scanf ("%d",&n);
pal=n;
while(n!=0)
{
inv=inv*10+n%10;
n=n/10;}
if(inv==pal)
printf("%d este palindrom", pal);
else
printf("%d nu este palindrom", pal);
}
Mod de retinere:
Initial numarul citit de la tastatura trebuie memorat pentru ca el se va pierde o data cu construirea inversului sau. Apoi incepem sa construim inversul prin obtinerea restului impartirii numarului n la 10. Dupa ce obtinem inversul verificam daca este egal cu numarul initial.
Preview document
Conținut arhivă zip
- Proiect Bazele Programarii.doc