Laborator 2 PC FAIMA

Tema de astăzi constă în două probleme, la alegere:


Problema 1


Presupunem că moda respectă un set de reguli stricte, după cum urmează:

  • In fiecare an, obiectele vestimentare sunt fie Mini, fie Maxi, fie Office, iar stilurile se succed exact in aceasta ordine;
  • Culoarea predominanta in fiecare an este una dintre Rosu, Oranj, Galben, Verde, Albastru, Indigo sau Violet - ordinea este cea enumerata, cu 3 exceptii: cand Rosu este la moda, tine 3 ani la rand; Albastru tine 2 ani la rand, iar Indigo (care este mai rar) rateaza una din doua ocazii de a fi la moda. O succesiune tipica este:
    RRROGVeAAIViRRROGVeAAViRRROGVeAAIVi....
  • Accesoriile preferate sunt din trei categorii: Minimal, Extravagant si Clasic. Minimal merge cu moda Mini si Office, dar nu pe Verde si Galben; Extravagant merge doar pe Mini si Maxi; Clasic nu merge pe Rosu, Albastru si Violet; se poate, fireste, ca intr-un an sa mearga mai multe tipuri de accesorii (e.g. intr-un an Mini Oranj merg toate)

Daca 2012 este un an Office Violet, ne intereseaza ce moda era in 1965 si ce moda va fi in

2025.

Problema 2


Presupunem ca in Europa Champions League s-a realizat un pact secret prin care sa se imparta castigatori in mod "echitabil" intre echipele mari, stabilind urmatorul algoritm in urma negocierilor:

  • In fiecare an castigatoarea ECL este din una dintre tarile Anglia, Franta, Spania, Germania, Italia, Portugalia, Rusia, Olanda in aceasta ordine, insa cu cateva exceptii: echipele din Anglia,Spania si Italia castiga cate doua finale la rand, cele din Portugalia castiga doar o data la doua cicluri, cele din Rusia doar o data la trei cicluri, iar la fiecare 4 cicluri apare o castigatoare dintr-o alta tara. Un exemplu de succesiune:
    AAFSSGIIPROAAFSSGIIOAAFSSGIIPOAAFSSGIIROAADDSSGIIPOU....
  • Pentru a pastra aparentele, echipa castigatoare trebuie sa para cea mai puternica, in consecinta trebuie sa aiba cei mai multi Brazilieni in componenta. Concurenta fiind puternica, in fiecare an standardul este diferit - echipele din Portugalia dau tonul: cand castiga o echipa din Portugalia, numarul de Brazilieni necesari ca o echipa sa castige ECL se reseteaza la 1, dupa care creste cu 1 in fiecare an, insa nu mai multi de 10, care este limita impusa de ECL

  • Pentru efectul vizual, o echipa castigatoare a ECL trebuie sa poarte tricouri cu doua dintre urmatoarele culori: Rosu, Alb, Albastru, Negru (o culoare principala si una secundara). Pentru a nu fi nicio confuzie totusi, in doi ani succesivi, echipele castigatoare trebuie sa poarte tricouri diferite, dupa urmatoarea regula: prima culoare este urmatoarea in ordinea enumerarii, iar a doua culoare este cea precedenta in ordinea enumerarii. De exemplu, dupa Rosu-Albastru, urmeaza Alb-Alb; dupa Rosu-Negru urmeaza Alb-Albastru;

Din ce tara va fi echipa castigatoare a ECL in 2025, cati brazilieni va avea si ce culori va purta pe tricou, daca anul acesta (2012) castiga CSKA Moscova (Rusia, Rosu-Negru), iar in 2011 a castigat FC Porto (Portugalia, Alb-Albastru)?

Care este urmatorul an in care Steaua Bucuresti ar putea castiga ECL -- de asemenea, ce culori ar trebui sa poarte si cati Brazilieni ar trebui sa aiba Steaua in componenta in anul respectiv?


Va reamintesc (prin exemple) urmatoarele concepte:


Clasa


Se defineste:


public class Dog {

 private String name, race;
 private Date dateOfBirth;
 private double weight;

 public Dog(String dogName, String dogRace, Date dogDateOfBirth) {
  this.name = dogName;
  this.race = dogRace;
  this.dateOfBirth = dogDateOfBirth;
 }

 public String getName() {
  return this.name;
 }

 public void setName(String dogName) {
  this.name = dogName;
 }

 public Date getDateOfBirth() {
  return dateOfBirth;
 }

 public void setDateOfBirth(Date dateOfBirth) {
  this.dateOfBirth = dateOfBirth;
 }

public String getRace() {
return race;
}

public void setRace(String race) {
this.race = race;
}

 public double getWeight() {
  return weight;
 }

 public void setWeight(double weight) {
  this.weight = weight;
 }
}

... si se foloseste:


Dog myDog=new Dog("Noroc","Maidanez",new Date());
myDog.setWeight(35.3);


Structuri de control

for


for(int i=0;i<10;i++){  System.out.printf("Am ajuns la iteratia %d",i); }

while


int i=0;
while(i<10){  System.out.printf("Am ajuns la iteratia %d",i);  i++; }

if ... else


Date now=new Date();
if(now.getTime()%2L==0){
 System.out.printf("Suntem intr-o milisecunda para");
}
else{
 System.out.printf("Suntem intr-o milisecunda impara");
}

switch ... case ... default


Date now=new Date();
switch((int)(now.getTime()%3L)){
 case 2:
  System.out.printf("Milisecunda de acum da restul 2 la impartirea cu 3");
  break;
 case 1:
  System.out.printf("Milisecunda de acum da restul 1 la impartirea cu 3");
  break;
 default:
  System.out.printf("Milisecunda de acum se imparte la 3");
  break;
}

0 comentarii: