Lab 8 – 2018

Funktsioonid: [ Link ]
Andmetüübid: [ Link ]
Kodutöö 2: [ Link ]

Ülesanded

Soojendus ainult tunnis (0.5p)

Koodimisstiil (1p)

  • Paranda halva stiiliga kood [ Link ] vastavalt stiilijuhisele [ Link ]
    • Variant vali vastavalt 2 viimase matr. numbrile. Nt 123456 variandiks on 56

NB! Ülesandes olevast koodijupist ei pea aru saama, mõte on juurutada elegantset koodimisstiili.

Jaga funktsioonideks (1p)

Kellel lab6 tehtud:

  • Kuupäeva õigsust kontrolliv funktsioon
    • Nimi: isDateValid
  • Nädalapäeva välja arvutav funktsioon
    • Nimi: dayOfWeek

NB! Programm peab toimima samamoodi nagu lab6 ning kasutama loodud funktsioone isDateValid ja dayOfWeek

Kellel lab6 tegemata:

     Jaga programm funktsioonideks:

  • Vektori kuvamise funktsioon (koodis kasutatakse rohkem kui kord)
    • Nimi: print
    • Parameetriteks vektori suurus ja vektor
    • Kuvab vektori
    • tagastuseta
  • Juhuarvu genereerimise funktsioon (koodis kasutatakse üks kord)
    • Nimi: random
    • Parameetriteks vahemiku algus ja lõpp
    • Genereerib juhusliku arvu mingis vahemikus
    • tagastatakse juhuslik arv
  • Sorteerimise funktsioon (koodis kasutatakse üks kord)
    • Nimi: sort
    • Parameetriteks vektori suurus ja vektor
    • Sorteerib vektori kahanevas järjekorras
    • tagastuseta
  • Korrutamise funktsioon (koodis kasutatakse üks kord)
    • Nimi: multiply
    • Parameetriteks vektori suurus, vektor, number
    • Vektori elemente korrutatakse numbriga ning kuvatakse ekraanil
    • tagastuseta

NB! Pärast funktsioonideks jagamist peab programm töötama samamoodi nagu algne programm!

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define VECTOR_SIZE 20

int main(void) {

    int min = 10;
    int max = 100;
    int vector[VECTOR_SIZE] = {0};
    int number = 0;
    int tmp = 0;

    // Set seed (UNIX timestamp of current time)
    srand(time(NULL));

    // Fill array with random numbers
    for (int num = 0; num < VECTOR_SIZE; num++) {
        number = ((rand() % (max - min)) + min);
        vector[num] = number;
    }

    // Display vector
    for (int i = 0; i < VECTOR_SIZE; i++) {
        printf("%4d", vector[i]);
    }
    printf("\n");

    // Sort the array in Desc. order
    for (int i = 0; i < VECTOR_SIZE - 1; i++) {
        for (int j = 0; j < VECTOR_SIZE - i - 1; j++) {
            if (vector[j] < vector[j + 1]) {
                tmp = vector[j + 1];
                vector[j + 1] = vector[j];
                vector[j] = tmp;
            }
        }
    }

    // Display vector
    for (int i = 0; i < VECTOR_SIZE; i++) {
        printf("%4d", vector[i]);
    }
    printf("\n");

    // Ask user for a magical number
    printf("Enter a number: ");
    scanf("%d", &number);
    
    // Multiply array elements with some number
    for (int i = 0; i < VECTOR_SIZE; i++) {
        printf("%5d", vector[i] * number);
    }
    printf("\n");

    // Display vector (must have the values untouched after sorting)
    for (int i = 0; i < VECTOR_SIZE; i++) {
        printf("%4d", vector[i]);
    }
    printf("\n");

    return 0;
}