Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Practicas de Programacion Orientada a Objetos, Guías, Proyectos, Investigaciones de Programación Orientada a Objetos

POO Practica1 equipo Programación orientada a objetos fundamentos de programación

Tipo: Guías, Proyectos, Investigaciones

2019/2020

Subido el 15/02/2020

Celic
Celic 🇲🇽

1 documento

1 / 15

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ESCUELA SUPERIOR INGENIERIA MECANICA Y
ELECTRICA
UNIDAD ZACATENCO
PROGRAMACION ORIENTADA A OBJETOS
PRACTICA #1 APUNTADORES
INTEGRANTES:
Aguilar Ortiz Oscar Enrique
Cordero Blancarte Marlen Celic
Escobar Bruno Ana Karen
Navarrete Becerril Sharon Anette
GRUPO: 2CM26
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga Practicas de Programacion Orientada a Objetos y más Guías, Proyectos, Investigaciones en PDF de Programación Orientada a Objetos solo en Docsity!

ESCUELA SUPERIOR INGENIERIA MECANICA Y

ELECTRICA

UNIDAD ZACATENCO

PROGRAMACION ORIENTADA A OBJETOS

PRACTICA #1 APUNTADORES

INTEGRANTES:

Aguilar Ortiz Oscar Enrique

Cordero Blancarte Marlen Celic

Escobar Bruno Ana Karen

Navarrete Becerril Sharon Anette

GRUPO: 2CM

INTRODUCCION

Con base a lo aprendido con forme al repaso, se

pueden realizar los siguientes ejercicios con

ayuda de las funciones new y delete , de esta

forma usando la memoria dinámica se pretende

ahorrar espacio de memoria RAM, ya que con

estas nuevas funciones el espacio de memoria

asignado es mas ordenado y solo se ocupa el

que nosotros indicamos y con ayuda de los

apuntadores podemos ubicar la información

contenida en estos espacios de memoria.

/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 using namespace std; int fil, col; void Menu(); char** Leer(); void Imprimir(char mat); char Mayusculas(char **mat); int Vocales(char **mat); int Consonantes(char **mat); int main(){ int sele; char **mat; bool lectura=false;

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;