Laboratorio Domiciliario #4

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 62

UNIVERSIDAD NACIONAL “DANIEL ALCIDES CARRIÓN

FACULTAD DE INGENIERÍA
ESCUELA DE FORMACIÓN PROFESIONAL DE SISTEMAS Y COMPUTACIÓN

LABORATORIO DOMICILIARIO N° 4 DE LENGUAJE DE PROGRAMACIÓN I


(LENGUAJE C STANDAR /C++)

ARRAYS (MATRICES)

PROBLEMA 1. Crear una tabla bidimensional de tamaño 5x5 y rellenarla de la siguiente


forma: la posición T[n,m] debe contener n+m. Después se debe mostrar su contenido.

#include<iostream>

using namespace std;

/*PROBLEMA 1. Crear una tabla bidimensional de tamaño 5x5 y rellenarla de la siguiente forma:
la posición T[n,m] debe contener n+m. Después se debe mostrar su contenido.
*/
int main(){
int num[5][5];

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


for (int j = 0; j <5; j++) {
num[i][j]=(i+1)+(j+1);
}
}
cout<<" Imprimiendo Tabla \n\n";
for (int i = 0;i<5; i++) {

for (int j = 0;j <5; j++) {


cout<<num[i][j]<<" ";
}
cout<<"\n";
}

return 0;
}
PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no, es decir si
se obtiene la misma tabla al cambiar las filas por columnas.

#include<iostream>

using namespace std;

/*PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no,
es decir si se obtiene la misma tabla al cambiar las filas por columnas.
*/
int main() {

int num[4][4];
bool simetrico;

cout<<"Ingrese los numeros \n";


for (int i = 0; i < 4; i++) {//Dimensión Uno.
for (int j = 0; j < 4; j++) {//Dimensión Dos.
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>num[i][j];
}
}
cout<<"\n\nImprimiendo Tabla\n\n";
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
cout<<num[i][j]<<" ";
}
cout<<"\n";
}

cout<<"\nComprobando Simetria\n\n";
simetrico = true;
int control = 4;
int i=0;
while (i < control && simetrico == true) {
int j=0;
while (j < control && simetrico == true) {
if(num[i][j] != num[j][i]){
simetrico = false;
}
j++;
}
i++;
}
if(simetrico){
cout<<"\n\nLa tabla es Simetrica.";
}
else{
cout<<"\n\nLa tabla no es Simetrica.";
}
}

PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.

#include<iostream>

using namespace std;

/*PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
*/
int main() {

int a[3][3], b[3][3], suma[3][3];


int i,j;

// Leemos los datos


cout<<"Matriz A: \n\n";
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<"A["<<i+1<<"]["<<j+1<<"]: = ";
cin>>a[i][j];
}
}

cout<<"\n\nMatriz B: \n\n";
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<"B["<<i+1<<"]["<<j+1<<"]: = ";
cin>>b[i][j];
}
}
// hacemos la suma

for (i=0;i<3;i++){
for (j=0;j<3;j++){

suma[i][j] = a[i][j] + b[i][j];


}
}
// mostramos los resultado
cout<<" \n\nMatriz Suma:\n\n";
for (i=0;i<3;i++){
for (j=0;j<3;j++){
cout<<suma[i][j]<<" ";
}
cout<<"\n";
}
return 0;
}

PROBLEMA 4. Crear y cargar una tabla de tamaño 3x3, trasponerla y mostrarla.

#include<iostream>

using namespace std;

/*PROBLEMA 4. Crear y cargar una tabla de tamaño 3x3, trasponerla y mostrarla.


*/

int main() {
int num[3][3];
cout<<"Ingrese los números \n\n";
for (int i = 0; i < 3; i++) {//Dimensión Uno.
for (int j = 0; j < 3; j++) {//Dimensión Dos.
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>num[i][j];
}
}
cout<<"\n\nImprimiendo Tabla Original \n\n";
for (int i = 0; i < 3; i++){
cout<<endl;
for (int j = 0; j < 3; j++) {
cout<<num[i][j]<<" ";
}
}

//Transponiendo Tabla
int aux;
for (int i = 1; i < 3; i++) {
for (int j = 0; j < 3; j++) {
aux = num[i][j];
num[i][j] = num[j][i];
num[j][i] = aux;
}
}
cout<<"\n\nMostrando Tabla transpuesta\n\n";
for (int i = 0; i < 3; i++) {
cout<<endl;
for (int j = 0; j < 3; j++) {
cout<<num[i][j]<<" ";
}
}

return 0;
}

PROBLEMA 5. Crear una tabla de tamaño 7x7 y rellenarla de forma que los elementos de la
diagonal principal sean 1 y el resto 0.
#include<iostream>
using namespace std;

/*PROBLEMA 5. Crear una tabla de tamaño 7x7 y rellenarla de forma que los elementos de la diagonal principal sean
1 y el resto 0.
*/

int main(){

int matriz[7][7],i,j;

for (i=0;i<7;i++){
for (j=0;j<7;j++){
if(i==j){
matriz[i][j]=1;
}
else{
matriz[i][j]=0;
}
}
}
cout<<"\n\nImprimiendo matriz \n\n";
for (i = 0; i < 7; i++){
cout<<endl;
for (j = 0; j < 7; j++) {
cout<<matriz[i][j]<<" ";
}
}

return 0;
}

PROBLEMA 6. Hacer un algoritmo que llene una matriz de 8 * 8, que almacene la suma de
los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.

#include<iostream>

using namespace std;

/*PROBLEMA 6. Hacer un algoritmo que llene una matriz de 8 * 8, que almacene


la suma de los renglones y la suma de las columnas en un vector. Imprimir el vector resultante.
*/
int main(){

int matriz[8][8],sumacolumnas[8],sumafilas[8],comb[16],i,j,suma,suma1;

cout<<"Ingrese los numeros \n\n";

for (i = 0; i < 8; i++) {


for (j = 0; j < 8; j++) {
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>matriz[i][j];
}
}

///SUMA DE FILAS Y COLUMNAS

for (i = 0; i < 8; i++) {


suma=0;
suma1=0;
for (j = 0; j < 8; j++) {
suma=suma+matriz[i][j];
suma1=suma1+matriz[j][i];
sumacolumnas[i]=suma1;
}
sumafilas[i]=suma;
}

cout<<"\n\nImprimiendo matriz \n\n";


for (i = 0; i < 8; i++){
cout<<endl;
for (j = 0; j < 8; j++) {
cout<<matriz[i][j]<<" ";
}
}
/// combinacion de los vectores de filas y columnas en uno solo
int k;
for (i = 0; i < 8; i++){
comb[i]=sumafilas[i];
}
k=8+1;
for (i = 0; i < 8; i++){
comb[k]=sumacolumnas[i];
k++;
}
///Impresion del vector resultante, es decir, el que resulto de la combinacion
cout<<"\n\n";
cout<<"la suma de filas es : \n\n";
for (i = 0; i < 8; i++){
cout<<comb[i]<<" ";
}
k=8+1;
cout<<"\n\nla suma de columnas es : \n\n";
for (i = 0; i < 8; i++){
cout<<comb[k]<<" ";
k++;
}

return 0;
}
PROBLEMA 7. Crear y cargar una tabla de tamaño 10x10, mostrar la suma de cada fila y de
cada columna.

#include<iostream>

using namespace std;

