0 calificaciones0% encontró este documento útil (0 votos)
64 vistas13 páginas
Este documento describe los arreglos dinámicos, los cuales permiten definir el tamaño de un arreglo durante la ejecución del programa en lugar de fijarlo de manera estática. Explica cómo crear arreglos dinámicos unidimensionales y bidimensionales usando new y delete en C++, y provee ejemplos de código para ilustrar cómo implementarlos y usarlos para ordenar datos e intercambiar elementos. También propone tres ejercicios relacionados con realizar operaciones matriciales como la transpuesta, multiplicación y determinante us
Este documento describe los arreglos dinámicos, los cuales permiten definir el tamaño de un arreglo durante la ejecución del programa en lugar de fijarlo de manera estática. Explica cómo crear arreglos dinámicos unidimensionales y bidimensionales usando new y delete en C++, y provee ejemplos de código para ilustrar cómo implementarlos y usarlos para ordenar datos e intercambiar elementos. También propone tres ejercicios relacionados con realizar operaciones matriciales como la transpuesta, multiplicación y determinante us
Este documento describe los arreglos dinámicos, los cuales permiten definir el tamaño de un arreglo durante la ejecución del programa en lugar de fijarlo de manera estática. Explica cómo crear arreglos dinámicos unidimensionales y bidimensionales usando new y delete en C++, y provee ejemplos de código para ilustrar cómo implementarlos y usarlos para ordenar datos e intercambiar elementos. También propone tres ejercicios relacionados con realizar operaciones matriciales como la transpuesta, multiplicación y determinante us
BASTIDAS DE APURÍMAC INGENIERÁ INFORMÁTICA Y SISTEMAS
ESTRUCTURA DE DATOS
ARREGLOS DINÁMICOS
Ing. Francisco Cari Incahuanaco
ARREGLO DINÁMICO
CONCEPTO:
Un array diná mico es aquel cuyo tamañ o se
define dentro de la ejecució n del programa, de esta manera se crearan tantos espacios de memoria como el usuario lo requiera y no tendremos falta o derroche de memoria Una dimensión Int n=0;//siempre es aconsejable inicializar las variables cin>>n; int *A=new int [ n] //donde N será espicificado por el usuario
Sin embargo estos punteros deben ser eliminados
puesto que luego de la ejecució n aun mantiene esos espacios de memoria reservados, para eliminar usamos delete. Arreglo dinámico sin tipo definido #include<conio.h> #include<iostream.h> main() { int *p, n, i; cout<<"ingrese el tamaño del arreglo: "; cin>>n; p= new int; for(i=0;i<n;i++) { cout<<"Valor para la posicion "<<"["<<i<<"]:"; cin>>p[i]; } for(i=0;i<n;i++) { cout<<"["<<i<<"]:"<<*(p+i)<<endl; } return 0; } Arreglo dinámico con tipo definido #include "iostream.h" typedef int* ApuntInt; int main() { ApuntInt p; int n,i; cout<<"cuantos desea ingresar"; cin>>n; p=new int ; for(i=0;i<=n;i++) { cout<<"["<<i<<"]: "; cin>>p[i]; } for(i=0;i<=n;i++) { cout<<*(p+i)<<endl; } return 0; } Método de ordenamiento insertion sort con Array Dinámico #include "iostream.h" typedef int* ApuntInt; int main() { ApuntInt p; int n,i,k,aux; cout<<"cuantos desea ingresar: "; cin>>n; p=new int ; for(i=1;i<=n;i++) { cout<<"["<<i<<"]: "; cin>>p[i]; } for(i=2; i<=n;i++) { aux=p[i]; k=i-1; Método de ordenamiento insertion sort con Array Dinámico while((k>=1)&&(aux<p[k])) { p[k+1]=p[k]; k=k-1; } p[k+1]=aux; } for(k=1;k<=n;k++) cout<<p[k]<<endl; return 0; } Dos dimensiones int n, m; cin>>m; cin>>n; int **A=new int * [m]; for(int i=0; i<m; i++) { A[i]=new int[n]; } Arreglo bidimensional Aquí estamos creando un puntero a punteros, es decir creamos un puntero a un vector de punteros, los cuales apuntan a un espacio de memoria. Arreglo bidimensional Para emplear esta matriz lo hacemos igual que con una matriz está tica es decir, lo que si es engorroso es tener que liberar la memoria al emplear este tipo de arreglos o matrices para este caso(2 dimensiones), bien lo haremos de la siguiente manera:
for(int i=0; i<n; i++)
{ delete[] A[i]; } delete A[i]; matriz dinámica #include "iostream.h" #include "conio.h" typedef double* Mitipo; int main() { int i,j,f,c; Mitipo *M; cout << "Introduce el numero de filas :"; cin >> f; cout << "Introduce el numero de columnas :"; cin >> c; // creamos la matriz ! M = new double* [f]; for (i = 0; i < f; i++) M[i] = new double[c]; // Comprobamos if (!M) { cout << "No se puede reservar el espacio" << endl; return 1; } cout << "Introduciendo los elementos de la matriz" << endl; for (i = 0; i < f; i++) { for (j = 0; j < c; j++) { cout <<" M["<<i<<"]["<<j<<"]:"; cin >> M[i][j]; } } cout << "Mostrando los elementos de la matriz" << endl; for (i = 0; i < f; i++) { for (j = 0; j < c; j++) cout << M[i][j] << " "; cout << endl; } // delete [] M; getch(); } Ejercicios: 1. Desarrollar un programa para realizar la transpuesta de una matriz diná mica.