Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programa ADSI
Matriz y vectores
Santander de Quilichao
23-3-2020
SENA 1
Matriz y vectores
ledibiapechene5@gmail.com
SENA 2
EJERCICIO: 1.1
#include<conio.h>
#include<stdio.h>
#include<string.h>
main()
{
int n[4];
float sum=0;
for (int i=0; i<=3; i++)
{
printf("ingrese un numero\n");
scanf("%d",&n[i]);
sum=sum+n[i];
}
printf("\nla media es:\t%0.1f",sum/4);
printf("\nlos numeros ingresados son:\t%d %d %d %d",n[0],n[1],n[2],n[3]);
getch();
}
SENA 3
EJERCICIO: 1.2
#include<conio.h>
#include<stdio.h>
#include<string.h>
main()
{
float n[5];
for (int i=0; i<=4; i++)
{
printf("ingrese un nuemro\n");
scanf("%f",&n[i]);
}
printf("\n");
for (int i=4;i>=0;i--)
{
printf("%0.0f\t",n[i]);
}
getch();
}
SENA 4
EJERCICIO: 2.1
#include<stdio.h>
#include<conio.h>
main()
{
int nm,mes[12];
for (int i=0; i<=11; i++)
{
printf("ingrese el total de dias del mes %d ",i+1);
scanf("%d",&mes[i]);
}
printf("\ningeres el mes que desea saber cuántos días tiene\t");
scanf("%d",&nm);
printf("\nel mes tiene: %d dias",mes[nm]);
getch();
}
SENA 5
EJERCICIO: 2.2
#include <iostream>
#include <stdio.h>
//Funciones
void pide_diaymes(); // Funcion para pedir lo datos en cada iteración del bucle
int calcula_DiaJuliano(int dia, int mes); // Calcula el día juliano y lo devuelve.
// Variables globales
int mes;
int dia;
// Cantidad de días por mes
int numDiasMeses[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
// Nombre de los meses.
char *nombreMeses[12] =
{ "Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","N
oviembre","Diciembre"};
int main()
{
do {
// Pedimos el día y mes al usuario.
pide_diaymes();
// Control de errores.
if (dia < 0)
{
printf("\nEl numero de dia no es correcto.");
continue;
}
else if (mes > 12 || mes < 0)
{
printf("\nEl numero de mes no es correcto.");
continue;
}
else if (dia > numDiasMeses[mes-1])
{
printf("\n%s solo tiene %d dias.",nombreMeses[mes-1],numDiasMeses[mes-1]);
continue;
}
void pide_diaymes()
{
SENA 7
EJERCICIO: 3.1
#include <stdio.h>
main()
{
int i=0, d=0, m=0,suma=0;
int mes[12]={31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d", &m);
getchar(); }
SENA 9
EJERCICIO: 3.2
#include <stdio.h>
main()
{
int i; float numeros[10];
getchar();
getchar();
}
SENA 10
EJERCICIO: 3.3
#include <stdio.h>
#include <stdlib.h>
int main(){
int i;
int num;
int n;
int suma = 0;
double media = 0.0;
EJERCICIO: 3.4
#include <stdio.h>
main()
{
int i, enteros[10], menor=0, mayor=0; /* Podría declarar mayor = -1000000
o el menor número que acepte la máquina, pero no me pareció muy técnico.*/
}
SENA 12
EJERCICIO: 3.5
6#include<stdio.h>
#include<conio.h>
int main ()
{
int a[40], lim, i, d, posma=0, posme=0, ma, me;
for (i=0;i<lim;i++)
{
printf ("\n Digite el dato en la posicion (%d) del vector: ",i);
scanf ("%d", &d);
a[i]=d;
}
ma=a[0];
posma=0;
for (i=0;i<lim;i++)
{
if (a[i]>ma)
{
ma=a[i];
posma=i;
}
SENA 13
me=ma;
posme=0;
for (i=0;i<lim;i++)
{
if (a[i]<=me)
{
me=a[i];
posme=i;
}
}
getch();
}
2
SENA 14
EJERCICIO: 3.6
#include <iostream>
#include"conio.h"
#include"stdlib.h"
#include"time.h"
int main(){
srand(time(NULL));
int productoEscalar 0, n;
int v[n],w[n];
for(int i=0;i<n;i++){
v[i]=(int) (rand() / 3276.7)*101);
w[i]=(int) ((rand() / 3276.7)*101);
}
for(int i=0;i<n;i++)
cout << v[i] <<"\t";
for(int i=0;i<n;i++)
cout<<w[i]<<"\t";
SENA 15
for(int i=0;i<n;i++)
productoEscalar=productoEscalar+ v[i}*w[i];
cout<<"\nel prodcto escalar entre los dos vctores es de:" <<productoEscalar;
getch();
}
SENA 16
EJERCICIO: 3.7
// Este programa calcula el producto vectorial de dos vectores mediante una función.
// Paso de argumentos por valor y por referencia.
#include <stdio.h>
#include <stdlib.h>
void prod_vec (float, float, float, float, float, float, float *, float *, float *);
int main ()
{
float x1, y1, z1, x2, y2, z2;
float x3, y3, z3;
prod_vec (x1, y1, z1, x2, y2, z2, &x3, &y3, &z3);
printf ("El producto vectorial vale: (%f,%f,%f) n", x3, y3, z3);
system ("pause");
return 0;
}
void prod_vec (float x1, float y1, float z1, float x2, float y2, float z2, float *x3, float *y3, float
*z3)
{
*x3 = y1*z2-z1*y2;
*y3 = x1*z2-z1*x2;
SENA 17
*z3 = x1*y2-y1*x2;
}
SENA 18
EJERCICIO: 3.8
/*5. Realice un programa que lea una matriz de 2x2 y cree su matriz traspuesta.
La matriz traspuesta es aquella en la que la columna i era la fila i de la matriz
original.
|1 2 3| |1 4 7|
|4 5 6| --> |2 5 8|
*/
#include<iostream>
#include<conio.h>
int main(){
int numeros[2][2];
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
cout<<"Digite un numero ["<<i<<"]["<<j<<"]: ";
cin>>numeros[i][j];
}
}
cout<<"\nMatriz Normal\n";
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
SENA 19
cout<<numeros[i][j]<<" ";
}
cout<<"\n";
}
cout<<"\nMatriz Transpuesta\n";
for(int i=0;i<2;i++){
for(int j=0;j<2;j++){
cout<<numeros[j][i]<<" ";
}
cout<<"\n";
}
getch();
return 0;
}
SENA 20
EJERCICIO 4.1
#include <stdio.h>
#include <stdlib.h>
for (x=0;x<2;x++)
{
for (y=0;y<2;y++)
{
numeros[x][y]=num;
num++;
}
}
system("PAUSE");
return 0;
}
SENA 22
Ejercicio 4.2
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
//inicializa el randon
{
srand(time(NULL))
{
cout << "generando una matriz de 3*3" << endl;
{
for(1=0;1<3;1++)
}
for (j=0; j<3; j++);
{
//cout<< "capture el elemento[" << 1 << "][" <<] <<"][" << endt;
SENA 23
cin.ignore return 0;
//calculando el determinante
int determinante=0;
cin.ignore return 0;
}
}
SENA 25
EJERCICIO 4.3
/* Determinante, Adjunta, Inversa de una matriz de 3x3 con valores "enteros" */
/* El ingreso de los valores de la matriz es de la siguiente forma */
/*
1 a-b-c->
2 d-e-f-> o {a,b,c,d,e,f,g,h,i}
3 g-h-i->
*/
#include <stdio.h>
#include <stdlib.h>
main() {
system("cls");
int i,j,k;
int detm;
int a,s,d;
int **matri;
float **matre;
for(i=0;i<3;i++) {
matri[i] = (int *)malloc(3 * sizeof(int));
}
SENA 26
for(a=0;a<3;a++) {
matre[a] = (float *)malloc(3 * sizeof(float));
}
matri[i][j]= k;
}
}
/* Imprime la matriz */
printf("Su matriz es :\n\n");
for(i=0;i<3;i++){
for(j=0;j<3;j++) {
if(j == 2) {
SENA 27
printf("%d \n",matri[i][j]);
}
else
{
printf(" %d\t",matri[i][j]);
}
}
}
if (detm == 0) {
printf("No existe matriz inversa T_T.\n");
return -1;
}
matre[0][0] = matri[1][1]*matri[2][2]-matri[2][1]*matri[1][2];
matre[0][1] = -(matri[1][0]*matri[2][2]-matri[2][0]*matri[1][2]);
matre[0][2] = matri[1][0]*matri[2][1]-matri[2][0]*matri[1][1];
matre[1][0] = -(matri[0][1]*matri[2][2]-matri[2][1]*matri[0][2]);
matre[1][1] = matri[0][0]*matri[2][2]-matri[2][0]*matri[0][2];
matre[1][2] = -(matri[0][0]*matri[2][1]-matri[2][0]*matri[0][1]);
matre[2][0] = matri[0][1]*matri[1][2]-matri[1][1]*matri[0][2];
matre[2][1] = -(matri[0][0]*matri[1][2]-matri[1][0]*matri[0][2]);
matre[2][2] = matri[0][0]*matri[1][1]-matri[1][0]*matri[0][1];
for(a=0;a<3;a++){
for(s=0;s<3;s++) {
if(s == 2) {
printf("%.0f\n",matre[a][s]);
}
else
{
printf("%.0f\t",matre[a][s]);
}
}
SENA 29
for(a=0;a<3;a++){
for(s=0;s<3;s++) {
matre[a][s]= (matre[a][s]/detm);
}
}
for(a=0;a<3;a++){
for(s=0;s<3;s++) {
if(s == 2) {
printf("%.3f\n",matre[a][s]);
}
else
{
printf("%.3f\t",matre[a][s]);
SENA 30
}
}
}
for(i=0;i<3;i++) {
free(matre[a]);
}
free(matri);
free(matre);
}
SENA 31
EJERCICIO 4.3
#include<iostream>
using namespace std;
int main(){
int n=0,m=0;
cout<<"ingrese el tamanio de la matriz "<<endl;
cin >>n>> m;
int mat[n][m],cof[n][m],adj[n][m],cofaux[n][m],inv[n][m],aux_inv[n][m];
if(n==m && n>0 && m>0){
cout<<"es una matriz cuadrada "<<endl;
}
else{
cout<<"no se puede calcular la matriz. tiene que ser cuadrada "<<endl;
}
int i=0,j=0,det=0,det2=0,det3=0,det4=0,aux_cof=1,d=0,k=0,e=0;
float det5;
cout<<"ingrese valores de la matriz "<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin >> mat[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
aux_inv[i][j]= (1/det5)*adj[i][j];
inv[i][j] = aux_inv[i][j];
}
}
}
cout<<"elementos de la matriz inversa "<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cout<< inv[i][j]<<" ";
}
cout << endl;
}
return 0;
}
SENA 33
EJERCICIO 4.4
#include<iostream>
using namespace std;
int main(){
int n=0,m=0;
cout<<"ingrese el tamanio de la matriz "<<endl;
cin >>n>> m;
int mat[n][m],cof[n][m],adj[n][m],cofaux[n][m],inv[n][m],aux_inv[n][m];
if(n==m && n>0 && m>0){
cout<<"es una matriz cuadrada "<<endl;
}
else{
cout<<"no se puede calcular la matriz. tiene que ser cuadrada "<<endl;
}
int i=0,j=0,det=0,det2=0,det3=0,det4=0,aux_cof=1,d=0,k=0,e=0;
float det5;
cout<<"ingrese valores de la matriz "<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin >> mat[i][j];
}
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
aux_inv[i][j]= (1/det5)*adj[i][j];
inv[i][j] = aux_inv[i][j];
}
}
}
cout<<"elementos de la matriz inversa "<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cout<< inv[i][j]<<" ";
}
cout << endl;
}
return 0;
}
SENA 35
Ejercicio 4.5
#include <iostream>
#define d 3
using std::cout;
using std::cin;
using std::endl;
int main(){
int i, j, k, a[d][d], b[d][d], c[d][d];
cout << "MATRIZ A." << endl; // Introduce los elementos de la matriz A
for(i = 0 ; i < d ; i++){
for(j = 0 ; j < d ; j++){
cout << "Introduzca el valor del elemento [" << i << "]["
<< j << "]: ";
cin >> a[i][j];
}
}
cout << endl;
for(i = 0 ; i < d ; i++){ // Imprime los elementos de la matriz A
for(j = 0 ; j < d ; j++){
cout << a[i][j] << " ";
if(j == 2)
cout << endl;
}
}
cout << endl;
cout << "MATRIZ B." << endl; // Introduce los elementos de la matriz B
for(i = 0 ; i < d ; i++){
SENA 36
if(j==2)
cout << endl;
}
}
system("PAUSE");
return
SENA 38
ejercicio 4.6
#include <stdio.h>
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);
}
}
printf("\n");
}
}
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;
SENA 41
}
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;
}
}
SENA 42
Ejercicio 5.2
#include<stdio.h>
#include<conio.h>
main()
{
int dia,c,mes[12];
int m,r=0;
for (c=0;c<=11;c++)
{
printf("ingrese la cantidad de dias del mes: %d ",c+1);
scanf("%d",&mes[c]);
}
printf("\ncant. de dias del mes diciembre %d",mes[11]);
while (r==0)
{
printf("\nindique un mes\t");
scanf("%d",&m);
printf("\nindique el dia\t");
scanf("%d",&dia);
r=1;
}
printf("el numero de dia dentro del año es: %d ",mes[m]+dia);
getch();
}