Você está na página 1de 24

EXPRESIONES #include <iostream>

#include <iostream> using namespace std;

using namespace std; int main(){


float practica, teorica, participacion,
int main(){ notafinal=0;
float a,b, resultado=0;
cout<<"digite la nota de practica: ";
cout<<"digite el valor de a: "; cin>>practica;
cin>>a; cout<<"digite la nota teorica: ";
cout<<"digite el valor de b: "; cin>>teorica;
cin>>b; cout<<"digite la nota de participacion: ";
cin>>participacion;
resultado=(a/b)+1;
practica *=0.3;
cout.precision(3); teorica *=0.6;
cout<<"\nEl resultado es: "<<resultado<<endl; participacion *=0.1;

return 0; notafinal=practica+teorica+participacion;
}
cout<<"\nLa nota final es: "<<notafinal;

return 0;
}
#include <iostream>

using namespace std;


#include <iostream>
int main(){ #include <math.h>
int x,y,aux;
using namespace std;
cout<<"digite el valor de a: ";
cin>>x; int main(){
cout<<"digite el valor de b: "; float x,y,resultado=0;
cin>>y;
cout<<"digite el valor de x: ";
aux=x; cin>>x;
x=y; cout<<"digite el valor de y: ";
y=aux; cin>>y;

cout<<"\nValor de a: "<<x<<endl; resultado=(sqrt(x))/(pow(y,2)-1);//sqrt=raiz


cout<<"Valor de b: "<<y; cuadrada,pow=elevacion

return 0; cout.precision(3);
} cout<<"\nEl resultado es: "<<resultado;

return 0;
}
CONDICIONALES #include <iostream>

#include <iostream> using namespace std;

using namespace std; int main(){


int numero;
int main(){
int numero,dato=5; cout<<"digite un numero: ";
cin>>numero;
cout<<"digite un numero: ";
cin>>numero; if(numero%2==0){
cout<<"el numero es par";
if(numero<dato){ }
cout<<"el numero es menor a else{
"<<dato; cout<<"el numero es impar";
} }
else{ return 0;
cout<<"el numero es mayor o igual a }
"<<dato;
}

return 0;
}
#include <iostream>

using namespace std;

#include <iostream> int main(){


char letra;
using namespace std;
cout<<"digite un caracter: ";
int main(){ cin>>letra;
int numero;
switch(letra){
cout<<"digite un numero entre 1-5: "; case'a':
cin>>numero; case'e':
case'i':
switch(numero){ case'o':
case 1:cout<<"Es el numero 1";break; case'u':cout<<"es una vocal
case 2:cout<<"Es el numero 2";break; minuscula";break;
case 3:cout<<"Es el numero 3";break; default:cout<<"NO es una vocal
case 4:cout<<"Es el numero 4";break; minuscula";break;
case 5:cout<<"Es el numero 5";break; }
default: cout<<"No esta en el rango de
1-5"; return 0;
} }
return 0;
}
ARREGLOS MATRICES
#include <iostream> #include <iostream>
#include <conio.h>//getch();
using namespace std;
using namespace std;
main(){
int numeros[100],n,mayor=0; int main(){
int numeros[100][100],filas,columnas,i,j;
cout<<"digite el numero de elementos del
arreglo: "; cout<<"ingrese numero de filas: ";
cin>>n; cin>>filas;
cout<<"ingrese numero de columnas: ";
for(int i=0;i<n;i++){ cin>>columnas;
cout<<i+1<<".Digite un numero: ";
cin>>numeros[i]; cout<<"\n";
for(i=0;i<filas;i++){
if(numeros[i]>=mayor){ for(j=0;j<columnas;j++){
mayor=numeros[i]; cout<<"ingrese valor para fila
} "<<i<<" y columna "<<j<<": ";
cin>>numeros[i][j];
} }
}
cout<<"\nEl mayor elemento del arreglo es:
"<<mayor<<endl; cout<<"\n\tMATRIZ\n ";
} for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<numeros[i][j]<<"\t";
}
cout<<"\n ";
}

