Advertisement
tegusta

inserisci valore_struct

Apr 15th, 2012
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. /*
  2. Studente : Scia Massimiliano
  3. Classe : 3IC
  4. Data : 15/04/12 17:01
  5. Nome del file : aggiungi valore
  6. */
  7.  
  8. #include <iostream>
  9. #include <cmath>
  10. #include <ctime>
  11. #include <cstdlib>
  12. #include <cctype>
  13. #include <windows.h>
  14. #include <fstream>
  15. #include <time.h>
  16. #include <stdio.h>
  17. #define N 100
  18.  
  19. using namespace std;
  20.  
  21. struct valori{
  22.        int x;
  23. };//valori
  24.  
  25. void end(void){
  26.     fflush(stdin);
  27.     cout<<"\n\nPremere Invio per continuare.";
  28.     getchar();
  29. }//end
  30.  
  31. int dim(){
  32.     int n;
  33.     cout<<"\nQuanti valori vuoi inserire?  ";
  34.     cin>>n;
  35.     return n;
  36. }//dim
  37.  
  38. valori val(){
  39.      valori k;
  40.      cin>>k.x;
  41.      return k;
  42. }//val
  43.  
  44. void val_val(valori k[], int n){
  45.      for(int i=0;i<n;i++){
  46.          cout<<"\nIl valore k["<<i<<"] e`: ";
  47.          k[i]=val();
  48.      }//for
  49. }//val_val
  50.  
  51. void scambia(int* a, int* b){
  52.      int s;
  53.      s=*a;
  54.      *a=*b;
  55.      *b=s;
  56. }//scambia
  57.  
  58.  
  59. void ordina(valori k[], int n){
  60.      for(int i=0;i<n;i++)
  61.          for(int j=i+1;j<n;j++)
  62.              if(k[i].x>k[j].x)
  63.                  scambia(&k[i].x,&k[j].x);
  64. }//ordina
  65.  
  66. void bubble(valori k[], int n){
  67.     bool scambi;
  68.     int sup,ultsc=n-1;
  69.     do{
  70.         sup=ultsc;
  71.         scambi=0;
  72.         for(int i=0;i<sup;i++)
  73.             if(k[i].x>k[i+1].x){
  74.                 scambia(&k[i].x,&k[i+1].x);
  75.                 ultsc=i;
  76.                 scambi=1;
  77.             }//if
  78.     }//do
  79.     while(scambi);
  80. }//bubble
  81.  
  82.  
  83. void addPoint(valori k[], int n, int pos){
  84.      for(int i=n;i>=pos;i--)
  85.          k[i].x=k[i-1].x;
  86.      cout<<"\nNumero: ";
  87.      cin>>k[pos].x;
  88. }//addPoint
  89.  
  90. void visualize(valori k[], int n){
  91.     cout<<"\nI valori (ordinati) sono:\n\n";
  92.     for(int i=0;i<=n;i++)
  93.        cout<<k[i].x<<"   ";
  94. }//visualize
  95.  
  96.  
  97. int main(){
  98.     valori k[N];
  99.     system("color ab");
  100.     int n=dim();
  101.     int val,pos;
  102.     val_val(k,n);
  103.     //ordina(k,n);
  104.     bubble(k,n);//ordinamento a bolle
  105.     cout<<"\nIn che posizione vuoi aggiungere?";
  106.     cout<<"\n(minore di zero 0 in nessuna: esce)\n- ";
  107.     cin>>pos;
  108.     if(pos>-1){
  109.         addPoint(k,n,pos);
  110.         bubble(k,n);
  111.         visualize(k,n);
  112.         end();
  113.     }//if
  114.     else
  115.         end();
  116.     return 0;
  117. }//main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement