Αποστολέας Θέμα: ΑΣΚΗΣΗ ΜΕ ΕΤΑΙΡΕΙΕΣ  (Αναγνώστηκε 673 φορές)

landreou

  • Δεινόσαυρος
  • *****
  • Μηνύματα: 124
ΑΣΚΗΣΗ ΜΕ ΕΤΑΙΡΕΙΕΣ
« στις: 30 Σεπ 2013, 08:23:33 πμ »
Γεια χαρά .
Παραθέτω  ένα θέμα που μου έκανε εντύπωση ένα ερώτημά του.

ΕΚΦΩΝΗΣΗ

Ενας όμιλος απότελείται από 20 εταιρείες.
Να γράψετε πρόγραμμα το οποίο :
[1] Να περιλαμβάνει τμημα δηλώσεων .
[2] Να δια βάζει τα ονόματα των εταιρειών του ομίλου και τα κέρδη τους για καθένα πο τα έτη 2001 έως και 2005.
[3] Για κάθε εταιρεία του ομίλου να καλεί συνάρτηση για τον υπολογισμό του κέρδους της εταιρείας στην πενταετία. Στη συνέχεια να υπολογίζει και να εμφανίζει το μέσο ετήσιο κέρδος του ομίλου.
[4] Για κάθε εταιρεία να βρίσκει την τριετία με το μεγαλύτερο συνολικό κέρδος και να εμφανίζει το όνομα της εταιρείας , και το πρώτο έτος της συγκεκριμένης τριετίας.

Η ΛΥΣΗ ΠΟΥ ΔΙΝΩ

!**************************************************************************************
ΠΡΟΓΡΑΜΜΑ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : i,J,M,ETH[5],ΤΕΜΠ
ΠΡΑΓΜΑΤΙΚΕΣ: ΟΛΙΚΟ_ΟΜΙΛΟΥ,ΜΕΣΟ_ΕΤΗΣΙΟ_ΟΜΙΛΟΥ,ΚΕΡΔΗ[20,5],ΤΕΜΠ1
ΧΑΡΑΚΤΗΡΕΣ : ΕΤΑΙΡΕΙΕΣ[20],ΤΕΜΠ2

ΑΡΧΗ

ΟΛΙΚΟ_ΟΜΙΛΟΥ <- 0

ΜΕΣΟ_ΕΤΗΣΙΟ_ΟΜΙΛΟΥ <- 0

ΓΙΑ Ι ΑΠΟ 1 ΜΕΧΡΙ 20
      ΔΙΑΒΑΣΕ ΕΤΑΙΡΕΙΕΣ
     ΓΙΑ J AΠΟ 1 ΜΕΧΡΙ 5
                   ΕΤΗ[J] <- 2000 + J           ! ΓΕΜΙΖΩ ΚΑΙ ΠΙΝΑΚΑ 5ΘΕΣΙΟ ΜΕ ΤΑ ΈΤΗ 2001 ... 2005
                   ΔΙΑΒΕΣΕ ΚΕΡΔΗ[I,J]
                   ΚΕΡΔΗ_ΠΕΝΤΑΕΤΙΑΣ_ΑΝΑ_ΕΤΑΙΡΕΙΑ[J] <- 0 ! ΠΙΝΑΚΑΣ ΜΕ ΤΑ ΣΥΝΟΛΑ ΓΑ ΚΑΘΕ ΕΤΑΙΡΕΙΑ
     ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΆΛΗΨΗΣ
 
ΓΙΑ I ΑΠΌ 1 ΜΕΡΙ 20
     
           ΣΥΝΟΛΟ[Ι] <- CALC(I,ΚΕΡΔΗ)

           ΟΛΙΚΟ_ΟΜΙΛΟΥ <- ΟΛΙΚΟ_ΟΜΙΛΟΥ _ ΣΥΝΟΛΟ[J]

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

ΜΕΣΟ_ΕΤΗΣΙΟ_ΟΜΙΛΟΥ <- ΟΛΙΚΟ_ΟΜΙΛΟΥ /5

