DUzun's Web
Programare, proiecte personale, divertisment

DUzun it's ME
 
\ 09 aprilie 2025, 10:14:07 \  
Conținut

Banknote.pas

 
uses crt;
const NrNominal=9;                              {Nr. de nominaluri}
      valiuta:array[1..NrNominal]of integer=
      (1, 5, 10, 20, 50, 100, 200, 500, 1000);  {Enumerarea nominalurilor}
var NrBanknote:array[1..NrNominal]of integer;   {Nr de bancnote de fiecare nominal in suma indicata}
    Suma: LongInt;                              {Suma de impartit in nominaluri}
Procedure CalcBanknote(SumaLei:LongInt);        {Calculeaza cate bancnote de fiecare formeaza SumaLei}
var i:integer;
    Suma:LongInt;
begin
 Suma:=SumaLei;
 For i:=1 To NrNominal do NrBanknote[i]:=0;     {Initial avem cate 0 bancnote de fiecare}
 For i:=NrNominal DownTo 1 do                   {Incepem cu valoarea cea mai mare si parcurgem toate tipurile de bancnote...}
  if Valiuta[i]<=Suma then                      {Daca valoarea bancnotei 'i' e mai mica decat suma, atunci se poate de scazut din suma...}
   Repeat
    Suma:=Suma-Valiuta[i];                      {Scadem valoarea bancnotei din suma de lei}
    inc(NrBanknote[i]);                         {Mai adaugam o bancnota de de tipul 'i'}
   Until(Suma=0)or(Valiuta[i]>Suma)             {Se repeta operatiile de mai sus pana suma = 0 sau suma devine mai mica decat valoarea bancnotei}
  else if Suma=0 then exit;                     {Daca suma a fost initial '0' (inainte de a scadea), atunci se termina executia procedurii curente}
end;
Procedure ArataBanknote(SumaLei:LongInt;titl1,titl2:string);  {Afiseaza pe ecran nr bamcnote de fiecare nomilal ce formeaza sumalei}
var i:integer;
begin
 WriteLn;
 CalcBanknote(SumaLei);                           {Intai se fac calculele cu ajutorul proceduri declarate mai sus}
 Writeln(' '+titl1+' - '+titl2);                  {Se afiseaza titlul tabelului}
 For i:=1 to length(titl1)+length(titl2)+5 do write('_');{Se traseaza linia ce separa titlul tabelului}
 Writeln;
 For i:=1 to NrNominal do if NrBanknote[i]>0 then {Daca avem mai mult de '0' bancnote de nominalul respectiv, atunci...}
 WriteLn(Valiuta[i]:length(titl1)+1,' - ',NrBanknote[i]:length(titl2));  {se afiseaza valoarea bancnotei si nr de bancnote cu aceasta valoare}
end;
Begin
 TextMode(1);                                    {Setarea modului textual}    
 ClrScr;                                         {Curatirea ecranului}
 Write('Suma lei: ');readln(suma);               {Introducerea sumei de la tastatura}
 ArataBanknote(suma,'Nominalul','Nr Bancnote');  {Afisarea pe ecran a nr de bancnote de fiecare nominal}
 readkey;                                        {Asteptarea utilizatorului sa preseze o tasta}
End.

Aici acumulez programe şi algoritmi interesanti alcătuiţi de mine (cu mici excepţii) pe parcursul studierii unor limbaje de programare.

Cea mai mare parte din ele sunt realizate în Pascal. 

Nu am scopul creării unui curs specializat sau a descrierii detaliate a anumitor limbaje, ci doar prezint informaţii utile, plus ceva exemple interesante...

 

Răsfoitorul de fișiere (File Browser):

Codul sursă al programelor este organizat în mape şi fişiere.

Paginile care conțin cod sursă de programe de regulă au un răsfoitor de fișiere în partea stangă a paginii reprezentat de un bloc cu titlul „File Browser”.

Pentru a vizualiza un program sau conţinutul unei mape, faceţi click pe numele fişierului / mapei. Dacă fişierul nu este textual, el se va descărca automat, iar dacă este textual, conținutul lui se va afișa într-un bloc pe centrul paginii.

Pentru a descărca un fişier, faceţi click pe dimensiunea (size) lui.

arr_d Limba / Language


 


arr_r Login
 
 
Loading...