0% encontró este documento útil (0 votos)
21 vistas9 páginas

Tarea Algoritmos y Estructura de Datos

Código

Cargado por

arandenirdgzromo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
21 vistas9 páginas

Tarea Algoritmos y Estructura de Datos

Código

Cargado por

arandenirdgzromo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 9

Becerril Santiago Gustavo Algoritmos y Estructuras de Datos

Grupo 5

Tarea 1

1. Hola Mundo

#include <stdio.h>
int main()
{
printf ("Hola mundo.\n");
return 0;
}

2. Grados Fahrenheit  Grados Celsius

#include<stdio.h>
main(void)
{int far;
float cel;
while(far<=100)
{ cel=(far-32)*5/9;
far=far+2;
printf(" %d Grados Fahrenheit es igual a %lf Grados Celsius \n",far,cel);
}
}

3. Programa que cuenta los caracteres, las palabras y líneas que se


encuentra en un archivo guardado en la unidad a

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

void main ()
{
char c;
int carc;
int lineas;
int palabras;
c='a';
carc=0;
lineas=0;
palabras=0;
FILE *archivo;
clrscr ();
/*main*/

archivo=fopen("a:\\prueba.txt","r");
do{
c=getc(archivo);
if(c!='\n')
{
carc++;
}
if(c=='\n')
{
lineas++;
}
if(c==' '||c=='\n')
{
palabras++;
}
}
while (c!=EOF);
printf ("numero de caracteres=%d",carc-1);
printf ("numero de lineas=%d",lineas);
printf ("numero de palabras=%d",palabras);
fclose (archivo);
getch ();
}

4. Números Pares

