'Traducere'

Pascal este un limbaj imperativ, creat inițial pentru a ajuta la predarea noțiunilor de programare structurati studenților. Delphi, urmașul lui Pascal, este un mediu de dezvoltare pentru aplicații Windows. Delphi este primul limbaj de programare (Object Pascal, mai exact) care a îmbinat ușurința în programare a limbajelor de nivel înalt și puterea uneltelor de lucru de nivel scăzut într-un mediu RAD.

'Traducere'

Postby noobakaflo » 20 Dec 2010, 12:13

Salut..Imi spune si mie cineva va rog ce face programul asta ?Sunt indicatiile de rezolvare pentru problema
'Tort' de pe Campion.

  1. program tort;
  2. var m,n,d,nr:longint;
  3.     f1,f2:text;
  4.  
  5. function cmmdc(x,y:longint):longint;
  6. var r:longint;
  7. begin
  8.   while y<>0 do
  9.     begin
  10.       r:=x mod y;
  11.       x:=y;
  12.       y:=r
  13.     end;
  14.   cmmdc:=x
  15. end;
  16.  
  17. begin
  18.   assign(f1,'tort.in'); reset(f1);
  19.   readln(f1,m,n);
  20.   close(f1);
  21.   d:=cmmdc(m,n);
  22.   nr := (m div d)*(n div d);
  23.   assign(f2,'tort.out'); rewrite(f2);
  24.   writeln(f2,nr,' ',d);
  25.   close(f2)
  26. end.
0,0p / 0 votes
User avatar
noobakaflo
Bit
 
Joined: 10 Dec 2010
Location: Ploiesti
Status: 1

Re: 'Traducere'

Postby morpheus » 20 Dec 2010, 14:09

Avem tortul dreptunghiular, de lungime M si latime N.
Vrem sa-l impartim intr-un numar minim de portii patrate. Notam latura patratului portiei cu L.
Notam numarul de portii cu k.

Aria tortului este M x N. Aria unei portii este L x L. Avem k portii, deci:
M x N = k x L x L => k = (M x N)/(L x L)

Vrem sa obtinem un numar minim de portii. De asemenea stim ca M, N, L si k sunt numere naturale nenule.
Se observa, din aceasta restrictie, ca L trebuie sa divida atat M cat si N. Deoarece k trebuie sa fie minim, reiese ca L trebuie sa fie cel mai mare divizor al numerelor M si N.

In codul de mai sus, cmmdc e o functie care calculeaza cel mai mare divizor comun prin algoritmul lui Euclid.
1p / 1 votes
User avatar
morpheus
Word
 
Joined: 30 Dec 2009
Location: Bucharest, Romania
Status: 54.84

Re: 'Traducere'

Postby smith » 20 Dec 2010, 14:20

Problema spune că se dă un tort de dimensiuni M x N. Bucățile în care se împarte tortul trebuie să fie numere întregi (deci nu merge cu jumătăți de măsură). Apoi ne cere să găsim numărul minim de bucăți pătrate în care putem să împărțim tortul. Asta înseamnă că bucățile pătrate trebuie să fie cât mai mari posibile deci cât mai puține (dacă cerea să se afle numărul maxim de pătrate acesta era chiar M*N și de lungime minimă egală 1 ).

Astfel, trebuie să împărțim și lungimea și lățimea la același număr d iar rezultatul împărțirii să fie întreg. Acest număr d trebuie să fie și cel mai mare divizor al celor două mărimi(lungimea și lățimea). De aia apare în programul tău o funcție pentru determinarea cmmdc (cel mai mare divizor comun). Acest d va fi latura pătratului.

Având latura, putem afla de câte ori se împarte lungimea și lățimea în pătrate.

LE: poate înțelege mai bine de la 2 oameni :))
1p / 1 votes
Ilea Cristian
User avatar
smith
Enum
 
Joined: 29 Dec 2009
Location: Cluj-Napoca
Status: 82

Re: 'Traducere'

Postby noobakaflo » 20 Dec 2010, 14:33

Multumesc mult ! :D
0,0p / 0 votes
User avatar
noobakaflo
Bit
 
Joined: 10 Dec 2010
Location: Ploiesti
Status: 1


Return to Pascal / Delphi

Who is online

Users browsing this forum: No registered users and 1 guest