ejercicios en lenguaje c

Page 1

UNIVERSIDAD TECNICA DE AMBATO

FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA PROGRAMACIÓN II

Aracelly Silva Tercer Semestre Ing. Wilma Gavilanez


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita ingresar un vector de n elementos , encontrar las posiciones pares e impares. Análisis Ingresamos el vector Dentro de un for if(i%2==0) entonces asignamos al Nuevo vector else asignamos al vector con otro contador Imprimir. Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int vector[10],vector1[10],par[10],impar[10],op,limite,i,factor,fila,a,b; void ingreso(int lim,int fact) { fila=10; for(i=1;i<=lim;i++) { vector[i]=fact*i;

Función de ingreso

gotoxy(5,9);printf("Vector"); gotoxy(10,fila);printf("%d",vector[i]); fila=fila+1; } }

1


PROGRAMACIĂ“N II

void parimpar(int lim) { a=1; b=1; for(i=1;i<=lim;i++) { if(i%2==0) { par[a]=vector[i]; a++

funcion pares

} else { impar[b]=vector[i]; b++; }

} }

void impvector(int x,int vector1[20]) {

for(i=1;i<x;i++) { gotoxy(20,fila);printf("%d",vector1[i]);

2


PROGRAMACIĂ“N II

fila++; } } void main() { Do { clrscr(); gotoxy(15,2);printf("Ordenar un vector con posiciones pares e impares"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); gotoxy(10,6);printf("Ingrese el factor: ");scanf("%d",&factor); ingreso(limite,factor); programa

parimpar(limite);

principal

gotoxy(15,9);printf("posiciones pares"); fila=10; impvector(a,par); gotoxy(15,fila++);printf("posiciones impares"); impvector(b,impar); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op);

}while(op==1); getch(); }

3


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita ingresar un vector con un límite ingresado desde teclado,recorrer el vector y encontrar las posiciones pares. Análisis Ingresar el vector dentro de un for datos=vector[i]%2; if(datos==0) vector1[a]=vector[i]; a++; imprimir el vector resultante. Codificación #include<stdio.h>

librerías principales

#include<conio.h> int vector[10],vector1[10],op,limite,i,fila,a,datos; void ingreso(int lim) {

4


PROGRAMACIÓN II

fila=10; for(i=1;i<=lim;i++) { gotoxy(5,9);printf("Vector");

función de ingreso

gotoxy(10,fila);scanf("%d",&vector[i]); fila=fila+1; } } void par(int lim) { a=1; for(i=1;i<=lim;i++) { datos=vector[i]%2; if(datos==0)

Funcion para encontrar pares

{ vector1[a]=vector[i]; a++; } } } void impvector() { fila=10; for(i=1;i<a;i++) {

5


PROGRAMACIĂ“N II

gotoxy(20,fila);printf("%d",vector1[i]); fila++; } } void main() { do { clrscr(); gotoxy(15,2);printf("Ordenar un vector con posiciones pares e impares"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite); par(limite);

Programa principal

gotoxy(15,9);printf("datos pares"); fila=10; impvector(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

6


PROGRAMACIÓN II

Diseñe un programa utiliando funciones que me permita ingresar n elementos entre 3 y 23, recorrer el vector y ordenarlo por el método burbuja. Análisis Ingresar el vector dentro de un for con un do-while para condicionar el ingreso Dentro de dos condiciones for if(vector[i]<vector[j]) aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; Imprimir el vector resultante Codificación #include<stdio.h>

Librerias principales

#include<conio.h> int vector[10],i,j,fila,op,limite,aux; void borde() {

7


PROGRAMACIÓN II

for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); } for(i=1;i<=80;i++)

Función borde

{ gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void ingreso(int lim) { fila=10; for(i=1;i<=lim;i++) { do {

Función de ingreso gotoxy(10,fila);printf(" "); gotoxy(10,fila);scanf("%d",&vector[i]);

}while(vector[i]<3 || vector[i]>20); fila++; } } void proceso(int lim) {

8


PROGRAMACIÓN II

fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(vector[i]<vector[j]) {

funcion método burbuja aux=vector[i]; vector[i]=vector[j]; vector[j]=aux;

} } } } void imp(int lim) { fila=10; for(i=1;i<=lim;i++) {

Función impresion gotoxy(30,fila);printf("%d",vector[i]); fila++;

} } void main() { do

9


PROGRAMACIĂ“N II

{ clrscr(); borde(); gotoxy(20,2);printf("ordenar un vector por metodo burbuja"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite);

Programa principal

proceso(limite); imp(limite); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

DiseĂąe un programa utilizando funciones que me permita ingresar n elementos entre 7 y 33, recorrer el vector y encontrar los nĂşmeros pares e impares para luego ordenarlos en forma ascendente.

10


PROGRAMACIÓN II

Análisis Ingresar el vector dentro de un do-while que me permita condicionar el ingreso Encontrar las posiciones pares e impares if(vector[i]%2==1) { vector1[a]=vector[i]; a++;

Oredenarlos mediante el método burbuja if(vector1[i]<vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; vector1[j]=aux; } Imprimir los dos vectores resultantes Codificación #include<stdio.h>

Librerias principales

#include<conio.h> int vector[10],vector1[10],col,vector2[10],i,j,fila,op,limite,aux=1,datos,a,b; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/");

11


PROGRAMACIÓN II

} for(i=1;i<=80;i++) { gotoxy(i,1);printf("/");

Función borde

gotoxy(i,24);printf("/"); } } void ingreso(int lim) { fila=10; for(i=1;i<=lim;i++) { do {

funsión de ingreso gotoxy(10,fila);printf(" "); gotoxy(10,fila);scanf("%d",&vector[i]);

}while(vector[i]<7 || vector[i]>33); fila++; } } void pares(int lim) { fila=10; a=1; for(i=1;i<=lim;i++) {

12


PROGRAMACIÓN II

if(vector[i]%2==1) { vector1[a]=vector[i]; a++; } } a=a-1; aux=0; for(i=1;i<=a;i++) { for(j=1;j<=a;j++)

función para ordenar pares

{ if(vector1[i]<vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; vector1[j]=aux; } } } } void impares(int lim) { fila=10; b=1; for(i=1;i<=lim;i++)

13


PROGRAMACIÓN II

{ datos=vector[i]%2; if(datos==0) { vector2[b]=vector[i]; b++; } } for(i=1;i<=b;i++) { for(j=1;j<=b;j++) {

función para ordenar impares if(vector2[i]>vector2[j]) { aux=vector2[i]; vector2[i]=vector2[j]; vector2[j]=aux; }

} }

} void imp(int x,int vector3[20]) {

for(i=1;i<x;i++)

14


PROGRAMACIĂ“N II

{ gotoxy(col,fila);printf("%d",vector3[i]); fila++; } } void main() { do { clrscr(); borde(); gotoxy(20,2);printf("ordenar un vector por metodo burbuja "); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite); pares(limite);

Programa principal

fila=10;col=30; imp(a,vector1); impares(limite); fila=10;col=45; imp(b,vector2); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

15


PROGRAMACIĂ“N II

DiseĂąe un programa utilizando funciones que me permita generar n elementos con factores pares e impares en un solo vector. AnĂĄlisis Para generar factores pares if(i%2==0) vector[i]=facpar*a; a++; para generar factores impares if(i%2==1) vector[i]=facimpar*b; b++;

Imprimir el vector resultante

16


PROGRAMACIÓN II

Codificación #include<stdio.h>

librerias principales

#include<conio.h> int vector[10],op,limite,fpares,i,fimpar,fila,a,b; void ingresopar(int lim,int facpar) { a=1; for(i=1;i<=lim;i++) { if(i%2==0) {

Funsion ingreso con factor par vector[i]=facpar*a; a++;

} } } void ingresoimpar(int lim,int facimpar) { b=1; for(i=1;i<=lim;i++) {

Funsion ingreso impar if(i%2==1) { vector[i]=facimpar*b; b++;

17


PROGRAMACIÓN II

} } } void imprimir(int lim) { fila=10; for(i=1;i<=lim;i++) {

Función imprimir gotoxy(10,fila);printf("%d",vector[i]); fila++;

} } void main() { do { clrscr(); gotoxy(15,2);printf("Generar elementos en un vector"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); do{

Programa principal

gotoxy(10,6);printf(" "); gotoxy(10,6);printf("Ingrese el factor par: ");scanf("%d",&fpares); }while(fpares%2==1); do{ gotoxy(10,8);printf(" "); gotoxy(10,8);printf("Ingrese el factor impar: ");scanf("%d",&fimpar);

18


PROGRAMACIÓN II

}while(fimpar%2==0); ingresopar(limite,fpares); ingresoimpar(limite,fimpar); imprimir(limite); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

Diseñar un programa con funciones que me permita ingresar un vector con n elementos, recorrer el vector y encontrar los números pares e impares, asignarlos a un nuevo vector y luego ordenar los pares de forma ascendente y los impares de forma descendente. Análisis Ingresamos el vector Encontramos los elementos impares

if(vector[i]%2==1) vector1[a]=vector[i];

Encontramos los elementos pares

if(vector[i]%2==0)

19


PROGRAMACIÓN II

vector1[a]=vector[i]; Asignamos al vector y lo imprimimos ordenado por el método burbuja Codificación #include<stdio.h>

Librerias principales

#include<conio.h> int vector[10],fil,vector1[10],col,vector2[10],i,j,fila,op,limite,aux=1,datos,a,b; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); }

funsion borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void ingreso(int lim) { fila=10; for(i=1;i<=lim;i++) { do {

20


PROGRAMACIĂ“N II

gotoxy(10,fila);printf(" "); gotoxy(10,fila);scanf("%d",&vector[i]); }while(vector[i]<2 || vector[i]>22); fila++; } } void pares(int lim) { fil=14; a=1; for(i=1;i<=lim;i++) { if(vector[i]%2==1) { vector1[a]=vector[i]; gotoxy(15,fil);printf( "%d",vector1[a]); a++;

funcion encontrar y ordenar impares.

fil++; } }

aux=0; for(i=1;i<a;i++) { for(j=1;j<a;j++) {

21


PROGRAMACIĂ“N II

if(vector1[i]>vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; vector1[j]=aux; } } } } void impares(int lim) { fila=10;fil=10; b=1; for(i=1;i<=lim;i++) { datos=vector[i]%2; if(datos==0) {

funcion impares vector1[b]=vector[i]; gotoxy(15,fil);printf("%d",vector1[b]); b++; fil++;

} } for(i=1;i<b;i++)

22


PROGRAMACIĂ“N II

{ for(j=1;j<b;j++) { if(vector1[i]<vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; vector1[j]=aux; } } } } void imp(int x,int vector3[20]) { for(i=1;i<x;i++) { gotoxy(col,fila);printf("%d",vector3[i]);

funsion imprimir

fila++; } } void main() { do { clrscr(); borde();

23


PROGRAMACIĂ“N II

gotoxy(20,2);printf("ordenar un vector por metodo burbuja"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite); impares(limite); fila=10;col=30; imp(b,vector1);

programa principal

pares(limite); imp(a,vector1); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

24


PROGRAMACIÓN II

Diseñe um programa que me permita ingresar una cadena de caracteres y visualizarlos. Análisis Declaramos el vector tipo char Ingresamos el carácter con un gets Contamos cuantos caracteres hay y asignamos a una variable para luego imprimir. limite=strlen(vector); Codificación #include<stdio.h> #include<conio.h>

librerias principales

#include<string.h> char vector[30]; int limite,i,op,fila,col; void main() { do{ clrscr(); for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/");

programa principal

} for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); }

25


PROGRAMACIĂ“N II

gotoxy(20,2);printf("Imprimir una cadena de caracteres"); gotoxy(10,5);printf("Ingrese los caracteres: ");gets(vector); limite=strlen(vector); fila=8; col=10; for(i=0;i<limite;i++) { textcolor(i+1); gotoxy(col,fila);cprintf("%c",vector[i]); fila++; if(fila==20)

programa principal

{ fila=8; col=15; } } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

26


PROGRAMACIÓN II

Diseñe un programa con funciones que me permita encontrar de una cadena de caracteres las vocales mayúsculas y minúsculas. Análisis Ingresamos la cadena de caracteres y luego comparamos si cada letra es igual a una vocal. Asignamos a un vector e imprimimos. if(vector[i]=='a' || vector[i]=='A' || vector[i]=='e' || vector[i]=='E' || vector[i]=='i' || vector[i]=='I' || vector[i]=='o' ||vector[i]=='O' || vector[i]=='u' || vector[i]=='U') vector1[h]=vector[i]; h++; Cdificación #include<stdio.h> #include<conio.h>

librerías principales

#include<string.h> char vector[30],vector1[30]; int limite,i,op,fila,col,h; void borde() {

27


PROGRAMACIĂ“N II

for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); } for(i=1;i<=80;i++)

