Scheme logice: Două exemple


OK. Să zicem că în ultimele 1, 2, 3 articole am explicat elementele de bază legate de schemele logice. Acum vă propun să vedem două scheme ceva mai complicate (nu, nu sunt din cele cu adevărat complicate), ca test că am înţeles partea de introducere. Şi începem cu schema logică de mai jos (sau aici): oare ce face? Desigur, cei cu experienţă aruncă o privire şi înţeleg. Pentru ceilalţi cel mai sigur e să ia o foaie şi un creion şi să urmărească evoluţia variabilelor din schema logică. Spre reamintire: cu % aflăm restul împărţirii (adică 11%3 este 2).

imagine

Dacă v-aţi dat seama e foarte bine! Schema logică de mai sus citeşte două valori: m şi n. Apoi merge cu i de la 1 la n, adică face ceva între 1 şi n. Ce? Adună în s doar acele valori care se divid exact la m. Cu alte cuvinte face suma numerelor de la 1 la n care se divid exact cu m. Dacă n este 10 şi m este 2, va calcula 1+3+5+7+9. Dacă n este 50 şi m este 7, va calcula 7+14+21+28+35+42+29. Simplu, nu? Desigur, exemplul e didactic, adică obiectivul ar putea fi atins şi altfel, mai rapid, dar schema logică de mai sus face ceea ce tocmai am spus.

Acum să vedem un al doilea exemplu (aici sau mai jos). Ei, aici s-ar putea să nu intuiţi ce face, pentru că se foloseşte un algoritm anume. Dacă mă ajută memoria, CMMDC, adică cel mai mare divizor comun, se poate calcula prin scăderi repetate, respectiv prin împărţiri repetate. Schema logică de mai jos se foloseşte de scăderi repetate. La final, în a (dar şi în b) vom avea CMMDC. Dacă nu mă credeţi verificaţi luând două numere (a şi b) şi parcurgând schema logică 😉 .

imagine

Acestea au fost cele două exemple…


Apreciază articolul:

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

1 comentariu

  1. Skybrax spune:

    Din cate stiu e gresit acolo la ramura „Nu”, trebuia b=b-a. E gresit si dpdv logic pentru ca nu-si mai aveau rostul 2 ramuri cu acceasi secventa.


Lasă un răspuns

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