/*PROBLEMA 7. Crear y cargar una tabla de tamaño 10x10, mostrar la suma de cada fila y de cada
columna.
*/
int main(){

int matriz[10][10],sumacolumnas[10],sumafilas[10],i,j,suma,suma1;

cout<<"Ingrese los numeros \n\n";

for (i = 0; i < 10; i++) {


for (j = 0; j < 10; j++) {
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>matriz[i][j];
}
}

///SUMA DE FILAS Y COLUMNAS

for (i = 0; i < 10; i++) {


suma=0;
suma1=0;
for (j = 0; j < 10; j++) {
suma=suma+matriz[i][j];
suma1=suma1+matriz[j][i];
sumacolumnas[i]=suma1;
}
sumafilas[i]=suma;
}

cout<<"\n\nImprimiendo matriz \n\n";


for (i = 0; i < 10; i++){
cout<<endl;
for (j = 0; j < 10; j++) {
cout<<matriz[i][j]<<" ";
}
}

///Impresion del vector resultante


cout<<"\n\n";
cout<<"la suma de las columnas es \n\n";
for (i = 0; i < 8; i++){
cout<<i+1<<" es : "<<sumacolumnas[i]<<endl;
}
cout<<"\n\n";
cout<<"la suma de las filas es \n\n";
for (i = 0; i < 8; i++){
cout<<i+1<<" es : "<<sumafilas[i]<<endl;
}

return 0;
}

PROBLEMA 8. Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los
números
almacenados son ceros, cuantos son positivos y cuantos son negativo

#include<iostream>

using namespace std;

/*PROBLEMA 8. Hacer un algoritmo que llene una matriz de 5 * 6 y que imprima cuantos de los números
almacenados son ceros, cuantos son positivos y cuantos son negativo
*/
int main(){
int matriz[5][6],i,j,mas=0,menos=0,cero=0;

cout<<"Ingrese la Matriz \n\n";

for (i = 0;i<5; i++) {


for (j = 0; j <6; j++) {
cout<<"["<<i+1<<"]"<<"["<<j+1<<"]"<<" = ";
cin>>matriz[i][j];

if(matriz[i][j]==0){
cero++;
}
else{
if(matriz[i][j]>0){
mas++;
}
else{
menos++;
}
}
}
}

cout<<" Imprimiendo matriz \n\n";


for (i = 0;i<5; i++) {

for (j = 0;j <6; j++) {


cout<<matriz[i][j]<<" ";

}
cout<<"\n";
}
cout<<"\n\nLa cantidad de numeros positivos en la matriz es : "<<mas;
cout<<"\n\nLa cantidad de numeros negativos en la matriz es : "<<menos;
cout<<"\n\nLa cantidad de ceros en la matriz es : "<<cero;

return 0;
}
PROBLEMA 9. Utilizando dos tablas de tamaño 5x9 y 9x5, cargar la primera y trasponerla en
la segunda.

#include<iostream>

using namespace std;

/*PROBLEMA 9. Utilizando dos tablas de tamaño 5x9 y 9x5, cargar la primera y trasponerla en la segunda.
*/
int main(){

int matriz1[5][9],matriz2[9][5];

cout<<"Digite la matriz: \n\n";

for(int i=0;i<5;i++){
for(int j=0;j<9;j++){
cout<<"Matriz["<<i+1<<"]["<<j+1<<"] : ";
cin>>matriz1[i][j];
}
}

cout<<"\n\nLa matriz original es: \n\n";


for(int i=0;i<5;i++){
for(int j=0;j<9;j++){
cout<<matriz1[i][j]<<" ";
}
cout<<endl;
}

// Transponiendo la matriz
for(int i=0;i<9;i++){
for(int j=0;j<5;j++){
matriz2[i][j]= matriz1[j][i];
}
}

cout<<"\n\nLa matriz transpuesta es: \n\n";


for(int i=0;i<9;i++){
for(int j=0;j<5;j++){
cout<<matriz2[i][j]<<" ";
}
cout<<endl;
}

return 0;
}

PROBLEMA 10. Crear una matriz “marco” de tamaño 8x6: todos sus elementos deben
ser 0 salvo los de los bordes que deben ser 1. Mostrarla.

#include<iostream>

using namespace std;

/*PROBLEMA 10. Crear una matriz "marco" de tamaño 8x6: todos sus elementos deben ser 0 salvo los de
los bordes que deben ser 1. Mostrarla.
*/
int main(){

int matriz[8][6],i,j;

cout<<"Digite la matriz: \n\n";

for(i=0;i<8;i++){
for(j=0;j<6;j++){

if(i==0 || j==0 || i==7 || j==5){


matriz[i][j]=1;

}
else{
matriz[i][j]=0;
}
}
}

cout<<"\n\n matriz marco : \n\n";

for(i=0;i<8;i++){
for(j=0;j<6;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl;
}

return 0;
}

PROBLEMA 11. Se pretende realizar un programa para gestionar la lista de participaciones


en una competición de salto de longitud. El número de plazas disponible es de 10. Sus
datos se irán introduciendo en el mismo orden que vayan inscribiéndose los atletas.
Diseñar el programa que muestre las siguientes opciones:
a. Inscribir un participante.
b. Mostrar listado de datos.
c. Mostrar listado por marcas.
d. Finalizar el programa.
Si se selecciona 1, se introducirán los datos de uno de los participantes: Nombre,
mejor marca del 2016, mejor marca del 2015 y mejor marca del 2014.
Si se elige la opción 2, se debe mostrar un listado por número de dorsal.
La opción 3 mostrará un listado ordenado por la marca del 2016, de mayor a menor.
Tras procesar cada opción, se debe mostrar de nuevo el menú inicial, hasta que se
seleccione la opción 4, que terminará el programa.

#include<iostream>

using namespace std;

/*Se pretende realizar un programa para gestionar la lista de participaciones en una competición de salto de longitud.
El número de plazas disponible es de 10. Sus datos se irán introduciendo en el mismo orden que vayan inscribiéndose
los atletas.
Diseñar el programa que muestre las siguientes opciones:

a. Inscribir un participante.
b. Mostrar listado de datos.
c. Mostrar listado por marcas.
d. Finalizar el programa.

Si se selecciona 1, se introducirán los datos de uno de los participantes: Nombre, mejor marca del 2016,
mejor marca del 2015 y mejor marca del 2014.
Si se elige la opción 2, se debe mostrar un listado por número de dorsal.
La opción 3 mostrará un listado ordenado por la marca del 2016, de mayor a menor.

Tras procesar cada opción, se debe mostrar de nuevo el menú inicial, hasta que se seleccione la opción 4, que
terminará el programa.

*/
int main(){
int TAM=10,D=0,M0=1,M1=2,M2=3;

// TAM: Número máximo de participantes


// D: número de dorsal
// M0, M1, M2: Marca del 2014, 2015, y 2016

int opc,numc,dorsal,i,aux;
bool d_rep,inter;
int part[TAM][4];

numc=0;
opc=0;

do{

cout<<"\n\n--------------------------------";
cout<<"\n1. Inscribir participantes";
cout<<"\n2. Mostrar listado por datos";
cout<<"\n3. Mostrar listado por marcas";
cout<<"\n4. Salir";
cout<<"\n--------------------------------";
cout<<"\n\nPor favor, introduzca una opcion : ...>>";
cin>>opc;
cout<<endl<<endl;

switch(opc){

case 1: if(numc==20){
cout<<"Listado completo";
}
else{

do{
cout<<"Introduzca dorsal: ";
cin>>dorsal;
d_rep=false;
i=0;

while(i<numc && d_rep==false){

if(part[i][D]==dorsal){
cout<<" Dorsal registrado ";
cout<<"Por favor intente de nuevo";
d_rep=true;
}
i++;
}

}while(d_rep==true);

if(d_rep==false){
part[numc][D]=dorsal;
cout<<"Introduzca marca del 2000: ";
cin>>part[numc][M0];
cout<<"Introduzca marca del 2001: ";
cin>>part[numc][M1];
cout<<"Introduzca marca del 2002: ";
cin>>part[numc][M2];
cout<<endl;
numc++;
}
}
break;

case 2: // método de ordenación por burbuja, controlado por intercambio

inter=true;

while(inter==true){
inter=false;

for (int j=0;j<=numc-1-1;j++){


if(part[j][D]>part[j+1][D]){

for (int k=0;k<4;k++){

aux=part[j][k];
part[j][k]=part[j+1][k];
part[j+1][k]=aux;
}

inter=true;
}
}
}

cout<<"LISTADO DE DATOS,SEGUN DORSAL : ";


cout<<"dorsal - marcas";

for (int j=0;j<numc;j++){


cout<<endl;
for (int k=0;k<4;k++){
cout<<part[j][k]<<" ";
}
}
break;

case 3:

inter=true;

while(inter==true){
inter=false;

for (int j=0;j<=numc-1-1;j++){

if(part[j][M2]>part[j+1][M2]){

for (int k=0;k<4;k++){

aux=part[j][k];

part[j][k]=part[j+1][k];

part[j+1][k]=aux;

}
inter=true;
}
}
}

cout<<"LISTADO POR MARCAS :";


cout<<"dorsal - marcas";

for (int j=0;j<numc;j++){


cout<<endl;
for (int k=0;k<4;k++){

cout<<part[j][k]<<" ";
}
}
break;
}
}while(opc!=4);

return 0;
}
PROBLEMA 12. El dueño de una cadena de tiendas de artículos deportivos desea controlar
sus ventas
por medio de una computadora. Los datos de entrada son:
a) El número de la tienda (1 a 50)
b) Un número que indica el deporte del articulo (1 a 20)
c) El costo del artículo.
Hacer un pseudocódigo que escriba al final del día lo siguiente
1. Las ventas totales en el día para cada tienda
2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.

