Small Basic: Câteva programe medii


[Explicaţie: pregătirea unui scurt curs de Small Basic pentru copii a făcut să nu mă pot concentra să scriu pentru CNet.ro. Pentru a recupera, voi publica din programele pregătite pentru respectivul curs, cu speranţa că vor folosi cuiva – chiar dacă Small Basic nu e atât de popular.] Mergem mai departe cu nişte programe simple spre medii. Desigur, totul e relativ la nivelul Dvs de cunoştinţe despre Small Basic. E un limbaj pentru copii şi începători: dacă nu ştiţi programare urmaţi tagul Small Basic şi poate veţi învăţa!

1. Se dă un număr. Să se inverseze verificându-se dacă e palindrom (numerele palindrome sunt egale cu “inversul” lor – exemple: 121, 4554, 9834389…). De asemenea să se afle cifra maximă. Online aici.

TextWindow.Write("Scrieţi un număr: ")
n=TextWindow.ReadNumber()
nrest=n
ninvers=0
max=0
While (nrest>0)
  cifra=Math.Remainder(nrest,10)
  If cifra>max Then
    max=cifra
  EndIf
  nrest=Math.Floor(nrest/10)
  ninvers=ninvers*10+cifra
EndWhile
TextWindow.WriteLine("Numărul inversul este: "+ninvers)
If n=ninvers Then
  TextWindow.WriteLine("Este palindrom!")
Else
  TextWindow.WriteLine("Nu este palindrom!")
EndIf
TextWindow.WriteLine("Cea mai mare cifră a numărului este "+max)

2. Se dă un număr. Să se afle suma cifrelor lui şi să se construiască un număr nou doar din cifrele sale pare. Online aici.

TextWindow.Write("Scrieţi un număr: ")
n=TextWindow.ReadNumber()
nrest=n
nnou=0
cate=0
suma=0
While (nrest>0)
  cifra=Math.Remainder(nrest,10)
  suma=suma+cifra
  nrest=Math.Floor(nrest/10)
  If Math.Remainder(cifra,2)=0 Then
    nnou=nnou+cifra*Math.Power(10,cate)
    cate=cate+1
  EndIf
EndWhile
TextWindow.WriteLine("Numărul nou este: "+nnou)
TextWindow.WriteLine("Suma cifrelor este: "+suma)

3. Să se dea o sumă de bani cu minimul de bancnote. Online aici.

TextWindow.Write("Indicaţi suma: ")
n=TextWindow.ReadNumber()
bani[1]=500
bani[2]=200
bani[3]=100
bani[4]=50
bani[5]=10
bani[6]=1
TextWindow.WriteLine("Suma indicată de Dvs se împarte astfel în bancnote: ")
i=1
While n>0
  cate=Math.Floor(n/bani[i])
  If cate>0 Then
    TextWindow.WriteLine(cate+" bacnote de "+bani[i])
  EndIf
  n=Math.Remainder(n,bani[i])
  i=i+1
EndWhile

4. Se dau două numere. Să se afle cel mai mare divizor comun (cmmdc) şi cel mai mic multiplu comun (cmmmc). Online aici.

TextWindow.Write("Primul număr: ")
a=TextWindow.ReadNumber()
TextWindow.Write("Al doilea număr: ")
b=TextWindow.ReadNumber()
aa=a
bb=b
While (aa<>bb)
  If aa>bb Then
    aa=aa-bb
  Else
    bb=bb-aa
  EndIf
EndWhile
TextWindow.WriteLine("CMMDC este "+aa)
TextWindow.WriteLine("CMMDC este "+(a*b)/aa)


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (2 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

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