Académique Documents
Professionnel Documents
Culture Documents
#include<iostream>
#include<iomanip>
int main(){
int n=8;
cout<<setw(n)<<"12"<<setw(n)<<123<<setw(n)<<12909<<setw(n)<<123456<<endl;
cout<<setw(n)<<"000012"<<endl;
return 0;
PANTALLA
______1 2_____123___12909__123456
__000012
_
#include<iostream>
#include<iomanip>
#include<cmath>
using namespace std;
int main(){
int n=1;
cout<<setprecision(n)<<cos(1)<<endl;
n=2;
cout<<setprecision(n)<<cos(1)<<endl;
n=4;
cout<<setprecision(n)<<cos(1)<<endl;
n=8;
cout<<setprecision(n)<<cos(1)<<endl;
return 0;
}
PANTALLA
0.5
0.54
0.5403
0.54030231
_
int main(){
srand(time(NULL));
int x,z;
for(int i=1; i<6; i++){
z=pow(10,i);
x=1+rand()%z;
cout<<setw(7)<<x;
}
cout<<endl;
return 0;
}
x z i
1 10 1
95 100 2
281 1,000 3
1011 10,000 4
20,114 100,000 5
6
PANTALLA
______1_____95____281___1011__20114
¿Cuál es el rango que toma x en cada repetición?
[1,10]
[1,100]
[1,1000]
[1,10,000]
[1,100,000]
4. Considere la instrucción x=134+rand()%801. El rango de valores que puede tomar la variable x es:
[134, 934]__
#include<iostream>
#include<iomanip>
#include<cmath>
int main(){
int N=5;
int techo;
techo=ceil(log(factorial(N)/(factorial(floor(N/2))*factorial(N-floor(N/2))))/log(10))+1;
cout<<"este es el techo"<<techo<<endl;
cout<<setw(techo*(N-i)+1)<<" ";
cout<<setw(techo)<<factorial(i)/(factorial(j)*factorial(i-j))<<setw(techo)<<" ";
cout<<endl;
return 0;
return 1;
else
return n*factorial(n-1);
N i j techo
5 0 0 2
1 1
2 0
3 1
4 2
5 0
1
2
3
0
1
2
3
4
0
1
2
3
4
0
1
2
3
4
5
PANTALLA
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
significa que se pasa la posición de memoria donde esta guardada la variable, por lo que la función puede
saber cuánto vale, pero además puede modificarla de cualquier manera.
7. ¿Cuál es la salida por pantalla del siguiente programa cuando n=123456789?
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<iomanip>
#include<cmath>
#include<ctime>
using namespace std;
void ParametroReferencia(int& z, int A[], int N);
int main(){
int N,n;
cout<<"ingrese un numero";
cin>>n;
N=floor(log(n)/log(10));
int A[N+1];
ParametroReferencia(n,A,N);
cout<<"el numero es "<<n<<endl;
return 0;
}
void ParametroReferencia(int& z, int A[], int N){
for(int i=0; i<=N; i++){
A[i]=z%(int)pow(10,i+1)/(int)pow(10,i);
}
z=0;
for(int i=0; i<=N; i++){
z=z+A[N-i]*pow(10,i);
}
}
N n z i i
8 123456789 123456789 0 0
0 1 2
1 2 3
21 3 4
321 4 5
4321 5 6
54321 6 7
654321 7 8
7654321 8 9
87654321
987654321
N n z i i
4 12345 12345 0 0
0 1 1
21 2 2
321 3 3
4321 4 4
54321
5 4 3 2 1
PANTALLA
#include<iostream>
void burbuja(int[],int,int);
int main(){
int A[100];
A[s]=100-s;
burbuja(A,95,99);
imprimir(A,95,99);
return 0;
int aux;
if(A[j]>A[j+1]){
aux=A[j];
A[j]=A[j+1];
A[j+1]=aux;
cout<<"A["<<i<<"]="<<A[i]<<endl;
PANTALLA
A[95]=1
A[96]=2
A[97]=3
A[98]=4
A[99]=5
10. Haga una prueba de escritorio del programa anterior para las variables indicadas.
A[0] A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10] A[11] A[12] A[13] A[14] A[15]
100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85
A[16] A[17] A[18] A[19] A[20] A[21] A[22] A[23] A[24] A[25] A[26] A[27] A[28] A[29] A[30] A[31]
84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69
A[32] A[33] A[34] A[35] A[36] A[37] A[38] A[39] A[40] A[41] A[42] A[43] A[44] A[45] A[46] A[47]
68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53
A[48] A[49] A[50] A[51] A[52] A[53] A[54] A[55] A[56] A[57] A[58] A[59] A[60] A[61] A[62] A[63]
52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37
A[64] A[65] A[66] A[67] A[68] A[69] A[70] A[71] A[72] A[73] A[74] A[75] A[76] A[77] A[78] A[79]
36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
A[80] A[81] A[82] A[83] A[84] A[85] A[86] A[87] A[88] A[89] A[90] A[91] A[92] A[93] A[94]
20 19 18 17 16 15 14 13 12 11 10 9 8 7 6
s aux p q I j
0 5 95 99 2 95
1 5 3 96
5 4 97
5 5 98
4 6 99
4 95 95
4 96 96
3 97 97
3 98 98
2 99 95
100 96
97
95
96
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<iomanip>
int main(){
int N=9;
char mov='q';
char A[9][9];
int I[2];
cout<<"Instrucciones"<<endl;
cout<<"x. Izquierda"<<endl;
cout<<"c. Abajo"<<endl;
cout<<"v. Derecha"<<endl;
cout<<"d. Arriba"<<endl;
for(int i=0;i<9;i++)
for(int j=0;j<9;j++)
A[i][j]='*';
A[0][0]=A[0][1]=A[0][2]='0';
I[0]=0;
I[1]=2;
system("sleep 5");
system("clear");
//Imprimir(A,9);
while(mov!='p'){
imprimir(A,9);
cin>>mov;
movimiento(A,mov,I);
system("clear");
return 0;
int i1,j1,i2,j2,i,j;
i=I[0];
j=I[1];
if(A[i][(j+1)%9]=='0'){
i1=i;
j1=(j+1)%9;
if(A[i][(j+8)%9]=='0'){
i1=i;
j1=(j+8)%9;
if(A[(i+1)%9][j]=='0'){
i1=(i+1)%9;
j1=j;
if(A[(i+8)%9][j]=='0'){
i1=(i+8)%9;
j1=j;
if(A[i][(j+2)%9]=='0'){
i2=i;
j2=(j+2)%9;
if(A[i][(j+7)%9]=='0'){
i2=i;
j2=(j+7)%9;
if(A[(i+2)%9][j]=='0'){
i2=(i+2)%9;
j2=j;
if(A[(i+7)%9][j]=='0'){
i2=(i+7)%9;
j2=j;
if(A[(i+1)%9][(j+1)%9]=='0'){
i2=(i+1)%9;
j2=(j+1)%9;
if(A[(i+1)%9][(j+8)%9]=='0'){
i2=(i+1)%9;
j2=(j+8)%9;
if(A[(i+8)%9][(j+1)%9]=='0'){
i2=(i+8)%9;
j2=(j+1)%9;
if(A[(i+8)%9][(j+8)%9]=='0'){
i2=(i+8)%9;
j2=(j+8)%9;
A[i][(j+8)%9]='0';
I[0]=i;
I[1]=(j+8)%9;
A[i2][j2]='*';
A[(i+1)%9][j]='0';
I[0]=(i+1)%9;
I[1]=j;
A[i2][j2]='*';
}
A[(i+8)%9][j]='0';
I[0]=(i+8)%9;
I[1]=j;
A[i2][j2]='*';
A[i][(j+1)%9]='0';
I[0]=i;
I[1]=(j+1)%9;
A[i2][j2]='*';
for(int i=0;i<N;i++){
for(int j=0;j<N;j++)
cout<<setw(2)<<A[i][j];
cout<<endl;
1. Escriba una función que intercambie los valores de dos variables enteras y luego los imprima
#include<iostream>
using namespace std;
void intercambiar(int& , int& );
int main(){
int n1,n2;
cout<<"ingrese dos numeros enteros"<<endl;
cin>>n1>>n2;
cout<<"el primer valor ingresado fue "<<n1<<endl;
cout<<"el segundo valor ingresado fue "<<n2<<endl;
intercambiar(n1,n2);
cout<<" el nuevo valor del primer numero es "<<n1<<endl;
cout<<"el nuevo valor del segundo numero es "<<n2<<endl;
return 0;
}
void intercambiar(int& v1, int& v2){
int temp=v1;
v1=v2;
v2=temp;
2. Escriba una función que reciba un numero entero positivo y luego almacene sus digitos en un arreglo.
El prototipo de la función debe ser de la forma
void digitos(int [], int, int)
#include<iostream>
using namespace std;
void digitos(int[],int,int);
int main(){
int A[100];
int numero;
int k=0,acum;
cout<<"ingrese un numero: ";
cin>>numero;
acum=numero;
while (acum>0){
acum/=10;
k++;
}
digitos(A,k,numero);
return 0;
}
void digitos(int A[],int k,int numero){
int residuo;
for(int j=0; j<k; j++){
residuo=numero%10;
numero/=10;
A[k-j-1]=residuo;
}
for(int i=0; i<k;i++){
cout<<"A["<<i<<"]="<<A[i]<<endl;
}
}
#include<iostream>
void digitos(int[],int,int);
void capicua(int[],int);
int main(){
int A[100];
int numero;
int k=0,acum;
cin>>numero;
acum=numero;
while (acum>0){
acum/=10;
k++;
digitos(A,k,numero);
capicua(A,k);
return 0;
int residuo;
residuo=numero%10;
numero/=10;
A[k-j-1]=residuo;
int temp=k/2,n=0;
for(int i=0;i<temp;i++){
if (A[i]==A[k-i-1]){
n++;
if(n==temp){
else{
4. Escriba un programa que reciba un numero natural y lo transforme a la base binaria. El prototipo de la
función debe ser de la forma
Void binario(int &)
#include<iostream>
using namespace std;
void binario(int& );
int main(){
int numero;
cout<<"ingrese un numero";
cin>>numero;
binario(numero);
return 0;
}
void binario(int& numero){
int temp,A[100],k=0,i=0,m;
temp=numero;
while(temp>=2){
temp/=2;
k++;
}
while(numero>=2){
m=numero%2;
numero/=2;
A[k-i]=m;
i++;
}
A[0]=numero;
for (int j=0; j<=k;j++){
cout<<A[j];
}
}
5. Desarrolle una función que reciba un arreglo de caracteres y retorne el numero de vocales que este
arreglo contiene
#include<iostream>
#include<string.h>
cout<<numvocales(A,n);
return 0;
}
int numvocales(char A[],int n){
int k=0;
for(int i=0;i<n;i++){
if((A[i]=='a') || (A[i]=='e')|| (A[i]=='i')|| (A[i]=='o')|| (A[i]=='u')){
k++;
}
}
return k;
}
6. El juego ahorcado se juega con dos personas (o una persona y una computadora). Un jugador
selecciona una palabra y el otro jugador trata de adivinar la palabra adivinando letras individuales.
Diseñar un programa para jugar al ahorcado. Sugerencia: almacenar una lista de palabras en un
arreglo, y seleccionar palabras aleatoriamente.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define N 12
char txt[11];
char datos[N][11]={
"laptop","zapato","camisa","burbuja",
"reflejo","pescado","aventura","alfiler",
"gusano","taxi","carne","corazon"};
char dibuj[9][7]={
"____",
"| |",
"| |",
"|",
"|",
"|",
"|",
"|",
"----"
};
struct pst{
int pos;
char part[5];
}parts[7]={{3," O"},{4," /"},{4,"|"},
{4,"\\"},{5," |"},{6," /"},{6," \\"}};
srand(time(NULL));
o=rand()%N;
m=strlen(datos[o]);p=m-2;
txt[0]=datos[o][0];txt[m-1]=datos[o][m-1];
for(n=1;n<m-1;n++)txt[n]='_';txt[m]=0;
printf("Juego del Ahorcado \n\n");tmp[0]=0;
for(i=0;i<11;i++)printf("%s\n",dibuj[i]);
do{
for(j=0;j<strlen(tmp);j++){
lc=tmp[j];r=p;
for(n=1;n<m-1;n++)
if(datos[o][n]==lc){
txt[n]=lc;datos[o][n]='_';p--;
}
if(r==p){
strcat(dibuj[parts[eq].pos],parts[eq].part);
eq++;
}
for(i=0;i<11;i++)printf("%s\n",dibuj[i]);
}
if(eq>=7)break;
if(p>0){
printf("\nPalabra: %s - Ingrese 1 letra (* para terminar): ",txt);
scanf("%10s",&tmp);
}lc=tmp[0];
system("cls");
}while(lc!='*'&&p);
system("PAUSE");
return 0;
}
7. Diseñe una función que reciba tres arreglos bidimensionales(matrices) de números reales de
Tamaño 9x9 y sume los dos primeros arreglos (suma de matrices) y almacene el resultado en
el tercer arreglo bidimensional.
#include<iostream>
#include<iomanip>
int main(){
int A[2][2], B[2][2], S[2][2];
}
cout<<"ingrese la segunda matriz"<<endl;
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
cout<<"B["<<i+1<<"]["<<j+1<<"]=";
cin>>B[i][j];
}
}
for(int i=0; i<2; i++){
for(int j=0; j<2; j++){
cout<<setw(4)<<A[i][j];
}
cout<<endl;
}
cout<<setw(4)<<"+"<<endl;
cout<<setw(4)<<B[i][j];
}
cout<<endl;
suma(A,B,S);
return 0;
}
void suma(int A[2][2],int B[2][2], int S[2][2]){
for(int i=0; i<9; i++){
for(int j=0; j<2; j++){
S[i][j]=A[i][j]+B[i][j];
}
cout<<"="<<endl;
#include<iostream>
#include<math.h>
#include<iomanip>
#define PRECISION 6
using namespace std;
double biseccion(double a, double b, double error);
int main(){
double a;
double b;
double error;
cout<<"Este programa calcula una raiz dentro de un intervalo con un error de\n aproximacion
deseado por el usuario\n\n";
cout<<"La funcion tiene la forma\t \t a * sin(x) + b * cos(x) = 0 \n \n";
cout<<"Ingrese los valores de a y b\n"<<endl;
cout<<"a= ";
cin>>a;
cout<<"b= ";
cin>>b;
cout<<"Ingrese el error tolerado: "<<endl;
cin>>error;
biseccion(a,b,error);
return 0;
}
}
else {
cout<< "Error o Tolerancia = ";
cout<<error<<"\n\n";
if(fabs(h)<=error){
cout<<"\nPara un error o tolerancia de "<<error<<" La raiz de la funcion es:
"<<xr<<endl;
break;
}else {
if(h*f>0){
c=xr;
}else if(h*g>0){
d=xr;
}
}
} while(1);
}
}
9. Suponga que se quiere ocultar una palabra. Las reglas que se deben respetar son las siguientes,
Primero se enlistan las letras del abecedario de la siguiente forma:
a b c d e f g ….. y z
0 1 2 3 4 5 6 …… 24 25
Sea k la posición de alguna letra del abecedario, entonces la letra correspondiente a esta
Posición será cambiada por la letra que tiene la posición (6k+666)%26. Por ejemplo la letra f
Tiene posición 5, entonces esta letra será intercambiada por la letra que tiene por posición
(7x5+666)%26=25 esta posición corresponde a la letra z. es decir la letra f se cambia por la
Letra z.
1. Desarrolle una función en c++ que reciba dos arreglos de caracteres , el primer arreglo tendrá
Una palabra normal y el segundo arreglo se deberá almacenar la palabra oculta usando la regla
Que ya se explico
2. Desarrolle una función que reciba un arreglo con una palabra oculta. Esta función debe imprimir
En pantalla la palabra normal. Que dice la siguiente palabra: “pkpkgfs”
#include<iostream>
using namespace std;
void imprimir( char [ ], int );
void ocultar( char [ ], char [ ], int);
int main(){
int n;
char A[10];
char
B[26]={‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’k’,’l’,’m’,’n’,’o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’,’w’,’x’,’y’,’
z’};
cin.getline(A,10);
cout<<”ingrese un numero”<<endl;
cin>>n;
ocultar(a, b, n);
imprimir(a,n);
system(“pause”);
return 0;
}
void imprimir( char a[ ], int n){
for( int i=0; i<n; i++){
cout<< A[i]<<” “;
}
}
}
}
A[i]=aux;
}
}