[C con Clase] Elercicios...
Yudenis Martínez Abreu
ymabreu en ingenieria.unica.cu
Mar Nov 28 22:57:49 CET 2006
Hola.
Creo que ya entendí lo de los arreglos... sencillamente cuando se declara el arreglo reservamos tantos espacios como el # que se pone entre los símbolos [ ]
Y la diferencia (lo que me confundía) es que para las cadenas uno de esos espacios se deja para el elemento nulo lo que implica que tenemos un espacio menos para almacenar un caracter. Muchas gracias a todos por la exhaustiva ayuda.
Esta parte va un poco mas dirigida a Steven aunque si alguien tiene alguna sugerencia se acepta.
Envío acá los ejercicios para que los revisen porque cuando escribí a ejercicioscpp en conclase.net <mailto:ejercicioscpp en conclase.net> me hicieron esta sugerencia * x motivo.
Me falta el # 4 porque tengo algunas dudas como por ejemplo:
-Se supone que el usuario solo pueda entrar números?
-Que seria en este caso una cadena que no contiene números? Un ejemplo?
-Quedarían así los ejemplos que pongo debajo:
Sin incrementar Incrementada
000111 000111999
0011100 001110099
00 009999999
Cap # 10
Ejer1
#include <iostream>
using namespace std;
int main(){
int ArreEnteros[10], suma=0, mayor, menor, i;
float promedio;
cout<<"Entre 10 valores enteros para almacenar en el arreglo"<<endl;
for (i=0; i<10; i++){
cin>>ArreEnteros[i]; //lectura de cada elemento del arreglo (1)
cout<<endl;
suma= suma+ArreEnteros[i]; //calculo de la suma (2)
}
cout<<"Valor i: "<<i<<endl;
promedio=float(suma)/i; //calculo de la promedio(3)
mayor=ArreEnteros[0]; //preparando terreno para determinar max y min
menor=ArreEnteros[0];
for (i=1; i<10; i++)
if(menor>ArreEnteros[i])
menor=ArreEnteros[i]; //calculo de la minimo (4)
else
if(mayor<ArreEnteros[i])
mayor=ArreEnteros[i]; //calculo de la maximo (5)
cout<<"Suma total: "<<suma<<endl;
cout<<"Promedio: "<<promedio<<endl;
cout<<"Menor: "<<menor<<endl;
cout<<"Mayor: "<<mayor<<endl;
// cin.get(); //no me deja ver lo que resulta como por lo que lo sustituyo con
// getchar();
getchar(); //por que a veces el tiempo de espera funciona con un getchar() y
getchar(); // a veces hay que poner dos?
return 1;
}
Ejer2
#include <iostream>
using namespace std;
//variables globales
int ArreInt[10]={2,1,4,3,8,7,6,5,10,9};
//prototipo de funcines
void Ordenar(bool);
//pfuncion principal
int main(){
int opcion;
for(int i=0; i<10; i++)
cout<< "El valor "<<(i+1)<<" del arreglo es: "<<ArreInt[i]<<endl;
cout<<"Escoja c'omo ordenarlos:"<<endl;
cout<<"1-Decresientemente."<<endl;
cout<<"2-Cresientemente."<<endl;
cin>>opcion;
switch (opcion) {
case 1 :
Ordenar((opcion-1));
cout<< "El arreglo ordenado decrecientemente: "<<endl;
for(int i=0; i<10; i++)
cout<<ArreInt[i]<<endl;
getchar();
break;
case 2 :
Ordenar((opcion-1));
cout<< "El arreglo ordenado crecientemente: "<<endl;
for(int i=0; i<10; i++)
cout<<ArreInt[i]<<endl;
getchar();
break;
default :
cout <<"NOT A VALID CHOICE! Bye ..." << endl;
getchar();
getchar();
return(-1);
}
getchar();
return 1;
}
//implementacion de funciones
void Ordenar(bool orden){
int temp;
if (orden){
for(int j=1; j<10; j++) //realiza la operacion(ciclo de abajo) n-1 veces. n # de elementos en el arreglo.
for(int i=0; i<(10-j); i++)
if (ArreInt[i]>ArreInt[(i+1)]){
temp=ArreInt[(i+1)];
ArreInt[(i+1)]=ArreInt[i];
ArreInt[i]=temp;
}
}
else
for(int j=1; j<10; j++)
for(int i=0; i<(10-j); i++)
if (ArreInt[i]<ArreInt[(i+1)]){
temp=ArreInt[(i+1)];
ArreInt[(i+1)]=ArreInt[i];
ArreInt[i]=temp;
}
}
/*Dicho sea de paso, me puedes decir si el DEV-C++ tiene una ayuda
interactiva como la de C++Builder. Si la tiene como funciona?*/
Ejer3
#include <iostream>
using namespace std;
int main(){
int suma, Matriz[5][5]={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};
//mostrar matriz
cout<<"La matriz creada tendria la forma: "<<endl;
for(int i=0; i<5; i++){
cout<<"fila["<<(i+1)<<"]-> ";
for(int j=0; j<5; j++)
cout<<Matriz[i][j]<<" ";
cout<<endl;
}
//determinar suma por fila y mostrar resultado
cout<<endl<<"La suma de los elemementos de cada fila serian: "<<endl;
for(int i=0; i<5; i++){
suma=0;
for(int j=0; j<5; j++)
suma=suma+Matriz[i][j];
cout<<"fila["<<(i+1)<<"]-> "<<suma;
cout<<endl;
}
//determinar suma por columna y mostrar resultado
cout<<endl<<"La suma de los elemementos de cada columna serian: "<<endl;
for(int j=0; j<5; j++){
suma=0;
for(int i=0; i<5; i++)
suma=suma+Matriz[i][j];
cout<<"columna["<<(j+1)<<"]-> "<<suma;
cout<<endl;
}
getchar();
//getchar();*/
return 1;
}
Ejer5
#include<iostream> //si pongo iostream.h me da un #warning This file includes
// at least one deprecated or antiquated header. Please
//consider using one of the 32 headers found in section
// 17.4.1.2 of the C++ standard. Examples include
// substituting the <X> header for the <X.h> header for C++
// includes, or <iostream> instead of the deprecated header
// <iostream.h>. To disable this warning use -Wno-deprecated.
// Por que ocurre?
using namespace std;
//prototipo de funciones
bool Palindromo(char*);
//
int main(){
char frace[40];
cout<<"Entre frace: "<<endl;
cin>>frace; cout<<endl;
if(Palindromo(frace))
cout<<"La frace es un palindromo.";
else
cout<<"La frace no es un palindromo.";
getchar();
getchar();
return 1;
}
//zona de desarrollo de funciones
bool Palindromo(char palabra[]){
int cont=0;
while(palabra[cont]!=0x00) //localiza fin de la cadena
cont++;
for(int i=0; i<cont; i++) //compara las ods cadenas(cosiderando que no hay espacios) para versi es un palindromo
if(palabra[((cont-1)-i)]!=palabra[i])
{
return false;
break;
}
return true;
}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061128/4330964f/attachment.html>
Más información sobre la lista de distribución Cconclase