ΓΙΑ I ΑΠΌ 1 ΜΕΧΡΙ 20
     
    ΓΙΑ J ΑΠΟ 2 ΜΕΧΡΙ 5

             ΓΙΑ M ΑΠΌ 5 ΜΕΧΡΙ J ME_BHMA -1
                 
                     ΑΝ ΚΕΡΔΗ[Μ-1] > ΚΕΡΔΗ[Μ] ΤΟΤΕ
                                  ! ΤΑΞΙΝΟΜΩ ΚΑΤΑ ΦΘΙΝΟΥΣΑ ΣΕΙΡΑ ΤΗ ΚΑΘΕ ΓΡΑΜΜΗ ΜΕ ΒΑΣΗ ΤΑ ΚΕΡΔΗ                                           
                                        ΤΕΜΠ1 <- ΚΕΡΔΗ[Μ-1]
                                         ΚΕΡΔΗ[Μ-1] <- ΚΕΡΔΗ[Μ]
                                         ΚΕΡΔΗ[Μ] <- ΤΕΜΠ1
                                   !  ΚΑΙ ΤΟΝ ΠΙΝΑΚΑ ΤΩΝ ΕΤΩΝ ΠΟΥ ΒΟΗΘΗΤΙΚΑ ΕΧΩ ΔΗΜΙΟΥΡΓΗΣΕΙ
                                          ΤΕΜΠ <- ΕΤΗ[Μ-1]
                                          ΕΤΗ[Μ-1] <- ΕΤΗ[Μ]
                                          ΕΤΗ[Μ] <- ΤΕΜΠ
                     ΤΕΛΟΣ_ΑΝ

            ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
                   
            ΓΡΑΨΕ  'ΟΝΟΜΑ ΕΤΑΙΡΕΙΑΣ : ', ΕΤΑΙΡΕΙΑ[Ι]
            ΓΡΑΨΕ ' ΤΡΙΕΤΙΑ ΜΕΓΙΣΤΩΝ ΚΕΡΔΩΝ  : ' , ΕΤΗ[1] , ΕΤΗ[2], ΕΤΗ[3] ! Η ΤΡΙΕΤΙΑ ΔΕΝ ΕΙΝΑΙ ΤΑΞΙΝΟΜΗΜΕΝΗ
            MIN <- ETH[1]                        ! ΒΡΙΣΚΩ ΤΟ ΜΙΚΡΟΤΕΡΟ ΕΤΟΣ ΤΗΣ ΤΡΙΕΤΙΑΣ
             AN MIN <- ETH[2] TOTE
                             MIN <- ETH[2]
             ΤΕΛΟΣ_ΑΝ
             ΑΝ ΜΙΝ <- ΕΤΗ[3] ΤΟΤΕ
                             ΜΙΝ <- ΕΤΗ[3]
             ΤΕΛΟΣ_ΑΝ
              ΓΡΑΨΕ ' ΠΡΩΤΟ ΕΤΟΣ ΤΡΙΕΤΙΑΣ = ', ΜΙΝ       ! ΤΥΠΩΝΩ ΤΟ ΜΙΚΡΟΤΕΡΟ ΕΤΟΣ ΤΗΣ ΤΡΙΕΤΙΑΣ

               ΕΤΗ[1] <- 2001               ! ΞΑΝΑΒΑΖΩ ΤΑ ΕΤΗ ΜΕ ΤΗ ΣΕΙΡΑ ΓΙΑ ΝΑ ΠΑΩ ΣΤΗΝ ΕΠΟΜΕΝΗ ΓΡΑΜΜΗ
               ΕΤΗ[2] <- 2002               ! ΤΟΥ ΠΙΝΑΚΑ ΚΕΡΔΩΝ
               ΕΤΗ[3] <- 2003
               ΕΤΗ[4] <- 2004
               ΕΤΗ[5] <- 2005

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ


ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

!**************************************************************************************
ΣΥΝΑΡΤΗΣΗ CALC(Ι,ΚΕΡΔΗ) : ΠΡΑΓΜΑΤΙΚΗ
ΜΕΤΑΒΛΗΤΕΣ
ΑΚΕΡΑΙΕΣ : Ι,J
ΠΡΑΓΜΑΤΙΚΕΣ : ΚΕΡΔΗ[20,5], ΣΥΝΟΛΟ

ΑΡΧΗ

ΣΥΝΟΛΟ <- 0

ΓΙΑ J ΑΠΟ 1 ΜΕΧΡΙ 5

               ΣΥΝΟΛΟ <- ΣΥΝΟΛΟ + ΚΕΡΔΗ[Ι,J]

ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ

CALC <- ΣΥΝΟΛΟ

ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
!**************************************************************************************