Gruppearbeid Høst 2017 / Mbed 2 deprecated oving_8

Dependencies:   mbed

Committer:
Banyrud
Date:
Tue Oct 24 12:33:27 2017 +0000
Revision:
0:ab8a99024206
?ving 8 BAN og AM

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Banyrud 0:ab8a99024206 1 #include "mbed.h"
Banyrud 0:ab8a99024206 2
Banyrud 0:ab8a99024206 3 // Globale objekter og variable
Banyrud 0:ab8a99024206 4 Serial pc(USBTX, USBRX);
Banyrud 0:ab8a99024206 5 int numbers[100]; // Tabell som skal fylles med tallverdier
Banyrud 0:ab8a99024206 6
Banyrud 0:ab8a99024206 7 // Funksjonsprototyper for funksjonene som skal skrives
Banyrud 0:ab8a99024206 8 int get_seed();
Banyrud 0:ab8a99024206 9 int get_number_of_elements();
Banyrud 0:ab8a99024206 10 int mySeed, numElements;
Banyrud 0:ab8a99024206 11 void fill_array(int seed, int arr[], int len);
Banyrud 0:ab8a99024206 12 void sort_array(int arr[], int len);
Banyrud 0:ab8a99024206 13 void print_array(int arr[], int len);
Banyrud 0:ab8a99024206 14
Banyrud 0:ab8a99024206 15 int main()
Banyrud 0:ab8a99024206 16 {
Banyrud 0:ab8a99024206 17 mySeed = get_seed();
Banyrud 0:ab8a99024206 18 numElements = get_number_of_elements();
Banyrud 0:ab8a99024206 19 fill_array(mySeed, numbers, numElements );
Banyrud 0:ab8a99024206 20 print_array(numbers, numElements );
Banyrud 0:ab8a99024206 21 sort_array(numbers, numElements );
Banyrud 0:ab8a99024206 22 print_array(numbers, numElements );
Banyrud 0:ab8a99024206 23
Banyrud 0:ab8a99024206 24 return 0;
Banyrud 0:ab8a99024206 25 }
Banyrud 0:ab8a99024206 26 int get_seed()
Banyrud 0:ab8a99024206 27 {
Banyrud 0:ab8a99024206 28 int tall;
Banyrud 0:ab8a99024206 29 pc.printf("Tast inn et tall:");
Banyrud 0:ab8a99024206 30 pc.scanf("%d",&tall);
Banyrud 0:ab8a99024206 31 pc.printf("%d\n",tall);
Banyrud 0:ab8a99024206 32 return tall;
Banyrud 0:ab8a99024206 33 }
Banyrud 0:ab8a99024206 34 int get_number_of_elements()
Banyrud 0:ab8a99024206 35 {
Banyrud 0:ab8a99024206 36 int elementer;
Banyrud 0:ab8a99024206 37 pc.printf("Tast inn hvor mange elementer du vil ha i tabellen:");
Banyrud 0:ab8a99024206 38 pc.scanf("%d",&elementer);
Banyrud 0:ab8a99024206 39 pc.printf("%d\n",elementer);
Banyrud 0:ab8a99024206 40 return elementer;
Banyrud 0:ab8a99024206 41 }
Banyrud 0:ab8a99024206 42 void fill_array(int seed, int arr[], int len)
Banyrud 0:ab8a99024206 43 {
Banyrud 0:ab8a99024206 44 int rnd;
Banyrud 0:ab8a99024206 45 srand(seed);
Banyrud 0:ab8a99024206 46 for (int i = 0; i < len; i++) {
Banyrud 0:ab8a99024206 47 rnd = (rand() % 101);
Banyrud 0:ab8a99024206 48 arr [i] = rnd;
Banyrud 0:ab8a99024206 49 }
Banyrud 0:ab8a99024206 50 }
Banyrud 0:ab8a99024206 51 void sort_array(int arr[], int len)
Banyrud 0:ab8a99024206 52 {
Banyrud 0:ab8a99024206 53 int unsorted = 1;// Starter med å anta at tabellen er usortert
Banyrud 0:ab8a99024206 54 while(unsorted) {
Banyrud 0:ab8a99024206 55 unsorted = 0; // Antar så at dette er siste gjennomløp
Banyrud 0:ab8a99024206 56
Banyrud 0:ab8a99024206 57 for(int a = 0; a < len-1; a++) {
Banyrud 0:ab8a99024206 58 if (arr[a] > arr[a+1]) { // Hvis feil rekkefølge:
Banyrud 0:ab8a99024206 59 // bytt plass.
Banyrud 0:ab8a99024206 60 float x; // x er en hjelpevariabel
Banyrud 0:ab8a99024206 61 x = arr[a];
Banyrud 0:ab8a99024206 62 arr[a] = arr[a+1];
Banyrud 0:ab8a99024206 63 arr[a+1] = x;
Banyrud 0:ab8a99024206 64 unsorted = 1; // Minst ett bytte gjør at
Banyrud 0:ab8a99024206 65 // tabellen må testes på nytt
Banyrud 0:ab8a99024206 66 }
Banyrud 0:ab8a99024206 67 }
Banyrud 0:ab8a99024206 68 }
Banyrud 0:ab8a99024206 69
Banyrud 0:ab8a99024206 70 }
Banyrud 0:ab8a99024206 71 void print_array(int arr[], int len)
Banyrud 0:ab8a99024206 72 {
Banyrud 0:ab8a99024206 73 int lf = 0;
Banyrud 0:ab8a99024206 74 for (int i = 0; i < len; i++) {
Banyrud 0:ab8a99024206 75 lf = 0;
Banyrud 0:ab8a99024206 76 pc.printf("%6d", arr[i]);
Banyrud 0:ab8a99024206 77 if((i % 3) == 2) {
Banyrud 0:ab8a99024206 78 printf("\n");
Banyrud 0:ab8a99024206 79 lf = 1;
Banyrud 0:ab8a99024206 80 }
Banyrud 0:ab8a99024206 81 }
Banyrud 0:ab8a99024206 82 if (lf == 0) {
Banyrud 0:ab8a99024206 83 printf("\n");
Banyrud 0:ab8a99024206 84 }
Banyrud 0:ab8a99024206 85 }
Banyrud 0:ab8a99024206 86
Banyrud 0:ab8a99024206 87
Banyrud 0:ab8a99024206 88
Banyrud 0:ab8a99024206 89
Banyrud 0:ab8a99024206 90
Banyrud 0:ab8a99024206 91
Banyrud 0:ab8a99024206 92
Banyrud 0:ab8a99024206 93
Banyrud 0:ab8a99024206 94
Banyrud 0:ab8a99024206 95
Banyrud 0:ab8a99024206 96