return 0;
}
Estructuras
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
struct etapas{
struct promedio{ int horas;
float nota1; int minutos;
float nota2; int segundos;
float nota3; }et[100];
};
int main(){
struct alumno{ int netapas=0,horast=0,minutost=0,segundost=0;
char nombre[20];
char sexo[10]; cout<<"etapas: ";cin>>netapas;
int edad;
struct promedio prom; for(int i=0;i<netapas;i++){
}alumno1; cout<<"\netapa "<<i+1<<endl;
cout<<"horas:";cin>>et[i].horas;
int main(){ cout<<"minutos:";cin>>et[i].minutos;
float promedioalumno; cout<<"segundos:";cin>>et[i].segundos;

horast=horast+et[i].horas;
cout<<"nombre: "; minutost=minutost+et[i].minutos;
cin.getline(alumno1.nombre,20,'\n'); if(minutost>=60){
cout<<"sexo: "; minutost=minutost-60;
cin.getline(alumno1.sexo,10,'\n'); horast=horast+1;
cout<<"edad: "; }
cin>>alumno1.edad; segundost=segundost+et[i].segundos;
if(segundost>=60){
cout<<"\n.:Notas del alumno:.\n "; segundost=segundost-60;
cout<<"nota 1: ";cin>>alumno1.prom.nota1; minutost=minutost+1;
cout<<"nota 2: ";cin>>alumno1.prom.nota2; }
cout<<"nota 3: ";cin>>alumno1.prom.nota3; }

cout<<"\nTiempo total empleado\n";


promedioalumno=(alumno1.prom.nota1+alumno1.pr cout<<"horas: "<<horast<<endl;
om.nota2+alumno1.prom.nota3)/3; cout<<"minutos: "<<minutost<<endl;
cout<<"segundos: "<<segundost<<endl;

cout<<"\nDatos del alumno\n"; return 0;


cout<<"nombre: "<<alumno1.nombre<<endl; }
cout<<"sexo: "<<alumno1.sexo<<endl;
cout<<"edad: "<<alumno1.edad<<endl;
cout<<"promedio: "<<promedioalumno<<endl;

return 0;
}
FUNCIONES PLANTILLA DE FUNCION

#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int encontrarmax(int x, int y);
template <class TIPOD>
int main(){ void mostrarAbs(TIPOD numero);
int n1, n2;
int mayor; int main(){
int num1=4;
cout<<"2 numeros: "; float num2=56.67;
cin>>n1>>n2; double num3=123.5678;

mayor=encontrarmax(n1,n2); mostrarAbs(num1);
mostrarAbs(num2);
cout<<"mayor numero: "<<mayor<<endl; mostrarAbs(num3);

return 0; return 0;
} }

int encontrarmax(int x, int y){ template <class TIPOD>


int nummax; void mostrarAbs(TIPOD numero){
if(numero<0){
if(x>y){ numero=numero*-1;
nummax=x; }
}
else{ cout<<"el valor abosluto es: "<<numero<<endl;
nummax=y; }
}

return nummax;
}
#include <iostream> #include <iostream>

using namespace std;


using namespace std;
void pedir();
void mult(float x, float y); void pedir();
void funpot(int x, int y);
float num1,num2;
int numero, exponente;
int main(){
pedir(); int main(){
mult(num1,num2); pedir();
funpot(numero,exponente);
return 0;
} return 0;
}
void pedir(){
cout<<"digite 2 numeros: "; void pedir(){
cin>>num1>>num2; cout<<"digite numero: ";
} cin>>numero;
cout<<"exponente: ";
void mult(float x, float y){ cin>>exponente;
float multiplicacion=x*y; }

cout<<"la multiplicacion es: void funpot(int x, int y){


"<<multiplicacion<<endl; long resultado=1;

} for(int i=1;i<=y;i++){
resultado=resultado*x;
}

cout<<"el resultado es: "<<resultado<<endl;

}
#include <iostream> PASO DE PARAMETROS
#include <iostream>

using namespace std; using namespace std;

template<class TIPOD> void valnuevo(int&,int&);


void despliegue(TIPOD dato);
int main(){
int num1,num2;
int main(){
int dato1=4; cout<<"2 numeros: \n";
float dato2=15.67; cin>>num1>>num2;
double dato3=567.7891;
char dato4='a'; valnuevo(num1,num2);

despliegue(dato1); cout<<"el nuevo valor del primer numero es:


despliegue(dato2); "<<num1<<endl;
despliegue(dato3); cout<<"el nuevo valor del segundo numero es:
despliegue(dato4); "<<num2<<endl;

return 0; return 0;
}
}
template<class TIPOD>
void despliegue(TIPOD dato){ void valnuevo(int& xnum, int& ynum){
cout<<"dato: "<<dato<<endl; cout<<"el valor del primer numero es:
} "<<xnum<<endl;
cout<<"el valor del segundo numero es:
"<<ynum<<endl;

xnum=89;
ynum=45;
}
#include <iostream> #include <iostream>

using namespace std; using namespace std;

void calcular(int,int,int&,int&); void intercambiar(int&,int&);

int main(){ int main(){


int num1,num2,suma=0,producto=0; int num1=10,num2=15;

cout<<"2 numeros: \n"; cout<<"el valor de num1 es: "<<num1<<endl;


cin>>num1>>num2; cout<<"el valor de num2 es: "<<num2<<endl;

calcular(num1,num2,suma,producto); intercambiar(num1,num2);

cout<<"el valor de la suma es: "<<suma<<endl; cout<<"el nuevo valor de num1 es: "<<num1<<endl;
cout<<"el valor del producto es: cout<<"el nuevo valor de num2 es: "<<num2<<endl;
"<<producto<<endl;
return 0;
return 0; }
}
void intercambiar(int& num1,int& num2){
void calcular(int num1,int num2,int& suma, int& int aux;
producto){
suma=num1+num2; aux=num1;
producto=num1*num2; num1=num2;
} num2=aux;
}
#include <iostream> Paso de parámetros de tipo vector
#include <iostream>
using namespace std;
using namespace std;
void tiempo(int,int&,int&,int&);
void cuadrado(int vec[],int);
int main(){ void muestra(int vec[],int);
int tseg,hor,min,seg;
int main(){
cout<<"digite el numero total de segundos: "; const int tam=5;
cin>>tseg; int vec[tam]={1,2,3,4,5};

tiempo(tseg,hor,min,seg); cuadrado(vec,tam);
muestra(vec,tam);
cout<<"TIEMPO EQUIVALENTE:\n";
cout<<"horas :"<<hor<<endl; return 0;
cout<<"minutos :"<<min<<endl; }
cout<<"segundos :"<<seg<<endl;
void cuadrado(int vec[],int tam){
return 0; for(int i=0;i<tam;i++){
} vec[i]=vec[i]*vec[i];
}
void tiempo(int tseg,int& hor,int& min,int& seg){ }
hor=tseg/3600;
tseg=tseg%3600; void muestra(int vec[],int tam){
min=tseg/60; for(int i=0;i<tam;i++){
seg=tseg%60; cout<<vec[i]<<" ";
} }
}
Ejercicio - Suma de elementos de un vector con Ejercicio - Cambiar signo de los elementos de un
función vector
#include <iostream> #include <iostream>

using namespace std; using namespace std;

void pedir(); void pedir();


int suma(int vec[],int); void cambiarsigno(int vec[100],int);
void mostrar(int vec[100],int);
int vec[100],tam;
int vec[100],tam;
int main(){
pedir(); int main(){
cout<<"suma de elementos de vector: pedir();
"<<suma(vec,tam)<<endl; cambiarsigno(vec,tam);
mostrar(vec,tam);
return 0;
} return 0;
}
void pedir(){
cout<<"numero de elementos: "; void pedir(){
cin>>tam; cout<<"tamaño de vector: ";
cin>>tam;
for(int i=0;i<tam;i++){
cout<<i+1<<". digite numero: "; for(int i=0;i<tam;i++){
cin>>vec[i]; cout<<i+1<<". digite numero: ";
} cin>>vec[i];
} }
}
int suma(int vec[],int tam){
int suma=0; void cambiarsigno(int vec[],int tam){
for(int i=0;i<tam;i++){
for(int i=0;i<tam;i++){ vec[i]*=-1;
suma+=vec[i]; }
}
}
return suma;
} void mostrar(int vec[],int tam){
cout<<"mostrando elementos cambiados: ";
for(int i=0;i<tam;i++){
cout<<vec[i]<<" ";
}

}
Paso de parámetros de tipo matriz Ejercicio - Determinar si una matriz es Simétrica
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
void pedirdatos();
void mostrarmatriz(int n[][3],int,int); void comprobarsimetria(int n[][100],int,int);
void cuadrado(int n[][3],int,int);
void mostrarelevada(int n[][3],int,int); int n[100][100],nfilas,ncol;

int main(){ int main(){


const int nfilas=2; pedirdatos();
const int ncol=3; comprobarsimetria(n,nfilas,ncol);
int n[nfilas][ncol]={{1,2,3},{4,5,6}};
return 0;
mostrarmatriz(n,nfilas,ncol); }
cuadrado(n,nfilas,ncol);
mostrarelevada(n,nfilas,ncol); void pedirdatos(){
cout<<"filas: ";
return 0; cin>>nfilas;
} cout<<"columnas: ";
cin>>ncol;
void mostrarmatriz(int n[][3],int nfilas,int ncol){
cout<<"mostrando matriz: \n"; for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){
for(int i=0;i<nfilas;i++){ cout<<"digite numero ["<<i<<"]["<<j<<"]: ";
for(int j=0;j<ncol;j++){ cin>>n[i][j];
cout<<n[i][j]<<" "; }
} }
cout<<"\n"; }
}
} void comprobarsimetria(int n[][100],int,int){
int cont=0;
void cuadrado(int n[][3],int nfilas,int ncol){
for(int i=0;i<nfilas;i++){ if(nfilas==ncol){
for(int j=0;j<ncol;j++){ for(int i=0;i<nfilas;i++){
n[i][j]*=n[i][j]; for(int j=0;j<ncol;j++){
} if(n[i][j]==n[j][i]){
} cont++;
} }

void mostrarelevada(int n[][3],int nfilas,int ncol){ }


cout<<"mostrando matriz elevada: \n"; }
}
for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){ if(cont==nfilas*ncol){
cout<<n[i][j]<<" "; cout<<"la matriz es simetrica";
} }
cout<<"\n"; else{
} cout<<"la matriz no es simetrica";
} }

}
Paso de parámetros de tipo estructura Sumar 2 números complejos
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
struct persona{
char nombre[30]; struct complejo{
int edad; float real,imaginaria;
}p1; }z1,z2;

void pedirdatos(); void pedirdatos();


void mostrardatos(persona); complejo suma(complejo,complejo);
void muestra(complejo);
int main(){
pedirdatos(); int main(){
mostrardatos(p1); pedirdatos();

return 0; complejo x=suma(z1,z2);


}
void pedirdatos(){ muestra(x);
cout<<"nombre: ";
cin.getline(p1.nombre,30,'\n'); return 0;
cout<<"edad: "; }
cin>>p1.edad;
} void pedirdatos(){
cout<<"digite datos para el primer numero"<<endl;
void mostrardatos(persona p){ cout<<"real: ";
cout<<"\n\nNombre: "<<p.nombre<<endl; cin>>z1.real;
cout<<"edad: "<<p.edad<<endl; cout<<"imaginaria: ";
} cin>>z1.imaginaria;

cout<<"\ndigite datos para el segundo


numero"<<endl;
cout<<"real: ";
cin>>z1.real;
cout<<"imaginaria: ";
cin>>z1.imaginaria;
}

complejo suma(complejo z1,complejo z2){


z1.real +=z2.real;
z1.imaginaria +=z2.imaginaria;

return z1;
}

void muestra(complejo x){


cout<<"resultado de la suma: "<<x.real<<" ,
"<<x.imaginaria<<"i"<<endl;
}
Recursividad - Factorial de un número Recursividad para la suma
#include <iostream>
#include <iostream>
using namespace std;
using namespace std;
int factorial(int);
int sumar(int);
int main(){
int main(){
cout<<factorial(3)<<endl; int nelementos;

return 0; do{
} cout<<"numero de elementos: ";
cin>>nelementos;
int factorial(int n){
if(n==0){ }while(nelementos<=0);
n=1;
}
else{ cout<<sumar(nelementos)<<endl;
n=n*factorial(n-1);
} return 0;
}
return n;
} int sumar(int n){
int suma=0;

if(n==1){
suma=1;
}
else{
suma=n+sumar(n-1);
}

return suma;
}
Elevacion de un número con recursividad Declaración de Punteros
#include <iostream> #include <iostream>

using namespace std; using namespace std;

int potencia(int,int); int main(){


int num,*dirNum;;
int main(){
int base,exponente; num=20;
dirNum=&num;
cout<<"base: ";
cin>>base; cout<<"numero: "<<*dirNum<<endl;
cout<<"exponente: "; cout<<"direccion de memoria: "<<dirNum<<endl;
cin>>exponente;

cout<<"\nresultado: return 0;
"<<potencia(base,exponente)<<endl; }

return 0;
}

int potencia(int x, int y){


int pot;

if(y==1){
pot=x;
}
else{
pot=x*potencia(x,y-1);
}

return pot;
}
Número par o impar con punteros Correspondencia entre arreglos y punteros
#include <iostream> #include <iostream>

using namespace std; using namespace std;

int main(){ int main(){


int numero,*dirnumero; int numeros[]={1,2,3,4,5};
int *dirnumeros;
cout<<"numero: ";
cin>>numero; dirnumeros=&numeros[0];//dirnumeros=numeros;

dirnumero=&numero; for(int i=0;i<5;i++){


cout<<"elemento del vector ["<<i<<"]:
if(*dirnumero%2==0){ "<<*dirnumeros++<<endl;
cout<<"numero par"<<endl; }
cout<<"posicion: "<<dirnumero<<endl;
}
else{ return 0;
cout<<"numero impar"<<endl; }
cout<<"posicion: "<<dirnumero<<endl;
}

return 0;
}
Números pares de un arreglo con punteros Asignación dinámica de arreglos
#include <iostream> #include <iostream>
#include<stdlib.h>
using namespace std;
using namespace std;
int main(){
int numeros[10],*dirnumeros; void pedirnotas();
void mostrarnotas();
for(int i=0;i<10;i++){
cout<<"numero["<<i<<"]: ";
cin>>numeros[i]; int numcalif,*calif;
}
int main(){
dirnumeros=numeros; pedirnotas();
mostrarnotas();
for(int i=0;i<10;i++){
if(*dirnumeros%2==0){ delete[] calif;
cout<<"numero "<<*dirnumeros<<" es
par"<<endl; return 0;
cout<<"posicion: "<<dirnumeros<<endl; }
}
dirnumeros++; void pedirnotas(){
} cout<<"numero de calificaciones: ";
cin>>numcalif;

return 0; calif=new int[numcalif];


}
for(int i=0;i<numcalif;i++){
cout<<"ingrese nota: ";
cin>>calif[i];
}
}

void mostrarnotas(){
cout<<"\nMostrando notas de usuario\n ";
for(int i =0;i<numcalif;i++){
cout<<calif[i]<<endl;
}
}
Transmisión de Direcciones Transmisión de arreglos
#include <iostream> #include <iostream>

using namespace std; using namespace std;

void intercambio(float *,float *); int hallarmax(int *,int);

int main() int main(){


{ const int nelementos=5;
float num1=20.8, num2=6.78; int numeros[nelementos]={3,5,2,8,1};

cout<<"primer numero: "<<num1<<endl; cout<<"mayor elemento:


cout<<"segundo numero: "<<num2<<endl; "<<hallarmax(numeros,nelementos);

intercambio(&num1,&num2); return 0;
}
cout<<"nuevo valor del primer numero:
"<<num1<<endl; int hallarmax(int *dirvec,int nelementos){
cout<<"nuevo valor del segundo numero: int max=0;
"<<num2<<endl;
for(int i=0;i<nelementos;i++){
return 0; if(*(dirvec+i)>max){
} max=*(dirvec+i);
}
void intercambio(float *dirnum1,float *dirnum2){ }
float aux;
return max;
aux=*dirnum1; }
*dirnum1=*dirnum2;
*dirnum2=aux;
}
Ordenar elementos de un arreglo con punteros Contar vocales de un nombre con punteros
#include <iostream> #include <iostream>
#include<stdlib.h> #include<string.h>