#include <stdio.h>
void main(void)
{
/*Declaramos una variable entera para el ciclo for que usaremos*/
int i;

/*Mostramos en pantalla el siguiente encabezado*/

printf("Listado de los numeros pares en el conjunto de numeros del 1


al 100.\n\n");
/*Buscamos los pares con ayuda del ciclo for*/
for ( i = 0 ; i <= 100 ; i += 2 )
{
/*Los mostramos en pantalla*/
printf("\t %d",i);
}

/*Solicitamos se presione una tecla para finalizar*/


printf("Presione una tecla para finalizar...");

getchar();

}
5. Números Impares

#include <stdio.h>

int main(void)
{
int numero;
printf("Escribe un número: ");
scanf("%d", &numero);
numero=numero%2; /*Hace la división entre 2 y lo que regresa es el
residuo.. si es 0 es que es par.. si no es impar*/
if(numero==0)
{ printf("Es un par!");}
else
{printf("Es impar!");}
return 0;

6. Programa que usa funciones

#include <stdio.h>

void una_funcion(int nombre_interno[]);

int main()
{
int indice;
int matriz[15];

for (indice = 0; indice < 15; indice++)


matriz[indice] = indice + 1;

for (indice = 0; indice < 5; indice++)


printf("Valor inicial asignado a matriz[%d] = %d\n",
indice, matriz[indice]);
printf("\n");

una_funcion(matriz); /*Llama a la función denominada una_funcion*/

for (indice = 0; indice < 5; indice++)


printf("Nuevo valor asignado a matriz[%d] = %d\n",
indice, matriz[indice]);

return 0;
}
void una_funcion(int nombre_interno[])
{
int i;

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


printf("Valor de matriz[%d] al iniciar la funcion= %d\n",
i, nombre_interno[i]);
printf("\n");

for (i = 0 ; i < 15 ; i++)


/*Se suma 10 al valor de la variable i de la matriz*/
nombre_interno[i] += 25;

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


printf("Valor de matriz[%d] al salir de la funcion= %d\n",
i, nombre_interno[i]);
printf("\n");
}

7. Suma de Matrices
8. Resta de Matrices
9. Multiplicación de Matrices
10. Transpuesta de una Matriz
11. Inversa y Determinante de una Matriz

#include <stdio.h> /*para printf y scanf*/


#include <conio.h> /*para gotoxy,textcolor y textbackground*/
#include <process.h>/*para exit y system*/
#include <math.h> /*para fabs*/
#include <dos.h> /*para sleep*/
#define N 20
#define M N

typedef float real;


typedef real MATRIZ[M][N];
typedef enum {BIEN,ERROR}boolean;
typedef enum {FALSE,TRUE}BANDERA;
enum{CUADRADA,SINGULAR};
enum{SUMA=1,RESTA,MULTIPLICA,INVERSA,TRASPUESTA,SALIR};

void _error(int i)
{
char *msg[]={
"MATRIZ NO ES CUADRADA",
"MATRIZ ES SINGULAR",
""
};
printf("\n %s ",msg[i]);
printf("\n");
getch();
}

real LeeValor(void)
{
real valor;
scanf("%f",&valor);
return valor;
}

void ImprimeMatriz(MATRIZ A,int ren,int col,BANDERA ban)


{
register int i,j;
int f,c;
if(!ban){
gotoxy(4,14);
printf("Matriz Tecleada:");
for(i=0;i<ren;i++){
f=(i+1)+15;
for(j=0;j<col;j++){
c=(j+1)*7;
gotoxy(c,f);
printf("%g",A[i][j]);
getch();
}
}
}
if(ban){
system("cls");
gotoxy(10,2);
textbackground(BLUE);
textcolor(WHITE|BLINK);
cprintf(" Resultado ");
textbackground(BLACK);
for(i=0;i<ren;i++){
f=(i+1)+6;
for(j=0;j<col;j++){
c=(j+5)*7;
gotoxy(c,f);
printf("%g",A[i][j]);
getch();

}
}
}
}

boolean LeeMatriz(int *ren,int *col,MATRIZ A)


{
register int i,j;
int f,c;
system("cls");
printf("\n Escriba los renglones de la matriz -> ");
scanf("%d",&(*ren));
printf(" Escriba las columnas de la matriz -> ");
scanf("%d",&(*col));
if(*col == *ren){
for(i=0;i< *ren;i++){
f=(i+1)+6;
for(j=0;j< *col;j++){
c=(j+1)*7;
gotoxy(2,5);
printf("Teclee los valores: ");
gotoxy(c,f);
A[i][j]=LeeValor();
}
}
}
else{
_error(CUADRADA);
exit(1);
return ERROR;
}
ImprimeMatriz(A,*ren,*col,FALSE);
return BIEN;
}

void Suma(MATRIZ A,MATRIZ B,MATRIZ C,int ren,int col)


{
register int i,j;
for(i=0;i<ren;++i)
for(j=0;j<col;++j)
C[i][j]=A[i][j]+B[i][j];
}

void Resta(MATRIZ A,MATRIZ B,MATRIZ C,int ren,int col)


{
register int i,j;
for(i=0;i<ren;++i)
for(j=0;j<col;++j)
C[i][j]=A[i][j]-B[i][j];
}

boolean Multiplica(MATRIZ A,MATRIZ B,MATRIZ C,int ra,int ca,int rb,int


cb)
{
register int i,j,k;

if(ca==rb){
for(i=0;i<ra;++i)
for(j=0;j<cb;++j){
C[i][j]=0;
for(k=0;k<ca;++k)
C[i][j]+=A[i][k]*B[k][j];
}
return BIEN;
}
return ERROR;
}
void Transpuesta(MATRIZ A,int ren,int col)
{
register int i,j;
MATRIZ B;
for(i=0;i<col;++i)
for(j=0;j<ren;++j)
B[i][j]=A[j][i];

for(i=0;i<col;++i)
for(j=0;j<ren;++j)
A[i][j]=B[i][j];
}

boolean Inversa(int n,MATRIZ A,MATRIZ B,real *Det)


{
real r;
int Pivote;
register int i,j,k;
*Det=1.0;
for(i=0;i<n;++i)
for(j=n;j<2*n;++j)
if(j==(i+n)) A[i][j]=1;
else A[i][j]=0;

for(i=0;i<n-1;i++){
Pivote=i;
for(j=i+1;j<n;j++)
if(fabs(A[Pivote][i]) < fabs(A[j][i]))
Pivote=j;

if(Pivote!=i){
for(j=0;j<2*n;j++)
Intercambiar(&A[i][j],&A[Pivote][j]);
*Det=-(*Det);
}

if(!A[i][i]){
_error(SINGULAR);
return ERROR;

};
for(j=i+1;j<n;j++)
if(A[j][i]){
r=A[j][i]/A[i][i];
for(k=i+1;k<2*n;k++)
A[j][k]-=r*A[i][k];
}
}

for(i=0;i<n;++i)
(*Det)*=A[i][i];

if(!A[n-1][n-1]){
_error(SINGULAR);
return ERROR;
};
for(i=n;i<n*2;i++){
A[n-1][i]/=A[n-1][n-1];
for(j=n-2;j>=0;j--){
r=A[j][i];
for(k=j+1;k<n;k++)
r-=A[j][k]*A[k][i];
A[j][i]=r/A[j][j];
}
}

for(i=0;i<n;++i)
for(j=0;j<n;++j)
B[i][j]=A[i][j+n];
return BIEN;
}

void Menu(void)
{
system("cls");
gotoxy(32,2);
printf(" M A T R I C E S");
printf("\n\n");
printf("1.- SUMA\n");
printf("2.- RESTA\n");
printf("3.- MULTIPLICA\n");
printf("4.- INVERSA Y DETERMINANTE\n");
printf("5.- TRASPUESTA.\n");
printf("10.- Exit\n");
printf("=> ");
}
void main(void)
{
MATRIZ A,B,C;
int ra,ca,rb,cb;
int ren,col;
int opcion;
real k,Tr,Det;
Menu();
scanf("%d",&opcion);
while(opcion!=SALIR){
switch(opcion){
case SUMA: LeeMatriz(&ra,&ca,A);
LeeMatriz(&rb,&cb,B);
Suma(A,B,C,ra,ca);
ImprimeMatriz(C,ra,ca,TRUE);
break;
case RESTA: LeeMatriz(&ra,&ca,A);
LeeMatriz(&rb,&cb,B);
Resta(A,B,C,ra,ca);
ImprimeMatriz(C,ra,ca,TRUE);
break;

case MULTIPLICA: LeeMatriz(&ra,&ca,A);


LeeMatriz(&rb,&cb,B);
Multiplica(A,B,C,ra,ca,rb,cb);
ImprimeMatriz(C,ra,cb,TRUE);
break;
case TRANSPUESTA: LeeMatriz(&ra,&ca,A);
Transpuesta(A,ra,ca);
ImprimeMatriz(A,ca,ra,TRUE);
break;

case INVERSA: LeeMatriz(&ren,&col,A);


Inversa(ren,A,B,&Det);
printf("\n\n DETERMINANTE(A) = %g",Det);
getch();
ImprimeMatriz(B,ren,col,TRUE);
break;
default: printf("\n\nOpcion incorrecta.\n\n");
system("PAUSE");
Menu();
break;
}
Menu();
scanf("%d",&opcion);
}
gotoxy(32,18);
printf(" Fin de %s",__FILE__);

También podría gustarte