#include<iostream>

using namespace std;

/*PROBLEMA 12. El dueño de una cadena de tiendas de artículos deportivos desea controlar sus ventas
por medio de una computadora. Los datos de entrada son:

a) El número de la tienda (1 a 50)


b) Un número que indica el deporte del articulo (1 a 20)
c) El costo del artículo.
Hacer un pseudocódigo que escriba al final del día lo siguiente
1. Las ventas totales en el día para cada tienda
2. Las ventas totales para cada uno de los deportes.
3. Las ventas totales de todas las tiendas.

*/
int main(){

int matriz[50][20],a=0,stotal=0,sdeporte=0,t,deporte;
int costo,salir=0,h,i,j;

while(salir!=1){
cout<<"Digite el numero de las tiendas (1 a 50): ";
cin>>t;

while(t>50 || t<0){

cout<<"Digite el numero de las tiendas (1 a 50): ";


cin>>t;

cout<<"Digite el numero de articulos (1 a 20) : ";


cin>>deporte;

while(deporte>20 || deporte<0){

cout<<"Digite el numero de articulos (1 a 20) : ";


cin>>deporte;

cout<<"Digite el costo : ";


cin>>costo;

matriz[t-1][deporte-1]=matriz[t-1][deporte-1]+costo;

cout<<"\nPresione cualquier tecla si quieres continuar : \n";


cout<<"Presione la tecla 1 si quieres salir : ";
cin>>salir;
cout<<"\n\n\n\n";
}

h=0;

for(i=0;i<20;i++){
sdeporte=0;
cout<<"\n\n";
for(j=0;j<50;j++){

sdeporte=sdeporte+matriz[j][i];
}

stotal=stotal+sdeporte;
h=h+1;

cout<<"El deporte "<<h<<" mostro un ingreso de : "<<sdeporte;

cout<<"\n\nLas ventas totales fueron de : "<<stotal;

return 0;
}
PROBLEMA 13. Dado el vector T de tamaño n. Si el tamaño es para invertir los elementos de la
mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]

#include<stdio.h>
#include<conio.h>

/*PROBLEMA 13. Dado el vector T de tamaño n. Si el tamaño es para invertir los elementos de la mitad de los elementos
Ejemplo: v=[1][2][3][4][5][6] v(invertido)=[3][2][1][6][5][4]

*/

void llenar (int V [], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("Inserte posicion [%d]: ",i);
scanf("%d",&V[i]);
}
}

void mostrar (int V [], int d)


{
for (int i = 1 ; i <= d ; i++)
{
printf ("[%d]",V[i]);
}
}

void invierte (int V [], int d)


{
int aux1;
int fin1 = d / 2;
for (int i = 1 ; i <= (d / 2) / 2 ; i++)
{
aux1 = V [i];
V [i] = V [fin1];
V [fin1] = aux1;
fin1--;
}

fin1 = d;
for (int j = (d / 2) + 1 ; j <= (d / 2) + 1 ; j++)
{
aux1 = V [j];
V [j] = V [fin1];
V [fin1] = aux1;
fin1--;
}
}

int main ()
{
int V[20];
int d;
printf ("Inserte dimen. del vector: "); scanf("%d",&d);
llenar (V, d);
printf ("\nVECTOR ORIGINAL: \n");
mostrar (V, d);
printf ("\n\nVECTOR LUEGO DE LA INVERSION: \n");
invierte (V, d);
mostrar (V, d);
}

PROBLEMA 14. Dado un polinomio evaluarlo en el punto x (todo en un vector).

#include<iostream>
#include<time.h>
#include<stdlib.h>

using namespace std;

/*PROBLEMA 14. Dado un polinomio evaluarlo en el punto x (todo en un vector).

*/
int main(){
int matriz[100][100], columnas, filas,i,j,sumacolumnas[100],sumafilas[100],suma,suma1;
srand(time(NULL));

cout<<" Digite el numero de filas : ";


cin>>filas;

cout<<" Digite el numero de columnas : ";


cin>>columnas;
cout<<"\n\n";

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

matriz[i][j]=10+rand()%(100-10);
}
}

cout<<endl<<" MATRIZ : \n\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}

cout<<endl<<" MATRIZ FILA: \n\n"<<endl<<"\t";


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<"["<<matriz[i][j]<<"]"<<" ";
}
}

cout<<endl<<"\n\n MATRIZ COLUMNA: \n\n"<<endl;


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<"\t["<<matriz[i][j]<<"]"<<endl<<endl;
}
}

//suma de filas y columnas


for (i = 0; i < filas; i++) {
suma=0;
suma1=0;
for (j = 0; j < columnas; j++) {
suma=suma+matriz[i][j];
suma1=suma1+matriz[j][i];
sumacolumnas[i]=suma1;
}
sumafilas[i]=suma;
}

cout<<"\n\nLA SUMA DE FILAS : \n\n";


