UNIDAD 5
PROGRAMA
1
#include
<stdio.h>
#include <stdlib.h>
int main()
{
/*Declaración de
vectores, también son llamados arreglos unidimensionales*/
char nom[30];
int
vector1[8]; /*El
valor entre corchetes se refiere a la longitud*/
float
pos[5];
int
x[3];
x[0]=2; /*Puede
declararse uno a uno*/
x[1]=3;
x[2]=5;
double y[3]={2.33,4.58,6.47}; /*Cuando se declara un arreglo en una sola linea se
colocan los valores asignados entre llaves*/
/*Las tres variables llamadas mensaje hacen lo mismo*/
char
mensaje[]="Todo Bien";/**Opción 1*/
/*Cuando sea una cadena no
necesita especificarse el tamaño*/
char
mensaje2[5]={'H','o','l','a','\0'}; /**Opción 2*/
char
mensaje3[5]; /**Opción
3*/
mensaje3[0]='H';
mensaje3[1]='o';
mensaje3[2]='l';
mensaje3[3]='a';
mensaje3[4]='\0'; /*Carácter
nulo, es necesario colocarse, muestra que es el final de la cadena*/
return 0;
}
PROGRAMA 2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int
x[10]; /**Arreglo
entero unidimensional de 10 posiciones*/
int i;
for(i=0;i<10;i++)
{
/**printf("Valor de i es: %i\n",i); */
printf("Dame dato de posicion: %i\n",i);
scanf("%i",&x[i]); /**Pide un valor para
x en la posición actual de i*/
}
puts(""); /**Funciona como un salto de linea*/
for(i=0;i<10;i++)
{
printf("En posicion %i esta un
%i\n",i,x[i]);
}
return 0;
}
PROGRAMA 3 (1° proyecto)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num,i;
do{
puts("Dame el numero de datos");
scanf("%i",&num);
}
while(num<=0);
/*Filtro
para que solo se ingresen números mayores a cero*/
int
v1[num]; /*Declaración
de vector que tiene el tamaño ingresado por el usuario*/
int v2[num];
int v3[num];
for(i=0;i<num;i++)
{
Do
{
printf("Dame el valor del vector 1 en la posicion
%i\n",i);
scanf("%i",&v1[i]); /*Pide el valor para
la posición en la que se encuentre en ese momento el ciclo*/
}
while(v1[i]<=0);
}
puts("");
for(i=0;i<num;i++)
{
Do
{
printf("Dame el valor del vector 2 en la posicion
%i\n",i);
scanf("%i",&v2[i]);
}while(v2[i]<=0); /*Solo permite números mayores a cero*/
}
puts("");
for(i=0;i<num;i++)
{
v3[i]=v1[i]+v2[i]; /*Suma los vectores
uno y dos y asigna el resultado a un tercer vector*/
printf("%i + %i =
%i\n",v1[i],v2[i],v3[i]); /*Imprime la suma
y el resultado*/
}
return 0;
}
PROGRAMA 4
#include <stdio.h>
#include <stdlib.h>
int main()
{
int
x[]={2,3,4,5,6,7,8,9}; /**Declaración
de un vector con los valores entre las llaves*/
int
i,temp,n=8;
for(i=0;i<n/2;i++)
{ /*Ciclo que cambia los valores del vector*/
temp=x[i];
x[i]=x[n-i-1];
x[n-i-1]=temp;
}
for(i=0;i<n;i++){
printf("%i\t",x[i]); /*Imprime el vector al
revés*/
}
return 0;
}
PROGRAMA 5
#include <stdio.h>
#include <stdlib.h>
void intercambia(int *a, int *b)
{
int temp;
temp=*a; /*Se
le asigna a la variable temp el dato que tenga el apuntador*/
*a=*b;
*b=temp;
}
int main()
{
int
i,n;
puts("\tLa longitud debe ser par\n");
do
{
puts("Dame la longitud del vector");
scanf("%i",&n);
}
while(n%2!=0); /*Filtro que permite
ingresar únicamente números pares*/
int
x[n]; /*Declaración de
un vector que tiene un tamaño que el usuario ingresó previamente*/
for(i=0;i<n;i++)
{
printf("Elemento %i: ",i);
scanf("%i",&x[i]); /*Pide un valor al
usuario que se guarda en la posición en la que se encuentre el ciclo en ese
momento*/
}
for(i=0;i<n;i++)
{
printf("%i\t",x[i]); /*Imprime
el vector*/
}
for(i=0;i<n/2;i++)
{
intercambia(&x[i],&x[n-i-1]); /*Se llama a la función
intercambia*/
}
puts("");
for(i=0;i<n;i++)
{
printf("%i\t",x[i]);
}
return 0;
}
PROGRAMA
6 (2° proyecto)
/*Pedir logitud de
arreglos positiva y mavor que ceros
pedir datos de dos
arreglos que no ceros .ejemplo:
1
4 = 1
2
3 = 4
3
2 = 9
4
1 = 16*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int tam,i;
do
{
puts("Dame la longitud de los vectores");
scanf("%i",&tam);
}
while(tam%2!=0 || tam<=0);
int v1[tam];
int v2[tam];
int v3[tam];
for(i=0;i<tam;i++)
{
Do
{
printf("Dame el valor del vector uno en la posicion
%i: ",i);
scanf("%i",&v1[i]);
}
while(v1[i]<=0);
}
puts("");
for(i=0;i<tam;i++)
{
Do
{
printf("Valor de el vector dos en la posicion %i:
",i);
scanf("%i",&v2[i]);
}
while(v2[i]<=0); /*Filtro que solo
permite ingresar números mayores a cero*/
}
for(i=0;i<tam;i++)
{
v3[i]=v1[i]*v2[tam-i-1]; /*Multiplica el primero numero del
vector uno por el ultimo del segundo vector y asigna el valor al vector 3*/
printf("%i x %i =
%i\n",v1[i],v2[i],v3[i]);
}
return 0;
}
PROGRAMA 7
#include <stdio.h>
#include <stdlib.h>
int main()
{
/**Tipo de
identificador[Renglon][Columna]*/
int
n1[3][3]; /*Declaración
de una matriz de tres renglones por tres columnas*/
int
m1[3][5];
double m[][3]={1.1,1.2,1.3,1.4}; /*Declaración de una matriz de tres
columnas a la cual se le asignan valores, al no tener renglones, estos
datos se acomodan en la columnas y el resto se rellena con ceros*/
int
m3[2][3]; /*Declaración
de una matriz de 2x3 a la cual se le asignan sus valores en los siguientes
renglones*/
m3[0][0]=1;
m3[0][1]=2;
m3[0][2]=3;
m3[1][0]=1;
m3[1][1]=2;
m3[1][2]=3;
/**int
m4[][]={5,6,7,8,9,7}; error
int m5[][]={1,2,3,4}, error; */
return 0;
}
PROGRAMA 8
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m[3][3]={1,2,3,4,5,6,7,8,9};
int i,j;
/**Recorrido renglón y después columna*/
puts("Renglon, columna");
for(i=0;i<3;i++)
{ /*Mueve los renglones*/
for(j=0;j<3;j++)
{ /*Mueve las columnas*/
printf("%i",m[i][j]); /*Imprime el valor que
tenga la matriz en esa posición*/
}
puts("");
}
puts("");
/*Recorrido por
columnas*/
puts("Columna, renglon");
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
{
printf("%i",m[i][j]);
}
puts("");
}
return 0;
}
PROGRAMA 9
#include <stdio.h>
#include <stdlib.h>
int main()
{
int r,c,i,j;
do
{
puts("Dame los renglones: ");
scanf("%i",&r); /*Pide los renglones*/
}
while(r<=0); /*Filtro que solo
permite ingresar números mayores a cero*/
do
{
puts("Dame las columnas: ");
scanf("%i",&c); /*Pide las columnas*/
}
while(c<=0);
int
m[r][c]; /*Declaración
de una matriz de un tamaño que se ingresó anteriormente*/
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%renglon %i,
columna %i\n",i,j);
scanf("%i",&m[i][j]); /*Permite ingresar un
valor en la posición en la que se encuentre el ciclo*/
}
printf("\n");
}
puts("Matriz llena: "); /*Imprime la matriz completa*/
for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
{
printf("%i",m[i][j]);
}
printf("\n");
}
return 0;
}
PROGRAMA
10 (3° proyecto)
#include <stdio.h>
#include <stdlib.h>
int
num,a=0,e=0,i=0,o=0,u=0; /*Declaración
de variables globales de tipo entero*/
int main()
{
puts("\SOLO PUEDES INTRODUCIR PALABRAS EN MINUSCULAS\n");
do{
printf("Dame el numero de palabras que quieres: ");
scanf("%i",&num);
}
while(num<=0);
char pal[num][15]; /*Declara una matriz de 15 columnas y con
renglones ingresados por el usuario*/
for(int i=0;i<num;i++){
printf("Dame la palabra # %i:
",i+1);
scanf("%s",pal[i]);
}
for(int r=0;r<num;r++)
{ /*Mueve los renglones*/
for(int c=0;c<15;c++)
{ /*Mueve las columnas*/
if(pal[r][c]=='a') a++; /*SI la letra en la
cual se encuentra el ciclo en un a, aumenta en uno el valor de la variable
a*/
if(pal[r][c]=='e') e++; /*SI la letra en la
cual se encuentra el ciclo en un e, aumenta en uno el valor de la variable
e*/
if(pal[r][c]=='i') i++; /*SI la letra en la
cual se encuentra el ciclo en un i, aumenta en uno el valor de la variable i*/
if(pal[r][c]=='o') o++; /*SI la letra en la
cual se encuentra el ciclo en un o, aumenta en uno el valor de la variable o*/
if(pal[r][c]=='u') u++; /*SI la letra en la
cual se encuentra el ciclo en un u, aumenta en uno el valor de la variable u*/
}
}
puts("");
for(int a1=0;a1<a;a1++)
{
printf("a"); /*Imprime la letra a el numero de veces
que se contó en el ciclo anterior*/
}
puts("");
for(int e1=0;e1<e;e1++)
{
printf("e"); /*Imprime la letra e el numero de veces
que se contó en el ciclo anterior*/
}
puts("");
for(int i1=0;i1<i;i1++)
{
printf("i"); /*Imprime la letra i el numero de veces
que se contó en el ciclo anterior*/
}
puts("");
for(int o1=0;o1<o;o1++)
{
printf("o"); /*Imprime la letra o el numero de veces
que se contó en el ciclo anterior*/
}
puts("");
for(int u1=0;u1<u;u1++)
{
printf("u"); /*Imprime la letra u el numero de veces
que se contó en el ciclo anterior*/
}
return 0;
}
ENTREGABLES
ENTREGABLE
1
1.-Sean A, B y C
matices de 3x3 calcular:
a) -A-B+C
b) A+B-C
c) 3A + C/2
#include <stdio.h>
#include
<stdlib.h>
int
mat_A[3][3]; /*Declaración
de matrices globales de 3x3 de tipo entero*/
int mat_B[3][3];
int mat_C[3][3];
int mat_R[3][3];
void operaciones()
{
puts("-A-B+C = "); /*Primera operación*/
for(int r=0;r<3;r++)
{ /*Mueve los renglones*/
for(int c=0;c<3;c++)
{ /*Mueve las columnas*/
mat_R[r][c]=((-1*(mat_A[r][c]))-(mat_B[r][c])+(mat_C[r][c])); /*Asigna a la matriz R
el resultado de la operación resultante en esa posición */
printf("%i\t",mat_R[r][c]);
}
puts("");
}
res_cero();
puts("");
puts("A+B-C = "); /*Segunda operación*/
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
mat_R[r][c]=((mat_A[r][c])+(mat_B[r][c])-(mat_C[r][c]));/*Asigna a la matriz R
el resultado de la operación resultante en esa posición */
printf("%i\t",mat_R[r][c]);
}
puts("");
}
res_cero();
puts("");
puts("3A + C/2 = "); /*Tercera operación*/
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
mat_R[r][c]=
(3*(mat_A[r][c])+((mat_C[r][c])/2)); /*Asigna a la matriz R el resultado de la
operación resultante en esa posición */
printf("%i\t",mat_R[r][c]);
}
puts("");
}
}
void res_cero()
{
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
mat_R[r][c]=0; /*Le asigna a la
matriz resultado el valor de cero en todas sus posiciones*/
}
}
}
int main()
{
int tam_mat;
puts("CALCULADORA DE MATRIZ 3x3\n");
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
printf("Dame el valor de la matriz A en
el renglon %i y la columna %i: ",r+1,c+1);
scanf("%i",&mat_A[r][c]); /*Pide el valor de la
matriz A en cada una de sus posiciones*/
}
}
puts("");
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
printf("Dame el valor de la matriz B en el
renglon %i y la columna %i: ",r+1,c+1);
scanf("%i",&mat_B[r][c]); /*Pide el valor de la
matriz B en cada una de sus posiciones*/
}
}
puts("");
for(int r=0;r<3;r++)
{
for(int c=0;c<3;c++)
{
printf("Dame el valor de la matriz C en
el renglon %i y la columna %i: ",r+1,c+1);
scanf("%i",&mat_C[r][c]); /*Pide el valor de la
matriz C en cada una de sus posiciones*/
}
}
operaciones();
return 0;
}
ENTREGABLE
2
2.- Sean A, B y C
matrices de 3x3, calcular el determinante de cada una de ellas.
#include <stdio.h>
#include <stdlib.h>
int
mat_A[3][3]; /*Declaración
de matrices globales de 3x3 de tipo entero*/
int mat_B[3][3];
int mat_C[3][3];
void determinante()
{ /*Función sin tipo que
resuelve los determinantes*/
int det;
int det1,det2,det3,det4,det5,det6;
det1=(mat_A[0][0])*(mat_A[1][1])*(mat_A[2][2]);
det2=(mat_A[1][0])*(mat_A[2][1])*(mat_A[0][2]);
det3=(mat_A[2][0])*(mat_A[0][1])*(mat_A[1][2]);
det4=(mat_A[0][0])*(mat_A[2][1])*(mat_A[1][2]);
det5=(mat_A[1][0])*(mat_A[2][2])*(mat_A[0][1]);
det6=(mat_A[2][0])*(mat_A[1][1])*(mat_A[0][2]);
det=det1+det2+det3-det4-det5-det6;
printf("Determinante de la matriz A es: %i",det);
puts("");
det=0;
det1=(mat_B[0][0])*(mat_B[1][1])*(mat_B[2][2]);
det2=(mat_B[1][0])*(mat_B[2][1])*(mat_B[0][2]);
det3=(mat_B[2][0])*(mat_B[0][1])*(mat_B[1][2]);
det4=(mat_B[0][0])*(mat_B[2][1])*(mat_B[1][2]);
det5=(mat_B[1][0])*(mat_B[2][2])*(mat_B[0][1]);
det6=(mat_B[2][0])*(mat_B[1][1])*(mat_B[0][2]);
det=det1+det2+det3-det4-det5-det6;
printf("Determinante de la matriz B es: %i",det);
puts("");
det=0;
det1=(mat_C[0][0])*(mat_C[1][1])*(mat_C[2][2]);
det2=(mat_C[1][0])*(mat_C[2][1])*(mat_C[0][2]);
det3=(mat_C[2][0])*(mat_C[0][1])*(mat_C[1][2]);
det4=(mat_C[0][0])*(mat_C[2][1])*(mat_C[1][2]);
det5=(mat_C[1][0])*(mat_C[2][2])*(mat_C[0][1]);
det6=(mat_C[2][0])*(mat_C[1][1])*(mat_C[0][2]);
det=det1+det2+det3-det4-det5-det6;
printf("Determinante de la matriz C es: %i",det);
}
int main()
{
int tam_mat;
puts("CALCULADORA DE MATRIZ 3x3\n");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("Dame
el valor de la matriz A en el renglon %i y la columna %i:
",r+1,c+1);
scanf("%i",&mat_A[r][c]); /*Pide el valor de la
matriz A en cada una de sus posiciones*/
}
}
puts("");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("Dame el valor de la matriz B en el
renglon %i y la columna %i: ",r+1,c+1);
scanf("%i",&mat_B[r][c]); /*Pide el valor de la
matriz B en cada una de sus posiciones*/
}
}
puts("");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("Dame el valor de la matriz C en
el renglon %i y la columna %i: ",r+1,c+1);
scanf("%i",&mat_C[r][c]); /*Pide el valor de la
matriz C en cada una de sus posiciones*/
}
}
determinante();
return 0;
}
ENTREGABLE
3
No hay comentarios:
Publicar un comentario