using namespace std; using namespace std;

void pedirdatos(); void pedirdatos();


void ordenararreglo(int *,int); int contandovocales(char *);
void mostrararreglo(int *,int);
char nombreusuario[30];
int nelementos,*elemento;
int main(){
int main(){ pedirdatos();
pedirdatos(); cout<<"\nnumero de vocales:
ordenararreglo(elemento,nelementos); "<<contandovocales(nombreusuario)<<endl;
mostrararreglo(elemento,nelementos);
return 0;
delete[] elemento;//liberar memoria }

return 0; void pedirdatos(){


} cout<<"digite su nombre: ";
cin.getline(nombreusuario,30,'\n');
void pedirdatos(){
cout<<"digite el numero de elementos del arreglo: string.toUpperCase(nombreusuario);
"; }
cin>>nelementos;
int contandovocales(char *nombre){
elemento=new int[nelementos];//crear arreglo int cont=0;

for(int i=0;i<nelementos;i++){ while(*nombre){//mientras nombre no sea nulo


cout<<"digite numero ["<<i<<"]: "; switch(*nombre){
cin>>*(elemento+i);//elemento[i] case 'A':
} case 'E':
} case 'I':
case 'O':
void ordenararreglo(int *elemento,int nelementos){ case 'U': cont++;
int aux; }
nombre++;
for(int i=0;i<nelementos;i++){ }
for(int j=0;j<nelementos-1;j++){
return cont;
if(*(elemento+j)>*(elemento+j+1)){//elemento[j]>ele }
mento[j+1]
aux=*(elemento+j);
*(elemento+j)=*(elemento+j+1);
*(elemento+j+1)=aux;
}
}
}
}

void mostrararreglo(int *elemento,int nelementos){


cout<<"\n\nMostrando arreglo ordenado: ";
for(int i=0;i<nelementos;i++){
cout<<*(elemento+i)<<" ";//elemento[i]
}
}
Matriz dinámica cout<<"\n";
#include <iostream> }
#include <stdlib.h> }

using namespace std;

void pedirdatos();
void mostrarmatriz(int **,int,int);

int **punteromatriz,nfilas,ncol;

int main(){
pedirdatos();
mostrarmatriz(punteromatriz,nfilas,ncol);

//liberar memoria utilizada en matriz


for(int i=0;i<nfilas;i++){
delete[] punteromatriz[i];
}

delete[] punteromatriz;

return 0;
}

void pedirdatos(){
cout<<"numero de filas: ";
cin>>nfilas;
cout<<"numero de columnas: ";
cin>>ncol;

//reservar memoria para la matriz dinamica


punteromatriz=new int*[nfilas];//reservando
memoria para las filas

for(int i=0;i<nfilas;i++){
punteromatriz[i]=new int[ncol];//reservando
memoria para las columnas
}

cout<<"\nDigitando elementos de la matriz: \n";


for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){
cout<<"digite un numero ["<<i<<"]["<<j<<"]: ";

cin>>*(*(punteromatriz+i)+j);//punteromatriz[i][j]
}
}
}

void mostrarmatriz(int **punteromatriz,int nfilas,int


ncol){
cout<<"\n\nImprimiendo matriz:\n";
for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){
cout<<*(*(punteromatriz+i)+j)<<" ";
}
Suma de matrices dinámicas con punteros }
#include <iostream>
#include <stdlib.h> cout<<"\nDigitando elementos de la segunda
matriz: \n";
using namespace std; for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){
void pedirdatos(); cout<<"digite un numero ["<<i<<"]["<<j<<"]: ";
void sumarmatrices(int **,int **,int,int);
void mostrarmatrizresultante(int **,int,int); cin>>*(*(punteromatriz2+i)+j);//punteromatriz[i][j]
}
int **punteromatriz1,**punteromatriz2,nfilas,ncol; }
}
int main(){
pedirdatos(); void sumarmatrices(int **punteromatriz1,int
**punteromatriz2,int nfilas,int ncol){
sumarmatrices(punteromatriz1,punteromatriz2,nfilas, for(int i=0;i<nfilas;i++){
ncol); for(int j=0;j<ncol;j++){

mostrarmatrizresultante(punteromatriz1,nfilas,ncol); *(*(punteromatriz1+i)+j)+=*(*(punteromatriz2+i)+j);
}
for(int i=0;i<nfilas;i++){ }
delete[] punteromatriz2[i]; }
}
delete[] punteromatriz2; void mostrarmatrizresultante(int
**punteromatriz1,int nfilas,int ncol){
for(int i=0;i<nfilas;i++){ cout<<"\n\nImprimiendo matriz resultante:\n";
delete[] punteromatriz1[i]; for(int i=0;i<nfilas;i++){
} for(int j=0;j<ncol;j++){
delete[] punteromatriz1; cout<<*(*(punteromatriz1+i)+j)<<" ";
}
return 0; cout<<"\n";
} }
}
void pedirdatos(){
cout<<"numero de filas: ";
cin>>nfilas;
cout<<"numero de columnas: ";
cin>>ncol;

punteromatriz1=new int *[nfilas];


for(int i=0;i<nfilas;i++){
punteromatriz1[i]=new int[ncol];
}

cout<<"\nDigitando elementos de la primera


matriz: \n";
for(int i=0;i<nfilas;i++){
for(int j=0;j<ncol;j++){
cout<<"digite un numero ["<<i<<"]["<<j<<"]: ";

cin>>*(*(punteromatriz1+i)+j);//punteromatriz[i][j]
}
}

punteromatriz2=new int *[nfilas];


for(int i=0;i<nfilas;i++){
punteromatriz2[i]=new int[ncol];
Punteros a Estructura Mejor promedio de 3 estudiantes con punteros
#include <iostream> #include <iostream>

using namespace std; using namespace std;

struct Persona{ struct Alumno{


char nombre[30]; char nombre[30];
int edad; int edad;
}pers, *puntero_persona= &pers; float promedio;
}alum[3], *punteroalumno= alum;//=&alum[0]
void pedirdatos();
void mostrardatos (Persona *); void pedirdatos();
void calcularmejorpromedio(Alumno *);
int main(){
pedirdatos(); int main(){
mostrardatos(puntero_persona); pedirdatos();
calcularmejorpromedio(punteroalumno);
return 0;
} return 0;
}
void pedirdatos(){
cout<<"nombre: "; void pedirdatos(){
cin.getline(puntero_persona ->nombre,30,'\n'); for(int i=0;i<3;i++){
cout<<"edad: "; fflush(stdin);//separa grupos de datos
cin>>puntero_persona ->edad; cout<<"nombre: ";
} cin.getline((punteroalumno+i)->nombre,30,'\n');
cout<<"edad: ";
void mostrardatos(Persona *puntero_persona){ cin>>(punteroalumno+i)->edad;
cout<<"\nSu nombre: "<<puntero_persona - cout<<"promedio: ";
>nombre<<endl; cin>>(punteroalumno+ i)->promedio;
cout<<"su edad: "<<puntero_persona - cout<<"\n";
>edad<<endl; fflush(stdin);//separa grupos de datos
} }
}

void calcularmejorpromedio(Alumno
*punteroalumno){
float mayor=0.0;
int pos=0;
for(int i=0;i<3;i++){
if((punteroalumno+i)-
>promedio>mayor){//punteroalumno[i].promedio
mayor=(punteroalumno+i)->promedio;
pos=i;
}
}

cout<<"\nEl alumno con mejor promedio:\n";


cout<<"Nombre: "<<(punteroalumno+pos)-
>nombre<<endl;
cout<<"Edad: "<<(punteroalumno+pos)-
>edad<<endl;
cout<<"promedio: "<<(punteroalumno+pos)-
>promedio<<endl;
}
Insertar elementos a la pila Quitar elementos de una pila
#include <iostream> #include <iostream>
#include <stdlib.h> #include <stdlib.h>

using namespace std; using namespace std;

struct Nodo{ struct Nodo{


int dato; int dato;
Nodo *siguiente; Nodo *siguiente;
}; };

void agregarpila(Nodo *&,int); void agregarpila(Nodo *&,int);


void sacarpila(Nodo *&,int &);
int main(){
Nodo *pila=NULL; int main(){
int n1,n2; Nodo *pila=NULL;
int dato;
cout<<"Digite un numero: ";
cin>>n1; cout<<"Digite un numero: ";
agregarpila(pila,n1); cin>>dato;
agregarpila(pila,dato);
cout<<"\nDigite otro numero: ";
cin>>n2; cout<<"\nDigite otro numero: ";
agregarpila(pila,n2); cin>>dato;
agregarpila(pila,dato);
return 0;
} cout<<"\nSacando elementos de la pila: ";
while(pila!=NULL){
void agregarpila(Nodo *&pila,int n){ sacarpila(pila,dato);
Nodo *nuevonodo=new Nodo(); if(pila!= NULL){
nuevonodo->dato=n; cout<<dato<<" , ";
nuevonodo->siguiente=pila; ; }
pila=nuevonodo; else{
cout<<dato<<".";
cout<<"Elemento "<<n<<" agregado a PILA }
correctamente"<<endl; }
}
return 0;
}

void agregarpila(Nodo *&pila,int n){


Nodo *nuevonodo=new Nodo();
nuevonodo->dato=n;
nuevonodo->siguiente=pila;
pila=nuevonodo;

cout<<"Elemento "<<n<<" agregado a PILA


correctamente"<<endl;
}

void sacarpila(Nodo *&pila,int &n){


Nodo *aux=pila;
n=aux->dato;
pila=aux->siguiente;
delete aux;
}
Insertar elementos en una cola Eliminar elementos de una cola
#include <iostream> #include <iostream>

using namespace std; using namespace std;

struct Nodo{ struct Nodo{


int dato; int dato;
Nodo *siguiente; Nodo *siguiente;
}; };

void insertarcola(Nodo *&,Nodo *&,int); void insertarcola(Nodo *&,Nodo *&,int);


bool colavacia(Nodo *); bool colavacia(Nodo *);
void suprimircola(Nodo *&,Nodo *&,int &);
int main(){
Nodo *frente=NULL; int main(){
Nodo *fin=NULL; Nodo *frente=NULL;
int dato; Nodo *fin=NULL;
int dato;
cout<<"Digite un numero: ";
cin>>dato; cout<<"Digite un numero: ";
insertarcola(frente,fin,dato); cin>>dato;
insertarcola(frente,fin,dato);
return 0;
} cout<<"Digite un numero: ";
cin>>dato;
void insertarcola(Nodo *&frente,Nodo *&fin,int n){ insertarcola(frente,fin,dato);
Nodo *nuevonodo=new Nodo();
nuevonodo->dato=n; cout<<"Digite un numero: ";
nuevonodo->siguiente=NULL; cin>>dato;
if(colavacia(frente)){ insertarcola(frente,fin,dato);
frente=nuevonodo;
} cout<<"\nQuitando los nodos de la cola: ";
else{ while(frente!=NULL){
fin->siguiente=nuevonodo; suprimircola(frente,fin,dato);
}
fin=nuevonodo; if(frente!=NULL){
cout<<dato<<" , ";
cout<<"Elemento "<<n<<" agregado a COLA }
correctamente"<<endl; else{
} cout<<dato<<".";
}
bool colavacia(Nodo *frente){ }
return(frente==NULL)?true:false;
} return 0;
}

void insertarcola(Nodo *&frente,Nodo *&fin,int n){


Nodo *nuevonodo=new Nodo();
nuevonodo->dato=n;
nuevonodo->siguiente=NULL;
if(colavacia(frente)){
frente=nuevonodo;
}
else{
fin->siguiente=nuevonodo;
}
fin=nuevonodo;
cout<<"Elemento "<<n<<" agregado a COLA
correctamente"<<endl;
}

bool colavacia(Nodo *frente){


return(frente==NULL)?true:false;
}

void suprimircola(Nodo *&frente,Nodo *&fin,int &n){


n=frente->dato;
Nodo *aux=frente;

if(frente==fin){
frente=NULL;
fin=NULL;
}
else{
frente=frente->siguiente;
}

delete aux;
}

Você também pode gostar