for (i = 0; i < filas; i++){
cout<<"["<<i+1<<"] : "<<sumafilas[i]<<endl;
}
cout<<"\n\nLA SUMA DE COLUMNAS : \n\n";
for (i = 0; i < columnas; i++){
cout<<"["<<i+1<<"] : "<<sumacolumnas[i]<<endl;
}

if(filas==columnas){
cout<<endl<<"DIAGONAL PRIMARIA\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(i==j){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}

cout<<endl<<"DIAGONAL SECUNDARIA\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(j+1==filas-i){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}

}
else{
cout<<endl<<"NO EXISTE DIAGONALES POR QUE LA MATRIZ NO ES CUADRADA : \n"<<endl;
}

return 0;
}
PROBLEMA 15. Generar la matriz:
[01][02][03][04]
[08][07][06][05]
[09][10][11][12]

#include<iostream>

using namespace std;

/*PROBLEMA 15. Generar la matriz:

[01][02][03][04]
[08][07][06][05]
[09][10][11][12]
.
*/
int main(){
int matriz[3][4],i,j,cont=1;

for (i = 0;i<3; i++) {


for (int j = 0; j <4; j++) {
matriz[i][j]=cont;
cont++;
}
}
cout<<" Imprimiendo Matriz \n\n";
for (int i = 0;i<3; i++) {

for (int j = 0;j <4; j++) {


if(matriz[i][j] <=9){
cout<<"0";
}
cout<<matriz[i][j]<<" ";
}
cout<<"\n";
}

return 0;
}

PROBLEMA 16. Generar la matriz:


[01][02][03][04]
[05][06][07][00]
[08][09][00][00]
[10][00][00][00]

#include<iostream>

using namespace std;

/*PROBLEMA 16. Generar la matriz:

[01][02][03][04]
[05][06][07][00]
[08][09][00][00]
[10][00][00][00]

.
*/
int main(){
int matriz[4][4],i,j,cont=1,cont2=4;

for (i = 0;i<4; i++) {


for (int j = 0; j <4; j++) {

if(j>=cont2){
matriz[i][j]=0;
}
else{
matriz[i][j]=cont;
cont++;
}

}
cont2--;
}
cout<<" Imprimiendo Matriz \n\n";
for (int i = 0;i<4; i++) {

for (int j = 0;j <4; j++) {

if(matriz[i][j] <=9){
cout<<"0";
}
cout<<matriz[i][j]<<" ";

}
cout<<"\n";
}

return 0;
}

PROBLEMA 17. Dadas dos matrices A y B intercambiar los mínimos de A con los máximos de B.

#include <iostream>

/*PROBLEMA 17. Dadas dos matrices A y B intercambiar los mínimos de A con los máximos de B.
*/

void llenar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
printf ("Inserte pos[%d][%d]: ",i,j);
scanf("%d",&M[i][j]);
}
}
}

void mostrar (int M[20][20], int f, int c)


{
for (int i = 1 ; i <= f ; i++)
{
printf("\n");
for (int j = 1 ; j <= c ; j++)
{
printf ("[%d]",M[i][j]);
}
}
}

int menor (int M[20][20], int f, int c)


{
int men = M [1] [1];
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
if (M [i] [j] < men)
men = M [i] [j];
}
}
return (men);
}

int maximo (int M[20][20], int f, int c)


{
int max = M [1] [1];
for (int i = 1 ; i <= f ; i++)
{
for (int j = 1 ; j <= c ; j++)
{
if (M [i] [j] > max)
max = M [i] [j];
}
}
return (max);
}

void intercambiar (int A[20][20], int fa, int ca, int B[20][20], int fb, int cb)
{
int min_a = menor (A, fa, ca);
int max_b = maximo (B, fb, cb);
//para cambiar los minimos de A con los maximos de B
for (int i = 1 ; i <= fa ; i++)
{
for (int j = 1 ; j <= ca ; j++)
{
if (A[i][j] == min_a)
A[i][j]=max_b;
}
}
//para intercambiar los maximos de con los minimos de A
for (int i = 1 ; i <= fb ; i++)
{
for (int j = 1 ; j <= cb ; j++)
{
if (B[i][j] == max_b)
B[i][j]=min_a;
}
}
}

int main ()
{

int A [20] [20];


int B [20] [20];
int fa, ca, fb, cb;
printf ("Insert filas de A: "); scanf("%d",&fa);
printf ("Insert columnas de A: "); scanf("%d",&ca);
printf ("Insert filas de B: "); scanf("%d",&fb);
printf ("Insert columnas de B: "); scanf("%d",&cb);

//lectura de matrices
printf ("\nINSERTANDO DATOS EN MATRIS A: \n");
llenar (A, fa, ca);
printf ("\nINSERTANDO DATOS EN MATRIS B: \n");
llenar (B, fb, cb);
printf ("\nMATRICES ORIGINALMENTE INSERTADAS: ");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);
printf ("\n");
//intercambiando elementos
intercambiar (A, fa, ca, B, fb, cb);
printf ("\nMATRICES DESPUES DEL INTERCAMBIO:");
mostrar (A, fa, ca);
printf ("\n");
mostrar (B, fb, cb);

PROBLEMA 18. Considere un arreglo para 10 elementos donde se guardará los nombres de
ciudades y otro arreglo para guardar las tarifas de transporte hacia dichas ciudades. Diseñe una
aplicación que permita realizar lo siguiente:
 Inicializar el arreglo de nombres con 10 nombres de ciudad.
 Generar tarifas aleatorias entre 15 y 51 guardándolas e el arreglo de tarifas.
 Dependiendo del monto de una persona disponga para viajar a alguna ciudad
mostrar las ciudades a las cuales podría viajar con dicho monto.
 Determina cuales la ciudad cuya tarifa es la más alta.

#include<iostream>
#include <string>
#include<time.h>
#include<stdlib.h>

using namespace std;

/*PROBLEMA 18. Considere un arreglo para 10 elementos donde se guardará los nombres de ciudades y otro arreglo
para guardar las tarifas de transporte hacia dichas ciudades. Diseñe una aplicación que permita realizar lo siguiente:

" Inicializar el arreglo de nombres con 10 nombres de ciudad.

" Generar tarifas aleatorias entre 15 y 51 guardándolas e el arreglo de tarifas.

" Dependiendo del monto de una persona disponga para viajar a alguna ciudad mostrar las
ciudades a las cuales podría viajar con dicho monto.

" Determina cuales la ciudad cuya tarifa es la más alta.

*/
int main(){

string Ciudades[10];
int Tarifas[10],Monto,TarifaAlta,num,i,j,pos;

string CiudadTarifaAlta;
srand(time(NULL));

Ciudades[0]="Pasco";
Ciudades[1]="Lima";
Ciudades[2]="Huanuco";
Ciudades[3]="Ayacucho";
Ciudades[4]="Cuzco";
Ciudades[5]="Puno";
Ciudades[6]="Ica";
Ciudades[7]="Huancavelica";
Ciudades[8]="Arequipa";
Ciudades[9]="Tumbes";

for(i=0;i<=9;i++){

num=15+rand()%(52-15);
Tarifas[i]=num;
}

for(i=0;i<=9;i++){
cout<<"TARIFA : ["<<Tarifas[i]<<"] ";
cout<<"CIUDAD : ["<< Ciudades[i]<<"] \n";

}
cout<<"\n\nIngrese Monto : ";
cin>>Monto;

cout<<"\nCiudades A Las Que Puede Viajar : \n"<<endl;

for(i=0;i<=9;i++){

if(Tarifas[i]<=Monto){

cout<<"["<<Ciudades[i] <<"] \n";


}
}

cout<<"\nCiudad Con Tarifa Mas Alta : ";

for(i=0;i<=9;i++){

if(TarifaAlta<Tarifas[i]){

TarifaAlta=Tarifas[i];

pos=i;
}
}

cout<<" ["<<Ciudades[pos]<<"] \n";

return 0;
}
PROBLEMA 19. Considere una matriz de n x m. Diseñe una aplicación que permita ingresar el
tamaño de la matriz y realice los siguientes procesos:

 Genere números aleatorios enteros de dos cifras y guárdelos en la matriz.


 Muestre el contenido de la matriz.
 Muestre la suma de cada fila.
 Muestre la suma de cada columna.
 Muestre solamente la diagonal principal si la matriz fuera cuadrada.
 Muestre solamente diagonal secundaria si la matriz fuera cuadrada.
 Ordene la matriz sólo por filas y muestre su contenido
 Ordene la matriz solo por columnas y muestre su contenido.
 Ordene la matriz completa y muestre su contenido.