function borde

{ gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void encontrar(int lim) { fila=8; col=10; h=0; for(i=0;i<lim;i++)

function para encontrar las vocales

{ if(vector[i]=='a' || vector[i]=='A' || vector[i]=='e' || vector[i]=='E' || vector[i]=='i' || vector[i]=='I' || vector[i]=='o' ||vector[i]=='O' || vector[i]=='u' || vector[i]=='U') { vector1[h]=vector[i]; h++; } } }

28


PROGRAMACIĂ“N II

void imprimir() { for(i=0;i<h;i++) { textcolor(i+3); gotoxy(col,fila);cprintf("%c",vector1[i]); fila++;

function para imprimir

if(fila==20) { fila=8; col=15; } } } void main() { do{ clrscr(); flushall; borde();

programa principal

gotoxy(20,2);printf("Encontrar las vocales de una cadena de caracteres"); gotoxy(10,5);printf("Ingrese los caracteres: ");gets(vector); limite=strlen(vector); encontrar(limite); imprimir(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op);

29


PROGRAMACIĂ“N II

}while(op==1); getch(); }

DiseĂąe un programa utilizando funciones que me permita encontrar todas las vocales y consonantes de una cadena de caracteres ingresada desde teclado, imprimir primero las consonantes y luego las vocales. AnĂĄlisis Ingresamos el vector y luego comparamos letra por letra para encontrar las vocales if(vector1[i]=='a'||vector1[i]=='A'||vector1[i]=='e'||vector1[i]=='E'||vector1[i]=='i'||vector1[i]=='I '||vector1[i]=='o'||vector1[i]=='O'||vector1[i]=='u'||vector1[i]=='U') vector2[h]=vector1[i]; Cuando ya encontramos las vocales entonces para encontrar las consonants simplemente comparamos a ver si son diferentes de las vocales. if(vector1[i]!='a'&&vector1[i]!='A'&&vector1[i]!='e'&&vector1[i]!='E'&&vector1[i]!='i'&&vector1[i] !='I'&&vector1[i]!='o'&&vector1[i]!='O'&&vector1[i]!='u'&&vector1[i]!='U') vector2[h]=vector1[i]; Imprimimos el vector resultante.

30


PROGRAMACIÓN II

Codificación #include<conio.h> #include<stdio.h>

Librerias principales

#include<string.h> char vector1[40],vector2[40]; int i,con,fila,lim,h; void ingresar() { gotoxy(2,2);printf("Ingrese la cadena de Caracteres ==> ");

función de ingreso

gets(vector1); lim=strlen(vector1); }

void encontrar() { h=0; con=0; for(i=0; i<lim; i++) { Funciòn para encontrar consonantes if(vector1[i]!='a'&&vector1[i]!='A'&&vector1[i]!='e'&&vector1[i]!='E'&&vector1[i]!='i'&&ve ctor1[i]!='I'&&vector1[i]!='o'&&vector1[i]!='O'&&vector1[i]!='u'&&vector1[i]!='U') { vector2[h]=vector1[i]; h=h+1; }

31


PROGRAMACIĂ“N II

if(vector1[i]==' ') { h=h-1; } } for(i=0; i<lim; i++) {

if(vector1[i]=='a'||vector1[i]=='A'||vector1[i]=='e'||vector1[i]=='E'||vector1[i]=='i'||vecto r1[i]=='I'||vector1[i]=='o'||vector1[i]=='O'||vector1[i]=='u'||vector1[i]=='U') { vector2[h]=vector1[i];

funsion para encontrar vocales

h=h+1; } if(vector1[i]==' ') { h=h-1; } } }

void visualizar() { fila=10; for(i=0; i<lim; i++) {

32


PROGRAMACIĂ“N II

gotoxy(40,fila); printf("%c",vector2[i]); fila=fila+1; } }

void main() { clrscr(); flushall(); ingresar();

Programa principal

encontrar(); visualizar(); getch(); }

33


PROGRAMACIÓN II

Diseñe un programa utilizando funciones y un switch que me permita escoger de un menú de opciones realizar las 4 operaciones básicas entre 2 vectores ingresados desde teclado. Análisis Codificación #include<stdio.h>

Librerias principales

#include<conio.h> int vector1[10],vector2[10],resultado[10],op,p,s,r,m,d,lim,i,fila; float resul[10]; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*");

funciòn borde

} for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingreso(int limite) { fila=10; for(i=1;i<=limite;i++) {

34


PROGRAMACIĂ“N II

gotoxy(5,8);printf("vector 1"); gotoxy(10,fila);scanf("%d",&vector1[i]); fila++; } fila=10; for(i=1;i<=limite;i++) { gotoxy(15,8);printf("vector 2 "); gotoxy(20,fila);scanf("%d",&vector2[i]); fila++; } } void suma(int limite) { s=1;fila=10; for(i=1;i<=limite;i++) { resultado[s]=vector1[i]+vector2[i]; s++; }

Funciòn suma

for(i=1;i<s;i++) { gotoxy(30,fila);printf("%d + %d = %d",vector1[i],vector2[i],resultado[i]); fila++; } }

