Emania

Verca semestralka

Feb 26th, 2017
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.70 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <stdint.h>
  6.  
  7. #include "employee.h"
  8. #include "elist.h"
  9. #include "inputOutput.h"
  10.  
  11. using namespace std;
  12.  
  13. struct Node {
  14.     struct Node * next;
  15.     int number;
  16. };
  17.  
  18. void add_node(int number);
  19. void add_node_copy(int number);
  20. void print_numbers();
  21. void print_numbers_copy();
  22. struct Node * create_node(int number);
  23. int find_min();
  24. void create_copy();
  25. void decrease_numbers(int d);
  26.  
  27. struct Node start;      // struktura
  28. struct Node * start_pointer = &start;   // adresa
  29. struct Node * end_pointer = &start; // pro jeden uzel je start i end
  30.  
  31. struct Node start_copy;      // struktura
  32. struct Node * start_copy_pointer = &start_copy;   // adresa
  33. struct Node * end_copy_pointer = &start_copy; // pro jeden uzel je start i end
  34.  
  35.  
  36. int main() {
  37.    
  38.    
  39.     /* NACTI ZE SOUBORU */
  40.    
  41.     bool on_start = true;
  42.     ifstream file;
  43.     file.open("numbers.txt");
  44.     int i;
  45.    
  46.     // vytvori list
  47.     while (file >> i) {
  48.         if(on_start){
  49.             start.number = i;
  50.             on_start = false;
  51.         } else{
  52.             add_node(i);
  53.         }
  54.     }
  55.    
  56.    
  57.     // vypis seznam
  58.     cout << "PRINTING ALL NODES" << endl;
  59.     print_numbers();
  60.    
  61.    
  62.     // find min
  63.     int minimum = find_min();
  64.     cout << endl << "MINIMUM JE " << minimum << endl << endl;;
  65.    
  66.     //vypis kopii
  67.     create_copy();
  68.     cout << "PRINTING ALL NODES IN COPY" << endl;
  69.     print_numbers_copy();
  70.    
  71.    
  72.     int decrease = 5;
  73.     cout << endl << "DECREASING FOR " << decrease << endl;
  74.     decrease_numbers(decrease);
  75.    
  76.    
  77.     cout << "done";
  78.    
  79.     return 0;
  80. }
  81.  
  82. void add_node(int number){
  83.     struct Node * n = create_node(number);
  84.     end_pointer->next = n;
  85.     end_pointer = n;
  86. }
  87.  
  88. void print_numbers(){
  89.     struct Node * pointer = start_pointer;
  90.     cout << "cislo v nodu je " << pointer->number << endl;
  91.     while(pointer != end_pointer){
  92.         pointer = pointer->next;
  93.         cout << "cislo v nodu je " << pointer->number << endl;
  94.     };
  95. }
  96.    
  97.  
  98. struct Node * create_node(int number){
  99.     struct Node * n = new Node();
  100.     n->number = number;
  101.     return n;
  102. }
  103.  
  104. int find_min(){
  105.     struct Node * pointer = start_pointer;
  106.     int min = start_pointer->number;
  107.     while(pointer != end_pointer){
  108.         pointer = pointer->next;
  109.         if(pointer->number < min){
  110.             min = pointer->number;
  111.         }
  112.     };
  113.     return min;
  114. }
  115.  
  116. void create_copy(){
  117.     struct Node * pointer = start_pointer;
  118.     int last_num = start_pointer->number;
  119.    
  120.     pointer = pointer->next;
  121.     int nasobek = last_num * pointer->number;
  122.     start_copy_pointer->number = nasobek;
  123.    
  124.     while(pointer != end_pointer){
  125.         pointer = pointer->next;
  126.         nasobek = last_num * pointer->number;
  127.         add_node_copy(nasobek);
  128.         last_num = pointer->number;
  129.     };
  130. }
  131.  
  132. void add_node_copy(int number){
  133.     struct Node * n = create_node(number);
  134.     end_copy_pointer->next = n;
  135.     end_copy_pointer = n;
  136. }
  137.  
  138. void print_numbers_copy(){
  139.     struct Node * pointer = start_copy_pointer;
  140.     cout << "cislo v nodu je " << pointer->number << endl;
  141.     while(pointer != end_copy_pointer){
  142.         pointer = pointer->next;
  143.         cout << "cislo v nodu je " << pointer->number << endl;
  144.     };
  145. }
  146.  
  147. void decrease_numbers(int d){
  148.     struct Node * pointer = start_pointer;
  149.     pointer->number = pointer->number - d;
  150.     cout << "nove cislo v nodu je " << pointer->number << endl;
  151.    
  152.     while(pointer != end_pointer){
  153.         pointer = pointer->next;
  154.         pointer->number = pointer->number - d;
  155.         cout << "nove cislo v nodu je " << pointer->number << endl;
  156.     };
  157. }
Advertisement
Add Comment
Please, Sign In to add comment