#include<iostream>
#include<time.h>
#include<stdlib.h>

using namespace std;

/*PROBLEMA 19. Considere una matriz de n x m. Diseñe una aplicación que permita ingresar el tamaño de la matriz
y realice los siguientes procesos:

" Genere números aleatorios enteros de dos cifras y guárdelos en la matriz.


" Muestre el contenido de la matriz.
" Muestre la suma de cada fila.
" Muestre la suma de cada columna.
" Muestre solamente la diagonal principal si la matriz fuera cuadrada.
" Muestre solamente diagonal secundaria si la matriz fuera cuadrada.
" Ordene la matriz sólo por filas y muestre su contenido
" Ordene la matriz solo por columnas y muestre su contenido.
" Ordene la matriz completa y muestre su contenido.

*/
int main(){

int matriz[100][100], columnas, filas,i,j,sumacolumnas[100],sumafilas[100],suma,suma1;


srand(time(NULL));

cout<<" Digite el numero de filas : ";


cin>>filas;

cout<<" Digite el numero de columnas : ";


cin>>columnas;
cout<<"\n\n";

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

matriz[i][j]=10+rand()%(100-10);
}
}

cout<<endl<<" MATRIZ : \n\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}

cout<<endl<<" MATRIZ FILA: \n\n"<<endl<<"\t";


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<"["<<matriz[i][j]<<"]"<<" ";
}
}

cout<<endl<<"\n\n MATRIZ COLUMNA: \n\n"<<endl;


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){
cout<<"\t["<<matriz[i][j]<<"]"<<endl<<endl;
}
}

//suma de filas y columnas


for (i = 0; i < filas; i++) {
suma=0;
suma1=0;
for (j = 0; j < columnas; j++) {
suma=suma+matriz[i][j];
suma1=suma1+matriz[j][i];
sumacolumnas[i]=suma1;
}
sumafilas[i]=suma;
}

cout<<"\n\nLA SUMA DE FILAS : \n\n";


for (i = 0; i < filas; i++){
cout<<"["<<i+1<<"] : "<<sumafilas[i]<<endl;
}
cout<<"\n\nLA SUMA DE COLUMNAS : \n\n";
for (i = 0; i < columnas; i++){
cout<<"["<<i+1<<"] : "<<sumacolumnas[i]<<endl;
}

if(filas==columnas){

cout<<endl<<"DIAGONAL PRIMARIA\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(i==j){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}

cout<<endl<<"DIAGONAL SECUNDARIA\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
if(j+1==filas-i){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}
}
cout<<endl<<endl;
}

}
else{
cout<<endl<<"NO EXISTE DIAGONALES POR QUE LA MATRIZ NO ES CUADRADA : \n"<<endl;
}

return 0;
}

PROBLEMA 20. Realice un programa pida datos al usuario los datos de una matriz de 2x2 y muestra
su traspuesta (el resultado de intercambiar filas por columnas).

#include<iostream>

using namespace std;

/*PROBLEMA 20. Realice un programa pida datos al usuario los datos de una matriz de 2x2 y
muestra su traspuesta (el resultado de intercambiar filas por columnas).

*/

int main(){
int matriz[2][2], columnas, filas,i,j;

cout<<"MATRIZ TRANSPUESTA DE 2X2 ";


cout<<"\n\n";

for(i=0;i<2;i++){
for(j=0;j<2;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];
}
}
cout<<endl<<"\tMATRIZ\n\n"<<endl;
for(i=0;i<2;i++){
cout<<"\t";
for(j=0;j<2;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}

cout<<endl<<"\tMATRIZ TRANSPUESTA\n\n"<<endl;
for(i = 0;i < 2;i++){
cout<<"\t";
for(j = 0;j < 2;j++){
cout<<matriz[j][i]<<" ";;
}

cout<<endl<<endl;
}
return 0;
}

PROBLEMA 21. Un programa que pida al usuario los datos de una matriz de 6 x 6, y muestre su
determinante.

#include <iostream>
#include <cmath>

using namespace std;


/* PROBLEMA 21. Un programa que pida al usuario los datos de una matriz de 6 x 6, y muestre su determinante.
*/

void mostrar_matriz(int matriz[][6], int orden);


int determinante(int matriz[][6], int orden);
int cofactor(int matriz[][6], int orden, int fila, int columna);
int main()
{
int matriz[6][6],filas,columnas,i,j;
int orden;

orden=6;
filas=6;
columnas=6;

cout << "\nIngrese los elementos de la matriz:\n\n";


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

}
}

cout << "\nMostrando la matriz ingresada:\n";


mostrar_matriz(matriz, orden);

cout << "\nEl determinante es: " << determinante(matriz, orden) << endl;

return 0;
}

void mostrar_matriz(int matriz[][6], int orden){

cout<<endl<<"MATRIZ"<<endl;
for(int i=0;i<orden;i++){
cout<<"\t";
for(int j=0;j<orden;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}
}

int determinante(int matriz[][6], int orden)


{
int det = 0.0;

if (orden == 1) {
det = matriz[0][0];
} else {
for (int j = 0; j < orden; j++) {
det = det + matriz[0][j] * cofactor(matriz, orden, 0, j);
}
}

return det;
}

int cofactor(int matriz[][6], int orden, int fila, int columna)


{
int submatriz[6][6];
int n = orden - 1;

int x = 0;
int y = 0;
for (int i = 0; i < orden; i++) {
for (int j = 0; j < orden; j++) {
if (i != fila && j != columna) {
submatriz[x][y] = matriz[i][j];
y++;
if (y >= n) {
x++;
y = 0;
}
}
}
}

return pow(-1.0, fila + columna) * determinante(submatriz, n);


}

(PROBLEMA 22 Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz adjunta.

#include <iostream>
#include <cmath>

using namespace std;


/* PROBLEMA 22 Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y muestre su matriz
adjunta.
*/

void mostrar_matriz(int matriz[][3], int orden);


int determinante(int matriz[][3], int orden);
int cofactor(int matriz[][3], int orden, int fila, int columna);

int main()
{
int matriz[3][3],filas,columnas,i,j,matrizsig[3][3],cont=0;
int submatriz[3][3];
int orden;

orden=3;
filas=3;
columnas=3;

cout << "\nIngrese los elementos de la matriz:\n\n";


for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

}
}

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

if((cont+j)%2==0){
matrizsig[i][j]=1;
}
else{
matrizsig[i][j]=-1;
}

}
cont++;
}