35


PROGRAMACIĂ“N II

void resta(int limite) { fila=10; for(i=1;i<=limite;i++) { gotoxy(5,8);printf("vector 1"); gotoxy(10,fila);scanf("%d",&vector1[i]); fila++; } fila=10; for(i=1;i<=limite;i++) { do{

Funciòn Resta

gotoxy(15,8);printf("vector 2 "); gotoxy(20,fila);scanf("%d",&vector2[i]); }while(vector1[i]<vector2[i]); fila++; } r=1;fila=10; for(i=1;i<=limite;i++) { resultado[r]=vector1[i]-vector2[i]; r++; } for(i=1;i<r;i++) {

36


PROGRAMACIÓN II

gotoxy(30,fila);printf("%d - %d = %d",vector1[i],vector2[i],resultado[i]); fila++; } } void division(int limite) { fila=10; for(i=1;i<=limite;i++) { gotoxy(5,8);printf("vector 1"); gotoxy(10,fila);scanf("%d",&vector1[i]); fila++; } fila=10; for(i=1;i<=limite;i++) {

Funciòn Divisiòn do{ gotoxy(15,8);printf("vector 2 "); gotoxy(20,fila);scanf("%d",&vector2[i]); }while(vector1[i]<vector2[i]); fila++;

} d=1;fila=10; for(i=1;i<=limite;i++) { resul[d]=vector1[i]/vector2[i];

37


PROGRAMACIÓN II

d++; } for(i=1;i<d;i++) { gotoxy(30,fila);printf("%d / %d = %2.2f",vector1[i],vector2[i],resul[i]); fila++; } } void multi(int limite) { m=1;fila=10; for(i=1;i<=limite;i++) { resultado[m]=vector1[i]*vector2[i]; m++;

Funciòn multiplicaciòn

} for(i=1;i<m;i++) { gotoxy(30,fila);printf("%d * %d = %d",vector1[i],vector2[i],resultado[i]); fila++; } } void main() { do{ clrscr();

38


PROGRAMACIĂ“N II

gotoxy(20,4);printf("operaciones basicas"); gotoxy(20,6);printf("Menu"); gotoxy(10,8);printf("1.Suma"); gotoxy(10,10);printf("2.Resta"); gotoxy(10,12);printf("3.Multiplicacion"); gotoxy(10,14);printf("4.Division"); gotoxy(10,16);printf("Seleccione una opcion: ");scanf("%d",&op); switch (op) { case 1: clrscr(); borde(); gotoxy(15,2);printf("suma de vectores"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&lim); ingreso(lim); suma(lim); Switch

break;

case 2: clrscr(); borde(); gotoxy(15,2);printf("resta de vectores"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&lim); resta(lim); break;

39


PROGRAMACIĂ“N II

case 3: clrscr(); borde(); gotoxy(15,2);printf("multiplicacion de vectores"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&lim); ingreso(lim); multi(lim); break;

case 4: clrscr(); borde(); gotoxy(15,2);printf("division de vectores"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&lim); division(lim); break;

case 5: exit(1); } gotoxy(10,22);printf("presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

40


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita Análisis Para la multiplicación m=fac*i; resultado[i]=m; Para el Fibonacci

41


PROGRAMACIÓN II

i=j+k; j=k; k=i; resultado[i]=j; Para el factorial i=i*j; resultado[a]=i; a++; Codificación #include<stdio.h> #include<conio.h>

Librerias principales

#include<string.h> int p,op,limite,m,factor,j,col,fila,i,k,resultado[10],a; void borde() { for(j=1;j<=80;j++) { gotoxy(j,1);printf("/"); gotoxy(j,24);printf("/"); }

Funciòn Borde

for(j=1;j<=24;j++) { gotoxy(1,j);printf("/"); gotoxy(80,j);printf("/"); } }

42


PROGRAMACIÓN II

void multi(int lim,int fac) { fila=10; for(i=1;i<=lim;i++) { m=fac*i;

Funciòn multiplo

resultado[i]=m; gotoxy(10,fila);printf("%d * %d= %d",fac,i,resultado[i]); fila++; } } void fibonacci(int lim) { col=4; fila=6; gotoxy(17,2);printf("SERIE DE FIBONACCI"); i=0; j=0; for(j=0,k=1;i<=lim;)

Funciòn para encontrar el fibonacci

{ if(fila==23) { fila=6; col+=5; } i=j+k;

43


PROGRAMACIĂ“N II

j=k; k=i; resultado[i]=j; gotoxy(col,fila++);printf("%d",resultado[i]); }

} void factorial(int lim) { col=4; fila=6;

i=1; a=1; for(j=1;j<=lim;j++) { i=i*j;

Funciòn para hacer el factorial

resultado[a]=i; a++; } for(a=1;a<=lim;a++) { gotoxy(15,fila);printf("El factorial de %d es %d",a,resultado[a]); fila++; } }

44


PROGRAMACIĂ“N II

void main() { do{ col=25; fila=12; clrscr(); gotoxy(17,2);printf("SERIES DE DATOS"); gotoxy(10,4);printf("1 Tabla de multiplicar"); gotoxy(10,6);printf("2 Fibonacci");

Programa principal

gotoxy(10,8);printf("3 Factorial"); gotoxy(10,10);printf("4 Salir"); gotoxy(10,12);printf("escoga una opcion: ");scanf("%d",&op); if(fila==18) { col=col+10; fila=10; } switch (op) { case 1: clrscr(); borde(); gotoxy(15,2);printf("Tabla de Multiplicar"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); gotoxy(10,6);printf("Ingrese el factor: ");scanf("%d",&factor); multi(limite,factor);

45


PROGRAMACIĂ“N II

break;

case 2: clrscr(); borde(); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); fibonacci(limite); break; case 3: clrscr();

Menu de opciones

borde(); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); gotoxy(17,2);printf("FACTORIAL DE UN NUMERO"); factorial(limite); break; case 4: break;

}

gotoxy(15,23);printf("presiones uno para continuar o 0 para salir: ");scanf("%d",&p); } while(p==1); getch(); }

46


PROGRAMACIÓN II

Diseñe un programa utilizando funciones y un switch que me permita escoger de entre un menú de opciones el ordenar datos de un vector ascendente y descendentemente, ordenar datos pares e impares y ordenar datos de las posiciones pares e impares. Análisis Escoger de un menú una opción Para ordenar los datos ingresamos el vector y ordenamos por el método burbuja Encontramos los datos pares y ordenamos e igual con las posiciones.

47


PROGRAMACIÓN II

Codificación #include<stdio.h>

Librerìas principales

#include<conio.h> int vector[10],a,b,aux,par[10],j,impar[10],op,p,i,fila,limite; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); }

Funciòn borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingresar(int lim) { fila=10; for(i=1;i<=lim;i++) { do{ gotoxy(8,8);printf("Vector"); gotoxy(10,fila);scanf("%d",&vector[i]); }while(vector[i]<3 || vector[i]>23);

48


PROGRAMACIÓN II

fila++; } } void asc(int lim) { fila=10; for(i=1;i<=lim;i++) { for(j=1;j<lim;j++) { if(vector[i]<vector[j])

Función ordenacion

{

ascndente aux=vector[i]; vector[i]=vector[j]; vector[j]=aux;

} } } for(i=1;i<=lim;i++) { gotoxy(20,fila);printf("%d",vector[i]); fila++; } } void des(int lim) {

49


PROGRAMACIÓN II

fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(vector[i]>vector[j]) { aux=vector[i]; vector[i]=vector[j]; vector[j]=aux;

Función ordenar descendente

} } } for(i=1;i<=lim;i++) { gotoxy(30,fila);printf("%d",vector[i]); fila++; } } void pares(int lim) { fila=10; a=1; for(i=1;i<=lim;i++) { if(vector[i]%2==0)

50


PROGRAMACIÓN II

{ par[a]=vector[i]; a++; } } for(i=1;i<a;i++)

Función pares

{ gotoxy(17,8);printf("pares"); gotoxy(20,fila);printf("%d",par[i]); fila++; } } void impares(int lim) { fila=10; b=1; for(i=1;i<=lim;i++) { if(vector[i]%2==1)

Función impares

{ impar[b]=vector[i]; b++; } } for(i=1;i<b;i++) {

51


PROGRAMACIÓN II

gotoxy(25,8);printf("impares"); gotoxy(30,fila);printf("%d",impar[i]); fila++; } } void pospares(int lim) { fila=10; a=1; for(i=1;i<=lim;i++) { if(i%2==0) { par[a]=vector[i];

Función posiciones pares

a++; } } for(i=1;i<a;i++) { gotoxy(17,8);printf("posicion par"); gotoxy(20,fila);printf("%d",par[i]); fila++; } } void posimpares(int lim) {

52


PROGRAMACIÓN II

fila=10; b=1; for(i=1;i<=lim;i++) { if(i%2==1) { impar[b]=vector[i]; b++; } } for(i=1;i<b;i++)

Función posiciones impares

{ gotoxy(30,8);printf("posicion impar"); gotoxy(35,fila);printf("%d",impar[i]); fila++; } } void main() { do { clrscr(); borde(); gotoxy(20,2);printf("Menu de Opciones"); gotoxy(10,4);printf("1. Ordenar en forma ascendente y descendente"); gotoxy(10,6);printf("2. Ordenar datos pares e impares");

53


PROGRAMACIĂ“N II

gotoxy(10,8);printf("3. Ordenar datos de las posiciones pares e impares"); gotoxy(10,10);printf("4. salir"); gotoxy(10,12);printf("Escoga una opcion: ");scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos en forma ascendente y descendente"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); asc(limite); des(limite); break; MenĂş de opciones case 2: clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos pares e impares"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); pares(limite); impares(limite); break;

case 3:

54


PROGRAMACIĂ“N II

clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos de las posiciones pares e impares"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); pospares(limite); posimpares(limite); break;

case 4: break; } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

55


PROGRAMACIÓN II

Diseñe un programa que me permita generar elementos pares e impares en un vector con un límite ingresado desde teclado. Análisis Para generar los pares ingresamos el factor vector[i]=i*factor; gotoxy(10,fila);printf("%d",vector[i]); fila+=2; Para generar los impares ingresamos el factor r=i*factoi; vector[i]=r; gotoxy(10,fila);printf("%d",r); fila+=2; m=m+2; Codificación #include<stdio.h>

Librerias principales

#include<conio.h>

56


PROGRAMACIÓN II

int vector[10],p,m,a,r,j,aux,fac,faci,resultado[10],i,lim,op,fila; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); }

Función borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void par(int limite,int factor) { fila=10;p=2; for(i=1;i<=limite;i++) { vector[i]=i*factor;

Función Pares

gotoxy(10,fila);printf("%d",vector[i]); fila+=2; } } void impar(int limite,int factoi) {

57


PROGRAMACIÓN II

fila=11;m=1; p=1; for(i=1;i<=limite;i++) { r=i*factoi; vector[i]=r;

Función impares

gotoxy(10,fila);printf("%d",r); fila+=2; m=m+2; } } void fin(int limite) { fila=10; if(vector[i]<resultado[i]) { for(i=1;i<=limite;i++) {

Función ordenar for(j=1;j<=limite;j++) { aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; }

} } for(i=1;i<=limite;i++)

58


PROGRAMACIĂ“N II

{ gotoxy(20,fila);printf("%d",vector[i]); fila++; } } void main() { do{ clrscr(); borde(); gotoxy(15,2);printf("generar un vector"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&lim); do{ gotoxy(10,6);printf("Ingrese el factor par: ");scanf("%d",&fac); }while(fac==1);

Programa

do{

Principal

gotoxy(10,8);printf("Ingrese el factor impar: ");scanf("%d",&faci); }while(fac==0); par(lim,fac); impar(lim,faci); fin(lim); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

59


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita ingresar una cadena de caracteres para luego contar cuantas vocales y cuantas consonantes tenemos. Análisis Ingresamos la cadena de caracteres Comparamos letra por letra para saber cuales son vocales y acumulamos en un contador para luego imprimirlo if(vector[i]=='a') n=n+1;

Codificación #include<stdio.h> #include<conio.h>

Librerías principales

#include<string.h> int op,p,i,fila,lim,col,cons,a,b,c,n,m,e,o,u; char vector[30],vector1[30];

60


PROGRAMACIÓN II

void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); }

Función Borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void inversa(int limite) { fila=10;a=0;col=10; for(i=limite;i>=0;i--) { vector1[a]=vector[i]; a++;

Función para inversa

} for(i=0;i<a;i++) { gotoxy(col,fila);printf("%c",vector1[i]); fila++; if(fila==20)

61


PROGRAMACIÓN II

{ fila=10;col=20; } } } void vocales(int limite) { fila=10;col=10; b=0; for(i=0;i<=limite;i++) { if(vector[i]=='a' || vector[i]=='e' || vector[i]=='i'|| vector[i]=='o' || vector[i]=='u'); { vector1[b]=vector[i]; b++;

Función consonant

} if(vector[i]=='b' || vector[i]=='c' || vector[i]=='d'|| vector[i]=='f' || vector[i]=='g'||vector[i]=='h' || vector[i]=='j' || vector[i]=='k'|| vector[i]=='l' || vector[i]=='m'|| vector[i]=='n' || vector[i]=='p' || vector[i]=='q'|| vector[i]=='r' || vector[i]=='s'||vector[i]=='t' || vector[i]=='v' || vector[i]=='w'|| vector[i]=='x' || vector[i]=='y'|| vector[i]=='z'); { vector1[b]=vector[i];

} } for(i=0;i<b;i++) {

62


PROGRAMACIÓN II

textcolor(i+1); gotoxy(col,fila);cprintf("%c",vector1[i]); fila++; if (fila==20) { col=20; fila=10; } }

} void contar(int limite) { fila=10; cons=0; c=0; n=0; e=0; m=0;

Función para contar las vocales

o=0; u=0; for(i=0;i<=limite;i++) { if(vector[i]=='a') {

63


PROGRAMACIÓN II

n=n+1; } if(vector[i]=='e') {

e=e+1; } if(vector[i]=='i') {

m=m+1; } if(vector[i]=='o')

Función para contrar las vocales

{ o=o+1; } if(vector[i]=='u') { u=u+1; }

} if(vector[i]==' ') { c=c+1; }

64


PROGRAMACIĂ“N II

cons=lim-n-m-e-o-u-c; for(i=0;i<=limite;i++) { gotoxy(20,10);printf("a= %d",n); gotoxy(20,12);printf("e= %d",e); gotoxy(20,14);printf("i= %d",m); gotoxy(20,16);printf("o= %d",o); gotoxy(20,18);printf("u= %d",u); gotoxy(20,20);printf("consonantes= %d",cons); } } void main() { do{ clrscr(); flushall; borde(); gotoxy(20,2);printf("Menu de Opciones");

Programa principal

gotoxy(10,4);printf("1.Cadena Inversa "); gotoxy(10,6);printf("2. Vocales y Consonates"); gotoxy(10,8);printf("3.Num de vocales y consonantes"); gotoxy(10,10);printf("Escoga una Opcion: ");scanf("%d",&op); gotoxy(10,12);printf("Ingrese los caracteres: ");gets(vector); lim=strlen(vector); switch(op) {

65


PROGRAMACIÓN II

case 1: clrscr();

borde(); gotoxy(20,3);printf("Cadena inversa"); gotoxy(10,5);printf("Ingrese los caracteres: ");gets(vector); lim=strlen(vector); inversa(lim); break;

case 2: clrscr(); Diseño del menú

borde();

Con un switch

gotoxy(20,3);printf("Vocales y consonantes"); gotoxy(10,5);printf("Ingrese los caracteres: ");gets(vector); lim=strlen(vector); vocales(lim); break;

case 3: clrscr(); borde(); gotoxy(20,3);printf("Num de vocales y consonantes"); gotoxy(10,5);printf("Ingrese los caracteres: ");gets(vector); lim=strlen(vector);

66


PROGRAMACIĂ“N II

contar(lim); break; } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

67


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita ingresar una matriz entre 3 y 24, visualizar la matriz. Análisis Para ingresar la matriz y visualizarla necesitamos 2 condiciones for for(i=1;i<=lim;i++) for(j=1;j<=lim;j++) Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[10][10],i,op,col,fila,j,limite; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*");

68


PROGRAMACIÓN II

} for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingreso(int lim) { fila=10,col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{ gotoxy(11,8);printf("matriz");

Función ingreso

gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<4 || matriz[i][j]>23); col=col+5; } fila++; col=10; } } void visual(int lim)

69


PROGRAMACIÓN II

{ col=30,fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]);

Fución de visualización

col=col+5; } fila++; col=30; } } void main() { do{ clrscr(); borde(); gotoxy(15,2);printf("Matriz Cuadratica"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite); visual(limite); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

70


PROGRAMACIÓN II

Diseñe un programa que me permita generar una matriz cuadrática dependiendo del factor ingresado. Análisis Para generar la matriz for(i=1;i<=lim;i++) for(j=1;j<=lim;j++) matriz[i][j]=fac*a; gotoxy(11,8);printf("matriz"); gotoxy(col,fila);printf("%d",matriz[i][j]); a++; Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[10][10],i,a,op,col,fila,j,limite,factor; void borde() {

71


PROGRAMACIÓN II

for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } for(i=1;i<=80;i++)

Función del borde

{ gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingreso(int lim,int fac) { fila=10,col=10; a=1; for(i=1;i<=lim;i++) {

for(j=1;j<=lim;j++)

Función ingreso

{ matriz[i][j]=fac*a; gotoxy(11,8);printf("matriz"); gotoxy(col,fila);printf("%d",matriz[i][j]); a++; col=col+5;

72


PROGRAMACIÓN II

} fila++; col=10; } } void visual(int lim) { col=30,fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

Función para visualizar gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5;

} fila++; col=30; } } void main() { do{ clrscr(); borde(); gotoxy(15,2);printf("Matriz Cuadratica"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite);

73


PROGRAMACIÓN II

gotoxy(10,6);printf("Ingrese el factor: ");scanf("%d",&factor); ingreso(limite,factor); visual(limite); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

Diseñe un programa que me permita generar ceros en las diagonales principal y secundaria, y los demás espacios llenarlos con un factor ingresado desde teclado. Análisis Para generar ceros en la matriz if(i==j) matriz[i][j]=0; Para lenarla del factor if(matriz[i][j]!=0) matriz[i][j]=fac*c;

74


PROGRAMACIÓN II

c++ Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[10][10],op,c,limite,i,j,col,fila,factor; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); }

Función Borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void ingreso1(int lim,int fac) { fila=10;col=10; c=1; matriz[i][j]=0; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

75


PROGRAMACIÓN II

{ if(i==j) { matriz[i][j]=0; } else { matriz[i][j]=1; } col=col+5; } fila++; col=10;

Función de ingreso

} fila=10; j=lim; for(i=1;i<=lim;i++) { matriz[i][j]=0; j=j-1; } fila++; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

76


PROGRAMACIÓN II

if(matriz[i][j]!=0) { matriz[i][j]=fac*c; c++; } } }

} void visual(int lim) { col=10;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5;

Función visualizar

} fila++; col=10; } col=30;fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

77


PROGRAMACIÓN II

{ if(i==j) { gotoxy(col,fila);printf("%d",matriz[i][j]);

col=col+5; fila++; } } } fila=10;col=col-5; j=lim;

Función proceso

for(i=1;i<=lim;i++) { gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1; col=col-5; fila++; }

} void main() { do{ clrscr(); borde();

78


PROGRAMACIÓN II

gotoxy(15,2);printf("Diagonales de una matriz"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); gotoxy(10,6);printf("Ingrese el factor: ");scanf("%d",&factor); ingreso1(limite,factor); visual(limite); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

Diseñe un programa utilizando funciones que me permita ingresar un matriz entre 3 y 17, recorrer la matriz y encontrar los números pares, asignarlos a un vector y presentar ordenados ascendentemente. Análisis Ingresamos la matriz dentro de un do-while do{ gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<3 || matriz[i][j]>17);

79


PROGRAMACIÓN II

Encontramos las posiciones pares y asignamos a un vector para luego ordenarlo por el método burbuja. if(matriz[i][j]%2==0) vector[h]=matriz[i][j]; h++; Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int vector[10],matriz[10][10],op,j,i,h,fila,col,limite,aux; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("."); gotoxy(80,i);printf("."); }

Función borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("."); gotoxy(i,24);printf("."); } } void ingreso(int lim) { fila=10; col=10;

80


PROGRAMACIÓN II

for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{ gotoxy(10,8);printf("matriz"); gotoxy(col,fila);printf(" ");

Función ingreso

gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<3 || matriz[i][j]>17); col=col+5; } fila++; col=10; }

} void par(int lim) { h=1; for(i=1;i<=lim;i++) {

Función pares for(j=1;j<=lim;j++) { if(matriz[i][j]%2==0) { vector[h]=matriz[i][j];

81


PROGRAMACIÓN II

h++; } } } } void orden() { for(i=1;i<h;i++) { for(j=1;j<h;j++) { if(vector[i]<vector[j]) {

Función ordenar aux=vector[i]; vector[i]=vector[j]; vector[j]=aux;

} } } } void imp() { col=40;fila=10; for(i=1;i<h;i++) { gotoxy(37,8);printf("Vector");

82


PROGRAMACIĂ“N II

gotoxy(col,fila);printf("%d",vector[i]); fila++; } } void main() { do{ clrscr(); borde(); gotoxy(25,2);printf("Datos pares de una matriz"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite);

Programa principal

par(limite); orden(); imp(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

83


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita ingresar una matriz entre 7 y 23, encontrar las diagonales principal y secundaria, asignarlos a un vector para luego ordenarlos ascendente y descendentemente. Análisis Ingresamos la matriz dentro de un do-while Encontramos las diagonales y asignamos a un vector para luego ordenarlas por eel método burbuja e imprimirlo. if(i==j) descen[a]=matriz[i][j]; a++; vector[h]=matriz[i][j]; h++; Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int vector[10],descen[10],matriz[10][10],op,j,i,a,h,fila,col,limite,aux; void borde()

84


PROGRAMACIÓN II

{ for(i=1;i<=24;i++) { gotoxy(1,i);printf("."); gotoxy(80,i);printf("."); } for(i=1;i<=80;i++)

Función borde

{ gotoxy(i,1);printf("."); gotoxy(i,24);printf("."); } } void ingreso(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

Función de ingreso do{ gotoxy(10,8);printf("matriz"); gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<7 || matriz[i][j]>23); col=col+5;

85


PROGRAMACIÓN II

} fila++; col=10; }

} void diagonal(int lim) { h=1;a=1; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(i==j) { descen[a]=matriz[i][j];

Función para encontrar la diagonal

a++;

Principal y secundaria

vector[h]=matriz[i][j]; h++; } } } j=lim; for(i=1;i<=lim;i++) { descen[a]=matriz[i][j];

86


PROGRAMACIÓN II

a++; vector[h]=matriz[i][j]; h++; j=j-1; } } void ascen() { for(i=1;i<h;i++) { for(j=1;j<h;j++) { if(vector[i]>vector[j]) {

Función para ordenar ascendente aux=vector[i]; vector[i]=vector[j]; vector[j]=aux;

} } } } void des() { for(i=1;i<a;i++) { for(j=1;j<a;j++)

87


PROGRAMACIÓN II

{ if(descen[i]<descen[j]) { aux=descen[i]; descen[i]=descen[j]; descen[j]=aux; } } }

Función para ordenar descendente

col=50;fila=10; for(i=1;i<a;i++) { gotoxy(47,8);printf("Ascendente"); gotoxy(col,fila);printf("%d",descen[i]); fila++; } }

void imp() { col=40;fila=10; for(i=1;i<h;i++) { gotoxy(33,8);printf("Descendente"); gotoxy(col,fila);printf("%d",vector[i]); fila++;

88


PROGRAMACIĂ“N II

} } void main() { do{ clrscr(); borde(); gotoxy(25,2);printf("Datos pares de una matriz"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite); diagonal(limite);

Programa principal

ascen(); des(); imp(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

89


PROGRAMACIÓN II

Diseñe un programa utilizando funciones que me permita generar números pares en la diagonal principal y números impares en la diagonal secundaria, e imprimir los números correspondientes en la mitad. Análisis Para generar números pares p=p+2; Para generar números impares b=b+2; Condición para visualizar if(i==a || j==a) gotoxy(col-1,fila);printf("%d",matriz[i][j]);

Codificación #include<conio.h>

Librerías principales

#include<stdio.h> int matriz[20][20],op,fila,col,i,j,lim,c,fac,p,i,b,a; void borde()

90


PROGRAMACIÓN II

{ for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++)

Función de borde

{ gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void cero(int limite) { fila=10;col=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { matriz[i][j]=0;

Función para llenar de cero la matriz

gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5;

} col=10; fila++;

91


PROGRAMACIÓN II

} }

void ingreso(int limite) { col=10; fila=10; p=2; a=limite/2; a=a+1; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(i==j)

Función de ingreso

{ matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p=p+2; fila++; } else {

92


PROGRAMACIĂ“N II

gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2; } } else { matriz[i][j]=0; }

} } j=limite;

Proceso de programa

b=1; col=col-5; fila=10; for(i=1;i<=limite;i++) {

matriz[i][j]=b; gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1; col=col-5; fila=fila+1; b=b+2;

93


PROGRAMACIÓN II

j=j-1; } } void principal(int limite) { col=40; fila=10; p=2; a=limite/2; a=a+1; if(limite%2==0) { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++)

Función Diagonales

{ if(i==j) { matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p=p+2; fila++; }

94


PROGRAMACIĂ“N II

else { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2; } } } } } else { for(i=1;i<=limite;i++) {

Proceso del programa for(j=1;j<=limite;j++) { if(i==j) { matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p=p+2; fila++;

95


PROGRAMACIÓN II

} else { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2; } } } } } } void secundaria(int limite) { j=limite; b=1; col=col-5; fila=10; for(i=1;i<=limite;i++)

Función secundaria

{ matriz[i][j]=b; gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1; col=col-5; fila++;

96


PROGRAMACIĂ“N II

b=b+2; } } void main() { do{ clrscr(); borde(); gotoxy(20,2);printf("Generar diagonales de la matriz"); gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim); cero(lim); ingreso(lim);

Programa principal

principal(lim); secundaria(lim); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

97


PROGRAMACIÓN II

Diseñe un programa que me permita ingresar n elementos en una matriz entre 4 y 24, recorrer la matriz y encontrar los múltiplos de 3, 6, y 9 asignarlos a un vector y visualizarlo. Análisis Ingresamos la matriz dentro de un do.while Para saber si son múltiplos if(matriz[i][j]%3==0 || matriz[i][j]%6==0 ||matriz[i][j]%9==0 vector[a]=matriz[i][j]; a++; Imprimir el vector Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[10][10],i,j,op,a,aux,limite,fila,col,vector[10]; void borde() { for(i=1;i<=80;i++)

98


PROGRAMACIÓN II

{ gotoxy(i,1);printf("/"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) {

Función de borde

gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingreso(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

Función de ingreso do{ gotoxy(col,fila);printf("%d",&matriz[i][j]); }while(matriz[i][j]<4 || matriz[i][j]>24); col=col+5;

} fila++; col=10; }

99


PROGRAMACIÓN II

} void multi(int lim) { a=1; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(matriz[i][j]%3==0 || matriz[i][j]%6==0 ||matriz[i][j]%9==0)

Función multiplos

{ vector[a]=matriz[i][j]; a++; } } } } void orden(int lim) { for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

Función ordenar

{ if(vector[i]<vector[j]) { aux=vector[i]; vector[i]=vector[j];

100


PROGRAMACIÓN II

vector[j]=aux; } } } } void imp() { fila=10;col=20; for(i=1;i<a;i++) {

Función imprimir gotoxy(col,fila);printf("%d",vector[i]); fila++;

} } void main() { do{ clrscr(); borde(); gotoxy(20,2);printf("multiplos de 3 6 y 9 "); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite);

Programa princip

ingreso(limite); multi(limite); orden(limite); imp(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op);

101


PROGRAMACIÓN II

}while(op==1); getch(); }

Diseñe un programa que me permita ingresar una matriz para con un switch realizar un menú de opciones que me permita realizar las 4 operaciones básicas Análisis Ingresar las matrices y realizar la suma suma[i][j]=matriz1[i][j]+matriz[i][j]; gotoxy(60,8);printf("Resultado"); gotoxy(col,fila);printf("%d",suma[i][j]); así como las demas operaciones. En la resta condicionamos para que la segunda matriz siempre sea menor que la primero, de igual manera en la división. Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[10][10],matriz1[10][10],a,b,c,d,op,j,i,fila,col,limite,p,suma[10][10],multip[10][10],resta[10][ 10],div[10][10];

102


PROGRAMACIÓN II

void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("."); gotoxy(80,i);printf("."); }

Función borde

for(i=1;i<=80;i++) { gotoxy(i,1);printf("."); gotoxy(i,24);printf("."); } } void sum(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

Función suma

{ gotoxy(10,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++;

103


PROGRAMACIÓN II

col=10; } fila=10; col=40; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(40,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+5; } fila++; col=40;

Función suma

} fila=10; col=60; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { suma[i][j]=matriz1[i][j]+matriz[i][j]; gotoxy(60,8);printf("Resultado"); gotoxy(col,fila);printf("%d",suma[i][j]); col=col+5;

104


PROGRAMACIÓN II

} fila++; col=60; }

} void restas(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(10,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5;

Función resta

} fila++; col=10; } fila=10; col=40; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

105


PROGRAMACIÓN II

{ do{ gotoxy(40,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz1[i][j]);

}while(matriz1[i][j]>matriz[i][j]); col=col+5; } fila++; col=40; } fila=10; col=60;

Función rest

for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { resta[i][j]=matriz[i][j]-matriz1[i][j]; gotoxy(col,fila);printf("%d",resta[i][j]); col=col+5;

} fila++; col=60; }

106


PROGRAMACIÓN II

} void multi(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(10,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++;

Función multiplicaci

col=10; } fila=10; col=40; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(10,8);printf("matriz"); gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+5; }

107


PROGRAMACIÓN II

fila++; col=40; } fila=10; col=60; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

Función multiplicacion multip[i][j]=matriz1[i][j]*matriz[i][j]; gotoxy(col,fila);printf("%d",multip[i][j]); col=col+5;

} fila++; col=60; } } void division(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(10,8);printf("matriz");

108


PROGRAMACIÓN II

gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++; col=10; } fila=10; col=40; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{

Función división

gotoxy(10,8);printf("matriz") gotoxy(col,fila);scanf("%d",&matriz1[i][j]); }while(matriz1[i][j]>matriz[i][j]); col=col+5; } fila++; col=40; } fila=10; col=60; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

109


PROGRAMACIĂ“N II

{ div[i][j]=matriz[i][j]/matriz1[i][j]; gotoxy(col,fila);printf("%d",div[i][j]); col=col+5; } fila++; col=60; }

} void main() { do{ clrscr(); borde(); gotoxy(20,2);printf("Menu de opciones");

Programa principal

gotoxy(10,4);printf("1. Suma"); gotoxy(10,6);printf("2. Resta"); gotoxy(10,8);printf("3. Multiplicacion"); gotoxy(10,10);printf("4. Division"); gotoxy(10,12);printf("Escoga una opcion: ");scanf("%d",&op); switch(op) { case 1: clrscr(); borde();

110


PROGRAMACIÓN II

gotoxy(25,2);printf("Suma de matrices"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); sum(limite); break;

case 2: clrscr(); borde(); gotoxy(25,2);printf("Resta de matrices"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); restas(limite); break; Diseño menú case 3: clrscr(); borde(); gotoxy(25,2);printf("Multiplicacion de matrices"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite);

multi(limite); break;

case 4: clrscr(); borde(); gotoxy(25,2);printf("Division de matrices");

111


PROGRAMACIÓN II

gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); division(limite); break; } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

Diseñe un programa utilizando funciones que me permita realizar un menú de opciones en el cual podamos relizar diagonales con factores diferentes,diagonales con factores pares impares, serie Fibonacci, factorial. Análisis diagonales con factores diferentes if(i==j) matriz[i][j]=p; if(i==a || j==a) m=p*fac;

112


PROGRAMACIÓN II

matriz[i][j]=m; gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p++; fila++; diagonales con factores pares impares m=p*fac; matriz[i][j]=m; gotoxy(col-1,fila);printf("%d",matriz[i][j]); Codificación #include<conio.h> #include<stdlib.h>

Librerías principales

#include<stdio.h> int matriz[20][20],m,factorp,factors,op,fila,col,i,o,j,lim,c,fac,p,b,a,k; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("*"); }

Función borde

for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); }

113


PROGRAMACIÓN II

} void cero(int limite) { fila=10;col=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { matriz[i][j]=0; gotoxy(col,fila);printf("%d",matriz[i][j]);

Función para llenar la matriz de ceros

col=col+5;

} col=10; fila++; } } void uno(int limite) { fila=10;col=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { matriz[i][j]=1; gotoxy(col,fila);printf("%d",matriz[i][j]);

114


PROGRAMACIÓN II

col=col+5;

} col=10; fila++; } } void ingreso(int limite) { col=10; fila=10; p=2; a=limite/2; a=a+1; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++)

Función de ingreso en las diagonales

{ if(i==j) { matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p=p+2;

115


PROGRAMACIÓN II

fila++; } else { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2; } } else { matriz[i][j]=0; } }

Función de diagonales principal y secundaria

}

j=limite; b=1; col=col-5; fila=10; for(i=1;i<=limite;i++) { matriz[i][j]=b; gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1;

116


PROGRAMACIÓN II

col=col-5; fila=fila+1; b=b+2; j=j-1; } } void principal(int limite) { col=40; fila=10; p=2; a=limite/2; a=a+1; if(limite%2==0) { for(i=1;i<=limite;i++) {

Función diagonal principal for(j=1;j<=limite;j++) { if(i==j) { matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5;

117


PROGRAMACIÓN II

p=p+2; fila++; } else { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2; } } } } }

Función diagonal principal

else { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(i==j) { matriz[i][j]=p; if(i==a || j==a) { gotoxy(col-1,fila);printf("%d",matriz[i][j]);

118


PROGRAMACIÓN II

col=col+5; p=p+2; fila++; } else { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; p=p+2;

Función diagonal principal

} } } } } } void secundaria(int limite) { j=limite; b=1; col=col-5; fila=10; for(i=1;i<=limite;i++) { matriz[i][j]=b; gotoxy(col,fila);printf("%d",matriz[i][j]);

119


PROGRAMACIÓN II

j=j-1; col=col-5; fila++; b=b+2;

} } void factor(int limite, int fac, int fac1) { col=10; fila=10; p=1; m=0; a=limite/2; a=a+1; for(i=1;i<=limite;i++)

Función factor

{ for(j=1;j<=limite;j++) { if(i==j) { matriz[i][j]=p; if(i==a || j==a) { m=p*fac;

120


PROGRAMACIÓN II

matriz[i][j]=m; gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p++; fila++; } else { m=p*fac; matriz[i][j]=m; gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; Función para ingresar

fila=fila+1;

Las diagonales con factor

p++; }

} } } j=limite; b=0; col=col-5; fila=10; for(i=1;i<=limite;i++) { b=i*fac1; matriz[i][j]=b;

121


PROGRAMACIÓN II

gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1; col=col-5; fila=fila+1; j=j-1; } } void imp(int limite, int fac, int fac1) { col=40; fila=10; p=1; m=0; a=limite/2; a=a+1; for(i=1;i<=limite;i++) {

Función para imprimir for(j=1;j<=limite;j++) { if(i==j) { matriz[i][j]=p; if(i==a || j==a) { m=p*fac; matriz[i][j]=m;

122


PROGRAMACIÓN II

gotoxy(col-1,fila);printf("%d",matriz[i][j]); col=col+5; p++; fila++; } else { m=p*fac; matriz[i][j]=m; gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; Función para imprimir

p++; } }

} } j=limite; b=0; col=col-5; fila=10; for(i=1;i<=limite;i++) { b=i*fac1; matriz[i][j]=b; gotoxy(col,fila);printf("%d",matriz[i][j]);

123


PROGRAMACIÓN II

j=j-1; col=col-5; fila=fila+1; j=j-1; } } void fibo(int limite) { col=10; fila=10; i=0; j=0; k=1; for(a=1;a<=limite;a++) { for(p=1;p<=limite;p++)

Función para calcular el fibonacci

{ j=i; i=j+k; k=j; matriz[a][p]=i;

gotoxy(col,fila);printf("%d",matriz[a][p]); col=col+5; } fila++;

124


PROGRAMACIÓN II

col=10; } } void factorial(int limite) { col=10; fila=10; p=1; i=1; for(a=1;a<=limite;a++) { for(j=1;j<=limite;j++) {

Función para calcular el factorial

i=i*p; matriz[a][j]=i; gotoxy(col,fila);printf("%d",matriz[a][j]); col=col+5; p++; } fila++; col=10; } } void main() { do{

125


PROGRAMACIÓN II

clrscr(); borde(); gotoxy(20,2);printf("Series con matrices"); gotoxy(10,4);printf("1. Diagonales con factores diferentes"); gotoxy(10,6);printf("2. Diagonales valores pares e impares"); gotoxy(10,8);printf("3. Serie Fibonacci"); gotoxy(10,10);printf("4. Factorial");

Programa PRINCIPAL

gotoxy(10,12);printf("5.Salir "); gotoxy(10,14);printf("Escoga una opcion: ");scanf("%d",&o); switch(o) { case 1: clrscr(); borde(); gotoxy(20,2);printf("Generar una matriz con 2 factores"); gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim); gotoxy(10,5);printf("Ingrese el factor principal: ");scanf("%d",&factorp); Diseño

gotoxy(10,6);printf("Ingrese el factor secundario: ");scanf("%d",&factors);

menú

cero(lim); factor(lim,factorp,factors); imp(lim,factorp,factors); break; case 2: clrscr(); borde(); gotoxy(20,2);printf("Generar pares e impares en las diagonales");

126


PROGRAMACIĂ“N II

gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim); uno(lim); ingreso(lim); principal(lim); secundaria(lim); break; case 3: clrscr(); borde(); gotoxy(20,2);printf("Generar el fibonacci en la matriz"); gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim); fibo(lim); DiseĂąo del menu

break; case 4: clrscr(); borde(); gotoxy(20,2);printf("Generar el factorial en una matriz"); gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim); factorial(lim); break; case 5: exit(1);

} gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch();

127


PROGRAMACIÓN II

}

Diseñe un programa utlizando funciones y un switch que me permita generar los números primos en una matriz y ordenarla Análisis Para generar los números primos do {

128


PROGRAMACIÓN II

a=0; for(i=1;i<=n;i++) { if(n%i==0) { a=a+1; } } if(a==2) { vector[c]=n; c++; } n++; }while(c<=aux); Para ordenala utilizamos el método burbuja Codificación #include<stdio.h>

ibrerías principales

#include<conio.h> int n,vector[100],y,limite,h,x,c,i,j,a,op,b,fila=10,col=10,matriz[30][30],p,aux; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/");

129


PROGRAMACIÓN II

} for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void primo(int lim) { aux=lim*lim; p=1; c=1; n=1; col=10; fila=10; do {

Función para calcular el número primo a=0; for(i=1;i<=n;i++) { if(n%i==0) { a=a+1; } } if(a==2)

130


PROGRAMACIÓN II

{ vector[c]=n; c++; } n++; }while(c<=aux); for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { matriz[i][j]=vector[p]; p++; } }

Función para imprimir

for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; } fila++; col=10; }

}

131


PROGRAMACIÓN II

void ingreso(int lim) { fila=10;col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { do{

Función de ingreso

gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<3 || matriz[i][j]>36); col=col+5; } fila++; col=10; } } void ordenar(int lim) { for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) {

Función d ordenación

for(y=1;y<=lim;y++) { for(x=1;x<=lim;x++)

132


PROGRAMACIÓN II

{ if(matriz[i][j]>matriz[y][x]) { aux=matriz[i][j]; matriz[i][j]=matriz[y][x]; matriz[y][x]=aux; }

Función de ordenacion

} } } } }

void imp(int lim) { col=40; fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

Función imprimir

{ gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; } col=40; fila++;

133


PROGRAMACIÓN II

} } void main() { do{ clrscr(); borde();

Programa principal

gotoxy(20,2);printf("Menu de opciones"); gotoxy(10,4);printf("1. Matriz con num primos"); gotoxy(10,6);printf("2. Matriz ordenada en forma ascendente"); gotoxy(10,8);printf("Eliga una opcion: ");scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(20,2);printf("Matriz con numeros primos"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); primo(limite); Diseño menú

break;

case 2: clrscr(); borde(); gotoxy(20,2);printf("Matriz ordenada"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite);

134


PROGRAMACIĂ“N II

ingreso(limite); ordenar(limite); imp(limite); break; } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

135


PROGRAMACIÓN II

Diseñe un programa utlizando funciones que me permita ingresar una matriz y ordenarla ascendente y descendentemente Análisis Para asignarla a un vector if(matriz[i][j]%2==0) vector[a]=matriz[i][j]; a++; Ordenamos por el método burbuja y visualizamos Codificación #include<stdio.h>

Librerías principales

#include<conio.h> int matriz[15][15],vector[15],op,i,j,a,fila,col,aux,limite,b; void borde() { for(i=1;i<=24;i++) {

136


PROGRAMACIÓN II

gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } for(i=1;i<=80;i++) {

Función borde gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*");

} } void ingreso(int lim) { fila=10; col=10; gotoxy(10,8);printf("matriz"); for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++)

Función de ingreso

{ do{ gotoxy(col,fila);scanf("%d",&matriz[i][j]); }while(matriz[i][j]<3 || matriz[i][j]>23); col=col+5; } fila++; col=10; }

137


PROGRAMACIÓN II

} void proceso(int lim) { a=1; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(matriz[i][j]%2==1) { vector[a]=matriz[i][j]; a++; }

Función proceso programa

} } for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(matriz[i][j]%2==0) { vector[a]=matriz[i][j]; a++; } } }

138


PROGRAMACIÓN II

fila=10; gotoxy(25,8);printf("resultante"); for(i=1;i<a;i++) { gotoxy(30,fila);printf("%d",vector[i]); fila++; } } void ordenar() { for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vector[i]>vector[j]) { aux=vector[i];

Proceso de ordenación

vector[i]=vector[j]; vector[j]=aux; } } } fila=10; gotoxy(38,8);printf("Descendente"); for(i=1;i<a;i++) {

139


PROGRAMACIÓN II

gotoxy(40,fila);printf("%d",vector[i]); fila++; } } void ordenar1() { for(i=1;i<a;i++) { for(j=1;j<a;j++) { if(vector[i]<vector[j]) { aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } }

Proceso ordenación ascendente

} fila=10; gotoxy(50,8);printf("ascendente"); for(i=1;i<a;i++) { gotoxy(50,fila);printf("%d",vector[i]); fila++; } }

140


PROGRAMACIĂ“N II

