fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. using namespace std;
  6.  
  7. struct structure {
  8. string Asset;
  9. string stock;
  10. double purchase_price;
  11. double current_price;
  12. };
  13.  
  14. structure* ptrfirstasset(vector<structure> portfolio) {
  15. for (int i = 0; i < portfolio.size(); i++) {
  16. if (portfolio[i].current_price < portfolio[i].purchase_price) {
  17. return &portfolio[i];
  18. //ici on recupere l'addresse du premier actif donc le prix actuel est plus petit que le prix sur le marche.
  19. }
  20. }
  21. // si a jamais cette actif n'existe pas , on retourne nullptr pour dire nous n'avons pas trouve un pointeur valide.
  22. return nullptr;
  23. }
  24.  
  25. int main() {
  26. // ici on definit notre vecteur struture donc le nom est porfolio
  27. vector<structure> portfolio = {
  28. {"ABC Corp", "stock", 25.50, 28.20},
  29. {"XYZ Bank", "stock", 18.75, 17.90},
  30. {"CAM Bond", "Bond", 98.50, 101.20},
  31. {"QF ETF", "ETF", 42.00, 46.50}
  32. };
  33.  
  34. structure* result = ptrfirstasset(portfolio);
  35. //ici on appelle notre fonction qui va retourner le pointeur mais avant de l'afficher, on se rassure quelle existe.
  36. // dans le cas ou cette fonction existe on le deferencie membre par membre et on l'affiche.
  37. if (result != nullptr) {
  38. cout << "Asset: " << result->Asset << endl;
  39. cout << "Stock: " << result->stock << endl;
  40. cout << "Purchase price: " << result->purchase_price << endl;
  41. cout << "Current price: " << result->current_price << endl;
  42. //ici nous allons modifier l'une des valeurs de notre actif.
  43. result->purchase_price =17.95;
  44. cout<<"The asset after changing one of its values is shown below:"<<endl;
  45. cout << "Asset: " << result->Asset << endl;
  46. cout << "Stock: " << result->stock << endl;
  47. cout << "Purchase price: " << result->purchase_price << endl;
  48. cout << "Current price: " << result->current_price << endl;
  49.  
  50. } else {
  51. // nous somme dans le cas ou nous n'avons pas trouve d'actif donc le prix actuel est plus peit que le prix sur le marche.
  52. cout << "No asset has a lower price than its buy price" << endl;
  53. }
  54.  
  55. return 0;
  56. }
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
Asset: XYZ Bank
Stock: stock
Purchase price: 18.75
Current price: 17.9
The asset after changing one of its values is shown below:
Asset: XYZ Bank
Stock: stock
Purchase price: 17.95
Current price: 17.9