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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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Ă&#x201C;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