void main() { do{ clrscr(); borde(); gotoxy(20,2);printf("Ordenar una matriz en forma ascendente y descendente"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingreso(limite);

Programa principal

proceso(limite); ordenar(); ordenar1(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

141


PROGRAMACIÓN II

Realizar un programa utilizando vectores y funciones que me permita diseñar un menú de opciones para: 1. Ordenar ascendente y descendentemente 2. Encontrar datos pares e impares 3. Encontrar los datos con las posiciones pares e impares Todos deben estar validados entre 3 y 23 Análisis: Ingresa datos en el vector if(vector[i]<vector[j]) ordenar ascendente if(vector[i]>vector[j]) ordenar descendente if(vector[i]%2==0) datos pares if(vector[i]%2==1) datos impares if(i%2==0) posiciones pares if(i%2==1) posiciones impares Codificación #include<stdio.h> LIBRERÍAS PRINCIPALES #include<conio.h> int vector[10],a,b,aux,par[10],j,impar[10],op,p,i,fila,limite; DECLARACION VARIABLE void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); FUNCION BORDE } for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingresar(int lim) {

142


PROGRAMACIĂ“N II

fila=10; for(i=1;i<=lim;i++) { do{ gotoxy(8,8);printf("Vector"); gotoxy(10,fila);scanf("%d",&vector[i]); }while(vector[i]<3 || vector[i]>23); fila++; } } void asc(int lim) { fila=10; for(i=1;i<=lim;i++) { for(j=1;j<lim;j++) { if(vector[i]<vector[j]) { aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } } } for(i=1;i<=lim;i++) { gotoxy(20,fila);printf("%d",vector[i]); fila++; } } void des(int lim) { fila=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { if(vector[i]>vector[j]) { aux=vector[i]; vector[i]=vector[j];

FUNCION ASCENDENTE

143


PROGRAMACIĂ“N II

vector[j]=aux; } } } for(i=1;i<=lim;i++) { gotoxy(30,fila);printf("%d",vector[i]); fila++; } } void pares(int lim) { fila=10; a=1; for(i=1;i<=lim;i++) { if(vector[i]%2==0) { par[a]=vector[i]; a++; } } for(i=1;i<a;i++) { gotoxy(17,8);printf("pares"); gotoxy(20,fila);printf("%d",par[i]); fila++; } } void impares(int lim) { fila=10; b=1; for(i=1;i<=lim;i++) { if(vector[i]%2==1) { impar[b]=vector[i]; b++; } } for(i=1;i<b;i++)

FUNCION PARES

144


PROGRAMACIĂ“N II

{ gotoxy(25,8);printf("impares"); gotoxy(30,fila);printf("%d",impar[i]); fila++; } } void pospares(int lim) { fila=10; a=1; for(i=1;i<=lim;i++) { if(i%2==0) { par[a]=vector[i]; FUNCION POSICION PAR a++; } } for(i=1;i<a;i++) { gotoxy(17,8);printf("posicion par"); gotoxy(20,fila);printf("%d",par[i]); fila++; } } void posimpares(int lim) { fila=10; b=1; for(i=1;i<=lim;i++) { FUNCION PISICION IMPAR if(i%2==1) { impar[b]=vector[i]; b++; } } for(i=1;i<b;i++) { gotoxy(30,8);printf("posicion impar"); gotoxy(35,fila);printf("%d",impar[i]); fila++;

145


PROGRAMACIÓN II

} } void main() { do { clrscr(); borde(); gotoxy(20,2);printf("Menu de Opciones"); DISEÑO MENU gotoxy(10,4);printf("1. Ordenar en forma ascendente y descendente"); PRINCIPAL gotoxy(10,6);printf("2. Ordenar datos pares e impares"); gotoxy(10,8);printf("3. Ordenar datos de las posiciones pares e impares"); gotoxy(10,10);printf("4. salir"); gotoxy(10,12);printf("Escoga una opcion: ");scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos en forma ascendente y descendente"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); asc(limite); des(limite); DISEÑO break; SWITCH case 2: clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos pares e impares"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); pares(limite); impares(limite); break; case 3: clrscr(); borde(); gotoxy(10,2);printf("Ordenar datos de las posiciones pares e impares");

146


PROGRAMACIĂ“N II

gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); ingresar(limite); pospares(limite); posimpares(limite); break; case 4: break; } gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&p); }while(p==1); getch(); }

147


PROGRAMACIÓN II

Multiplicación Producto de Hilera por Columna Antes de describir la multiplicación de matrices, es necesario definir una operación preliminar: El producto interno, que corresponde a un valor escalar. El producto interno es la suma del producto de los elementos de una hilera por los elementos de una columna. Para multiplicar una hilera por una columna es necesario que el número de columnas en la hilera corresponda al número de hileras en la columna. El producto de hilera por columna es un escalar. Por ejemplo, la multiplicación de A por B, denotado AB, es:

148


PROGRAMACIÓN II

La multiplicación de Matrices Para multiplicar dos matrices, es necesario que el número de hileras de la primera matriz Q corresponda al número de columnas de la segunda matriz W. Los elementos del producto P= QW corresponden al producto de hileras por columnas, como se menciona arriba:

En este ejemplo, el elemento (2,3)= 5 corresponde al producto de la hilera dos de Q y columna tres de W. En general, no es lo mismo AB que BA.

149


PROGRAMACIÓN II 

Diseñe un programa que me permita realizar el producto algebraico de matrices.

Análisis Cremos una función con el borde Void borde Ingresamos las matrices con 2 condiciones for en una misma función Vamos a la función proceso donde dentro de 2 condiciones for vamos a crear otra condición for para que nos ayude como auxiliar para nuestro resultado for(a=1;a<=lim;a++) { matriz2[i][j]=(matriz2[i][j] +(matriz[i][a]*matriz1[a][j])); } Finalmente imprimimos la matriz resultante.

Codificación #include<conio.h> Librerias principales #include<stdio.h> int matriz2[10][10],i,j,matriz[10][10],a,limite,col,fila,matriz1[10][10],op; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,i);printf("/"); } Función Borde for(i=1;i<=80;i++) { gotoxy(i,1);printf("/"); gotoxy(i,24);printf("/"); } } void ingreso(int lim) { fila=10; col=10; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { Funcion Ingreso gotoxy(10,9);printf("Matriz "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++;

150


PROGRAMACIÓN II col=10; } fila=10; col=30; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) Ingreso matriz 2 { gotoxy(30,9);printf("Matriz "); gotoxy(col,fila);scanf("%d",&matriz1[i][j]); col=col+5; } fila++; col=30; } } void proceso(int lim) { for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) { Función de proceso de matriz2[i][j]=0; multiplicacion de matrices for(a=1;a<=lim;a++) { matriz2[i][j]=(matriz2[i][j] +(matriz[i][a]*matriz1[a][j])); } } } } void imp(int lim) { fila=10; col=50; for(i=1;i<=lim;i++) { for(j=1;j<=lim;j++) Función para imprimir { gotoxy(col,fila);printf("%d",matriz2[i][j]); col=col+5; } fila++; col=50;

151


PROGRAMACIĂ“N II } } void main() { do{ clrscr(); borde(); gotoxy(25,2);printf("Producto de dos matrices"); gotoxy(10,4);printf("Ingrese el limite: ");scanf("%d",&limite); Programa ingreso(limite); proceso(limite); Principal imp(limite); gotoxy(10,22);printf("Presione 1 para continar o 0 para salir: ");scanf("%d",&op); }while(op==1); getch(); }

152


PROGRAMACIÓN II #include<stdio.h> Librerías principales #include<conio.h> int matriz[10][10],limite1,fila,col,a,limite2,op,i,j,vector[10],b,vector1[10] ; void borde() { for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } for(i=1;i<=80;i++) Función borde { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } } void ingreso(int lim1, int lim2) { fila=10;col=10; for(i=1;i<=lim1;i++) { for(j=1;j<=lim2;j++) { gotoxy(10,9);printf("matriz"); do{ gotoxy(col,fila);scanf("%d",&matriz[i][j]); función ingres }while(matriz[i][j]<3 || matriz[i][j]>28); col=col+5; } fila++; col=10; } } void trans(int lim1,int lim2) { fila=10;col=40; for(i=1;i<=lim2;i++) { for(j=1;j<=lim1;j++) { gotoxy(40,9);printf("Transpuesta"); matriz gotoxy(col,fila);printf("%d",matriz [j][ i]); transpuesta col=col+5; } fila++; col=40; } } void vec(int lim1,int lim2) { a=1; for(i=1;i<=lim2;i++) { for(j=1;j<=lim1;j++) {

153


PROGRAMACIÓN II if(matriz[j][i]%2==0) { vector[a]=matriz[j][i]; a++; } } } } void impar(int lim1, int lim2) { b=1; for(i=1;i<=lim2;i++) { for(j=1;j<=lim1;j++) { if(matriz[j][i]%2==1) { vector1[b]=matriz[j][i]; b++;

función encontrar impares

} } } } void imp() { fila=10; for(i=1;i<a;i++) { gotoxy(70,fila);printf("%d",vector[i]); fila=fila+2; } función fila=11; imprimir for(j=1;j<b;j++) { gotoxy(70,fila);printf("%d",vector1[j]); fila=fila+2; } } void main() { do{ clrscr(); borde(); gotoxy(25,2);printf("Mtriz Transpuesta"); gotoxy(10,4);printf("Ingrese limite de las filas: ");scanf("%d",&limite1); gotoxy(10,6);printf("Ingrese el limite de las columnas: ");scanf("%d",&limite2); ingreso(limite1,limite2); trans(limite1,limite2); Programa vec(limite1,limite2); Principal impar(limite1,limite2); imp(); gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir: ");scanf("%d",&op);

154


PROGRAMACIÓN II }while(op==1); getch(); }

155


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.