cout << "\nMostrando la matriz ingresada:\n";


mostrar_matriz(matriz, orden);

cout << "\nMostrando la matriz de signos:\n";


mostrar_matriz(matrizsig, orden);

cout << "\nEl determinante es: " << determinante(matriz, orden) << endl;

return 0;
}

void mostrar_matriz(int matriz[][3], int orden){

cout<<endl<<"MATRIZ"<<endl;
for(int i=0;i<orden;i++){
cout<<"\t";
for(int j=0;j<orden;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}
}

int determinante(int matriz[][3], int orden)


{
int det = 0.0;

if (orden == 1) {
det = matriz[0][0];
} else {
for (int j = 0; j < orden; j++) {
det = det + matriz[0][j] * cofactor(matriz, orden, 0, j);
}
}

return det;
}

int cofactor(int matriz[][3], int orden, int fila, int columna)


{
int submatriz[3][3];
int n = orden - 1;

int x = 0;
int y = 0;
for (int i = 0; i < orden; i++) {
for (int j = 0; j < orden; j++) {
if (i != fila && j != columna) {
submatriz[x][y] = matriz[i][j];
y++;
if (y >= n) {
x++;
y = 0;
}
}
}
}

return pow(-1.0, fila + columna) * determinante(submatriz, n);


}

PROBLEMA 23. Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz inversa.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>

using namespace std;


/*PROBLEMA 23. Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y muestre su matriz
inversa.
*/

typedef struct{
double **datos;
int fil;
int col;
}Matrix;

Matrix inicializa(int filas, int cols) {


Matrix M;
M.fil = filas;
M.col = cols;
M.datos = new (double*[filas]);
for (int i = 0; i < filas; i++) {
M.datos[i] = new (double[cols]);
for (int j = 0; j < cols; j++) {
M.datos[i][j] = 0.0;
}
}
return M;
}

Matrix inicializaMatriz(int filas, int cols) {


Matrix M;
M.fil = filas;
M.col = cols;
M.datos = new (double*[filas]);
for (int i = 0; i < filas; i++) {
M.datos[i] = new (double[cols]);
for (int j = 0; j < cols; j++) {
cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";
cin>>M.datos[i][j];
}
}
return M;
}

Matrix identidad(int filas, int cols) {


Matrix M;
M.fil = filas;
M.col = cols;
M.datos = new (double*[filas]);
for (int i = 0; i < filas; i++) {
M.datos[i] = new (double[cols]);
for (int j = 0; j < cols; j++) {
M.datos[i][j] = 0.0;
}
M.datos[i][i] = 1.0;
}
return M;
}

void switchRows(Matrix M, int r1, int r2) {


float aux;
for (int i = 0; i < M.col; i++) {
aux = M.datos[r1][i];
M.datos[r1][i] = M.datos[r2][i];
M.datos[r2][i] = aux;
}
}
void multiplyRowConstant(Matrix M, int r, float c) {
for (int i = 0; i < M.col; i++) {
M.datos[r][i] *= c;
}
}

void addRows(Matrix M, int r1, int r2, float c) {


for (int i = 0; i < M.col; i++) {
M.datos[r1][i] += M.datos[r2][i] * c;
}
}

Matrix clone(Matrix M) {
Matrix N = inicializa(M.fil, M.col);
for (int i = 0; i < M.fil; i++) {
for (int j = 0; j < M.col; j++) {
N.datos[i][j] = M.datos[i][j];
}
}
return N;
}

Matrix gaussjordan(Matrix A) {
Matrix M = clone(A);
Matrix Inv = identidad(M.fil, M.col);
if (M.fil == M.col) {
for (int i = 0; i < M.fil; i++) {
if (M.datos[i][i] == 0) {
int r = 0;
while (r < M.col && (M.datos[i][r] == 0 || M.datos[r][i] == 0)) {
r++;
}
switchRows(M,i,r);
}
double c = 1.0 / M.datos[i][i];
multiplyRowConstant(M, i, c);
multiplyRowConstant(Inv, i, c);
for (int j = 0; j < M.fil; j++) {
if (i != j) {
c = -M.datos[j][i];
addRows(M, j, i, c);
addRows(Inv, j, i, c);
}
}
}
}else {
cout<<"Error La matriz no es cuadrada \n";
Inv.fil = -1;
Inv.col = -1;
free(Inv.datos);
}
return Inv;
}

void printMatrix(Matrix M) {
cout<<"\n\n";
for (int i = 0; i < M.fil; i++) {
for (int j = 0; j < M.col; j++) {
cout<<" "<<M.datos[i][j];
}
printf("\n");
}
}

Matrix producto(Matrix A, Matrix B) {


Matrix C = inicializa(A.fil,B.col);
if (A.col == B.fil) {
for (int i = 0; i < A.fil; i++) {
for (int j = 0; j < A.col; j++) {
for (int k = 0; k < B.col; k++) {
C.datos[i][k] += A.datos[i][j] * B.datos[j][k];
}
}
}
}
else {
printf("Error: Las Matrices no tienen la dimension requerida\n");
C.fil = -1;
C.col = -1;
free(C.datos);
}
return C;
}

int main() {

Matrix A = inicializaMatriz(3, 3);


Matrix Inv = gaussjordan(A);
printMatrix(A);
printf("\n");
printMatrix(Inv);
printf("\n");
Matrix C = producto(A, Inv);
printMatrix(C);

return 1;
}

PROBLEMA 24. Realice un programa que use una matriz de 3x4 para resolver un sistema de 3
ecuaciones con 3 incógnitas usando el método de Gauss
(hacer ceros por debajo de la diagonal principal para luego aplicar sustitución regresiva).

#include<iostream>

using namespace std;

/*PROBLEMA 24. Realice un programa que use una matriz de 3x4 para resolver un sistema de 3 ecuaciones
con 3 incógnitas usando el método de Gauss
*/

void datos(int *tam, float mat1[][102]);


void esc_data(int tam1, float mat2[][102]);
void solucion(int Dim, float Sist[][102]);

int main(void)
{
int i,tam;
float mat[101][102];
datos(&tam,mat);
printf("\n\n\nEcuacion: \n\n");
esc_data(tam,mat);
solucion(tam,mat);
printf("\n\n\nSolucion:\n");
for(i=1;i<=tam;i++)
printf("\n X%d=%f\n",i,mat[i][tam+1]);

scanf("");
return(0);
}

void datos(int *tam,float mat1[][102])


{
int j,k;
printf("\n\n SISTEMA DE ECUACIONES POR GAUS JORDAN");
printf("\n\n\n INCOGNITAS: ");
scanf("%d",&*tam);
printf("\n\n VARIABLES:");
printf("\n\n MATRIZ j:\n");
for(j=1;j<=*tam;j++)
for(k=1;k<=*tam;k++)
{
printf("\n VALORES MATRIZ(%d,%d):",j,k);
scanf("%f",&mat1[j][k]);
}
printf("\n\n\n RESULTADO:\n");
for(j=1;j<=*tam;j++){
printf("\n VECTOR(%d):",j);
scanf("%f",&mat1[j][*tam+1]);
}
}

void esc_data(int tamano, float mat2[][102])


{
int x,y;
for(x=1;x<=tamano;x++)
{
for(y=1;y<=(tamano+1);y++)
{
printf("%7.2f",mat2[x][y]);
if(y==tamano)
printf(" |");
}
printf("\n");
}
}

void solucion(int tam, float mat[][102])


{
int res,i,j,k,m;
float col_pivote,x;

for(i=1;i<=tam;i++)
{
res=0;m=i;
while(res==0)
{
if((mat[m][i]>0.0000001)||((mat[m][i]<-0.0000001)))
{
res=1;
}
else
m++;
}
col_pivote=mat[m][i];
for(j=1;j<=(tam+1);j++)
{
x=mat[m][j];
mat[m][j]=mat[i][j];
mat[i][j]=x/col_pivote;
}
for(k=i+1;k<=tam;k++)
{
x=mat[k][i];
for(j=i;j<=(tam+1);j++)
{
mat[k][j]=mat[k][j]-x*mat[i][j];
}
}
}

for(i=tam;i>=1;i--)
for(j=(i-1);j>=1;j--)
{
mat[j][tam+1]=mat[j][tam+1]-mat[j][i]*mat[i][tam+1];
mat[j][i]=0;
}
}
PROBLEMA 25. Programa que calcula la suma de los elementos de una matriz solo donde la
posición sea par, y me diga cuál de estos elementos es el mayor.

#include<iostream>

using namespace std;

/*PROBLEMA 25. Programa que calcula la suma de los elementos de una matriz solo donde la
posición sea par, y me diga cuál de estos elementos es el mayor.
*/
int main(){

int filas,columnas,matriz[100][100],i,j,suma=0,mayor=0;

cout<<" Digite el numero de filas : ";


cin>>filas;

cout<<" Digite el numero de columnas : ";


cin>>columnas;
cout<<"\n\n";

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

if((i+1)%2==0 && (j+1)%2==0){


suma=suma+matriz[i][j];
}
if(mayor<matriz[i][j]){

mayor=matriz[i][j];
}
}
}

