codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <iostream> #include <cstring> using namespace std; class Carro { char placas[7]; char marca[15]; unsigned short modelo; unsigned short cilindraje; public: Carro(const char pl[], const char mrk[], unsigned short year, unsigned short cc) { strcpy(placas, pl); strcpy(marca, mrk); modelo = year; cilindraje = cc; } Carro() { strcpy(placas, ""); strcpy(marca, ""); modelo = cilindraje = 0; } unsigned short getCilindraje() { return cilindraje; } void show() { if (strcmp(placas,"")) cout << placas << " - " << marca << " - Modelo:" << modelo << ", " << cilindraje << " cc\n"; } }; void shellsort(unsigned short [][2], unsigned short); void show(Carro [], unsigned short); void show(Carro [], unsigned short [][2], unsigned short); void tomarCilindraje(unsigned short [][2], Carro [], const int); int main() { const int N = 10; Carro vehiculo[N] = { Carro("ARH210", "Mercedes Benz", 2007, 2500), Carro("YDE210", "Fiat", 2004, 2500), Carro("DEF210", "Renault", 2003, 2300), Carro("QRC210", "Dacia", 2008, 2100), Carro("JUA210", "Mercedes Benz", 2011, 3500), Carro("SOQ210", "Renault", 2000, 2000), Carro("CSZ210", "Fiatz", 1995, 1200), Carro("AFC210", "Renault", 1999, 1500) }; show(vehiculo, N); // Almacena los cilinrajes en un arreglo unsigned short unsigned short cilind[N][2]; tomarCilindraje(cilind, vehiculo, N); shellsort(cilind, N); cout << "\n\n\nAhora, los carros ordenados por cilindraje:\n\n"; show(vehiculo, cilind, N); return 0; } void show(Carro car[], unsigned short n) { for (int k=0; k<n; k++) car[k].show(); } void show(Carro car[], unsigned short v[][2], unsigned short n) { for (int k=0; k<n; k++) car[v[k][0]].show(); } void tomarCilindraje(unsigned short dat[][2], Carro car[], const int P) { for (unsigned short i=0; i<P; i++) { dat[i][0] = i; dat[i][1] = car[i].getCilindraje(); } } void shellsort(unsigned short a[][2], unsigned short n) { unsigned short d, temp[2], i; d=n/2; while (d>=1) { for (i=0;i<n-d;i++) { if (a[i][1]>a[i+d][1]) { temp[0]=a[i][0]; temp[1]=a[i][1]; a[i][0]=a[i+d][0]; a[i][1]=a[i+d][1]; a[i+d][0]=temp[0]; a[i+d][1]=temp[1]; } } if(d==1) return; d= (unsigned short)(d/2.0+0.5); } }
Private
[
?
]
Run code
Submit