









Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
POO Practica1 equipo Programación orientada a objetos fundamentos de programación
Tipo: Guías, Proyectos, Investigaciones
1 / 15
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!










Aguilar Ortiz Oscar Enrique
Cordero Blancarte Marlen Celic
Escobar Bruno Ana Karen
Navarrete Becerril Sharon Anette
/EJERCICIO 2. Observe el siguiente código y determine la salida del programa. Explique*
cada línea del programa/*
#include
#include<stdlib.h>
using namespace std; //Contiene palabras reservadas del lenguaje C++
int main(){
int a=10,b=20,c=30; //Declaracion de variables de tipo entero con valores definidos
int ptra=&a,ptrb=&b,*ptrc=&c; //Declaracion de punteros de tipo entero apuntando a las variables
c=ptra+ptrb; //La variable C es igual a la suma de las variables a donde se dirige el apuntador
ptrb=ptra; //El apuntador ptrb toma la direccion de ptra
a=ptrb+ptrc; //La variable A toma la suma de lo que se encuentra en los apuntadores
cout<<"a="<<a<<endl; //Despliega el valor de A
cout<<"b="<<b<<endl; //Despeliga el valor de B
cout<<"c="<<c<<endl; //Despliega el valor de C
system("pause"); //Detiene el programa hasta que se presione una tecla
return 0;
}
/EJERCICIO 3. Observe el siguiente código y determine la salida del programa.**
*¿Explique que realiza la función? /
#include
#include
void funcionA(char *b,char *c); //ES UNA FUNCION QUE NO RETORNA VALOR, es unos apuntadores de tipo char (obtiene direcciones de memoria)
using namespace std;
int main()
{
char cad1[10]={"abcdefghi"}; //reserva memoria, que son 9 espacios para las letras y 1 más para el de caracter nulo
char cad2[10];
funcionA(cad1,cad2); //el llamado a la función
cout<<cad1<<endl<<cad2<<endl;
system("pause"); //detiene el programa hasta que se oprima otra tecla
return 0;
}
void funcionA(char *b,char *c)
{
while(*b!='\0') //Mientras un apuntador no sea de carácter nulo ve haciendo esto...
//MIENTRAS NO SEA FIN DE LA CADENA
/ '\0' = carácter nulo (fin de la cadena) es de tipo char/*
{
if(b!='a'&&b!='e'&&b!='i'&&b!='o'&&*b!='u') //condiciona que b es diferente de a,e,i,o,u
{
/EJERCICIO 4. Observe el siguiente código y determine la salida del programa. Explique ¿que realiza la función? /
#include
#include
void f1(char x,chary,char *z);
using namespace std;
int main()
{
char a='x',b='y',c='z';
char ptr1=&a,ptr2=&b,*ptr3=ptr2; //Inicializa los valores con dirección de memoria (apuntador)
f1(ptr1,ptr2,ptr3); //Pasa los datos del main a la funcion f
cout<<a<<endl<<b<<endl<<c<<endl; //Muestra los nuevos resultados
system("PAUSE");
return 0;
}
void f1(char x,chary,char *z) //Les asigna a x,y,z otro valor
{
*x='m';
*y='n';
*z='o';
}
/Lo que hace la funcion f1 es recibir el dato tipo char y su localizacion*
mediante su apuntador entonces cuando dentro de f1 modifica o le asigna un nuevo
**valor, este se modifica directamente a la direccion que se le paso al apuntador ***
/EJERCICIO 6. Memoria dinámica Haciendo uso de memoria dinámica realice un programa que pueda crear un matriz dinámica de tipo char de mxn. La matriz dinámica almacenará caracteres, realiza las siguientes funciones, diseñe un menu con las opciones: a) Leer la matriz b) Imprimir la matriz c) Realice una función que convierte a mayúsculas d) Determine cuántas fueron vocales e) Determine cuántas fueron consonantes A B C D E F G H I La matriz contiene 3 vocales La matriz contiene 6 vocales/** #include
do{ cout << "1. Leer la matriz." << endl; cout << "2. Imprimir la matriz." << endl; cout << "3. Realice una funcion que convierte a mayusculas." << endl; cout << "4. Determine cuántas fueron vocales." << endl; cout << "5. Determine cuántas fueron consonantes." << endl; cout << "6. Salir." << endl; cout << " > "; cin >> sele; cout << endl << endl; if(sele!=1 && !lectura) cout << "Ingrese una primero una matriz" << endl;
for (int i = 0; i < fil; i++) { mat[i] = new char[col]; }
// Lectura de datos de teclado for (int i = 0; i < fil; ++i) { for (int j = 0; j < col; ++j) { cout << "(" << i <<"," << j<< "): "; std::cin >> &mat[i][j]; } } return mat; } void Imprimir(char mat){ cout << "Imprimir." << endl; for (int i = 0; i < fil; ++i) { for (int j = 0; j < col; ++j) { cout << mat[i][j] << " "; } cout << endl; } } // Convierte las minusculas a mayusculas char Mayusculas(char **mat){ cout << "Convertidas a mayusculas!."; for (int i = 0; i < fil; ++i) for (int j = 0; j < col; ++j) if(mat[i][j]>96 && mat[i][j]<123) // Afirma que sean minusculas mat[i][j] = (int)mat[i][j]-32 ; //(char)((int)mat[i][j]-32 ) return mat; } int Vocales(char *mat){ // 65|97 69|101 73|105 79|111 85|117 valores ASCII vocales min, may int couVoc = 0; for (int i = 0; i < fil; ++i) { for (int j = 0; j < col; ++j) { / **********
int nL=65, nU=97, su=4; for(int k=0;k<5;++k){
if(mat[i][j]==nL || mat[i][j]==nU){ //lowcase || uppercase Otro modo de encontrar las vocales ******** //cout << "" << mat[i][j] << endl; // Quieres saber cuales son las vocales?, quita el comentario del cout // couVoc++; } if(k>1) su=6; nL+=su; nU+=su; } ***************/
if(mat[i][j]==65 || mat[i][j]==69 || mat[i][j]==73 || mat[i][j]==79 || mat[i][j]==85){ //lowcase //cout << "" << mat[i][j] << endl; // Quieres saber cuales son las vocales?, quita el comentario del cout // couVoc++; } if(mat[i][j]==97 || mat[i][j]==101 || mat[i][j]==105 || mat[i][j]==111 || mat[i][j]==117){ //uppercase //cout << "" << mat[i][j] << endl; // Quieres saber cuales son las vocales?, quita el comentario del cout // couVoc++; } } } return couVoc; }
int Consonantes(char **mat){ // 65|97 69|101 73|105 79|111 85|117 valores ASCII vocales min, may int couCons = 0, n, coun;
for (int i = 0; i < fil; ++i) // Recorre las filas { for (int j = 0; j < col; ++j) // Recorre las columnas { n=3; coun=1;