cout<<endl<<"MATRIZ"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}

cout<<endl<<"SUMA Y MAYOR\n"<<endl;

cout<<"la suma de los pares es : "<<suma;


cout<<"\nel numero mayor es : "<<mayor;

return 0;
}

PROBLEMA 26. Programa que imprima si un número es par o impar de una matriz 3 * 3.

#include<iostream>

using namespace std;

/*PROBLEMA 26. Programa que imprima si un número es par o impar de una matriz 3 * 3.
*/
int main(){

int filas,columnas,matriz[3][3],i,j;

filas =3;
columnas=3;
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];
}
}

cout<<endl<<"MATRIZ"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}
cout<<endl<<"PARES"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){

if(matriz[i][j]%2==0){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}

}
cout<<endl<<endl;
}

cout<<endl<<"IMPARES"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){

if(matriz[i][j]%2!=0){
cout<<matriz[i][j]<<" ";
}
else{
cout<<"00 ";
}

}
cout<<endl<<endl;
}
return 0;
}
PROBLEMA 27. Programa que halle la cantidad de números menores que 1000 y mayores que
1000 en una matriz 5*4.

#include<iostream>

using namespace std;

/*PROBLEMA 27. Programa que halle la cantidad de números menores que 1000 y mayores que 1000 en una matriz
5*4.
*/
int main(){

int filas,columnas,matriz[5][4],i,j,mayor=0,menor=0;

filas =5;
columnas=4;

cout<<"\n\n";
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

if(matriz[i][j]>1000){
mayor++;
}
else{
menor++;
}
}
}

cout<<endl<<"MATRIZ"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}

cout<<endl<<"MAYOR Y MENOR\n"<<endl;

cout<<"los numeros mayores de 1000 es : "<<mayor;


cout<<"\nlos numeros menores de 1000 es : "<<menor;

return 0;
}

PROBLEMA 28. Desarrolle un programa que rellene una matriz 5 * 3. Luego, en otra matriz del
mismo tamaño, guarde los valores almacenados en la primera matriz elevando al cubo los
almacenados en columnas pares y elevando al cuadrado los almacenados en posiciones impares.

Nota: imprimir las dos matrices.

#include<iostream>
#include<math.h>

using namespace std;

/*PROBLEMA 28. Desarrolle un programa que rellene una matriz 5 * 3. Luego, en otra matriz del mismo tamaño,
guarde los valores almacenados en la primera matriz elevando al cubo los almacenados en columnas pares y
elevando al cuadrado los almacenados en posiciones impares.

Nota: imprimir las dos matrices.

*/
int main(){
int matriz[5][3], matriz1[5][3],i,j,filas,columnas;

filas =5;
columnas=3;

cout<<"\n\n";
for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

matriz1[i][j] = matriz[i][j];

}
}

cout<<endl<<"MATRIZ ORIGINAL\n\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";

}
cout<<endl<<endl;
}

cout<<endl<<"MATRIZ ELEVADA AL CUADRADO Y AL CUBO\n\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){

if((j+1)%2==0){
cout<<pow(matriz1[i][j],3)<<" ";
}
else{
cout<<pow(matriz1[i][j],2)<<" ";
}

}
cout<<endl<<endl;
}

return 0;
}
PROBLEMA 29. Escriba un programa donde se lea una matriz 2*2 e imprima los elementos
ubicados en la primera columna.

Nota: debe imprimir solo los elementos ubicados en la primera columna.

#include<iostream>

using namespace std;

/*PROBLEMA 29. Escriba un programa donde se lea una matriz 2*2 e imprima los elementos ubicados en la primera
columna.

Nota: debe imprimir solo los elementos ubicados en la primera columna.

*/
int main(){

int filas,columnas,matriz[2][2],i,j;

filas =2;
columnas = 2;

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];
}

cout<<"\n\n Imprimiendo Tabla \n\n";


for (int i = 0;i<filas; i++) {

for (int j = 0;j <columnas; j++) {

if(j==0){
cout<<matriz[i][j]<<" ";
}
}
cout<<"\n";
}

return 0;
}

PROBLEMA 30. Queremos almacenar en una matriz las notas de informática de los alumnos de
secundaria de una escuela. Suponiendo que hay 4 grados distintos, 15 alumnos por grado, se pide:

a. Ingresar las notas que ha sacado cada alumno de cada grado.


b. Imprimir cuál es la nota promedio de cada grado.
c. Imprimir la mayor nota en general.
d. Imprimir todas las notas.
e. Imprimir cuántos alumnos aprobaron y cuántos reprobaron de cada grado.

#include<iostream>

using namespace std;

/*PROBLEMA 30. Queremos almacenar en una matriz las notas de informática de los alumnos de secundaria de una
escuela.
Suponiendo que hay 4 grados distintos, 15 alumnos por grado, se pide:

a. Ingresar las notas que ha sacado cada alumno de cada grado.


b. Imprimir cuál es la nota promedio de cada grado.
c. Imprimir la mayor nota en general.
d. Imprimir todas las notas.
e. Imprimir cuántos alumnos aprobaron y cuántos reprobaron de cada grado.

*/
int main(){

int filas,columnas,matriz[4][15],i,j,mayor=0;
float suma=0,promedio[5];

filas =4;
columnas=15;

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite el alumno numero : ["<<i+1<<"]"<<" del grado : ["<<j+1<<"] : ";


cin>>matriz[i][j];
suma=suma+matriz[i][j];

if(mayor<matriz[i][j]){
mayor=matriz[i][j];
}
}
promedio[i]=suma/15;
suma=0;
cout<<"\n\n";
}
cout<<" Imprimiendo Tabla \n\n";

