-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnew.cpp
170 lines (150 loc) · 4.67 KB
/
new.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream>
#include <vector>
using namespace std;
// En este problema se busca crear un vector de n elementos, donde n es un valor dado por el usuario.
// Luego el vector debe ser llenado con valores dados por el usuario.
// Para así, crear funciones en base ese vector.
// Tenemos dos alternativas, crear un vector con una lista de c++ (int vector[]), o usar la librería de vector (que es más recomendable).
// Estas funciones están bien, pero podríamos agregar la creación del vector, fuera de la función para ingresar los datos.
// Para poder crear
// void Ingresar_datos(int vector[],int n);
// int Buscar(int vector [], int n, int x1);
// int Mayor(int vector[],int n, int &indice);
// void Mostrar(int vector[],int &n);
int main(int argc, char** argv) {
// int n = 0;
// int vector[n]; // n no puede ser usado como el valor de un arreglo, ya que no es constante, puede ser cambiado.
// Para evitar esto, se crea una constante.
// const int n = 0; // n no puede ser cambiado.
// pero aquí no funcionaría ya que el arreglo debe tener más de 0 elementos.
// const int n = 10; // aquí sí funcionaría.
// const int n; // no funcionaría ya que siempre se debe inicializar una constante definida.
// tendríamos tales alternativas
// Usando punteros:
int n;
cout << "Dar el tamaño del vector: "; cin >> n;
int *vector = new int[n]; // new int[n] crea un arreglo de n elementos.
int x1;
int indi=0;
Ingresar_datos(vector, n);
cout<<"muestra los datos del vector"<<endl;
Mostrar(vector,n);
int x=Mayor(vector,n,indi);
cout<<"numero mayor: "<<x<<" indice: "<<indi<<endl;
cout<<"Dar el valor x: ";cin>>x1;
int y= Buscar(vector,n, x1);
if (y==-1) { cout<<"No se encontro x.";}
else { cout<<"Encontro el valor x "<<x1<<" en la posicion "<<y<<endl;}
return 0;
}
// void Ingresar_datos(int vector[],int &n) {
// int &n: esta referenciando a n, por 'referenciar' a n, se quire decir que estamos usando la misma variable n, por más que esté fuera de la función, cada cambio que le suceda a la variable n dentro la función, se verá reflejado en la variable n fuera de la función.
// Lo cual no queremos, ya que no necesitamos que n sea cambiado, es simplemente el tamaño del vector
void Ingresar_datos(int vector[], int n) {
// cout<<" dar el tamaño del vector: ";
// cin>>*n;
// Tal hubiese sido el caso, de intentar usando referencia, no se podría ya que el valor de n dentro del vector ya no puede ser cambiado, es un vector estático.
int i=0;
while (i<n)
{
cout<<" vector["<<i<<"]: ";
cin>>vector[i];
cout<<"valor de i "<<i<<endl;
cout<<"valor de n "<<n<<endl;
i++;
}
}
int Mayor(int vector[],int n, int &indice) {
int x;
x=vector[0];
int i=1;
while(i<n)
{
if (vector[i]>x) {
x=vector[i];
indice=i;
}
i++;
};
return x;
};
void Mostrar(int vector[],int &n)
{
for(int i=0;i<n;i++)
{
cout<<" vector["<<i<<"]: "<<vector[i]<<endl;
}
}
int Buscar(int vector [], int n, int x1)
{
bool encontro=false;
int indice=-1;
for (int i=0; ((i<n) && (encontro==false)); i++)
{
if (vector [i]==x1)
{
indice=i;
encontro=true;
}
}
return indice;
}
int Buscar(int vector[], int n, int x1);
void Ingresar_datos(int vector[], int &n);
int Mayor(int vector[], int n, int &indice);
void Mostrar(int vector[], int &n);
int main(int argc, char** argv) {
int n;
cout << "Dar el tamaño del vector: ";
cin >> n;
int vector[n];
int x1;
int indi = 0;
Ingresar_datos(vector, n);
cout << "Muestra los datos del vector" << endl;
Mostrar(vector, n);
int x = Mayor(vector, n, indi);
cout << "Número mayor: " << x << " Índice: " << indi << endl;
cout << "Dar el valor x: ";
cin >> x1;
int y = Buscar(vector, n, x1);
if (y == -1) {
cout << "No se encontró x." << endl;
} else {
cout << "Se encontró el valor x " << x1 << " en la posición " << y << endl;
}
return 0;
}
void Ingresar_datos(int vector[], int &n) {
int i = 0;
while (i < n) {
cout << " vector[" << i << "]: ";
cin >> vector[i];
i++;
}
}
int Mayor(int vector[], int n, int &indice) {
int x = vector[0];
int i = 1;
while (i < n) {
if (vector[i] > x) {
x = vector[i];
indice = i;
}
i++;
}
return x;
}
void Mostrar(int vector[], int &n) {
for (int i = 0; i < n; i++) {
cout << " vector[" << i << "]: " << vector[i] << endl;
}
}
int Buscar(int vector[], int n, int x1) {
for (int i = 0; i < n; i++) {
if (vector[i] == x1) {
return i;
}
}
return -1;
}