Beruflich Dokumente
Kultur Dokumente
PILAS Y COLAS
NOTA: No se uso la definición exacta de pilas o colas, se usaron vectores para resolver los enunciados,
por tanto, el ultimo no se resolvió, ya que la solución seria la misma
Se tienen dos pilas que contienen números enteros; la primera ordenada ascendentemente
desde el tope hacia el fondo, y la segunda ordenada descendentemente desde el tope hacia
el fondo. Elabore un algoritmo que fusione ambas pilas en una tercera ordenada
descendentemente desde el tope hacia el fondo.
FORMATO
#include <iostream>
using namespace std;
int Max(int X[10],int *m,int *n){
int a,b;
a= X[0];
for (int c=0;c<10;c++){
if (a<X[c]){a=X[c];b=c;}
}
*m=a;
*n=b;
}
int main()
{
int pila1[10];int pila2[10];int pilaOrdenada[20];
Funcion Principal(void){
Declarar entero pila1[10];
Para(Declarar entero z=0;z<10;z++){pila1[z]=z*z-(6*z);}
Declarar entero a=0;Declarar entero b=0;
a= pila1[0];
Para (Declarar entero c=0;c<10;c++){
si (a<pila1[c]){a=pila1[c];b=c;}
}
Declarar entero a2=0;Declarar entero b2=0;
a2= pila1[0];
Para (Declarar entero c2=0;c2<10;c2++){
si (a2>pila1[c2]){a2=pila1[c2];b2=c2;}
}
Mostrar Variable << " Pila 1: "<< salto de linea;
Para(Declarar entero z=0;z<10;z++){Mostrar Variable << " " << pila1[z];}
Mostrar Variable << "\nMaximo = " << a << " En la posicion = " << b << salto de linea;
Mostrar Variable << "\nMinimo = " << a2 << " En la posicion = " << b2 << salto de linea;
}
CODIGO
#include <iostream>
using namespace std;
int main(void){
int pila1[10];
for(int z=0;z<10;z++){pila1[z]=z*z-(6*z);}
int a=0;int b=0;
a= pila1[0];
cout << "\nMaximo = " << a << " En la posicion = " << b << endl;
cout << "\nMinimo = " << a2 << " En la posicion = " << b2 << endl;
}
Leer una frase y luego invierta el orden de las palabras en la frase. Por Ejemplo: “una
imagen vale por mil palabras” debe convertirse en “palabras mil por vale imagen una”.
FORMATO
Funcion Principal(void){
Mostrar Variable << "Declarar enteroroduce la frase:\n";
string f;
getline(Leer Variable,f);
Mostrar Variable << f;
Declarar entero L=-1;
Declarar entero a=-1;
hacer{
L++;
a++;
}mientras(f[a] != NULL);
Declarar entero pal=1;
Para(Declarar entero z=0;z<L;z++){
si(f[z]==' '){
pal++;}
}
Mostrar Variable << "\nEncontradas " << pal << " palabras, Longitud de cadena: " << L << "
Invirtienhacer...\n";
string aux[L];Declarar entero y=L;Declarar entero Lt=L-1;Declarar entero lpal=0;
Para(Declarar entero w=0;w<=pal-1;w++){
hacer{
y--;
}mientras(f[y]!=' '&&y>=0);
lpal=Lt-y;
Para(Declarar entero r=y+1;r<=Lt;r++){
aux[r]=f[r];
Mostrar Variable << aux[r];
}
Mostrar Variable << " ";
Lt=y;
}
}
CODIGO
#include <iostream>
#include <string>
int main(void){
getline(cin,f);
cout << f;
int L=-1;
int a=-1;
do{
L++;
a++;
}while(f[a] != NULL);
int pal=1;
for(int z=0;z<L;z++){
if(f[z]==' '){
pal++;}
}
cout << "\nEncontradas " << pal << " palabras, Longitud de cadena: " << L << " Invirtiendo...\n";
}
Escribir un algoritmo que invierta el contenido de una cola. Puede utilizar estructuras
auxiliares.
FORMATO
Funcion Principal(void){
Declarar entero cola1[20];Declarar entero aux[20];
Declarar entero z=0;
Para (z=0;z<20;z++){cola1[z]=z*(z-6);si(z==0){Mostrar Variable << "Cola:" << salto de linea;}Mostrar Variable
<< cola1[z] << salto de linea;}
Para (Declarar entero x=0;x<20;x++){
aux[x]=cola1[19-x];
}
Para (Declarar entero x=0;x<20;x++){
cola1[x]=aux[x];
si(x==0){Mostrar Variable << "Cola Invertida:" << salto de linea;}
Mostrar Variable << cola1[x] << salto de linea;
}
}
CODIGO
#include <iostream>
#include <string>
using namespace std;
int main(void){
}
for (int x=0;x<20;x++){
cola1[x]=aux[x];
if(x==0){cout << "Cola Invertida:" << endl;}
cout << cola1[x] << endl;
}
}
Generar un algoritmo que devuelva el máximo y el mínimo de una cola de números enteros,
en un único recorrido.
FORMATO
Funcion Principal(void){
Declarar entero cola1[20];
Declarar entero z=0;
Para (z=0;z<20;z++){cola1[z]=z*(z-6);si(z==0){Mostrar Variable << "Cola:" << salto de linea;}Mostrar Variable
<< cola1[z] << salto de linea;}
Declarar entero min=cola1[0];
Declarar entero max=cola1[0];
Para (Declarar entero x=0;x<20;x++){
si(min>cola1[x]){min=cola1[x];}
si(max<cola1[x]){max=cola1[x];}
}
si(min==max){Mostrar Variable << "Todos son iguales" << ", Valor hallado = " << min << salto de linea;}
si no{Mostrar Variable<< "Minimo = " << min << "\nMaximo = " << max <<salto de linea;}
}
CODIGO
#include <iostream>
#include <string>
int main(void){
int cola1[20];
int z=0;
for (z=0;z<20;z++){cola1[z]=z*(z-6);if(z==0){cout << "Cola:" << endl;}cout << cola1[z] << endl;}
int min=cola1[0];
int max=cola1[0];
for (int x=0;x<20;x++){
if(min>cola1[x]){min=cola1[x];}
if(max<cola1[x]){max=cola1[x];}
}
if(min==max){cout << "Todos son iguales" << ", Valor hallado = " << min << endl;}
else{cout<< "Minimo = " << min << "\nMaximo = " << max <<endl;}
}