for ( i = 0;i<4; i++) {


for ( j = 0;j <15; j++) {

if(matriz[i][j]>10){

cout<<"alumno :"<<i+1<<" grado : "<<j+1<<" aprobado :"<<matriz[i]


[j]<<" "<<endl;
}
else{
cout<<"alumno :"<<i+1<<" grado : "<<j+1<<" reprobado :"<<matriz[i]
[j]<<" "<<endl;
}
}
cout<<"\n";
}
cout<<"\n\n";
for(i=0;i<4;i++){

cout<<"el promedio del grado "<<i+1<<" es :"<<promedio[i]<<endl;


}

cout<<"la nota mayor es : "<<mayor;


return 0;
}
PROBLEMA 31. Escriba un programa en lenguaje C que solicite al usuario ingresar 12 números los
cuales corresponden a una matriz de 4x3. Se pide calcular la suma de:

a. Diagonal principal. c. La primera y última fila.


b. Diagonal secundaria. d. La primera y última columna.

Nota: imprimir los 4 totales y la matriz digitada.

#include<iostream>

using namespace std;

/*PROBLEMA 31. Escriba un programa en lenguaje C que solicite al usuario ingresar 12 números los cuales
corresponden a una matriz de 4x3. Se pide calcular la suma de:

a. Diagonal principal. c. La primera y última fila.


b. Diagonal secundaria. d. La primera y última columna.

Nota: imprimir los 4 totales y la matriz digitada.

*/
int main(){

int matr[4][3],suma_dp=0,suma_ds=0,suma_pu_f=0,suma_pu_c=0;
for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
printf("Ingrese numero [%i][%i]: ",i,j);
scanf("%i",&matr[i][j]);
}
}
for(int l=0;l<4;l++)
{
suma_dp+=matr[l][l];
suma_ds+=matr[l][3-l];
suma_pu_c+=matr[l][0];
suma_pu_c+=matr[l][2];
}
for(int l=0;l<3;l++)
{
suma_pu_f+=matr[0][l];
suma_pu_f+=matr[3][l];

cout<<endl<<"\tMATRIZ\n\n"<<endl;
for(int i=0;i<4;i++){
cout<<"\t";
for(int j=0;j<3;j++){
cout<<matr[i][j]<<" ";

}
cout<<endl<<endl;
}

printf("\n\nLa suma de la diagonal principal: %i ",suma_dp);


printf("\nLa suma de la diagonal secundaria: %i ",suma_ds);
printf("\nLa suma de la primera y ultima fila: %i ",suma_pu_f);
printf("\nLa suma de la primera y ultima columna: %i ",suma_pu_c);

return 0;

}
PROBLEMA 32. Crea un programa para determinar si una matriz de tamaño 2x2 es mágica.

Nota: debe imprimir la matriz completa y si esta es mágica o no.

#include<iostream>

using namespace std;

/*PROBLEMA 32. Crea un programa para determinar si una matriz de tamaño 2x2 es mágica.
*/
int main(){

int matriz[2][2], sumafila=0,sumacolumna=0,cont=0,i,j,filas,columnas;

filas=2;
columnas=2;

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite un numero ["<<i+1<<"]"<<"["<<j+1<<"] : ";


cin>>matriz[i][j];

cout<<endl<<"MATRIZ \n\n"<<endl;

for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){
cout<<matriz[i][j]<<" ";
}
cout<<endl<<endl;
}
for(i=0;i<filas;i++){
cout<<"\t";
for(j=0;j<columnas;j++){

sumafila +=matriz[i][j];
sumacolumna +=matriz[j][i];

if(sumafila==sumacolumna){
cont++;

if(cont == 2){
cout<<"\n\nEs magico";
}
else{
sumafila=0;
sumacolumna=0;
}

}
else{
cout<<"\n\nno es magico";
}
}

return 0;
}

PROBLEMA 33. En tiendas FALABELLA desean crear un programa para conocer como han sido las
ventas de cada una de las últimas 4 semanas. Desarrolle un programa donde se ingresen en las
ventas de cada día en una matriz 4x7 y luego determine e imprima:

a) El total de ventas de cada semana.


b) El promedio de ventas de cada semana.
c) Cual semana fue la de mayor venta.

#include<iostream>

using namespace std;

/*PROBLEMA 33. En tiendas FALABELLA desean crear un programa para conocer como han sido
las ventas de cada una de las últimas 4 semanas. Desarrolle un programa donde se ingresen en las ventas
de cada día en una matriz 4x7 y luego determine e imprima:

a) El total de ventas de cada semana.


b) El promedio de ventas de cada semana.
c) Cual semana fue la de mayor venta.

*/
int main(){

int filas,columnas,matriz[4][7],i,j,mayor=0;
float suma=0,promedio[5],suma1[5];

filas =4;
columnas=7;

for(i=0;i<filas;i++){
for(j=0;j<columnas;j++){

cout<<"Digite el total de ventas del dia : ["<<j+1<<"] de la semana : ["<<i+1<<"]"<<" : ";


cin>>matriz[i][j];

suma=suma+matriz[i][j];

if(mayor<matriz[i][j]){
mayor=matriz[i][j];
}
}
promedio[i]=suma/4;
suma1[i]=suma;
suma=0;
cout<<"\n\n";
}
cout<<" Imprimiendo Tabla \n\n";

for ( i = 0;i<4; i++) {


for ( j = 0;j <7; j++) {

cout<<"el total de ventas del dia :"<<j+1<<" semana : "<<i+1<<" es :"<<matriz[i]


[j]<<endl;
}
cout<<"\n";
}
cout<<"\n\n";
for(i=0;i<4;i++){

cout<<"el promedio de las ventas de la semana "<<i+1<<" es :"<<promedio[i]<<endl;


cout<<"la suma de las ventas de la semana "<<i+1<<" es :"<<suma1[i]<<endl;
}
cout<<"la venta mayor es : "<<mayor;
return 0;
}

DIAGRAMAS DE FLUJO

PROBLEMA 2. Crear y cargar una tabla de tamaño 4x4 y decir si es simétrica o no, es decir si
se obtiene la misma tabla al cambiar las filas por columnas.
PROBLEMA 3. Crear y cargar dos matrices de tamaño 3x3, sumarlas y mostrar su suma.
PROBLEMA 4. Crear y cargar una tabla de tamaño 3x3, trasponerla y mostrarla.

PROBLEMA 21. Un programa que pida al usuario los datos de una matriz de 6 x 6, y muestre su
determinante.
PROBLEMA 23. Realice un programa que pida al usuario los datos de una matriz de 3x3, y calcule y
muestre su matriz inversa.
 EXPOSICIÓN DE TRABAJO.
El trabajo debe ser expuesto por cada alumno de acuerdo a sorteo de los problemas
propuestos.

Entregables:
- Laboratorio domiciliario No. 1 en digital (.docx).
- Realizar los algoritmos (diagrama de flujo) de los problemas 2,3,4,21 y 23.
- Los programas deben incluir un Archivo de los problemas con un Menú Principal con
menús correspondientes a los temas de procesos correspondientes.
- Subir en su portafolio de classroom.
- Fecha de entrega y exposición: 10/02/2021
Nota

 La fecha es improrrogable.

UNDAC enero. - 2021

El Docente.

También podría gustarte